<?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>86354</bug_id>
          
          <creation_ts>2012-05-14 03:59:45 -0700</creation_ts>
          <short_desc>[EFL] Add simple implementation of Web Intents</short_desc>
          <delta_ts>2012-05-20 22:20:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>84572</dependson>
          <blocked>85364</blocked>
    
    <blocked>86868</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>abarth</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622805</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-14 03:59:45 -0700</bug_when>
    <thetext>Ewk classes are needed to wrap WebCore::Intent and WebCore::IntentRequest.

dispatchIntent() needs to be implemented in EFL&apos;s FrameLoaderClient to make clients aware of new intent requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622825</commentid>
    <comment_count>1</comment_count>
      <attachid>141689</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-14 04:32:11 -0700</bug_when>
    <thetext>Created attachment 141689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623518</commentid>
    <comment_count>2</comment_count>
      <attachid>141689</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-14 17:55:55 -0700</bug_when>
    <thetext>Comment on attachment 141689
Patch

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

&gt; Source/WebKit/efl/ewk/ewk_intent_request.h:66
&gt; + *

Unneeded line.

&gt; Source/WebKit/efl/ewk/ewk_intent_request.h:77
&gt; + *

ditto.

&gt; Source/WebKit/efl/ewk/ewk_private.h:206
&gt; +#if ENABLE(WEB_INTENTS)

Bug 84572 splits ewk_private.h into each file&apos;s private file. So, it seems to me this internal functions need to be moved to ewk_intent_private.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623869</commentid>
    <comment_count>3</comment_count>
      <attachid>141909</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-15 03:39:31 -0700</bug_when>
    <thetext>Created attachment 141909
Patch

Take feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626126</commentid>
    <comment_count>4</comment_count>
      <attachid>141909</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-16 18:42:31 -0700</bug_when>
    <thetext>Comment on attachment 141909
Patch

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

Looks make sense except for a style nit. Although I almost understand how to work this feature, could you explain how application&apos;s able to set intent data via ewk_intent_xxx public APIs ?

&gt; Source/WebKit/efl/ewk/ewk_intent_private.h:31
&gt; +void ewk_intent_free(Ewk_Intent *intent);

Style nit: Move * to data type side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626325</commentid>
    <comment_count>5</comment_count>
      <attachid>142429</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 00:18:43 -0700</bug_when>
    <thetext>Created attachment 142429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626333</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 00:28:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 141909 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141909&amp;action=review
&gt; 
&gt; Looks make sense except for a style nit. Although I almost understand how to work this feature, could you explain how application&apos;s able to set intent data via ewk_intent_xxx public APIs ?

Intent data is set on JS side so there is not setter in the ewk wrapper. What the application can do is post the result or failure for an intent request via ewk_intent_request_result_post() and ewk_intent_request_failure_post().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626350</commentid>
    <comment_count>7</comment_count>
      <attachid>142429</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-17 00:49:40 -0700</bug_when>
    <thetext>Comment on attachment 142429
Patch

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

Looks make sense. Please fix trivial style nit again.

&gt; Source/WebKit/efl/ewk/ewk_intent_request.h:67
&gt; +EAPI void ewk_intent_request_result_post(Ewk_Intent_Request* request, const char *result);

Move &apos;*&apos; to variable side.

&gt; Source/WebKit/efl/ewk/ewk_intent_request.h:77
&gt; +EAPI void ewk_intent_request_failure_post(Ewk_Intent_Request* request, const char *failure);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626352</commentid>
    <comment_count>8</comment_count>
      <attachid>142436</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 00:52:06 -0700</bug_when>
    <thetext>Created attachment 142436
Patch

Fix style nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626415</commentid>
    <comment_count>9</comment_count>
      <attachid>142436</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-17 03:20:36 -0700</bug_when>
    <thetext>Comment on attachment 142436
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626440</commentid>
    <comment_count>10</comment_count>
      <attachid>142436</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 04:17:16 -0700</bug_when>
    <thetext>Comment on attachment 142436
Patch

Rejecting attachment 142436 from commit-queue.

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

Last 500 characters of output:
ommit-queue/Source/WebKit/chromium/third_party/snappy/src --revision 37 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
44&gt;At revision 37.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/12720495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626459</commentid>
    <comment_count>11</comment_count>
      <attachid>142436</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-17 04:50:28 -0700</bug_when>
    <thetext>Comment on attachment 142436
Patch

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

&gt; Source/WebKit/efl/ChangeLog:49
&gt; +        Reviewed by NOBODY (OOPS!).

The following ChangeLog files contain OOPS:

        trunk/Source/WebKit/efl/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.

The problem is that you&apos;ve got two ChangeLog entries in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627382</commentid>
    <comment_count>12</comment_count>
      <attachid>142642</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 23:23:45 -0700</bug_when>
    <thetext>Created attachment 142642
Patch for landing

Could someone please cq+ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627383</commentid>
    <comment_count>13</comment_count>
      <attachid>142642</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 23:24:37 -0700</bug_when>
    <thetext>Comment on attachment 142642
Patch for landing

Clearing flags as I spotted minor style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627384</commentid>
    <comment_count>14</comment_count>
      <attachid>142643</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-17 23:26:14 -0700</bug_when>
    <thetext>Created attachment 142643
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627416</commentid>
    <comment_count>15</comment_count>
      <attachid>142643</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 00:02:44 -0700</bug_when>
    <thetext>Comment on attachment 142643
Patch for landing

Clearing flags on attachment: 142643

Committed r117551: &lt;http://trac.webkit.org/changeset/117551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627417</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 00:02:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627891</commentid>
    <comment_count>17</comment_count>
      <attachid>142643</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-18 12:03:23 -0700</bug_when>
    <thetext>Comment on attachment 142643
Patch for landing

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

&gt; Source/WebKit/CMakeLists.txt:5
&gt;      &quot;${WEBCORE_DIR}/Modules/webdatabase&quot;
&gt; +    &quot;${WEBCORE_DIR}/Modules/intents&quot;

Post-mortem nitpick: This list should be alphabetically sorted.

&gt; Source/WebKit/PlatformEfl.cmake:123
&gt; +    efl/ewk/ewk_intent.cpp
&gt; +    efl/ewk/ewk_intent_request.cpp

Ditto.

&gt; Source/WebKit/PlatformEfl.cmake:273
&gt; +    ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_intent.h
&gt; +    ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_intent_request.h

Ditto.

&gt; Source/WebKit/efl/ChangeLog:31
&gt; +        * ewk/ewk_intent.h: Added.

Post-mortem nitpick: Shouldn&apos;t you install this header and add it to EWebKit.h?

&gt; Source/WebKit/efl/ChangeLog:42
&gt; +        * ewk/ewk_intent_request.h: Added.

Ditto.

&gt; Source/WebKit/efl/ewk/ewk_frame.h:43
&gt; + *  - &quot;intent,new&quot;, EwkIntentRequest*: reports new intent.

Post-mortem nitpick: missing underscores in Ewk_Intent_Request.

&gt; Source/cmake/OptionsEfl.cmake:84
&gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_INTENTS, ON)

Post-mortem nitpick: extra comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628776</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-20 22:20:10 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 142643 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142643&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/CMakeLists.txt:5
&gt; &gt;      &quot;${WEBCORE_DIR}/Modules/webdatabase&quot;
&gt; &gt; +    &quot;${WEBCORE_DIR}/Modules/intents&quot;
&gt; 
&gt; Post-mortem nitpick: This list should be alphabetically sorted.
&gt; 
&gt; &gt; Source/WebKit/PlatformEfl.cmake:123
&gt; &gt; +    efl/ewk/ewk_intent.cpp
&gt; &gt; +    efl/ewk/ewk_intent_request.cpp
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/PlatformEfl.cmake:273
&gt; &gt; +    ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_intent.h
&gt; &gt; +    ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_intent_request.h
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:31
&gt; &gt; +        * ewk/ewk_intent.h: Added.
&gt; 
&gt; Post-mortem nitpick: Shouldn&apos;t you install this header and add it to EWebKit.h?
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:42
&gt; &gt; +        * ewk/ewk_intent_request.h: Added.
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_frame.h:43
&gt; &gt; + *  - &quot;intent,new&quot;, EwkIntentRequest*: reports new intent.
&gt; 
&gt; Post-mortem nitpick: missing underscores in Ewk_Intent_Request.
&gt; 
&gt; &gt; Source/cmake/OptionsEfl.cmake:84
&gt; &gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_INTENTS, ON)
&gt; 
&gt; Post-mortem nitpick: extra comma.

Thanks rakuco, I will fix those style nits in Bug 86986.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141689</attachid>
            <date>2012-05-14 04:32:11 -0700</date>
            <delta_ts>2012-05-15 03:39:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>86354_simple_intents_efl.patch</filename>
            <type>text/plain</type>
            <size>25357</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZDJmYjkxLi4yYjUzZDU5
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBXRUJfSU5URU5UUyBmbGFncyBieSBkZWZhdWx0IG9uIEVGTCBwb3J0LgorCisgICAgICAgICog
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2U6CisKIDIwMTItMDUtMTEgIEplZmZyZXkgUGZh
dSAgPGpwZmF1QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTE0MTcwKTogU2Ny
b2xsIGFyZWFzIGluIG5lc3RlZCBmcmFtZXMgaW1wcm9wZXJseSBwbGFjZWQgd2hlbiB0aWxlZCBk
cmF3aW5nIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDM5NGE1NTUuLjE4YzdkNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMiw2ICsyLDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmRhdGFiYXNlIgorICAgICIke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL2ludGVudHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pzIgogICAgICIke1dFQkNPUkVfRElSfS9iaW5k
aW5ncyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMDIwMzU1Zi4uYmE3MDdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wNS0xNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgV2Vi
IEludGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIG5ldyBld2tfaW50ZW50LiogYW5kIGV3a19pbnRlbnRfcmVxdWVzdC4qIGZpbGVzIHRvIENN
YWtlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm1FZmwu
Y21ha2U6CisKIDIwMTItMDUtMTAgIFNhbSBEICA8ZHNhbTI5MTJAZ21haWwuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5qcyB0byBJbnNw
ZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGZjNDNi
NDYuLmJkOGVlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE3LDYgKzExNyw4IEBA
IExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL2V3ay9ld2tfdmlldy5jcHAKICAg
ICBlZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKICAgICBlZmwvZXdrL2V3a192aWV3X3RpbGVk
LmNwcAorICAgIGVmbC9ld2svZXdrX2ludGVudC5jcHAKKyAgICBlZmwvZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHAKICAgICBlZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwCiApCiAKQEAg
LTI2Myw2ICsyNjUsOCBAQCBTRVQoRVdlYktpdF9IRUFERVJTCiAgICAgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX3NlY3VyaXR5X3BvbGljeS5oCiAgICAgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX3NldHRpbmdzLmgKICAgICAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfdmlldy5oCisgICAgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2ludGVudC5oCisgICAgJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmgKICAgICAke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmgKICkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IDg5ODkzOWMuLmNjNGEyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0NSBAQAorMjAxMi0wNS0xNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2Yg
V2ViIEludGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyBFRkwgd3JhcHBlcnMgZm9yIFdlYkNvcmUncyBJbnRlbnQgYW5kIEludGVudFJl
cXVlc3QuCisgICAgICAgIEltcGxlbWVudCBkaXNwYXRjaEludGVudCgpIGluIEVGTCdzIEZyYW1l
TG9hZGVyQ2xpZW50IGFuZCBlbWl0IGEgbmV3CisgICAgICAgICJpbnRlbnQsbmV3IiBzaWduYWwg
b24gdGhlIGZyYW1lIHRvIG5vdGlmeSBjbGllbnRzIG9mIG5ldyBpbnRlbnQKKyAgICAgICAgcmVx
dWVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpkaXNwYXRjaEludGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50RWZsKToKKyAgICAg
ICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV9pbnRlbnRfbmV3KToK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50KToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0
aW9uX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19p
bnRlbnRfZGF0YV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2dldCk6CisgICAg
ICAgIChld2tfaW50ZW50X2V4dHJhX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X25ldyk6Cisg
ICAgICAgIChld2tfaW50ZW50X2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfaW50ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGV3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKF9Fd2tfSW50ZW50X1JlcXVlc3QpOgorICAgICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X3Jl
Zik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfdW5yZWYpOgorICAgICAgICAoZXdrX2lu
dGVudF9yZXF1ZXN0X2ludGVudF9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X3Jl
c3VsdF9wb3N0KToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9mYWlsdXJlX3Bvc3QpOgor
ICAgICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X25ldyk6CisgICAgICAgICogZXdrL2V3a19pbnRl
bnRfcmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorCiAyMDEyLTA1LTExICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlr
LnJvdHRzY2hlc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bRFJUXSBJbnB1dCBBdHRyaWJ1
dGUgUGxhY2Vob2xkZXIgUmVmVGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDUx
ODVkMWUuLjA1YjU3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJI
VE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnRlbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgpAQCAtNTMsNiArNTQsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYktpdFZlcnNpb24uaCIKKyNp
bmNsdWRlICJld2tfaW50ZW50X3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfbG9nZ2luZy5oIgog
I2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgpAQCAtOTY4
LDYgKzk3MCwxNSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpCiB7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPFdlYkNvcmU6Oklu
dGVudFJlcXVlc3Q+IGludGVudFJlcXVlc3QpCit7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0KiBl
d2tSZXF1ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRlbnRSZXF1ZXN0KTsKKyAgICBl
d2tfZnJhbWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0KTsKKyAgICBld2tfaW50ZW50
X3JlcXVlc3RfdW5yZWYoZXdrUmVxdWVzdCk7Cit9CisjZW5kaWYKKwogUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVh
dGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBtX2ZyYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
CmluZGV4IDY3MDYxMTQuLmMyNTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTg1LDYgKzE4NSw5
IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50
IHsKICAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRh
U291cmNlUmVwbGFjZW1lbnQoKTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4p
OworI2VuZGlmCiAKICAgICB2aXJ0dWFsIFdURjo6UGFzc1JlZlB0cjxEb2N1bWVudExvYWRlcj4g
Y3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERp
cmVjdGlvbiYgdGl0bGUsIGNvbnN0IEtVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5j
cHAKaW5kZXggOTY0YjY5Mi4uYjNiMGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5j
cHAKQEAgLTE1MTMsNiArMTUxMywxOCBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb2dyZXNzX2No
YW5nZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3Nf
Y2hhbmdlZChzbWFydERhdGEtPnZpZXcpOwogfQogCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQor
LyoqCisgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMgbmV3IGludGVudC4KKyAqCisgKiBFbWl0cyBz
aWduYWw6ICJpbnRlbnQsbmV3IiB3aXRoIHBvaW50ZXIgdG8gYSBFd2tfSW50ZW50X1JlcXVlc3Qu
CisgKi8KK3ZvaWQgZXdrX2ZyYW1lX2ludGVudF9uZXcoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBF
d2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfY2FsbChld2tGcmFtZSwgImludGVudCxuZXciLCByZXF1ZXN0KTsKK30KKyNlbmRpZgog
CiAvKioKICAqIEBpbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IGY1YmJh
MWIuLjY5ZWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTQwLDYgKzQwLDcg
QEAKICAqICAtICJlZGl0b3JjbGllbnQsY29udGVudHMsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMg
dGhhdCBlZGl0b3IgY2xpZW50J3MKICAqICAgIGNvbnRlbnRzIHdlcmUgY2hhbmdlZAogICogIC0g
Imljb24sY2hhbmdlZCIsIHZvaWQ6IGZyYW1lIGZhdmljb24gY2hhbmdlZC4KKyAqICAtICJpbnRl
bnQsbmV3IiwgRXdrSW50ZW50UmVxdWVzdCo6IHJlcG9ydHMgbmV3IGludGVudC4KICAqICAtICJs
b2FkLGNvbW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9h
ZCxkb2N1bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRv
Y3VtZW50LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6
IHJlcG9ydHMgbG9hZCBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfaW50ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmY4ZjhkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwCkBAIC0wLDAgKzEsMTU2IEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCisKKyNpbmNsdWRlICJJbnRl
bnQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgImV3a19sb2dnaW5nLmgiCisjaW5jbHVkZSAiZXdrX3By
aXZhdGUuaCIKKyNpbmNsdWRlIDxlaW5hX3NhZmV0eV9jaGVja3MuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworLyoqCisgKiBcc3Ry
dWN0ICBfRXdrX0ludGVudAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgor
ICovCitzdHJ1Y3QgX0V3a19JbnRlbnQgeworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBX
ZWJDb3JlOjpJbnRlbnQqIGNvcmU7IC8qKjwgV2ViQ29yZSBvYmplY3Qgd2hpY2ggaXMgcmVzcG9u
c2libGUgZm9yIHRoZSBpbnRlbnQgKi8KKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsK
KyAgICBjb25zdCBjaGFyKiB0eXBlOworICAgIGNvbnN0IGNoYXIqIGRhdGE7CisgICAgY29uc3Qg
Y2hhciogc2VydmljZTsKK307CisKKyNkZWZpbmUgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRV
Uk4oaW50ZW50LCBjb3JlXywgLi4uKSAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwo
ImludGVudCBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
cmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQpLT5jb3JlKSB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwoImludGVudC0+Y29yZSBpcyBOVUxM
LiIpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXZWJDb3Jl
OjpJbnRlbnQqIGNvcmVfID0gKGludGVudCktPmNvcmUKKworY29uc3QgY2hhciogZXdrX2ludGVu
dF9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VC
X0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3Jl
LCAwKTsKKworICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNp
ZGUKKyAgICBFd2tfSW50ZW50KiBld2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihp
bnRlbnQpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5hY3Rpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPmFjdGlvbigpLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBld2tJbnRlbnQtPmFjdGlvbjsKKyNlbHNlCisgICAgcmV0dXJuIDA7
CisjZW5kaWYKK30KKworY29uc3QgY2hhciogZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tf
SW50ZW50KiBpbnRlbnQpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRF
TlRfQ09SRV9HRVRfT1JfUkVUVVJOKGludGVudCwgY29yZSwgMCk7CisKKyAgICAvLyBoaWRlIHRo
ZSBmb2xsb3dpbmcgb3B0aW16YXRpb24gZnJvbSBvdXRzaWRlCisgICAgRXdrX0ludGVudCogZXdr
SW50ZW50ID0gY29uc3RfY2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudC0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29yZS0+dHlwZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJbnRlbnQt
PnR5cGU7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3
a19pbnRlbnRfZGF0YV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworI2Vs
c2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3Nl
cnZpY2VfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lO
VEVOVFMpCisgICAgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAw
KTsKKworICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUK
KyAgICBFd2tfSW50ZW50KiBld2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRl
bnQpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5zZXJ2aWNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLT5zZXJ2aWNlKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGV3a0ludGVudC0+c2VydmljZTsKKyNlbHNlCisgICAg
cmV0dXJuIDA7CisjZW5kaWYKK30KKworY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3Qg
RXdrX0ludGVudCogaW50ZW50LCBjb25zdCBjaGFyKiBrZXkpCit7CisjaWYgRU5BQkxFKFdFQl9J
TlRFTlRTKQorICAgIEVXS19JTlRFTlRfQ09SRV9HRVRfT1JfUkVUVVJOKGludGVudCwgY29yZSwg
MCk7CisgICAgV1RGOjpIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgdmFs
ID0gY29yZS0+ZXh0cmFzKCkuZmluZChTdHJpbmc6OmZyb21VVEY4KGtleSkpOworICAgIGlmICh2
YWwgPT0gY29yZS0+ZXh0cmFzKCkuZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBzdHJkdXAodmFsLT5zZWNvbmQudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgIHJldHVybiAw
OworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisvKioKKyAqIEBpbnRlcm5h
bAorICoKKyAqIENyZWF0ZXMgYSBuZXcgRXdrX0ludGVudCBvYmplY3QuCisgKgorICogQHBhcmFt
IGNvcmUgV2ViQ29yZTo6SW50ZW50IGluc3RhbmNlIHRvIHVzZSBpbnRlcm5hbGx5LgorICogQHJl
dHVybiBhIG5ldyBhbGxvY2F0ZWQgdGhlIEV3a19JbnRlbnQgb2JqZWN0IG9uIHN1Y2VzcyBvciBA
YyAwIG9uIGZhaWx1cmUKKyAqLworRXdrX0ludGVudCogZXdrX2ludGVudF9uZXcoV2ViQ29yZTo6
SW50ZW50KiBjb3JlKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb3Jl
LCAwKTsKKyAgICBFd2tfSW50ZW50KiBpbnRlbnQgPSBuZXcgRXdrX0ludGVudDsKKyAgICBpbnRl
bnQtPmNvcmUgPSBjb3JlOworCisgICAgcmV0dXJuIGludGVudDsKK30KKworLyoqCisgKiBAaW50
ZXJuYWwKKyAqCisgKiBGcmVlIGdpdmVuIEV3a19JbnRlbnQgaW5zdGFuY2UuCisgKgorICogQHBh
cmFtIGludGVudCB0aGUgb2JqZWN0IHRvIGZyZWUuCisgKi8KK3ZvaWQgZXdrX2ludGVudF9mcmVl
KEV3a19JbnRlbnQqIGludGVudCkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihp
bnRlbnQpOworCisgICAgZGVsZXRlIGludGVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfaW50ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVkMWJiOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKQEAg
LTAsMCArMSw5NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaWZuZGVmIGV3a19pbnRlbnRfaAorI2RlZmluZSBld2tfaW50ZW50X2gKKworI2lu
Y2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8KK3R5cGVkZWYg
c3RydWN0IF9Fd2tfSW50ZW50IEV3a19JbnRlbnQ7CisKKy8qKgorICogUXVlcnkgYWN0aW9uIGZv
ciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIGFjdGlvbiBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxM
LiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmlu
Z3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNv
bWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkg
aW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgp
LgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tf
SW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFF1ZXJ5IHR5cGUgZm9yIHRoaXMgaW50ZW50Lgor
ICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVy
biB0aGUgdHlwZSBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMK
KyAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZl
ciBwb3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQg
dXNlCisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0
cmluZ3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0
IGNoYXIgKmV3a19pbnRlbnRfdHlwZV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKwor
LyoqCisgKiBRdWVyeSBkYXRhIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50
IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhlIGRhdGEgcG9pbnRlciwg
dGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRl
ZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAg
ICAgc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5h
X3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgor
ICogICAgICAgICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2Rh
dGFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgc2Vydmlj
ZSBmb3IgdGhpcyBpbnRlbnQuCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBx
dWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBzZXJ2aWNlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBj
IE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFf
c3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNl
bGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9y
ZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3Ry
ZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2dldChjb25z
dCBFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlm
IGFueSkgZnJvbSB0aGUgZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25z
dHJ1Y3RlZCB3aXRoLgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnku
CisgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4KKyAqCisgKiBA
cmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJy
b3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KKyAqLworRUFQSSBjaGFyICpld2tfaW50
ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZjBhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEy
MiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0LmgiCisKKyNp
bmNsdWRlICJJbnRlbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCisjaW5jbHVkZSAiZXdrX2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgor
CisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfSW50ZW50X1JlcXVlc3QKKyAqIEBicmllZiAgIENvbnRh
aW5zIHRoZSBpbnRlbnQgcmVxdWVzdCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19JbnRlbnRfUmVx
dWVzdCB7CisgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQg
b2YgdGhlIG9iamVjdCAqLworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6SW50ZW50UmVxdWVzdD4gY29yZTsKKyNlbmRpZgorICAgIEV3a19JbnRlbnQqIGludGVu
dDsKK307CisKKyNkZWZpbmUgRVdLX0lOVEVOVF9SRVFVRVNUX0NPUkVfR0VUX09SX1JFVFVSTihy
ZXF1ZXN0LCBjb3JlXywgLi4uKSAgICAgIFwKKyAgICBpZiAoIShyZXF1ZXN0KSkgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJ
VElDQUwoInJlcXVlc3QgaXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShyZXF1
ZXN0KS0+Y29yZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgQ1JJVElDQUwoInJlcXVlc3QtPmNvcmUgaXMgTlVMTC4iKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4gY29yZV8gPSAocmVxdWVzdCktPmNv
cmUKKwordm9pZCBld2tfaW50ZW50X3JlcXVlc3RfcmVmKEV3a19JbnRlbnRfUmVxdWVzdCogcmVx
dWVzdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4ocmVxdWVzdCk7CisgICAgKytyZXF1ZXN0LT5fX3JlZjsKKyNlbmRpZgorfQorCit2
b2lkIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3Qp
Cit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOKHJlcXVlc3QpOworCisgICAgaWYgKC0tcmVxdWVzdC0+X19yZWYpCisgICAgICAgIHJldHVy
bjsKKworICAgIGV3a19pbnRlbnRfZnJlZShyZXF1ZXN0LT5pbnRlbnQpOworICAgIGRlbGV0ZSBy
ZXF1ZXN0OworI2VuZGlmCit9CisKK0V3a19JbnRlbnQqIGV3a19pbnRlbnRfcmVxdWVzdF9pbnRl
bnRfZ2V0KGNvbnN0IEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3Qs
IDApOworCisgICAgcmV0dXJuIHJlcXVlc3QtPmludGVudDsKKyNlbHNlCisgICAgcmV0dXJuIDA7
CisjZW5kaWYKK30KKwordm9pZCBld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QoRXdrX0lu
dGVudF9SZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiByZXN1bHQpCit7CisjaWYgRU5BQkxF
KFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4o
cmVxdWVzdCwgY29yZSk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFN0cmlu
Zzo6ZnJvbVVURjgocmVzdWx0KSk7CisgICAgY29yZS0+cG9zdFJlc3VsdCh2YWx1ZS5yZWxlYXNl
KCkubGVha1JlZigpKTsKKyNlbmRpZgorfQorCit2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF9mYWls
dXJlX3Bvc3QoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmYWlsdXJl
KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1JFUVVFU1RfQ09S
RV9HRVRfT1JfUkVUVVJOKHJlcXVlc3QsIGNvcmUpOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShTdHJpbmc6OmZyb21VVEY4KGZhaWx1cmUpKTsKKyAgICBjb3JlLT5wb3N0UmVz
dWx0KHZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFMpCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENyZWF0ZXMgYSBuZXcgRXdr
X0ludGVudF9SZXF1ZXN0IG9iamVjdC4KKyAqCisgKiBAcGFyYW0gY29yZSBXZWJDb3JlOjpJbnRl
bnRSZXF1ZXN0IGluc3RhbmNlIHRvIHVzZSBpbnRlcm5hbGx5LgorICogQHJldHVybiBhIG5ldyBh
bGxvY2F0ZWQgdGhlIEV3a19JbnRlbnRfUmVxdWVzdCBvYmplY3Qgb24gc3VjZXNzIG9yIEBjIDAg
b24gZmFpbHVyZQorICovCitFd2tfSW50ZW50X1JlcXVlc3QqIGV3a19pbnRlbnRfcmVxdWVzdF9u
ZXcoUGFzc1JlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBjb3JlKQoreworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb3JlLCAwKTsKKyAgICBFd2tfSW50ZW50X1JlcXVl
c3QqIHJlcXVlc3QgPSBuZXcgRXdrX0ludGVudF9SZXF1ZXN0OworICAgIHJlcXVlc3QtPl9fcmVm
ID0gMTsKKyAgICByZXF1ZXN0LT5jb3JlID0gY29yZTsKKyAgICByZXF1ZXN0LT5pbnRlbnQgPSBl
d2tfaW50ZW50X25ldyhjb3JlLT5pbnRlbnQoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcmVx
dWVzdC5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMGRiZDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmgKQEAgLTAsMCArMSw4
NCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aWZuZGVmIGV3a19pbnRlbnRfcmVxdWVzdF9oCisjZGVmaW5lIGV3a19pbnRlbnRfcmVxdWVzdF9o
CisKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBl
IG5hbWUgZm9yIF9Fd2tfSW50ZW50ICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9SZXF1
ZXN0IEV3a19JbnRlbnRfUmVxdWVzdDsKKworLyoqCisgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgorICoKKyAqIEBwYXJhbSByZXF1ZXN0IHRoZSBp
bnRlbnQgcmVxdWVzdCBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICov
CitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3JlZihFd2tfSW50ZW50X1JlcXVlc3QgKnJl
cXVlc3QpOworCisvKioKKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBn
aXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCisgKgorICogV2hlbiB0aGUgcmVmZXJl
bmNlIGNvdW50IGl0J3MgcmVhY2hlZCAwLCB0aGUgaW50ZW50IHJlcXVlc3QgaXMgZnJlZWQuCisg
KgorICogQHBhcmFtIHJlcXVlc3QgdGhlIGludGVudCByZXF1ZXN0IG9iamVjdCB0byBkZWNyZWFz
ZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3JlcXVlc3Rf
dW5yZWYoRXdrX0ludGVudF9SZXF1ZXN0ICpyZXF1ZXN0KTsKKworLyoqCisgKiBRdWVyeSBpbnRl
bnQgZm9yIHRoaXMgcmVxdWVzdC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0g
dG8gcXVlcnkuCisgKgorICogQHJldHVybiBBIHBvaW50ZXIgdG8gdGhlIGludGVudCBpbnN0YW5j
ZS4KKyAqLworRUFQSSBFd2tfSW50ZW50ICpld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50X2dldChj
b25zdCBFd2tfSW50ZW50X1JlcXVlc3QgKnJlcXVlc3QpOworCisvKioKKyAqIFJlcG9ydCByZXF1
ZXN0IHN1Y2Nlc3MuCisgKgorICogVGhlIHBheWxvYWQgZGF0YSB3aWxsIGJlIHBhc3NlZCB0byB0
aGUgc3VjY2VzcyBjYWxsYmFjayByZWdpc3RlcmVkIGJ5IHRoZSBjbGllbnQuCisgKgorICogQHBh
cmFtIHJlcXVlc3QgcmVxdWVzdCBpdGVtLgorICogQHBhcmFtIHJlc3VsdCBwYXlsb2FkIGRhdGEu
CisgKgorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Jlc3VsdF9wb3N0KEV3a19J
bnRlbnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciAqcmVzdWx0KTsKKworLyoqCisgKiBS
ZXBvcnQgcmVxdWVzdCBmYWlsdXJlLgorICoKKyAqIFRoZSBwYXlsb2FkIGRhdGEgd2lsbCBiZSBw
YXNzZWQgdG8gdGhlIGVycm9yIGNhbGxiYWNrIHJlZ2lzdGVyZWQgYnkgdGhlIGNsaWVudC4KKyAq
CisgKiBAcGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0uCisgKiBAcGFyYW0gZmFpbHVyZSBwYXls
b2FkIGRhdGEuCisgKgorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVf
cG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIgKmZhaWx1cmUpOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19pbnRlbnRfcmVx
dWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IGZhMjg0ZjMuLmViODlm
ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtMzMsNiArMzMsOCBAQAog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJld2tfaGlz
dG9yeS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgogI2lu
Y2x1ZGUgPEV2YXMuaD4KQEAgLTg1LDYgKzg3LDEwIEBAIHN0cnVjdCBDb2xvckNob29zZXJDbGll
bnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCitjbGFzcyBJbnRlbnQ7CitjbGFzcyBJbnRlbnRS
ZXF1ZXN0OworI2VuZGlmCiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIH0KIApAQCAtMTk3LDYgKzIw
MywxMiBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShFd2tf
Q29udGV4dF9NZW51KiBtZW51KTsKIHZvaWQgZXdrX2NvbnRleHRfbWVudV9zaG93KEV3a19Db250
ZXh0X01lbnUqIG1lbnUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCitFd2tf
SW50ZW50KiBld2tfaW50ZW50X25ldyhXZWJDb3JlOjpJbnRlbnQqIGNvcmUpOwordm9pZCBld2tf
aW50ZW50X2ZyZWUoRXdrX0ludGVudCAqaW50ZW50KTsKK0V3a19JbnRlbnRfUmVxdWVzdCogZXdr
X2ludGVudF9yZXF1ZXN0X25ldyhQYXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNv
cmUpOworI2VuZGlmCisKIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBld2tfdmlld19yZXBhaW50c19w
b3AoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBzaXplX3QqIGNvdW50KTsKIGNvbnN0IEV3
a19TY3JvbGxfUmVxdWVzdCogZXdrX3ZpZXdfc2Nyb2xsX3JlcXVlc3RzX2dldChjb25zdCBFd2tf
Vmlld19Qcml2YXRlX0RhdGEqIHByaXYsIHNpemVfdCogY291bnQpOwogCkBAIC0yNDMsNiArMjU1
LDEwIEBAIGJvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7
CiB2b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZv
aWQgZXdrX2ZyYW1lX2ljb25fY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogCisjaWYg
RU5BQkxFKFdFQl9JTlRFTlRTKQordm9pZCBld2tfZnJhbWVfaW50ZW50X25ldyhFdmFzX09iamVj
dCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCk7CisjZW5kaWYKKwogV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBX
ZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYg
dXJsLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpOwogCiBib29sIGV3a192aWV3X25hdmlnYXRpb25f
cG9saWN5X2RlY2lzaW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfRnJhbWVfUmVzb3VyY2Vf
UmVxdWVzdCogcmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk4M2ZmNjUuLmM0NjIw
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC04MCw2ICs4MCw3IEBAIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSUJSQVRJT04gT04pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1dFQl9JTlRFTlRTLCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1dPUktFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0VORCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141909</attachid>
            <date>2012-05-15 03:39:31 -0700</date>
            <delta_ts>2012-05-17 00:18:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>86354_simple_intents_efl.patch</filename>
            <type>text/plain</type>
            <size>27535</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwY2E5ZmY0Li4wMTU5MzNj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBXRUJfSU5URU5UUyBmbGFnIGJ5IGRlZmF1bHQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0wNS0xNCAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0luZGVudCcpIGluIHRoZSBkaXJlY3QgY2hpbGQgb2YgU2hhZG93Um9vdCBjYXVzZXMgYSBj
cmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDM5NGE1NTUuLjE4YzdkNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMiw2ICsyLDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAg
ICAgIiR7V0VCS0lUX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3dlYmRhdGFiYXNlIgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2lu
dGVudHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL2pzIgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTkxZTk5Ni4uOTE5NzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
NS0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdIEFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgV2ViIEludGVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBld2tf
aW50ZW50LiogYW5kIGV3a19pbnRlbnRfcmVxdWVzdC4qIGZpbGVzIHRvIENNYWtlLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIw
MTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZhdGUg
ZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkZDIyOGNiLi41NDQ0NWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTExNyw2ICsxMTcsOCBAQCBMSVNUKEFQUEVORCBXZWJL
aXRfU09VUkNFUwogICAgIGVmbC9ld2svZXdrX3ZpZXcuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmll
d19zaW5nbGUuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKyAgICBlZmwvZXdr
L2V3a19pbnRlbnQuY3BwCisgICAgZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcAogKQogCkBAIC0yNjIsNiArMjY0LDggQEAg
U0VUKEVXZWJLaXRfSEVBREVSUwogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19zZWN1cml0eV9wb2xpY3kuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2VmbC9ld2svZXdrX3ZpZXcuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19pbnRlbnQuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdr
L2V3a19pbnRlbnRfcmVxdWVzdC5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2Vm
bC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwMWM2
ODg3Li5iMGI1M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTItMDUt
MTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgRUZMIHdy
YXBwZXJzIGZvciBXZWJDb3JlJ3MgSW50ZW50IGFuZCBJbnRlbnRSZXF1ZXN0LgorICAgICAgICBJ
bXBsZW1lbnQgZGlzcGF0Y2hJbnRlbnQoKSBpbiBFRkwncyBGcmFtZUxvYWRlckNsaWVudCBhbmQg
ZW1pdCBhIG5ldworICAgICAgICAiaW50ZW50LG5ldyIgc2lnbmFsIG9uIHRoZSBmcmFtZSB0byBu
b3RpZnkgY2xpZW50cyBvZiBuZXcgaW50ZW50CisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hJ
bnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6
CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19mcmFt
ZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfaW50ZW50X25ldyk6CisgICAgICAgICogZXdrL2V3
a19mcmFtZS5oOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWVfcHJpdmF0ZS5oOgorICAgICAgICAq
IGV3ay9ld2tfaW50ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAg
ICAgIChld2tfaW50ZW50X2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF90eXBlX2dl
dCk6CisgICAgICAgIChld2tfaW50ZW50X2RhdGFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
c2VydmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAo
ZXdrX2ludGVudF9uZXcpOgorICAgICAgICAoZXdrX2ludGVudF9mcmVlKToKKyAgICAgICAgKiBl
d2svZXdrX2ludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2ludGVudF9wcml2YXRl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRfUmVxdWVzdCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVz
dF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50X2dldCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAgICAgICAoZXdrX2ludGVu
dF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfbmV3
KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFkZGVkLgorCisyMDEyLTA1
LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWIgSW50ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzNTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IEVGTCB3
cmFwcGVycyBmb3IgV2ViQ29yZSdzIEludGVudCBhbmQgSW50ZW50UmVxdWVzdC4KKyAgICAgICAg
SW1wbGVtZW50IGRpc3BhdGNoSW50ZW50KCkgaW4gRUZMJ3MgRnJhbWVMb2FkZXJDbGllbnQgYW5k
IGVtaXQgYSBuZXcKKyAgICAgICAgImludGVudCxuZXciIHNpZ25hbCBvbiB0aGUgZnJhbWUgdG8g
bm90aWZ5IGNsaWVudHMgb2YgbmV3IGludGVudAorICAgICAgICByZXF1ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
SW50ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRFZmwpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ludGVudF9uZXcpOgorICAgICAgICAqIGV3ay9l
d2tfZnJhbWUuaDoKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoX0V3a19JbnRlbnQpOgorICAgICAgICAoZXdrX2ludGVudF9hY3Rpb25fZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfdHlwZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9kYXRhX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3NlcnZpY2VfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
ZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfbmV3KToKKyAgICAgICAgKGV3a19pbnRl
bnRfZnJlZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICog
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRf
UmVxdWVzdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3
a19pbnRlbnRfcmVxdWVzdF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50
ZW50X2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAg
ICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50
ZW50X3JlcXVlc3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisK
IDIwMTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZh
dGUgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggZDc4ZjAyMS4uZjViZTcyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkludGVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NCw2ICs1
NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJLaXRWZXJzaW9uLmgi
CiAjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgpAQCAtOTcwLDYgKzk3
MiwxNSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpCiB7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJl
cXVlc3Q+IGludGVudFJlcXVlc3QpCit7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0KiBld2tSZXF1
ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRlbnRSZXF1ZXN0KTsKKyAgICBld2tfZnJh
bWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0KTsKKyAgICBld2tfaW50ZW50X3JlcXVl
c3RfdW5yZWYoZXdrUmVxdWVzdCk7Cit9CisjZW5kaWYKKwogUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRVdL
UHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4
IDY3MDYxMTQuLmMyNTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTg1LDYgKzE4NSw5IEBAIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNl
UmVwbGFjZW1lbnQoKTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4pOworI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIFdURjo6UGFzc1JlZlB0cjxEb2N1bWVudExvYWRlcj4gY3JlYXRl
RG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURh
dGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGl0bGUsIGNvbnN0IEtVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5k
ZXggODdhOTNmZi4uYTUwYmQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAg
LTE1MTcsNiArMTUxNywxOCBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb2dyZXNzX2NoYW5nZWQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3NfY2hhbmdl
ZChzbWFydERhdGEtPnZpZXcpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyBu
ZXcgaW50ZW50LgorICoKKyAqIEVtaXRzIHNpZ25hbDogImludGVudCxuZXciIHdpdGggcG9pbnRl
ciB0byBhIEV3a19JbnRlbnRfUmVxdWVzdC4KKyAqLwordm9pZCBld2tfZnJhbWVfaW50ZW50X25l
dyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChld2tGcmFtZSwgImludGVudCxuZXciLCByZXF1ZXN0KTsKKyNlbmRpZgorfQogCiAvKioK
ICAqIEBpbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IGY1YmJhMWIuLjY5
ZWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTQwLDYgKzQwLDcgQEAKICAq
ICAtICJlZGl0b3JjbGllbnQsY29udGVudHMsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCBl
ZGl0b3IgY2xpZW50J3MKICAqICAgIGNvbnRlbnRzIHdlcmUgY2hhbmdlZAogICogIC0gImljb24s
Y2hhbmdlZCIsIHZvaWQ6IGZyYW1lIGZhdmljb24gY2hhbmdlZC4KKyAqICAtICJpbnRlbnQsbmV3
IiwgRXdrSW50ZW50UmVxdWVzdCo6IHJlcG9ydHMgbmV3IGludGVudC4KICAqICAtICJsb2FkLGNv
bW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1
bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50
LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6IHJlcG9y
dHMgbG9hZCBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWVfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZV9wcml2YXRlLmgK
aW5kZXggYmQwODdkZS4uZGQzNzg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZV9wcml2YXRlLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgZXdrX2ZyYW1lX3ByaXZhdGVf
aAogCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0
LmgiCiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsNiArNjgsNyBAQCB2b2lkIGV3a19mcmFtZV92aWV3
X2NyZWF0ZV9mb3JfdmlldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiB2aWV3
KTsKIGJvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiB2
b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQg
ZXdrX2ZyYW1lX2ljb25fY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tf
ZnJhbWVfaW50ZW50X25ldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVz
dCogcmVxdWVzdCk7CiAKIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFt
ZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgcGx1Z2luU2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBj
b25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjlkOGM0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ludGVudC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnQuaCIKKworI2luY2x1ZGUgIkludGVudC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworLyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudAorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19JbnRl
bnQgeworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmU7
IC8qKjwgV2ViQ29yZSBvYmplY3Qgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRoZSBpbnRlbnQg
Ki8KKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsKKyAgICBjb25zdCBjaGFyKiB0eXBl
OworICAgIGNvbnN0IGNoYXIqIGRhdGE7CisgICAgY29uc3QgY2hhciogc2VydmljZTsKK307CisK
KyNkZWZpbmUgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlXywgLi4u
KSAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwoImludGVudCBpcyBOVUxMLiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShp
bnRlbnQpLT5jb3JlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgQ1JJVElDQUwoImludGVudC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmVfID0gKGlu
dGVudCktPmNvcmUKKworY29uc3QgY2hhciogZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUg
dGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBl
d2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5hY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcmUtPmFjdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJ
bnRlbnQtPmFjdGlvbjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3Qg
Y2hhciogZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7Cisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfQ09SRV9HRVRfT1JfUkVUVVJO
KGludGVudCwgY29yZSwgMCk7CisKKyAgICAvLyBoaWRlIHRoZSBmb2xsb3dpbmcgb3B0aW16YXRp
b24gZnJvbSBvdXRzaWRlCisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gY29uc3RfY2FzdDxF
d2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0lu
dGVudC0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+dHlwZSgpLnV0
ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJbnRlbnQtPnR5cGU7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfZGF0YV9nZXQoY29u
c3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0IEV3a19J
bnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVO
VF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUgdGhl
IGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBld2tJ
bnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3RyaW5n
c2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5zZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb3JlLT5zZXJ2aWNlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0
dXJuIGV3a0ludGVudC0+c2VydmljZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30K
KworY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBj
b25zdCBjaGFyKiBrZXkpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRF
TlRfQ09SRV9HRVRfT1JfUkVUVVJOKGludGVudCwgY29yZSwgMCk7CisgICAgV1RGOjpIYXNoTWFw
PFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgdmFsID0gY29yZS0+ZXh0cmFzKCkuZmlu
ZChTdHJpbmc6OmZyb21VVEY4KGtleSkpOworICAgIGlmICh2YWwgPT0gY29yZS0+ZXh0cmFzKCku
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdHJkdXAodmFsLT5zZWNvbmQu
dXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKKyNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENyZWF0ZXMgYSBu
ZXcgRXdrX0ludGVudCBvYmplY3QuCisgKgorICogQHBhcmFtIGNvcmUgV2ViQ29yZTo6SW50ZW50
IGluc3RhbmNlIHRvIHVzZSBpbnRlcm5hbGx5LgorICogQHJldHVybiBhIG5ldyBhbGxvY2F0ZWQg
dGhlIEV3a19JbnRlbnQgb2JqZWN0IG9uIHN1Y2VzcyBvciBAYyAwIG9uIGZhaWx1cmUKKyAqLwor
RXdrX0ludGVudCogZXdrX2ludGVudF9uZXcoV2ViQ29yZTo6SW50ZW50KiBjb3JlKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb3JlLCAwKTsKKyAgICBFd2tfSW50ZW50
KiBpbnRlbnQgPSBuZXcgRXdrX0ludGVudDsKKyAgICBpbnRlbnQtPmNvcmUgPSBjb3JlOworCisg
ICAgcmV0dXJuIGludGVudDsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBGcmVlIGdp
dmVuIEV3a19JbnRlbnQgaW5zdGFuY2UuCisgKgorICogQHBhcmFtIGludGVudCB0aGUgb2JqZWN0
IHRvIGZyZWUuCisgKi8KK3ZvaWQgZXdrX2ludGVudF9mcmVlKEV3a19JbnRlbnQqIGludGVudCkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOworCisgICAgZGVsZXRl
IGludGVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19pbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVkMWJiOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIGV3a19p
bnRlbnRfaAorI2RlZmluZSBld2tfaW50ZW50X2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3
a19JbnRlbnQ7CisKKy8qKgorICogUXVlcnkgYWN0aW9uIGZvciB0aGlzIGludGVudC4KKyAqCisg
KiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhl
IGFjdGlvbiBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAq
ICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNl
CisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNo
YXIgKmV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisv
KioKKyAqIFF1ZXJ5IHR5cGUgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgdHlwZSBwb2ludGVyLCB0
aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVl
ZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAg
ICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFf
c3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisg
KiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfdHlw
ZV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBkYXRhIGZv
ciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIGRhdGEgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4g
VGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdz
aGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21l
IGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGlu
c3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4K
KyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2RhdGFfZ2V0KGNvbnN0IEV3a19JbnRl
bnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgc2VydmljZSBmb3IgdGhpcyBpbnRlbnQuCisg
KgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IHRoZSBzZXJ2aWNlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBp
cworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFu
ZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFf
c3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29u
c3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQp
OworCisvKioKKyAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkgZnJvbSB0aGUgZXh0cmEg
ZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3RlZCB3aXRoLgorICoKKyAq
IEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKiBAcGFyYW0ga2V5IGtleSB0
byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4KKyAqCisgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2Nh
dGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2Vz
IG5vdCBleGlzdC4KKyAqLworRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBF
d2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ludGVudF9wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOWY0NzBkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
aW50ZW50X3ByaXZhdGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9wcml2YXRlX2gK
KyNkZWZpbmUgZXdrX2ludGVudF9wcml2YXRlX2gKKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
Ky8vIGZvcndhcmQgZGVjbGFyYXRpb25zCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnRl
bnQ7CitjbGFzcyBJbnRlbnRSZXF1ZXN0OworfQorCitFd2tfSW50ZW50KiBld2tfaW50ZW50X25l
dyhXZWJDb3JlOjpJbnRlbnQqIGNvcmUpOwordm9pZCBld2tfaW50ZW50X2ZyZWUoRXdrX0ludGVu
dCAqaW50ZW50KTsKK0V3a19JbnRlbnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQ
YXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNvcmUpOworI2VuZGlmCisKKyNlbmRp
ZiAvLyBld2tfaW50ZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudF9yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Jk
MTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnRfcmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgorI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0
ZS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19J
bnRlbnRfUmVxdWVzdAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCByZXF1ZXN0IGRh
dGEuCisgKi8KK3N0cnVjdCBfRXdrX0ludGVudF9SZXF1ZXN0IHsKKyAgICB1bnNpZ25lZCBpbnQg
X19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBjb3Jl
OworI2VuZGlmCisgICAgRXdrX0ludGVudCogaW50ZW50OworfTsKKworI2RlZmluZSBFV0tfSU5U
RU5UX1JFUVVFU1RfQ09SRV9HRVRfT1JfUkVUVVJOKHJlcXVlc3QsIGNvcmVfLCAuLi4pICAgICAg
XAorICAgIGlmICghKHJlcXVlc3QpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVxdWVzdCBpcyBOVUxMLiIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIGlmICghKHJlcXVlc3QpLT5jb3JlKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVx
dWVzdC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRl
bnRSZXF1ZXN0PiBjb3JlXyA9IChyZXF1ZXN0KS0+Y29yZQorCit2b2lkIGV3a19pbnRlbnRfcmVx
dWVzdF9yZWYoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1ZXN0KTsKKyAgICAr
K3JlcXVlc3QtPl9fcmVmOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Vu
cmVmKEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVO
VFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVxdWVzdCk7CisKKyAgICBpZiAo
LS1yZXF1ZXN0LT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisgICAgZXdrX2ludGVudF9mcmVl
KHJlcXVlc3QtPmludGVudCk7CisgICAgZGVsZXRlIHJlcXVlc3Q7CisjZW5kaWYKK30KKworRXdr
X0ludGVudCogZXdrX2ludGVudF9yZXF1ZXN0X2ludGVudF9nZXQoY29uc3QgRXdrX0ludGVudF9S
ZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisKKyAgICByZXR1cm4gcmVxdWVz
dC0+aW50ZW50OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a19p
bnRlbnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNv
bnN0IGNoYXIqIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9SRVFVRVNUX0NPUkVfR0VUX09SX1JFVFVSTihyZXF1ZXN0LCBjb3JlKTsKKworICAgIFJl
ZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChyZXN1bHQpKTsKKyAg
ICBjb3JlLT5wb3N0UmVzdWx0KHZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworI2VuZGlmCit9
CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVl
c3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZhaWx1cmUpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQorICAgIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4ocmVxdWVzdCwg
Y29yZSk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVU
RjgoZmFpbHVyZSkpOworICAgIGNvcmUtPnBvc3RSZXN1bHQodmFsdWUucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKy8qKgorICogQGlu
dGVybmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBFd2tfSW50ZW50X1JlcXVlc3Qgb2JqZWN0Lgor
ICoKKyAqIEBwYXJhbSBjb3JlIFdlYkNvcmU6OkludGVudFJlcXVlc3QgaW5zdGFuY2UgdG8gdXNl
IGludGVybmFsbHkuCisgKiBAcmV0dXJuIGEgbmV3IGFsbG9jYXRlZCB0aGUgRXdrX0ludGVudF9S
ZXF1ZXN0IG9iamVjdCBvbiBzdWNlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCisgKi8KK0V3a19JbnRl
bnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQYXNzUmVmUHRyPFdlYkNvcmU6Oklu
dGVudFJlcXVlc3Q+IGNvcmUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNvcmUsIDApOworICAgIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCA9IG5ldyBFd2tfSW50
ZW50X1JlcXVlc3Q7CisgICAgcmVxdWVzdC0+X19yZWYgPSAxOworICAgIHJlcXVlc3QtPmNvcmUg
PSBjb3JlOworICAgIHJlcXVlc3QtPmludGVudCA9IGV3a19pbnRlbnRfbmV3KGNvcmUtPmludGVu
dCgpKTsKKworICAgIHJldHVybiByZXF1ZXN0OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2Y4MGNiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfaW50ZW50X3JlcXVlc3QuaApAQCAtMCwwICsxLDgyIEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9yZXF1ZXN0
X2gKKyNkZWZpbmUgZXdrX2ludGVudF9yZXF1ZXN0X2gKKworI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMi
IHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1JlcXVlc3QgRXdrX0ludGVudF9SZXF1ZXN0Owor
CisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmpl
Y3QuCisgKgorICogQHBhcmFtIHJlcXVlc3QgdGhlIGludGVudCByZXF1ZXN0IG9iamVjdCB0byBp
bmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3Jl
cXVlc3RfcmVmKEV3a19JbnRlbnRfUmVxdWVzdCAqcmVxdWVzdCk7CisKKy8qKgorICogRGVjcmVh
c2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJl
ZWluZyBpdC4KKyAqCisgKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAs
IHRoZSBpbnRlbnQgcmVxdWVzdCBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCB0aGUg
aW50ZW50IHJlcXVlc3Qgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAq
LworRUFQSSB2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihFd2tfSW50ZW50X1JlcXVlc3Qg
KnJlcXVlc3QpOworCisvKioKKyAqIFF1ZXJ5IGludGVudCBmb3IgdGhpcyByZXF1ZXN0LgorICoK
KyAqIEBwYXJhbSByZXF1ZXN0IHJlcXVlc3QgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IEEgcG9pbnRlciB0byB0aGUgaW50ZW50IGluc3RhbmNlLgorICovCitFQVBJIEV3a19JbnRlbnQg
KmV3a19pbnRlbnRfcmVxdWVzdF9pbnRlbnRfZ2V0KGNvbnN0IEV3a19JbnRlbnRfUmVxdWVzdCAq
cmVxdWVzdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3Qgc3VjY2Vzcy4KKyAqCisgKiBUaGUg
cGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzdWNjZXNzIGNhbGxiYWNrIHJlZ2lz
dGVyZWQgYnkgdGhlIGNsaWVudC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0u
CisgKiBAcGFyYW0gcmVzdWx0IHBheWxvYWQgZGF0YS4KKyAqLworRUFQSSB2b2lkIGV3a19pbnRl
bnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0
IGNoYXIgKnJlc3VsdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3QgZmFpbHVyZS4KKyAqCisg
KiBUaGUgcGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBlcnJvciBjYWxsYmFjayBy
ZWdpc3RlcmVkIGJ5IHRoZSBjbGllbnQuCisgKgorICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdCBp
dGVtLgorICogQHBhcmFtIGZhaWx1cmUgcGF5bG9hZCBkYXRhLgorICovCitFQVBJIHZvaWQgZXdr
X2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3Qs
IGNvbnN0IGNoYXIgKmZhaWx1cmUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
I2VuZGlmIC8vIGV3a19pbnRlbnRfcmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk4
M2ZmNjUuLmM0NjIwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC04MCw2ICs4MCw3IEBAIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSUJSQVRJT04gT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU8gT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQorV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9JTlRFTlRTLCBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dPUktFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0VO
RCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142429</attachid>
            <date>2012-05-17 00:18:43 -0700</date>
            <delta_ts>2012-05-17 00:52:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>86354_simple_intents_efl.patch</filename>
            <type>text/plain</type>
            <size>27535</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwY2E5ZmY0Li4wMTU5MzNj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBXRUJfSU5URU5UUyBmbGFnIGJ5IGRlZmF1bHQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0wNS0xNCAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0luZGVudCcpIGluIHRoZSBkaXJlY3QgY2hpbGQgb2YgU2hhZG93Um9vdCBjYXVzZXMgYSBj
cmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDM5NGE1NTUuLjE4YzdkNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMiw2ICsyLDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAg
ICAgIiR7V0VCS0lUX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3dlYmRhdGFiYXNlIgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2lu
dGVudHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL2pzIgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTkxZTk5Ni4uOTE5NzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
NS0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdIEFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgV2ViIEludGVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBld2tf
aW50ZW50LiogYW5kIGV3a19pbnRlbnRfcmVxdWVzdC4qIGZpbGVzIHRvIENNYWtlLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIw
MTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZhdGUg
ZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkZDIyOGNiLi41NDQ0NWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTExNyw2ICsxMTcsOCBAQCBMSVNUKEFQUEVORCBXZWJL
aXRfU09VUkNFUwogICAgIGVmbC9ld2svZXdrX3ZpZXcuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmll
d19zaW5nbGUuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKyAgICBlZmwvZXdr
L2V3a19pbnRlbnQuY3BwCisgICAgZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcAogKQogCkBAIC0yNjIsNiArMjY0LDggQEAg
U0VUKEVXZWJLaXRfSEVBREVSUwogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19zZWN1cml0eV9wb2xpY3kuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2VmbC9ld2svZXdrX3ZpZXcuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19pbnRlbnQuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdr
L2V3a19pbnRlbnRfcmVxdWVzdC5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2Vm
bC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwMWM2
ODg3Li5iMGI1M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTItMDUt
MTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgRUZMIHdy
YXBwZXJzIGZvciBXZWJDb3JlJ3MgSW50ZW50IGFuZCBJbnRlbnRSZXF1ZXN0LgorICAgICAgICBJ
bXBsZW1lbnQgZGlzcGF0Y2hJbnRlbnQoKSBpbiBFRkwncyBGcmFtZUxvYWRlckNsaWVudCBhbmQg
ZW1pdCBhIG5ldworICAgICAgICAiaW50ZW50LG5ldyIgc2lnbmFsIG9uIHRoZSBmcmFtZSB0byBu
b3RpZnkgY2xpZW50cyBvZiBuZXcgaW50ZW50CisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hJ
bnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6
CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19mcmFt
ZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfaW50ZW50X25ldyk6CisgICAgICAgICogZXdrL2V3
a19mcmFtZS5oOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWVfcHJpdmF0ZS5oOgorICAgICAgICAq
IGV3ay9ld2tfaW50ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAg
ICAgIChld2tfaW50ZW50X2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF90eXBlX2dl
dCk6CisgICAgICAgIChld2tfaW50ZW50X2RhdGFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
c2VydmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAo
ZXdrX2ludGVudF9uZXcpOgorICAgICAgICAoZXdrX2ludGVudF9mcmVlKToKKyAgICAgICAgKiBl
d2svZXdrX2ludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2ludGVudF9wcml2YXRl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRfUmVxdWVzdCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVz
dF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50X2dldCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAgICAgICAoZXdrX2ludGVu
dF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfbmV3
KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFkZGVkLgorCisyMDEyLTA1
LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWIgSW50ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzNTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IEVGTCB3
cmFwcGVycyBmb3IgV2ViQ29yZSdzIEludGVudCBhbmQgSW50ZW50UmVxdWVzdC4KKyAgICAgICAg
SW1wbGVtZW50IGRpc3BhdGNoSW50ZW50KCkgaW4gRUZMJ3MgRnJhbWVMb2FkZXJDbGllbnQgYW5k
IGVtaXQgYSBuZXcKKyAgICAgICAgImludGVudCxuZXciIHNpZ25hbCBvbiB0aGUgZnJhbWUgdG8g
bm90aWZ5IGNsaWVudHMgb2YgbmV3IGludGVudAorICAgICAgICByZXF1ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
SW50ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRFZmwpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ludGVudF9uZXcpOgorICAgICAgICAqIGV3ay9l
d2tfZnJhbWUuaDoKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoX0V3a19JbnRlbnQpOgorICAgICAgICAoZXdrX2ludGVudF9hY3Rpb25fZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfdHlwZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9kYXRhX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3NlcnZpY2VfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
ZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfbmV3KToKKyAgICAgICAgKGV3a19pbnRl
bnRfZnJlZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICog
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRf
UmVxdWVzdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3
a19pbnRlbnRfcmVxdWVzdF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50
ZW50X2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAg
ICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50
ZW50X3JlcXVlc3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisK
IDIwMTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZh
dGUgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggZDc4ZjAyMS4uZjViZTcyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkludGVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NCw2ICs1
NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJLaXRWZXJzaW9uLmgi
CiAjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgpAQCAtOTcwLDYgKzk3
MiwxNSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpCiB7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJl
cXVlc3Q+IGludGVudFJlcXVlc3QpCit7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0KiBld2tSZXF1
ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRlbnRSZXF1ZXN0KTsKKyAgICBld2tfZnJh
bWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0KTsKKyAgICBld2tfaW50ZW50X3JlcXVl
c3RfdW5yZWYoZXdrUmVxdWVzdCk7Cit9CisjZW5kaWYKKwogUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRVdL
UHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4
IDY3MDYxMTQuLmMyNTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTg1LDYgKzE4NSw5IEBAIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNl
UmVwbGFjZW1lbnQoKTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4pOworI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIFdURjo6UGFzc1JlZlB0cjxEb2N1bWVudExvYWRlcj4gY3JlYXRl
RG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURh
dGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGl0bGUsIGNvbnN0IEtVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5k
ZXggODdhOTNmZi4uYTUwYmQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAg
LTE1MTcsNiArMTUxNywxOCBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb2dyZXNzX2NoYW5nZWQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3NfY2hhbmdl
ZChzbWFydERhdGEtPnZpZXcpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyBu
ZXcgaW50ZW50LgorICoKKyAqIEVtaXRzIHNpZ25hbDogImludGVudCxuZXciIHdpdGggcG9pbnRl
ciB0byBhIEV3a19JbnRlbnRfUmVxdWVzdC4KKyAqLwordm9pZCBld2tfZnJhbWVfaW50ZW50X25l
dyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChld2tGcmFtZSwgImludGVudCxuZXciLCByZXF1ZXN0KTsKKyNlbmRpZgorfQogCiAvKioK
ICAqIEBpbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IGY1YmJhMWIuLjY5
ZWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTQwLDYgKzQwLDcgQEAKICAq
ICAtICJlZGl0b3JjbGllbnQsY29udGVudHMsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCBl
ZGl0b3IgY2xpZW50J3MKICAqICAgIGNvbnRlbnRzIHdlcmUgY2hhbmdlZAogICogIC0gImljb24s
Y2hhbmdlZCIsIHZvaWQ6IGZyYW1lIGZhdmljb24gY2hhbmdlZC4KKyAqICAtICJpbnRlbnQsbmV3
IiwgRXdrSW50ZW50UmVxdWVzdCo6IHJlcG9ydHMgbmV3IGludGVudC4KICAqICAtICJsb2FkLGNv
bW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1
bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50
LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6IHJlcG9y
dHMgbG9hZCBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWVfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZV9wcml2YXRlLmgK
aW5kZXggYmQwODdkZS4uZGQzNzg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZV9wcml2YXRlLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgZXdrX2ZyYW1lX3ByaXZhdGVf
aAogCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0
LmgiCiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsNiArNjgsNyBAQCB2b2lkIGV3a19mcmFtZV92aWV3
X2NyZWF0ZV9mb3JfdmlldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiB2aWV3
KTsKIGJvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiB2
b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQg
ZXdrX2ZyYW1lX2ljb25fY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tf
ZnJhbWVfaW50ZW50X25ldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVz
dCogcmVxdWVzdCk7CiAKIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFt
ZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgcGx1Z2luU2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBj
b25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjlkOGM0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ludGVudC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnQuaCIKKworI2luY2x1ZGUgIkludGVudC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworLyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudAorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19JbnRl
bnQgeworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmU7
IC8qKjwgV2ViQ29yZSBvYmplY3Qgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRoZSBpbnRlbnQg
Ki8KKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsKKyAgICBjb25zdCBjaGFyKiB0eXBl
OworICAgIGNvbnN0IGNoYXIqIGRhdGE7CisgICAgY29uc3QgY2hhciogc2VydmljZTsKK307CisK
KyNkZWZpbmUgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlXywgLi4u
KSAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwoImludGVudCBpcyBOVUxMLiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShp
bnRlbnQpLT5jb3JlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgQ1JJVElDQUwoImludGVudC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmVfID0gKGlu
dGVudCktPmNvcmUKKworY29uc3QgY2hhciogZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUg
dGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBl
d2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5hY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcmUtPmFjdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJ
bnRlbnQtPmFjdGlvbjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3Qg
Y2hhciogZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7Cisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfQ09SRV9HRVRfT1JfUkVUVVJO
KGludGVudCwgY29yZSwgMCk7CisKKyAgICAvLyBoaWRlIHRoZSBmb2xsb3dpbmcgb3B0aW16YXRp
b24gZnJvbSBvdXRzaWRlCisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gY29uc3RfY2FzdDxF
d2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0lu
dGVudC0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+dHlwZSgpLnV0
ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJbnRlbnQtPnR5cGU7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfZGF0YV9nZXQoY29u
c3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0IEV3a19J
bnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVO
VF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUgdGhl
IGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBld2tJ
bnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3RyaW5n
c2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5zZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb3JlLT5zZXJ2aWNlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0
dXJuIGV3a0ludGVudC0+c2VydmljZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30K
KworY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBj
b25zdCBjaGFyKiBrZXkpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRF
TlRfQ09SRV9HRVRfT1JfUkVUVVJOKGludGVudCwgY29yZSwgMCk7CisgICAgV1RGOjpIYXNoTWFw
PFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgdmFsID0gY29yZS0+ZXh0cmFzKCkuZmlu
ZChTdHJpbmc6OmZyb21VVEY4KGtleSkpOworICAgIGlmICh2YWwgPT0gY29yZS0+ZXh0cmFzKCku
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdHJkdXAodmFsLT5zZWNvbmQu
dXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKKyNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENyZWF0ZXMgYSBu
ZXcgRXdrX0ludGVudCBvYmplY3QuCisgKgorICogQHBhcmFtIGNvcmUgV2ViQ29yZTo6SW50ZW50
IGluc3RhbmNlIHRvIHVzZSBpbnRlcm5hbGx5LgorICogQHJldHVybiBhIG5ldyBhbGxvY2F0ZWQg
dGhlIEV3a19JbnRlbnQgb2JqZWN0IG9uIHN1Y2VzcyBvciBAYyAwIG9uIGZhaWx1cmUKKyAqLwor
RXdrX0ludGVudCogZXdrX2ludGVudF9uZXcoV2ViQ29yZTo6SW50ZW50KiBjb3JlKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb3JlLCAwKTsKKyAgICBFd2tfSW50ZW50
KiBpbnRlbnQgPSBuZXcgRXdrX0ludGVudDsKKyAgICBpbnRlbnQtPmNvcmUgPSBjb3JlOworCisg
ICAgcmV0dXJuIGludGVudDsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBGcmVlIGdp
dmVuIEV3a19JbnRlbnQgaW5zdGFuY2UuCisgKgorICogQHBhcmFtIGludGVudCB0aGUgb2JqZWN0
IHRvIGZyZWUuCisgKi8KK3ZvaWQgZXdrX2ludGVudF9mcmVlKEV3a19JbnRlbnQqIGludGVudCkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOworCisgICAgZGVsZXRl
IGludGVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19pbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVkMWJiOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIGV3a19p
bnRlbnRfaAorI2RlZmluZSBld2tfaW50ZW50X2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3
a19JbnRlbnQ7CisKKy8qKgorICogUXVlcnkgYWN0aW9uIGZvciB0aGlzIGludGVudC4KKyAqCisg
KiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhl
IGFjdGlvbiBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAq
ICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNl
CisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNo
YXIgKmV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisv
KioKKyAqIFF1ZXJ5IHR5cGUgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgdHlwZSBwb2ludGVyLCB0
aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVl
ZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAg
ICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFf
c3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisg
KiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfdHlw
ZV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBkYXRhIGZv
ciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIGRhdGEgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4g
VGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdz
aGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21l
IGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGlu
c3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4K
KyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2RhdGFfZ2V0KGNvbnN0IEV3a19JbnRl
bnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgc2VydmljZSBmb3IgdGhpcyBpbnRlbnQuCisg
KgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IHRoZSBzZXJ2aWNlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBp
cworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFu
ZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFf
c3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29u
c3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQp
OworCisvKioKKyAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkgZnJvbSB0aGUgZXh0cmEg
ZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3RlZCB3aXRoLgorICoKKyAq
IEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKiBAcGFyYW0ga2V5IGtleSB0
byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4KKyAqCisgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2Nh
dGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2Vz
IG5vdCBleGlzdC4KKyAqLworRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBF
d2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ludGVudF9wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOWY0NzBkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
aW50ZW50X3ByaXZhdGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9wcml2YXRlX2gK
KyNkZWZpbmUgZXdrX2ludGVudF9wcml2YXRlX2gKKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
Ky8vIGZvcndhcmQgZGVjbGFyYXRpb25zCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnRl
bnQ7CitjbGFzcyBJbnRlbnRSZXF1ZXN0OworfQorCitFd2tfSW50ZW50KiBld2tfaW50ZW50X25l
dyhXZWJDb3JlOjpJbnRlbnQqIGNvcmUpOwordm9pZCBld2tfaW50ZW50X2ZyZWUoRXdrX0ludGVu
dCogaW50ZW50KTsKK0V3a19JbnRlbnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQ
YXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNvcmUpOworI2VuZGlmCisKKyNlbmRp
ZiAvLyBld2tfaW50ZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudF9yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Jk
MTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnRfcmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgorI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0
ZS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19J
bnRlbnRfUmVxdWVzdAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCByZXF1ZXN0IGRh
dGEuCisgKi8KK3N0cnVjdCBfRXdrX0ludGVudF9SZXF1ZXN0IHsKKyAgICB1bnNpZ25lZCBpbnQg
X19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBjb3Jl
OworI2VuZGlmCisgICAgRXdrX0ludGVudCogaW50ZW50OworfTsKKworI2RlZmluZSBFV0tfSU5U
RU5UX1JFUVVFU1RfQ09SRV9HRVRfT1JfUkVUVVJOKHJlcXVlc3QsIGNvcmVfLCAuLi4pICAgICAg
XAorICAgIGlmICghKHJlcXVlc3QpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVxdWVzdCBpcyBOVUxMLiIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIGlmICghKHJlcXVlc3QpLT5jb3JlKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVx
dWVzdC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRl
bnRSZXF1ZXN0PiBjb3JlXyA9IChyZXF1ZXN0KS0+Y29yZQorCit2b2lkIGV3a19pbnRlbnRfcmVx
dWVzdF9yZWYoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1ZXN0KTsKKyAgICAr
K3JlcXVlc3QtPl9fcmVmOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Vu
cmVmKEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVO
VFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVxdWVzdCk7CisKKyAgICBpZiAo
LS1yZXF1ZXN0LT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisgICAgZXdrX2ludGVudF9mcmVl
KHJlcXVlc3QtPmludGVudCk7CisgICAgZGVsZXRlIHJlcXVlc3Q7CisjZW5kaWYKK30KKworRXdr
X0ludGVudCogZXdrX2ludGVudF9yZXF1ZXN0X2ludGVudF9nZXQoY29uc3QgRXdrX0ludGVudF9S
ZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisKKyAgICByZXR1cm4gcmVxdWVz
dC0+aW50ZW50OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a19p
bnRlbnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNv
bnN0IGNoYXIqIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9SRVFVRVNUX0NPUkVfR0VUX09SX1JFVFVSTihyZXF1ZXN0LCBjb3JlKTsKKworICAgIFJl
ZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChyZXN1bHQpKTsKKyAg
ICBjb3JlLT5wb3N0UmVzdWx0KHZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworI2VuZGlmCit9
CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVl
c3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZhaWx1cmUpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQorICAgIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4ocmVxdWVzdCwg
Y29yZSk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVU
RjgoZmFpbHVyZSkpOworICAgIGNvcmUtPnBvc3RSZXN1bHQodmFsdWUucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKy8qKgorICogQGlu
dGVybmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBFd2tfSW50ZW50X1JlcXVlc3Qgb2JqZWN0Lgor
ICoKKyAqIEBwYXJhbSBjb3JlIFdlYkNvcmU6OkludGVudFJlcXVlc3QgaW5zdGFuY2UgdG8gdXNl
IGludGVybmFsbHkuCisgKiBAcmV0dXJuIGEgbmV3IGFsbG9jYXRlZCB0aGUgRXdrX0ludGVudF9S
ZXF1ZXN0IG9iamVjdCBvbiBzdWNlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCisgKi8KK0V3a19JbnRl
bnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQYXNzUmVmUHRyPFdlYkNvcmU6Oklu
dGVudFJlcXVlc3Q+IGNvcmUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNvcmUsIDApOworICAgIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCA9IG5ldyBFd2tfSW50
ZW50X1JlcXVlc3Q7CisgICAgcmVxdWVzdC0+X19yZWYgPSAxOworICAgIHJlcXVlc3QtPmNvcmUg
PSBjb3JlOworICAgIHJlcXVlc3QtPmludGVudCA9IGV3a19pbnRlbnRfbmV3KGNvcmUtPmludGVu
dCgpKTsKKworICAgIHJldHVybiByZXF1ZXN0OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2Y4MGNiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfaW50ZW50X3JlcXVlc3QuaApAQCAtMCwwICsxLDgyIEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9yZXF1ZXN0
X2gKKyNkZWZpbmUgZXdrX2ludGVudF9yZXF1ZXN0X2gKKworI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMi
IHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1JlcXVlc3QgRXdrX0ludGVudF9SZXF1ZXN0Owor
CisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmpl
Y3QuCisgKgorICogQHBhcmFtIHJlcXVlc3QgdGhlIGludGVudCByZXF1ZXN0IG9iamVjdCB0byBp
bmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3Jl
cXVlc3RfcmVmKEV3a19JbnRlbnRfUmVxdWVzdCAqcmVxdWVzdCk7CisKKy8qKgorICogRGVjcmVh
c2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJl
ZWluZyBpdC4KKyAqCisgKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAs
IHRoZSBpbnRlbnQgcmVxdWVzdCBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCB0aGUg
aW50ZW50IHJlcXVlc3Qgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAq
LworRUFQSSB2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihFd2tfSW50ZW50X1JlcXVlc3Qg
KnJlcXVlc3QpOworCisvKioKKyAqIFF1ZXJ5IGludGVudCBmb3IgdGhpcyByZXF1ZXN0LgorICoK
KyAqIEBwYXJhbSByZXF1ZXN0IHJlcXVlc3QgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IEEgcG9pbnRlciB0byB0aGUgaW50ZW50IGluc3RhbmNlLgorICovCitFQVBJIEV3a19JbnRlbnQg
KmV3a19pbnRlbnRfcmVxdWVzdF9pbnRlbnRfZ2V0KGNvbnN0IEV3a19JbnRlbnRfUmVxdWVzdCAq
cmVxdWVzdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3Qgc3VjY2Vzcy4KKyAqCisgKiBUaGUg
cGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzdWNjZXNzIGNhbGxiYWNrIHJlZ2lz
dGVyZWQgYnkgdGhlIGNsaWVudC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0u
CisgKiBAcGFyYW0gcmVzdWx0IHBheWxvYWQgZGF0YS4KKyAqLworRUFQSSB2b2lkIGV3a19pbnRl
bnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0
IGNoYXIgKnJlc3VsdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3QgZmFpbHVyZS4KKyAqCisg
KiBUaGUgcGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBlcnJvciBjYWxsYmFjayBy
ZWdpc3RlcmVkIGJ5IHRoZSBjbGllbnQuCisgKgorICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdCBp
dGVtLgorICogQHBhcmFtIGZhaWx1cmUgcGF5bG9hZCBkYXRhLgorICovCitFQVBJIHZvaWQgZXdr
X2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3Qs
IGNvbnN0IGNoYXIgKmZhaWx1cmUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
I2VuZGlmIC8vIGV3a19pbnRlbnRfcmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk4
M2ZmNjUuLmM0NjIwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC04MCw2ICs4MCw3IEBAIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSUJSQVRJT04gT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU8gT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQorV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9JTlRFTlRTLCBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dPUktFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0VO
RCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142436</attachid>
            <date>2012-05-17 00:52:06 -0700</date>
            <delta_ts>2012-05-17 23:23:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>86354_simple_intents_efl.patch</filename>
            <type>text/plain</type>
            <size>27535</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwY2E5ZmY0Li4wMTU5MzNj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBXRUJfSU5URU5UUyBmbGFnIGJ5IGRlZmF1bHQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0wNS0xNCAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0luZGVudCcpIGluIHRoZSBkaXJlY3QgY2hpbGQgb2YgU2hhZG93Um9vdCBjYXVzZXMgYSBj
cmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDM5NGE1NTUuLjE4YzdkNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMiw2ICsyLDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAg
ICAgIiR7V0VCS0lUX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9IgogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3dlYmRhdGFiYXNlIgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2lu
dGVudHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL2pzIgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTkxZTk5Ni4uOTE5NzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
NS0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdIEFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgV2ViIEludGVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBld2tf
aW50ZW50LiogYW5kIGV3a19pbnRlbnRfcmVxdWVzdC4qIGZpbGVzIHRvIENNYWtlLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIw
MTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZhdGUg
ZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkZDIyOGNiLi41NDQ0NWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTExNyw2ICsxMTcsOCBAQCBMSVNUKEFQUEVORCBXZWJL
aXRfU09VUkNFUwogICAgIGVmbC9ld2svZXdrX3ZpZXcuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmll
d19zaW5nbGUuY3BwCiAgICAgZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKyAgICBlZmwvZXdr
L2V3a19pbnRlbnQuY3BwCisgICAgZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcAogKQogCkBAIC0yNjIsNiArMjY0LDggQEAg
U0VUKEVXZWJLaXRfSEVBREVSUwogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19zZWN1cml0eV9wb2xpY3kuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2VmbC9ld2svZXdrX3ZpZXcuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwv
ZXdrL2V3a19pbnRlbnQuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdr
L2V3a19pbnRlbnRfcmVxdWVzdC5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2Vm
bC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwMWM2
ODg3Li5iMGI1M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTItMDUt
MTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgRUZMIHdy
YXBwZXJzIGZvciBXZWJDb3JlJ3MgSW50ZW50IGFuZCBJbnRlbnRSZXF1ZXN0LgorICAgICAgICBJ
bXBsZW1lbnQgZGlzcGF0Y2hJbnRlbnQoKSBpbiBFRkwncyBGcmFtZUxvYWRlckNsaWVudCBhbmQg
ZW1pdCBhIG5ldworICAgICAgICAiaW50ZW50LG5ldyIgc2lnbmFsIG9uIHRoZSBmcmFtZSB0byBu
b3RpZnkgY2xpZW50cyBvZiBuZXcgaW50ZW50CisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hJ
bnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6
CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19mcmFt
ZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfaW50ZW50X25ldyk6CisgICAgICAgICogZXdrL2V3
a19mcmFtZS5oOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWVfcHJpdmF0ZS5oOgorICAgICAgICAq
IGV3ay9ld2tfaW50ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAg
ICAgIChld2tfaW50ZW50X2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF90eXBlX2dl
dCk6CisgICAgICAgIChld2tfaW50ZW50X2RhdGFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
c2VydmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAo
ZXdrX2ludGVudF9uZXcpOgorICAgICAgICAoZXdrX2ludGVudF9mcmVlKToKKyAgICAgICAgKiBl
d2svZXdrX2ludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2ludGVudF9wcml2YXRl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRfUmVxdWVzdCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVz
dF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50X2dldCk6CisgICAg
ICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAgICAgICAoZXdrX2ludGVu
dF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfbmV3
KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFkZGVkLgorCisyMDEyLTA1
LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWIgSW50ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzNTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IEVGTCB3
cmFwcGVycyBmb3IgV2ViQ29yZSdzIEludGVudCBhbmQgSW50ZW50UmVxdWVzdC4KKyAgICAgICAg
SW1wbGVtZW50IGRpc3BhdGNoSW50ZW50KCkgaW4gRUZMJ3MgRnJhbWVMb2FkZXJDbGllbnQgYW5k
IGVtaXQgYSBuZXcKKyAgICAgICAgImludGVudCxuZXciIHNpZ25hbCBvbiB0aGUgZnJhbWUgdG8g
bm90aWZ5IGNsaWVudHMgb2YgbmV3IGludGVudAorICAgICAgICByZXF1ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
SW50ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRFZmwpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ludGVudF9uZXcpOgorICAgICAgICAqIGV3ay9l
d2tfZnJhbWUuaDoKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoX0V3a19JbnRlbnQpOgorICAgICAgICAoZXdrX2ludGVudF9hY3Rpb25fZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfdHlwZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9kYXRhX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3NlcnZpY2VfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
ZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfbmV3KToKKyAgICAgICAgKGV3a19pbnRl
bnRfZnJlZSk6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICog
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19JbnRlbnRf
UmVxdWVzdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3
a19pbnRlbnRfcmVxdWVzdF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfaW50
ZW50X2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfcmVzdWx0X3Bvc3QpOgorICAg
ICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdCk6CisgICAgICAgIChld2tfaW50
ZW50X3JlcXVlc3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisK
IDIwMTItMDUtMTUgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gU3BsaXQgZXdrX3ByaXZhdGUuaCBmaWxlIHRvIG11bHRpcGxlIHByaXZh
dGUgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggZDc4ZjAyMS4uZjViZTcyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkludGVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NCw2ICs1
NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJLaXRWZXJzaW9uLmgi
CiAjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgpAQCAtOTcwLDYgKzk3
MiwxNSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpCiB7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJl
cXVlc3Q+IGludGVudFJlcXVlc3QpCit7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0KiBld2tSZXF1
ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRlbnRSZXF1ZXN0KTsKKyAgICBld2tfZnJh
bWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0KTsKKyAgICBld2tfaW50ZW50X3JlcXVl
c3RfdW5yZWYoZXdrUmVxdWVzdCk7Cit9CisjZW5kaWYKKwogUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRVdL
UHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4
IDY3MDYxMTQuLmMyNTI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTg1LDYgKzE4NSw5IEBAIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNl
UmVwbGFjZW1lbnQoKTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4pOworI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIFdURjo6UGFzc1JlZlB0cjxEb2N1bWVudExvYWRlcj4gY3JlYXRl
RG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURh
dGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGl0bGUsIGNvbnN0IEtVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5k
ZXggODdhOTNmZi4uYTUwYmQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAg
LTE1MTcsNiArMTUxNywxOCBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb2dyZXNzX2NoYW5nZWQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3NfY2hhbmdl
ZChzbWFydERhdGEtPnZpZXcpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyBu
ZXcgaW50ZW50LgorICoKKyAqIEVtaXRzIHNpZ25hbDogImludGVudCxuZXciIHdpdGggcG9pbnRl
ciB0byBhIEV3a19JbnRlbnRfUmVxdWVzdC4KKyAqLwordm9pZCBld2tfZnJhbWVfaW50ZW50X25l
dyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChld2tGcmFtZSwgImludGVudCxuZXciLCByZXF1ZXN0KTsKKyNlbmRpZgorfQogCiAvKioK
ICAqIEBpbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IGY1YmJhMWIuLjY5
ZWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTQwLDYgKzQwLDcgQEAKICAq
ICAtICJlZGl0b3JjbGllbnQsY29udGVudHMsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCBl
ZGl0b3IgY2xpZW50J3MKICAqICAgIGNvbnRlbnRzIHdlcmUgY2hhbmdlZAogICogIC0gImljb24s
Y2hhbmdlZCIsIHZvaWQ6IGZyYW1lIGZhdmljb24gY2hhbmdlZC4KKyAqICAtICJpbnRlbnQsbmV3
IiwgRXdrSW50ZW50UmVxdWVzdCo6IHJlcG9ydHMgbmV3IGludGVudC4KICAqICAtICJsb2FkLGNv
bW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1
bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50
LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6IHJlcG9y
dHMgbG9hZCBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWVfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZV9wcml2YXRlLmgK
aW5kZXggYmQwODdkZS4uZGQzNzg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZV9wcml2YXRlLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgZXdrX2ZyYW1lX3ByaXZhdGVf
aAogCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0
LmgiCiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsNiArNjgsNyBAQCB2b2lkIGV3a19mcmFtZV92aWV3
X2NyZWF0ZV9mb3JfdmlldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiB2aWV3
KTsKIGJvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiB2
b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQg
ZXdrX2ZyYW1lX2ljb25fY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tf
ZnJhbWVfaW50ZW50X25ldyhFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19JbnRlbnRfUmVxdWVz
dCogcmVxdWVzdCk7CiAKIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFt
ZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgcGx1Z2luU2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBj
b25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjlkOGM0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ludGVudC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnQuaCIKKworI2luY2x1ZGUgIkludGVudC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworLyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudAorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19JbnRl
bnQgeworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmU7
IC8qKjwgV2ViQ29yZSBvYmplY3Qgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRoZSBpbnRlbnQg
Ki8KKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsKKyAgICBjb25zdCBjaGFyKiB0eXBl
OworICAgIGNvbnN0IGNoYXIqIGRhdGE7CisgICAgY29uc3QgY2hhciogc2VydmljZTsKK307CisK
KyNkZWZpbmUgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlXywgLi4u
KSAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwoImludGVudCBpcyBOVUxMLiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShp
bnRlbnQpLT5jb3JlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgQ1JJVElDQUwoImludGVudC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXZWJDb3JlOjpJbnRlbnQqIGNvcmVfID0gKGlu
dGVudCktPmNvcmUKKworY29uc3QgY2hhciogZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUg
dGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBl
d2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5hY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcmUtPmFjdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJ
bnRlbnQtPmFjdGlvbjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3Qg
Y2hhciogZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7Cisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfQ09SRV9HRVRfT1JfUkVUVVJO
KGludGVudCwgY29yZSwgMCk7CisKKyAgICAvLyBoaWRlIHRoZSBmb2xsb3dpbmcgb3B0aW16YXRp
b24gZnJvbSBvdXRzaWRlCisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gY29uc3RfY2FzdDxF
d2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0lu
dGVudC0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+dHlwZSgpLnV0
ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBld2tJbnRlbnQtPnR5cGU7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfZGF0YV9nZXQoY29u
c3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0IEV3a19J
bnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVO
VF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUgdGhl
IGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBld2tJ
bnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3RyaW5n
c2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT5zZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb3JlLT5zZXJ2aWNlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0
dXJuIGV3a0ludGVudC0+c2VydmljZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30K
KworY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBj
b25zdCBjaGFyKiBrZXkpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRF
TlRfQ09SRV9HRVRfT1JfUkVUVVJOKGludGVudCwgY29yZSwgMCk7CisgICAgV1RGOjpIYXNoTWFw
PFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgdmFsID0gY29yZS0+ZXh0cmFzKCkuZmlu
ZChTdHJpbmc6OmZyb21VVEY4KGtleSkpOworICAgIGlmICh2YWwgPT0gY29yZS0+ZXh0cmFzKCku
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdHJkdXAodmFsLT5zZWNvbmQu
dXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKKyNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENyZWF0ZXMgYSBu
ZXcgRXdrX0ludGVudCBvYmplY3QuCisgKgorICogQHBhcmFtIGNvcmUgV2ViQ29yZTo6SW50ZW50
IGluc3RhbmNlIHRvIHVzZSBpbnRlcm5hbGx5LgorICogQHJldHVybiBhIG5ldyBhbGxvY2F0ZWQg
dGhlIEV3a19JbnRlbnQgb2JqZWN0IG9uIHN1Y2VzcyBvciBAYyAwIG9uIGZhaWx1cmUKKyAqLwor
RXdrX0ludGVudCogZXdrX2ludGVudF9uZXcoV2ViQ29yZTo6SW50ZW50KiBjb3JlKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb3JlLCAwKTsKKyAgICBFd2tfSW50ZW50
KiBpbnRlbnQgPSBuZXcgRXdrX0ludGVudDsKKyAgICBpbnRlbnQtPmNvcmUgPSBjb3JlOworCisg
ICAgcmV0dXJuIGludGVudDsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBGcmVlIGdp
dmVuIEV3a19JbnRlbnQgaW5zdGFuY2UuCisgKgorICogQHBhcmFtIGludGVudCB0aGUgb2JqZWN0
IHRvIGZyZWUuCisgKi8KK3ZvaWQgZXdrX2ludGVudF9mcmVlKEV3a19JbnRlbnQqIGludGVudCkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOworCisgICAgZGVsZXRl
IGludGVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19pbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVkMWJiOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIGV3a19p
bnRlbnRfaAorI2RlZmluZSBld2tfaW50ZW50X2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3
a19JbnRlbnQ7CisKKy8qKgorICogUXVlcnkgYWN0aW9uIGZvciB0aGlzIGludGVudC4KKyAqCisg
KiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhl
IGFjdGlvbiBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAq
ICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNl
CisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNo
YXIgKmV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisv
KioKKyAqIFF1ZXJ5IHR5cGUgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgdHlwZSBwb2ludGVyLCB0
aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVl
ZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAg
ICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFf
c3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisg
KiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfdHlw
ZV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBkYXRhIGZv
ciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIGRhdGEgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4g
VGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdz
aGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21l
IGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGlu
c3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4K
KyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2RhdGFfZ2V0KGNvbnN0IEV3a19JbnRl
bnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgc2VydmljZSBmb3IgdGhpcyBpbnRlbnQuCisg
KgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IHRoZSBzZXJ2aWNlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBp
cworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFu
ZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFf
c3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29u
c3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQp
OworCisvKioKKyAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkgZnJvbSB0aGUgZXh0cmEg
ZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3RlZCB3aXRoLgorICoKKyAq
IEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKiBAcGFyYW0ga2V5IGtleSB0
byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4KKyAqCisgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2Nh
dGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2Vz
IG5vdCBleGlzdC4KKyAqLworRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBF
d2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ludGVudF9wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOWY0NzBkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
aW50ZW50X3ByaXZhdGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9wcml2YXRlX2gK
KyNkZWZpbmUgZXdrX2ludGVudF9wcml2YXRlX2gKKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
Ky8vIGZvcndhcmQgZGVjbGFyYXRpb25zCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnRl
bnQ7CitjbGFzcyBJbnRlbnRSZXF1ZXN0OworfQorCitFd2tfSW50ZW50KiBld2tfaW50ZW50X25l
dyhXZWJDb3JlOjpJbnRlbnQqIGNvcmUpOwordm9pZCBld2tfaW50ZW50X2ZyZWUoRXdrX0ludGVu
dCogaW50ZW50KTsKK0V3a19JbnRlbnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQ
YXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNvcmUpOworI2VuZGlmCisKKyNlbmRp
ZiAvLyBld2tfaW50ZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudF9yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Jk
MTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRf
cmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19pbnRlbnRfcmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgorI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0
ZS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19J
bnRlbnRfUmVxdWVzdAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCByZXF1ZXN0IGRh
dGEuCisgKi8KK3N0cnVjdCBfRXdrX0ludGVudF9SZXF1ZXN0IHsKKyAgICB1bnNpZ25lZCBpbnQg
X19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBjb3Jl
OworI2VuZGlmCisgICAgRXdrX0ludGVudCogaW50ZW50OworfTsKKworI2RlZmluZSBFV0tfSU5U
RU5UX1JFUVVFU1RfQ09SRV9HRVRfT1JfUkVUVVJOKHJlcXVlc3QsIGNvcmVfLCAuLi4pICAgICAg
XAorICAgIGlmICghKHJlcXVlc3QpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVxdWVzdCBpcyBOVUxMLiIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIGlmICghKHJlcXVlc3QpLT5jb3JlKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgicmVx
dWVzdC0+Y29yZSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFJlZlB0cjxXZWJDb3JlOjpJbnRl
bnRSZXF1ZXN0PiBjb3JlXyA9IChyZXF1ZXN0KS0+Y29yZQorCit2b2lkIGV3a19pbnRlbnRfcmVx
dWVzdF9yZWYoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1ZXN0KTsKKyAgICAr
K3JlcXVlc3QtPl9fcmVmOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Vu
cmVmKEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVO
VFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVxdWVzdCk7CisKKyAgICBpZiAo
LS1yZXF1ZXN0LT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisgICAgZXdrX2ludGVudF9mcmVl
KHJlcXVlc3QtPmludGVudCk7CisgICAgZGVsZXRlIHJlcXVlc3Q7CisjZW5kaWYKK30KKworRXdr
X0ludGVudCogZXdrX2ludGVudF9yZXF1ZXN0X2ludGVudF9nZXQoY29uc3QgRXdrX0ludGVudF9S
ZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisKKyAgICByZXR1cm4gcmVxdWVz
dC0+aW50ZW50OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a19p
bnRlbnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QsIGNv
bnN0IGNoYXIqIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9SRVFVRVNUX0NPUkVfR0VUX09SX1JFVFVSTihyZXF1ZXN0LCBjb3JlKTsKKworICAgIFJl
ZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChyZXN1bHQpKTsKKyAg
ICBjb3JlLT5wb3N0UmVzdWx0KHZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworI2VuZGlmCit9
CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVl
c3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZhaWx1cmUpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQorICAgIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4ocmVxdWVzdCwg
Y29yZSk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVU
RjgoZmFpbHVyZSkpOworICAgIGNvcmUtPnBvc3RSZXN1bHQodmFsdWUucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKy8qKgorICogQGlu
dGVybmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBFd2tfSW50ZW50X1JlcXVlc3Qgb2JqZWN0Lgor
ICoKKyAqIEBwYXJhbSBjb3JlIFdlYkNvcmU6OkludGVudFJlcXVlc3QgaW5zdGFuY2UgdG8gdXNl
IGludGVybmFsbHkuCisgKiBAcmV0dXJuIGEgbmV3IGFsbG9jYXRlZCB0aGUgRXdrX0ludGVudF9S
ZXF1ZXN0IG9iamVjdCBvbiBzdWNlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCisgKi8KK0V3a19JbnRl
bnRfUmVxdWVzdCogZXdrX2ludGVudF9yZXF1ZXN0X25ldyhQYXNzUmVmUHRyPFdlYkNvcmU6Oklu
dGVudFJlcXVlc3Q+IGNvcmUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNvcmUsIDApOworICAgIEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCA9IG5ldyBFd2tfSW50
ZW50X1JlcXVlc3Q7CisgICAgcmVxdWVzdC0+X19yZWYgPSAxOworICAgIHJlcXVlc3QtPmNvcmUg
PSBjb3JlOworICAgIHJlcXVlc3QtPmludGVudCA9IGV3a19pbnRlbnRfbmV3KGNvcmUtPmludGVu
dCgpKTsKKworICAgIHJldHVybiByZXF1ZXN0OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2Y4MGNiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfaW50ZW50X3JlcXVlc3QuaApAQCAtMCwwICsxLDgyIEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9yZXF1ZXN0
X2gKKyNkZWZpbmUgZXdrX2ludGVudF9yZXF1ZXN0X2gKKworI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMi
IHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19JbnRlbnQgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1JlcXVlc3QgRXdrX0ludGVudF9SZXF1ZXN0Owor
CisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmpl
Y3QuCisgKgorICogQHBhcmFtIHJlcXVlc3QgdGhlIGludGVudCByZXF1ZXN0IG9iamVjdCB0byBp
bmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3Jl
cXVlc3RfcmVmKEV3a19JbnRlbnRfUmVxdWVzdCAqcmVxdWVzdCk7CisKKy8qKgorICogRGVjcmVh
c2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJl
ZWluZyBpdC4KKyAqCisgKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAs
IHRoZSBpbnRlbnQgcmVxdWVzdCBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCB0aGUg
aW50ZW50IHJlcXVlc3Qgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAq
LworRUFQSSB2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihFd2tfSW50ZW50X1JlcXVlc3Qg
KnJlcXVlc3QpOworCisvKioKKyAqIFF1ZXJ5IGludGVudCBmb3IgdGhpcyByZXF1ZXN0LgorICoK
KyAqIEBwYXJhbSByZXF1ZXN0IHJlcXVlc3QgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJu
IEEgcG9pbnRlciB0byB0aGUgaW50ZW50IGluc3RhbmNlLgorICovCitFQVBJIEV3a19JbnRlbnQg
KmV3a19pbnRlbnRfcmVxdWVzdF9pbnRlbnRfZ2V0KGNvbnN0IEV3a19JbnRlbnRfUmVxdWVzdCAq
cmVxdWVzdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3Qgc3VjY2Vzcy4KKyAqCisgKiBUaGUg
cGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzdWNjZXNzIGNhbGxiYWNrIHJlZ2lz
dGVyZWQgYnkgdGhlIGNsaWVudC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0u
CisgKiBAcGFyYW0gcmVzdWx0IHBheWxvYWQgZGF0YS4KKyAqLworRUFQSSB2b2lkIGV3a19pbnRl
bnRfcmVxdWVzdF9yZXN1bHRfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QgKnJlcXVlc3QsIGNvbnN0
IGNoYXIgKnJlc3VsdCk7CisKKy8qKgorICogUmVwb3J0IHJlcXVlc3QgZmFpbHVyZS4KKyAqCisg
KiBUaGUgcGF5bG9hZCBkYXRhIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBlcnJvciBjYWxsYmFjayBy
ZWdpc3RlcmVkIGJ5IHRoZSBjbGllbnQuCisgKgorICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdCBp
dGVtLgorICogQHBhcmFtIGZhaWx1cmUgcGF5bG9hZCBkYXRhLgorICovCitFQVBJIHZvaWQgZXdr
X2ludGVudF9yZXF1ZXN0X2ZhaWx1cmVfcG9zdChFd2tfSW50ZW50X1JlcXVlc3QgKnJlcXVlc3Qs
IGNvbnN0IGNoYXIgKmZhaWx1cmUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
I2VuZGlmIC8vIGV3a19pbnRlbnRfcmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk4
M2ZmNjUuLmM0NjIwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC04MCw2ICs4MCw3IEBAIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSUJSQVRJT04gT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU8gT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQorV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9JTlRFTlRTLCBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dPUktFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0VO
RCgpCg==
</data>
<flag name="review"
          id="148767"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="148768"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142642</attachid>
            <date>2012-05-17 23:23:45 -0700</date>
            <delta_ts>2012-05-17 23:26:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>86354_simple_intents.patch</filename>
            <type>text/plain</type>
            <size>26077</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMjhhYmRkLi5mZjczMmJl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIEVuYWJsZSBX
RUJfSU5URU5UUyBmbGFnIGJ5IGRlZmF1bHQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0wNS0xNyAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMTc0MjgpOiBXZWJLaXQg
QVBJL1NQSSB3YXMgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMzk0YTU1NS4uMThjN2Q1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0yLDYgKzIsNyBAQCBTRVQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0iCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZGF0YWJhc2UiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvaW50ZW50cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIK
ICAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Jp
bmRpbmdzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAzMjJhMjA3Li5iYmJiZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTA1LTE4ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBp
bnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBX
ZWIgSW50ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYzNTQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBB
ZGQgbmV3IGV3a19pbnRlbnQuKiBhbmQgZXdrX2ludGVudF9yZXF1ZXN0LiogZmlsZXMgdG8gQ01h
a2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZToKKwogMjAxMi0wNS0xNyAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2Fu
dG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgQVBJIGZvciBXZWIgRGF0YWJhc2Ug
aGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDE4NDNjMmQuLjI5NWY4NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE5LDYgKzExOSw4IEBAIExJU1QoQVBQRU5EIFdl
YktpdF9TT1VSQ0VTCiAgICAgZWZsL2V3ay9ld2tfdmlldy5jcHAKICAgICBlZmwvZXdrL2V3a192
aWV3X3NpbmdsZS5jcHAKICAgICBlZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAorICAgIGVmbC9l
d2svZXdrX2ludGVudC5jcHAKKyAgICBlZmwvZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHAKICAg
ICBlZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwCiAgICAgZWZsL2V3ay9ld2tfd2ViX2Rh
dGFiYXNlLmNwcAogKQpAQCAtMjY3LDYgKzI2OSw4IEBAIFNFVChFV2ViS2l0X0hFQURFUlMKICAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfc2VjdXJpdHlfcG9saWN5
LmgKICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfc2V0dGluZ3Mu
aAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a192aWV3LmgKKyAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfaW50ZW50LmgKKyAgICAk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a193aW5kb3dfZmVhdHVy
ZXMuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a193ZWJfZGF0
YWJhc2UuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDE4MjQ2MjAuLmQxNTFiNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMi0wNS0xOCAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBzaW1wbGUg
aW1wbGVtZW50YXRpb24gb2YgV2ViIEludGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCisKKyAgICAgICAgQWRkIG5ldyBFRkwgd3JhcHBlcnMgZm9yIFdlYkNvcmUncyBJbnRl
bnQgYW5kIEludGVudFJlcXVlc3QuCisgICAgICAgIEltcGxlbWVudCBkaXNwYXRjaEludGVudCgp
IGluIEVGTCdzIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBlbWl0IGEgbmV3CisgICAgICAgICJpbnRl
bnQsbmV3IiBzaWduYWwgb24gdGhlIGZyYW1lIHRvIG5vdGlmeSBjbGllbnRzIG9mIG5ldyBpbnRl
bnQKKyAgICAgICAgcmVxdWVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xp
ZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFt
ZV9pbnRlbnRfbmV3KToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdr
L2V3a19mcmFtZV9wcml2YXRlLmg6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50KToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0aW9uX2dl
dCk6CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
ZGF0YV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2dldCk6CisgICAgICAgIChl
d2tfaW50ZW50X2V4dHJhX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X25ldyk6CisgICAgICAg
IChld2tfaW50ZW50X2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfaW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAqIGV3ay9ld2tfaW50ZW50X3ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIChfRXdrX0ludGVudF9SZXF1ZXN0KToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9y
ZWYpOgorICAgICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X3VucmVmKToKKyAgICAgICAgKGV3a19p
bnRlbnRfcmVxdWVzdF9pbnRlbnRfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9y
ZXN1bHRfcG9zdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVyZV9wb3N0KToK
KyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9uZXcpOgorICAgICAgICAqIGV3ay9ld2tfaW50
ZW50X3JlcXVlc3QuaDogQWRkZWQuCisKIDIwMTItMDUtMTcgIFJhcGhhZWwgS3VibyBkYSBDb3N0
YSAgPHJha3Vjb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdW0RSVF0gQ2FsbCByZXNldElu
dGVybmFsc09iamVjdCgpIGFmdGVyIGVhY2ggdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCBk
NzhmMDIxLi5mNWJlNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKQEAgLTU0LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIldlYktpdFZlcnNpb24uaCIKICNpbmNsdWRlICJld2tfZnJhbWVfcHJpdmF0ZS5oIgor
I2luY2x1ZGUgImV3a19pbnRlbnRfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgi
CiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19w
cml2YXRlLmgiCkBAIC05NzAsNiArOTcyLDE1IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKIHsKIH0KIAorI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoSW50ZW50KFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4gaW50ZW50UmVxdWVzdCkKK3sKKyAgICBFd2tf
SW50ZW50X1JlcXVlc3QqIGV3a1JlcXVlc3QgPSBld2tfaW50ZW50X3JlcXVlc3RfbmV3KGludGVu
dFJlcXVlc3QpOworICAgIGV3a19mcmFtZV9pbnRlbnRfbmV3KG1fZnJhbWUsIGV3a1JlcXVlc3Qp
OworICAgIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihld2tSZXF1ZXN0KTsKK30KKyNlbmRpZgor
CiBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmw6OmNyZWF0ZShFV0tQcml2YXRlOjpjb3JlRnJhbWUobV9mcmFtZSksIG1fZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNjcwNjExNC4uYzI1MjljNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
CkBAIC0xODUsNiArMTg1LDkgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMg
RnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRTdGFy
dGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpOworI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJbnRlbnRSZXF1ZXN0Pik7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgV1RGOjpQYXNzUmVmUHRy
PERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShj
b25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3QgS1VSTCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA2MTFkZTE3Li5hMDAyYTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMTUxOCw2ICsxNTE4LDE4IEBAIHZvaWQgZXdrX2ZyYW1l
X2xvYWRfcHJvZ3Jlc3NfY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgZXdrX3Zp
ZXdfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKHNtYXJ0RGF0YS0+dmlldyk7CiB9CiAKKy8qKgorICog
QGludGVybmFsCisgKiBSZXBvcnRzIG5ldyBpbnRlbnQuCisgKgorICogRW1pdHMgc2lnbmFsOiAi
aW50ZW50LG5ldyIgd2l0aCBwb2ludGVyIHRvIGEgRXdrX0ludGVudF9SZXF1ZXN0LgorICovCit2
b2lkIGV3a19mcmFtZV9pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ludGVu
dF9SZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAiaW50ZW50LG5ldyIsIHJlcXVl
c3QpOworI2VuZGlmCit9CiAKIC8qKgogICogQGludGVybmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmgKaW5kZXggZjViYmExYi4uNjllZmYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19mcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aApAQCAtNDAsNiArNDAsNyBAQAogICogIC0gImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2Vk
Iiwgdm9pZDogcmVwb3J0cyB0aGF0IGVkaXRvciBjbGllbnQncwogICogICAgY29udGVudHMgd2Vy
ZSBjaGFuZ2VkCiAgKiAgLSAiaWNvbixjaGFuZ2VkIiwgdm9pZDogZnJhbWUgZmF2aWNvbiBjaGFu
Z2VkLgorICogIC0gImludGVudCxuZXciLCBFd2tJbnRlbnRSZXF1ZXN0KjogcmVwb3J0cyBuZXcg
aW50ZW50LgogICogIC0gImxvYWQsY29tbWl0dGVkIiwgdm9pZDogcmVwb3J0cyBsb2FkIGNvbW1p
dHRlZC4KICAqICAtICJsb2FkLGRvY3VtZW50LGZpbmlzaGVkIiwgdm9pZDogZnJhbWUgZmluaXNo
ZWQgbG9hZGluZyB0aGUgZG9jdW1lbnQuCiAgKiAgLSAibG9hZCxlcnJvciIsIGNvbnN0IEV3a19G
cmFtZV9Mb2FkX0Vycm9yKjogcmVwb3J0cyBsb2FkIGZhaWxlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lX3ByaXZhdGUuaAppbmRleCBiZDA4N2RlLi5kZDM3ODYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lX3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lX3ByaXZhdGUuaApAQCAtMjIsNiArMjIsNyBAQAogI2Rl
ZmluZSBld2tfZnJhbWVfcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJld2tfZnJhbWUuaCIKKyNpbmNs
dWRlICJld2tfaW50ZW50X3JlcXVlc3QuaCIKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02Nyw2ICs2OCw3
IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSwgRXZhc19PYmplY3QqIHZpZXcpOwogYm9vbCBld2tfZnJhbWVfdXJpX2NoYW5nZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChFdmFzX09i
amVjdCogZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfaWNvbl9jaGFuZ2VkKEV2YXNfT2JqZWN0
KiBld2tGcmFtZSk7Cit2b2lkIGV3a19mcmFtZV9pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSwgRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KTsKIAogV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3a0Zy
YW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBXZWJDb3JlOjpIVE1MUGx1
Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6
U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBs
b2FkTWFudWFsbHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ4YzQxMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisjaW5jbHVkZSAiSW50ZW50Lmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tf
cHJpdmF0ZS5oIgorI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisvKioKKyAqIFxz
dHJ1Y3QgIF9Fd2tfSW50ZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgaW50ZW50IGRhdGEu
CisgKi8KK3N0cnVjdCBfRXdrX0ludGVudCB7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAg
IFdlYkNvcmU6OkludGVudCogY29yZTsgLyoqPCBXZWJDb3JlIG9iamVjdCB3aGljaCBpcyByZXNw
b25zaWJsZSBmb3IgdGhlIGludGVudCAqLworI2VuZGlmCisgICAgY29uc3QgY2hhciogYWN0aW9u
OworICAgIGNvbnN0IGNoYXIqIHR5cGU7CisgICAgY29uc3QgY2hhciogZGF0YTsKKyAgICBjb25z
dCBjaGFyKiBzZXJ2aWNlOworfTsKKworI2RlZmluZSBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JF
VFVSTihpbnRlbnQsIGNvcmVfLCAuLi4pICAgICAgXAorICAgIGlmICghKGludGVudCkpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNB
TCgiaW50ZW50IGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGlmICghKGludGVudCktPmNvcmUpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgiaW50ZW50LT5jb3JlIGlzIE5V
TEwuIik7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFdlYkNv
cmU6OkludGVudCogY29yZV8gPSAoaW50ZW50KS0+Y29yZQorCitjb25zdCBjaGFyKiBld2tfaW50
ZW50X2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShX
RUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JFVFVSTihpbnRlbnQsIGNv
cmUsIDApOworCisgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0
c2lkZQorICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+
KGludGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPmFjdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+YWN0aW9uKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgcmV0dXJuIGV3a0ludGVudC0+YWN0aW9uOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3R5cGVfZ2V0KGNvbnN0IEV3
a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUg
dGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBl
d2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT50eXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb3JlLT50eXBlKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGV3a0ludGVu
dC0+dHlwZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3QgY2hhciog
ZXdrX2ludGVudF9kYXRhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7CisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRf
c2VydmljZV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JFVFVSTihpbnRlbnQsIGNvcmUs
IDApOworCisgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0c2lk
ZQorICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGlu
dGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPnNlcnZpY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPnNlcnZpY2UoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gZXdrSW50ZW50LT5zZXJ2aWNlOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChjb25z
dCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK3sKKyNpZiBFTkFCTEUoV0VC
X0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3Jl
LCAwKTsKKyAgICBXVEY6Okhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciB2
YWwgPSBjb3JlLT5leHRyYXMoKS5maW5kKFN0cmluZzo6ZnJvbVVURjgoa2V5KSk7CisgICAgaWYg
KHZhbCA9PSBjb3JlLT5leHRyYXMoKS5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIHN0cmR1cCh2YWwtPnNlY29uZC51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgcmV0dXJu
IDA7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKy8qKgorICogQGludGVy
bmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBFd2tfSW50ZW50IG9iamVjdC4KKyAqCisgKiBAcGFy
YW0gY29yZSBXZWJDb3JlOjpJbnRlbnQgaW5zdGFuY2UgdG8gdXNlIGludGVybmFsbHkuCisgKiBA
cmV0dXJuIGEgbmV3IGFsbG9jYXRlZCB0aGUgRXdrX0ludGVudCBvYmplY3Qgb24gc3VjZXNzIG9y
IEBjIDAgb24gZmFpbHVyZQorICovCitFd2tfSW50ZW50KiBld2tfaW50ZW50X25ldyhXZWJDb3Jl
OjpJbnRlbnQqIGNvcmUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNv
cmUsIDApOworICAgIEV3a19JbnRlbnQqIGludGVudCA9IG5ldyBFd2tfSW50ZW50OworICAgIGlu
dGVudC0+Y29yZSA9IGNvcmU7CisKKyAgICByZXR1cm4gaW50ZW50OworfQorCisvKioKKyAqIEBp
bnRlcm5hbAorICoKKyAqIEZyZWUgZ2l2ZW4gRXdrX0ludGVudCBpbnN0YW5jZS4KKyAqCisgKiBA
cGFyYW0gaW50ZW50IHRoZSBvYmplY3QgdG8gZnJlZS4KKyAqLwordm9pZCBld2tfaW50ZW50X2Zy
ZWUoRXdrX0ludGVudCogaW50ZW50KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
KGludGVudCk7CisKKyAgICBkZWxldGUgaW50ZW50OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19pbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWQxYmI4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuaApA
QCAtMCwwICsxLDk3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9oCisjZGVmaW5lIGV3a19pbnRlbnRfaAorCisj
aW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2Vu
ZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0ludGVudCAqLwordHlwZWRl
ZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKKworLyoqCisgKiBRdWVyeSBhY3Rpb24g
Zm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVl
cnkuCisgKgorICogQHJldHVybiB0aGUgYWN0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5V
TEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3Ry
aW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYg
c29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYo
KSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVw
KCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgdHlwZSBmb3IgdGhpcyBpbnRlbnQu
CisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0
dXJuIHRoZSB0eXBlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBp
cworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFu
ZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFf
c3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29u
c3QgY2hhciAqZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOwor
CisvKioKKyAqIFF1ZXJ5IGRhdGEgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRl
bnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgZGF0YSBwb2ludGVy
LCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFu
dGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAg
ICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVp
bmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9y
CisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRf
ZGF0YV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBzZXJ2
aWNlIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRv
IHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhlIHNlcnZpY2UgcG9pbnRlciwgdGhhdCBtYXkgYmUg
QGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWlu
YV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vy
c2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJl
X3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBz
dHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNv
bnN0IEV3a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUmV0cmlldmVzIHRoZSB2YWx1ZSAo
aWYgYW55KSBmcm9tIHRoZSBleHRyYSBkYXRhIGRpY3Rpb25hcnkgdGhpcyBpbnRlbnQgd2FzIGNv
bnN0cnVjdGVkIHdpdGguCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVy
eS4KKyAqIEBwYXJhbSBrZXkga2V5IHRvIHF1ZXJ5IGluIHRoZSBkaWN0aW9uYXJ5LgorICoKKyAq
IEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBl
cnJvciBvciBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICovCitFQVBJIGNoYXIgKmV3a19p
bnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfaW50ZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3ByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQ3MGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRl
ZiBld2tfaW50ZW50X3ByaXZhdGVfaAorI2RlZmluZSBld2tfaW50ZW50X3ByaXZhdGVfaAorCisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorLy8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIEludGVudDsKK2NsYXNzIEludGVudFJlcXVlc3Q7Cit9CisKK0V3
a19JbnRlbnQqIGV3a19pbnRlbnRfbmV3KFdlYkNvcmU6OkludGVudCogY29yZSk7Cit2b2lkIGV3
a19pbnRlbnRfZnJlZShFd2tfSW50ZW50ICppbnRlbnQpOworRXdrX0ludGVudF9SZXF1ZXN0KiBl
d2tfaW50ZW50X3JlcXVlc3RfbmV3KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4g
Y29yZSk7CisjZW5kaWYKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfcHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjZjYmQxODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJJ
bnRlbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5j
bHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKwor
LyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudF9SZXF1ZXN0CisgKiBAYnJpZWYgICBDb250YWlu
cyB0aGUgaW50ZW50IHJlcXVlc3QgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfSW50ZW50X1JlcXVl
c3QgeworICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IHRoZSBvYmplY3QgKi8KKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgUmVmUHRyPFdlYkNv
cmU6OkludGVudFJlcXVlc3Q+IGNvcmU7CisjZW5kaWYKKyAgICBFd2tfSW50ZW50KiBpbnRlbnQ7
Cit9OworCisjZGVmaW5lIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4ocmVx
dWVzdCwgY29yZV8sIC4uLikgICAgICBcCisgICAgaWYgKCEocmVxdWVzdCkpIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIENSSVRJ
Q0FMKCJyZXF1ZXN0IGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEocmVxdWVz
dCktPmNvcmUpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIENSSVRJQ0FMKCJyZXF1ZXN0LT5jb3JlIGlzIE5VTEwuIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNvcmVfID0gKHJlcXVlc3QpLT5jb3Jl
CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3JlZihFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVl
c3QpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOKHJlcXVlc3QpOworICAgICsrcmVxdWVzdC0+X19yZWY7CisjZW5kaWYKK30KKwordm9p
ZCBld2tfaW50ZW50X3JlcXVlc3RfdW5yZWYoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KQor
eworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihyZXF1ZXN0KTsKKworICAgIGlmICgtLXJlcXVlc3QtPl9fcmVmKQorICAgICAgICByZXR1cm47
CisKKyAgICBld2tfaW50ZW50X2ZyZWUocmVxdWVzdC0+aW50ZW50KTsKKyAgICBkZWxldGUgcmVx
dWVzdDsKKyNlbmRpZgorfQorCitFd2tfSW50ZW50KiBld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50
X2dldChjb25zdCBFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QpCit7CisjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTKQorICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAw
KTsKKworICAgIHJldHVybiByZXF1ZXN0LT5pbnRlbnQ7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Jlc3VsdF9wb3N0KEV3a19JbnRl
bnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogcmVzdWx0KQoreworI2lmIEVOQUJMRShX
RUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1JFUVVFU1RfQ09SRV9HRVRfT1JfUkVUVVJOKHJl
cXVlc3QsIGNvcmUpOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShTdHJpbmc6
OmZyb21VVEY4KHJlc3VsdCkpOworICAgIGNvcmUtPnBvc3RSZXN1bHQodmFsdWUucmVsZWFzZSgp
LmxlYWtSZWYoKSk7CisjZW5kaWYKK30KKwordm9pZCBld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVy
ZV9wb3N0KEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogZmFpbHVyZSkK
K3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9SRVFVRVNUX0NPUkVf
R0VUX09SX1JFVFVSTihyZXF1ZXN0LCBjb3JlKTsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChmYWlsdXJlKSk7CisgICAgY29yZS0+cG9zdFJlc3Vs
dCh2YWx1ZS5yZWxlYXNlKCkubGVha1JlZigpKTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTKQorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBDcmVhdGVzIGEgbmV3IEV3a19J
bnRlbnRfUmVxdWVzdCBvYmplY3QuCisgKgorICogQHBhcmFtIGNvcmUgV2ViQ29yZTo6SW50ZW50
UmVxdWVzdCBpbnN0YW5jZSB0byB1c2UgaW50ZXJuYWxseS4KKyAqIEByZXR1cm4gYSBuZXcgYWxs
b2NhdGVkIHRoZSBFd2tfSW50ZW50X1JlcXVlc3Qgb2JqZWN0IG9uIHN1Y2VzcyBvciBAYyAwIG9u
IGZhaWx1cmUKKyAqLworRXdrX0ludGVudF9SZXF1ZXN0KiBld2tfaW50ZW50X3JlcXVlc3RfbmV3
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4gY29yZSkKK3sKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29yZSwgMCk7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0
KiByZXF1ZXN0ID0gbmV3IEV3a19JbnRlbnRfUmVxdWVzdDsKKyAgICByZXF1ZXN0LT5fX3JlZiA9
IDE7CisgICAgcmVxdWVzdC0+Y29yZSA9IGNvcmU7CisgICAgcmVxdWVzdC0+aW50ZW50ID0gZXdr
X2ludGVudF9uZXcoY29yZS0+aW50ZW50KCkpOworCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVl
c3QuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjgwY2JkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5oCkBAIC0wLDAgKzEsODIg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lm
bmRlZiBld2tfaW50ZW50X3JlcXVlc3RfaAorI2RlZmluZSBld2tfaW50ZW50X3JlcXVlc3RfaAor
CisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBu
YW1lIGZvciBfRXdrX0ludGVudCAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfUmVxdWVz
dCBFd2tfSW50ZW50X1JlcXVlc3Q7CisKKy8qKgorICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2Ug
Y291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCB0aGUgaW50
ZW50IHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLwor
RUFQSSB2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF9yZWYoRXdrX0ludGVudF9SZXF1ZXN0ICpyZXF1
ZXN0KTsKKworLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2
ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoKKyAqIFdoZW4gdGhlIHJlZmVyZW5j
ZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIGludGVudCByZXF1ZXN0IGlzIGZyZWVkLgorICoK
KyAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbnRlbnQgcmVxdWVzdCBvYmplY3QgdG8gZGVjcmVhc2Ug
dGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Vu
cmVmKEV3a19JbnRlbnRfUmVxdWVzdCAqcmVxdWVzdCk7CisKKy8qKgorICogUXVlcnkgaW50ZW50
IGZvciB0aGlzIHJlcXVlc3QuCisgKgorICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdCBpdGVtIHRv
IHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBpbnRlbnQgaW5zdGFuY2Uu
CisgKi8KK0VBUEkgRXdrX0ludGVudCAqZXdrX2ludGVudF9yZXF1ZXN0X2ludGVudF9nZXQoY29u
c3QgRXdrX0ludGVudF9SZXF1ZXN0ICpyZXF1ZXN0KTsKKworLyoqCisgKiBSZXBvcnQgcmVxdWVz
dCBzdWNjZXNzLgorICoKKyAqIFRoZSBwYXlsb2FkIGRhdGEgd2lsbCBiZSBwYXNzZWQgdG8gdGhl
IHN1Y2Nlc3MgY2FsbGJhY2sgcmVnaXN0ZXJlZCBieSB0aGUgY2xpZW50LgorICoKKyAqIEBwYXJh
bSByZXF1ZXN0IHJlcXVlc3QgaXRlbS4KKyAqIEBwYXJhbSByZXN1bHQgcGF5bG9hZCBkYXRhLgor
ICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Jlc3VsdF9wb3N0KEV3a19JbnRlbnRf
UmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciAqcmVzdWx0KTsKKworLyoqCisgKiBSZXBvcnQg
cmVxdWVzdCBmYWlsdXJlLgorICoKKyAqIFRoZSBwYXlsb2FkIGRhdGEgd2lsbCBiZSBwYXNzZWQg
dG8gdGhlIGVycm9yIGNhbGxiYWNrIHJlZ2lzdGVyZWQgYnkgdGhlIGNsaWVudC4KKyAqCisgKiBA
cGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0uCisgKiBAcGFyYW0gZmFpbHVyZSBwYXlsb2FkIGRh
dGEuCisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVyZV9wb3N0KEV3a19J
bnRlbnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciAqZmFpbHVyZSk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9yZXF1ZXN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UKaW5kZXggZDg0OGM5OC4uMDhkMDVjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCkBAIC04MSw2ICs4MSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9WSUJSQVRJT04gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVklERU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklE
RU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VC
X0FVRElPIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9J
TlRFTlRTLCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
VElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dPUktF
UlMgT04pCiBXRUJLSVRfT1BUSU9OX0VORCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142643</attachid>
            <date>2012-05-17 23:26:14 -0700</date>
            <delta_ts>2012-05-18 12:03:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>86354_simple_intents.patch</filename>
            <type>text/plain</type>
            <size>26077</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMjhhYmRkLi5mZjczMmJl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMTggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFdlYiBJbnRl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIEVuYWJsZSBX
RUJfSU5URU5UUyBmbGFnIGJ5IGRlZmF1bHQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0wNS0xNyAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMTc0MjgpOiBXZWJLaXQg
QVBJL1NQSSB3YXMgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMzk0YTU1NS4uMThjN2Q1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0yLDYgKzIsNyBAQCBTRVQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0iCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZGF0YWJhc2UiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvaW50ZW50cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIK
ICAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Jp
bmRpbmdzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAzMjJhMjA3Li5iYmJiZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTA1LTE4ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBp
bnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBX
ZWIgSW50ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYzNTQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBB
ZGQgbmV3IGV3a19pbnRlbnQuKiBhbmQgZXdrX2ludGVudF9yZXF1ZXN0LiogZmlsZXMgdG8gQ01h
a2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZToKKwogMjAxMi0wNS0xNyAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2Fu
dG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgQVBJIGZvciBXZWIgRGF0YWJhc2Ug
aGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDE4NDNjMmQuLjI5NWY4NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE5LDYgKzExOSw4IEBAIExJU1QoQVBQRU5EIFdl
YktpdF9TT1VSQ0VTCiAgICAgZWZsL2V3ay9ld2tfdmlldy5jcHAKICAgICBlZmwvZXdrL2V3a192
aWV3X3NpbmdsZS5jcHAKICAgICBlZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAorICAgIGVmbC9l
d2svZXdrX2ludGVudC5jcHAKKyAgICBlZmwvZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5jcHAKICAg
ICBlZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwCiAgICAgZWZsL2V3ay9ld2tfd2ViX2Rh
dGFiYXNlLmNwcAogKQpAQCAtMjY3LDYgKzI2OSw4IEBAIFNFVChFV2ViS2l0X0hFQURFUlMKICAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfc2VjdXJpdHlfcG9saWN5
LmgKICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfc2V0dGluZ3Mu
aAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a192aWV3LmgKKyAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfaW50ZW50LmgKKyAgICAk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a193aW5kb3dfZmVhdHVy
ZXMuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a193ZWJfZGF0
YWJhc2UuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDE4MjQ2MjAuLmQxNTFiNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMi0wNS0xOCAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBzaW1wbGUg
aW1wbGVtZW50YXRpb24gb2YgV2ViIEludGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCisKKyAgICAgICAgQWRkIG5ldyBFRkwgd3JhcHBlcnMgZm9yIFdlYkNvcmUncyBJbnRl
bnQgYW5kIEludGVudFJlcXVlc3QuCisgICAgICAgIEltcGxlbWVudCBkaXNwYXRjaEludGVudCgp
IGluIEVGTCdzIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBlbWl0IGEgbmV3CisgICAgICAgICJpbnRl
bnQsbmV3IiBzaWduYWwgb24gdGhlIGZyYW1lIHRvIG5vdGlmeSBjbGllbnRzIG9mIG5ldyBpbnRl
bnQKKyAgICAgICAgcmVxdWVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xp
ZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFt
ZV9pbnRlbnRfbmV3KToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdr
L2V3a19mcmFtZV9wcml2YXRlLmg6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50KToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0aW9uX2dl
dCk6CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRf
ZGF0YV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2dldCk6CisgICAgICAgIChl
d2tfaW50ZW50X2V4dHJhX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X25ldyk6CisgICAgICAg
IChld2tfaW50ZW50X2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfaW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAqIGV3ay9ld2tfaW50ZW50X3ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIChfRXdrX0ludGVudF9SZXF1ZXN0KToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9y
ZWYpOgorICAgICAgICAoZXdrX2ludGVudF9yZXF1ZXN0X3VucmVmKToKKyAgICAgICAgKGV3a19p
bnRlbnRfcmVxdWVzdF9pbnRlbnRfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9y
ZXN1bHRfcG9zdCk6CisgICAgICAgIChld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVyZV9wb3N0KToK
KyAgICAgICAgKGV3a19pbnRlbnRfcmVxdWVzdF9uZXcpOgorICAgICAgICAqIGV3ay9ld2tfaW50
ZW50X3JlcXVlc3QuaDogQWRkZWQuCisKIDIwMTItMDUtMTcgIFJhcGhhZWwgS3VibyBkYSBDb3N0
YSAgPHJha3Vjb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdW0RSVF0gQ2FsbCByZXNldElu
dGVybmFsc09iamVjdCgpIGFmdGVyIGVhY2ggdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCBk
NzhmMDIxLi5mNWJlNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKQEAgLTU0LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIldlYktpdFZlcnNpb24uaCIKICNpbmNsdWRlICJld2tfZnJhbWVfcHJpdmF0ZS5oIgor
I2luY2x1ZGUgImV3a19pbnRlbnRfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgi
CiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19w
cml2YXRlLmgiCkBAIC05NzAsNiArOTcyLDE1IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKIHsKIH0KIAorI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoSW50ZW50KFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4gaW50ZW50UmVxdWVzdCkKK3sKKyAgICBFd2tf
SW50ZW50X1JlcXVlc3QqIGV3a1JlcXVlc3QgPSBld2tfaW50ZW50X3JlcXVlc3RfbmV3KGludGVu
dFJlcXVlc3QpOworICAgIGV3a19mcmFtZV9pbnRlbnRfbmV3KG1fZnJhbWUsIGV3a1JlcXVlc3Qp
OworICAgIGV3a19pbnRlbnRfcmVxdWVzdF91bnJlZihld2tSZXF1ZXN0KTsKK30KKyNlbmRpZgor
CiBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmw6OmNyZWF0ZShFV0tQcml2YXRlOjpjb3JlRnJhbWUobV9mcmFtZSksIG1fZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNjcwNjExNC4uYzI1MjljNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
CkBAIC0xODUsNiArMTg1LDkgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMg
RnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRTdGFy
dGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpOworI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJbnRlbnRSZXF1ZXN0Pik7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgV1RGOjpQYXNzUmVmUHRy
PERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShj
b25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3QgS1VSTCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA2MTFkZTE3Li5hMDAyYTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMTUxOCw2ICsxNTE4LDE4IEBAIHZvaWQgZXdrX2ZyYW1l
X2xvYWRfcHJvZ3Jlc3NfY2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgZXdrX3Zp
ZXdfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKHNtYXJ0RGF0YS0+dmlldyk7CiB9CiAKKy8qKgorICog
QGludGVybmFsCisgKiBSZXBvcnRzIG5ldyBpbnRlbnQuCisgKgorICogRW1pdHMgc2lnbmFsOiAi
aW50ZW50LG5ldyIgd2l0aCBwb2ludGVyIHRvIGEgRXdrX0ludGVudF9SZXF1ZXN0LgorICovCit2
b2lkIGV3a19mcmFtZV9pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ludGVu
dF9SZXF1ZXN0KiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAiaW50ZW50LG5ldyIsIHJlcXVl
c3QpOworI2VuZGlmCit9CiAKIC8qKgogICogQGludGVybmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmgKaW5kZXggZjViYmExYi4uNjllZmYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19mcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aApAQCAtNDAsNiArNDAsNyBAQAogICogIC0gImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2Vk
Iiwgdm9pZDogcmVwb3J0cyB0aGF0IGVkaXRvciBjbGllbnQncwogICogICAgY29udGVudHMgd2Vy
ZSBjaGFuZ2VkCiAgKiAgLSAiaWNvbixjaGFuZ2VkIiwgdm9pZDogZnJhbWUgZmF2aWNvbiBjaGFu
Z2VkLgorICogIC0gImludGVudCxuZXciLCBFd2tJbnRlbnRSZXF1ZXN0KjogcmVwb3J0cyBuZXcg
aW50ZW50LgogICogIC0gImxvYWQsY29tbWl0dGVkIiwgdm9pZDogcmVwb3J0cyBsb2FkIGNvbW1p
dHRlZC4KICAqICAtICJsb2FkLGRvY3VtZW50LGZpbmlzaGVkIiwgdm9pZDogZnJhbWUgZmluaXNo
ZWQgbG9hZGluZyB0aGUgZG9jdW1lbnQuCiAgKiAgLSAibG9hZCxlcnJvciIsIGNvbnN0IEV3a19G
cmFtZV9Mb2FkX0Vycm9yKjogcmVwb3J0cyBsb2FkIGZhaWxlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lX3ByaXZhdGUuaAppbmRleCBiZDA4N2RlLi5kZDM3ODYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lX3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lX3ByaXZhdGUuaApAQCAtMjIsNiArMjIsNyBAQAogI2Rl
ZmluZSBld2tfZnJhbWVfcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJld2tfZnJhbWUuaCIKKyNpbmNs
dWRlICJld2tfaW50ZW50X3JlcXVlc3QuaCIKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02Nyw2ICs2OCw3
IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSwgRXZhc19PYmplY3QqIHZpZXcpOwogYm9vbCBld2tfZnJhbWVfdXJpX2NoYW5nZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChFdmFzX09i
amVjdCogZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfaWNvbl9jaGFuZ2VkKEV2YXNfT2JqZWN0
KiBld2tGcmFtZSk7Cit2b2lkIGV3a19mcmFtZV9pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSwgRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KTsKIAogV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3a0Zy
YW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBXZWJDb3JlOjpIVE1MUGx1
Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6
U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBs
b2FkTWFudWFsbHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ4YzQxMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisjaW5jbHVkZSAiSW50ZW50Lmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tf
cHJpdmF0ZS5oIgorI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisvKioKKyAqIFxz
dHJ1Y3QgIF9Fd2tfSW50ZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgaW50ZW50IGRhdGEu
CisgKi8KK3N0cnVjdCBfRXdrX0ludGVudCB7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAg
IFdlYkNvcmU6OkludGVudCogY29yZTsgLyoqPCBXZWJDb3JlIG9iamVjdCB3aGljaCBpcyByZXNw
b25zaWJsZSBmb3IgdGhlIGludGVudCAqLworI2VuZGlmCisgICAgY29uc3QgY2hhciogYWN0aW9u
OworICAgIGNvbnN0IGNoYXIqIHR5cGU7CisgICAgY29uc3QgY2hhciogZGF0YTsKKyAgICBjb25z
dCBjaGFyKiBzZXJ2aWNlOworfTsKKworI2RlZmluZSBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JF
VFVSTihpbnRlbnQsIGNvcmVfLCAuLi4pICAgICAgXAorICAgIGlmICghKGludGVudCkpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNB
TCgiaW50ZW50IGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGlmICghKGludGVudCktPmNvcmUpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgiaW50ZW50LT5jb3JlIGlzIE5V
TEwuIik7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFdlYkNv
cmU6OkludGVudCogY29yZV8gPSAoaW50ZW50KS0+Y29yZQorCitjb25zdCBjaGFyKiBld2tfaW50
ZW50X2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShX
RUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JFVFVSTihpbnRlbnQsIGNv
cmUsIDApOworCisgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0
c2lkZQorICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+
KGludGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPmFjdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+YWN0aW9uKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgcmV0dXJuIGV3a0ludGVudC0+YWN0aW9uOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3R5cGVfZ2V0KGNvbnN0IEV3
a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lO
VEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAwKTsKKworICAgIC8vIGhpZGUg
dGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKKyAgICBFd2tfSW50ZW50KiBl
d2tJbnRlbnQgPSBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihpbnRlbnQpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50LT50eXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb3JlLT50eXBlKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGV3a0ludGVu
dC0+dHlwZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3QgY2hhciog
ZXdrX2ludGVudF9kYXRhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7CisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRf
c2VydmljZV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JFVFVSTihpbnRlbnQsIGNvcmUs
IDApOworCisgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0c2lk
ZQorICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGlu
dGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPnNlcnZpY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPnNlcnZpY2UoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gZXdrSW50ZW50LT5zZXJ2aWNlOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChjb25z
dCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK3sKKyNpZiBFTkFCTEUoV0VC
X0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3Jl
LCAwKTsKKyAgICBXVEY6Okhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciB2
YWwgPSBjb3JlLT5leHRyYXMoKS5maW5kKFN0cmluZzo6ZnJvbVVURjgoa2V5KSk7CisgICAgaWYg
KHZhbCA9PSBjb3JlLT5leHRyYXMoKS5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIHN0cmR1cCh2YWwtPnNlY29uZC51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgcmV0dXJu
IDA7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKy8qKgorICogQGludGVy
bmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBFd2tfSW50ZW50IG9iamVjdC4KKyAqCisgKiBAcGFy
YW0gY29yZSBXZWJDb3JlOjpJbnRlbnQgaW5zdGFuY2UgdG8gdXNlIGludGVybmFsbHkuCisgKiBA
cmV0dXJuIGEgbmV3IGFsbG9jYXRlZCB0aGUgRXdrX0ludGVudCBvYmplY3Qgb24gc3VjZXNzIG9y
IEBjIDAgb24gZmFpbHVyZQorICovCitFd2tfSW50ZW50KiBld2tfaW50ZW50X25ldyhXZWJDb3Jl
OjpJbnRlbnQqIGNvcmUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNv
cmUsIDApOworICAgIEV3a19JbnRlbnQqIGludGVudCA9IG5ldyBFd2tfSW50ZW50OworICAgIGlu
dGVudC0+Y29yZSA9IGNvcmU7CisKKyAgICByZXR1cm4gaW50ZW50OworfQorCisvKioKKyAqIEBp
bnRlcm5hbAorICoKKyAqIEZyZWUgZ2l2ZW4gRXdrX0ludGVudCBpbnN0YW5jZS4KKyAqCisgKiBA
cGFyYW0gaW50ZW50IHRoZSBvYmplY3QgdG8gZnJlZS4KKyAqLwordm9pZCBld2tfaW50ZW50X2Zy
ZWUoRXdrX0ludGVudCogaW50ZW50KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
KGludGVudCk7CisKKyAgICBkZWxldGUgaW50ZW50OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19pbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWQxYmI4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuaApA
QCAtMCwwICsxLDk3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgZXdrX2ludGVudF9oCisjZGVmaW5lIGV3a19pbnRlbnRfaAorCisj
aW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2Vu
ZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0ludGVudCAqLwordHlwZWRl
ZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKKworLyoqCisgKiBRdWVyeSBhY3Rpb24g
Zm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVl
cnkuCisgKgorICogQHJldHVybiB0aGUgYWN0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5V
TEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3Ry
aW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYg
c29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYo
KSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVw
KCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUXVlcnkgdHlwZSBmb3IgdGhpcyBpbnRlbnQu
CisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0
dXJuIHRoZSB0eXBlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBp
cworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFu
ZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFf
c3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29u
c3QgY2hhciAqZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOwor
CisvKioKKyAqIFF1ZXJ5IGRhdGEgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRl
bnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgZGF0YSBwb2ludGVy
LCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFu
dGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAg
ICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVp
bmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9y
CisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRf
ZGF0YV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBzZXJ2
aWNlIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRv
IHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhlIHNlcnZpY2UgcG9pbnRlciwgdGhhdCBtYXkgYmUg
QGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWlu
YV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vy
c2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJl
X3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBz
dHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNv
bnN0IEV3a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUmV0cmlldmVzIHRoZSB2YWx1ZSAo
aWYgYW55KSBmcm9tIHRoZSBleHRyYSBkYXRhIGRpY3Rpb25hcnkgdGhpcyBpbnRlbnQgd2FzIGNv
bnN0cnVjdGVkIHdpdGguCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVy
eS4KKyAqIEBwYXJhbSBrZXkga2V5IHRvIHF1ZXJ5IGluIHRoZSBkaWN0aW9uYXJ5LgorICoKKyAq
IEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBl
cnJvciBvciBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICovCitFQVBJIGNoYXIgKmV3a19p
bnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfaW50ZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3ByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWM3NjczCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRl
ZiBld2tfaW50ZW50X3ByaXZhdGVfaAorI2RlZmluZSBld2tfaW50ZW50X3ByaXZhdGVfaAorCisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorLy8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIEludGVudDsKK2NsYXNzIEludGVudFJlcXVlc3Q7Cit9CisKK0V3
a19JbnRlbnQqIGV3a19pbnRlbnRfbmV3KFdlYkNvcmU6OkludGVudCogY29yZSk7Cit2b2lkIGV3
a19pbnRlbnRfZnJlZShFd2tfSW50ZW50KiBpbnRlbnQpOworRXdrX0ludGVudF9SZXF1ZXN0KiBl
d2tfaW50ZW50X3JlcXVlc3RfbmV3KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4g
Y29yZSk7CisjZW5kaWYKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfcHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjZjYmQxODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ludGVudF9yZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9yZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJJ
bnRlbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5j
bHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKwor
LyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudF9SZXF1ZXN0CisgKiBAYnJpZWYgICBDb250YWlu
cyB0aGUgaW50ZW50IHJlcXVlc3QgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfSW50ZW50X1JlcXVl
c3QgeworICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IHRoZSBvYmplY3QgKi8KKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgUmVmUHRyPFdlYkNv
cmU6OkludGVudFJlcXVlc3Q+IGNvcmU7CisjZW5kaWYKKyAgICBFd2tfSW50ZW50KiBpbnRlbnQ7
Cit9OworCisjZGVmaW5lIEVXS19JTlRFTlRfUkVRVUVTVF9DT1JFX0dFVF9PUl9SRVRVUk4ocmVx
dWVzdCwgY29yZV8sIC4uLikgICAgICBcCisgICAgaWYgKCEocmVxdWVzdCkpIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIENSSVRJ
Q0FMKCJyZXF1ZXN0IGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEocmVxdWVz
dCktPmNvcmUpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIENSSVRJQ0FMKCJyZXF1ZXN0LT5jb3JlIGlzIE5VTEwuIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgUmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGNvcmVfID0gKHJlcXVlc3QpLT5jb3Jl
CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3JlZihFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVl
c3QpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOKHJlcXVlc3QpOworICAgICsrcmVxdWVzdC0+X19yZWY7CisjZW5kaWYKK30KKwordm9p
ZCBld2tfaW50ZW50X3JlcXVlc3RfdW5yZWYoRXdrX0ludGVudF9SZXF1ZXN0KiByZXF1ZXN0KQor
eworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihyZXF1ZXN0KTsKKworICAgIGlmICgtLXJlcXVlc3QtPl9fcmVmKQorICAgICAgICByZXR1cm47
CisKKyAgICBld2tfaW50ZW50X2ZyZWUocmVxdWVzdC0+aW50ZW50KTsKKyAgICBkZWxldGUgcmVx
dWVzdDsKKyNlbmRpZgorfQorCitFd2tfSW50ZW50KiBld2tfaW50ZW50X3JlcXVlc3RfaW50ZW50
X2dldChjb25zdCBFd2tfSW50ZW50X1JlcXVlc3QqIHJlcXVlc3QpCit7CisjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTKQorICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAw
KTsKKworICAgIHJldHVybiByZXF1ZXN0LT5pbnRlbnQ7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK3ZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Jlc3VsdF9wb3N0KEV3a19JbnRl
bnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogcmVzdWx0KQoreworI2lmIEVOQUJMRShX
RUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1JFUVVFU1RfQ09SRV9HRVRfT1JfUkVUVVJOKHJl
cXVlc3QsIGNvcmUpOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShTdHJpbmc6
OmZyb21VVEY4KHJlc3VsdCkpOworICAgIGNvcmUtPnBvc3RSZXN1bHQodmFsdWUucmVsZWFzZSgp
LmxlYWtSZWYoKSk7CisjZW5kaWYKK30KKwordm9pZCBld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVy
ZV9wb3N0KEV3a19JbnRlbnRfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogZmFpbHVyZSkK
K3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9SRVFVRVNUX0NPUkVf
R0VUX09SX1JFVFVSTihyZXF1ZXN0LCBjb3JlKTsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChmYWlsdXJlKSk7CisgICAgY29yZS0+cG9zdFJlc3Vs
dCh2YWx1ZS5yZWxlYXNlKCkubGVha1JlZigpKTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTKQorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBDcmVhdGVzIGEgbmV3IEV3a19J
bnRlbnRfUmVxdWVzdCBvYmplY3QuCisgKgorICogQHBhcmFtIGNvcmUgV2ViQ29yZTo6SW50ZW50
UmVxdWVzdCBpbnN0YW5jZSB0byB1c2UgaW50ZXJuYWxseS4KKyAqIEByZXR1cm4gYSBuZXcgYWxs
b2NhdGVkIHRoZSBFd2tfSW50ZW50X1JlcXVlc3Qgb2JqZWN0IG9uIHN1Y2VzcyBvciBAYyAwIG9u
IGZhaWx1cmUKKyAqLworRXdrX0ludGVudF9SZXF1ZXN0KiBld2tfaW50ZW50X3JlcXVlc3RfbmV3
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4gY29yZSkKK3sKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29yZSwgMCk7CisgICAgRXdrX0ludGVudF9SZXF1ZXN0
KiByZXF1ZXN0ID0gbmV3IEV3a19JbnRlbnRfUmVxdWVzdDsKKyAgICByZXF1ZXN0LT5fX3JlZiA9
IDE7CisgICAgcmVxdWVzdC0+Y29yZSA9IGNvcmU7CisgICAgcmVxdWVzdC0+aW50ZW50ID0gZXdr
X2ludGVudF9uZXcoY29yZS0+aW50ZW50KCkpOworCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVl
c3QuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50X3JlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTU0NjQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnRfcmVxdWVzdC5oCkBAIC0wLDAgKzEsODIg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lm
bmRlZiBld2tfaW50ZW50X3JlcXVlc3RfaAorI2RlZmluZSBld2tfaW50ZW50X3JlcXVlc3RfaAor
CisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBu
YW1lIGZvciBfRXdrX0ludGVudCAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfUmVxdWVz
dCBFd2tfSW50ZW50X1JlcXVlc3Q7CisKKy8qKgorICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2Ug
Y291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gcmVxdWVzdCB0aGUgaW50
ZW50IHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLwor
RUFQSSB2b2lkIGV3a19pbnRlbnRfcmVxdWVzdF9yZWYoRXdrX0ludGVudF9SZXF1ZXN0ICpyZXF1
ZXN0KTsKKworLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2
ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoKKyAqIFdoZW4gdGhlIHJlZmVyZW5j
ZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIGludGVudCByZXF1ZXN0IGlzIGZyZWVkLgorICoK
KyAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbnRlbnQgcmVxdWVzdCBvYmplY3QgdG8gZGVjcmVhc2Ug
dGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Vu
cmVmKEV3a19JbnRlbnRfUmVxdWVzdCAqcmVxdWVzdCk7CisKKy8qKgorICogUXVlcnkgaW50ZW50
IGZvciB0aGlzIHJlcXVlc3QuCisgKgorICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdCBpdGVtIHRv
IHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBpbnRlbnQgaW5zdGFuY2Uu
CisgKi8KK0VBUEkgRXdrX0ludGVudCAqZXdrX2ludGVudF9yZXF1ZXN0X2ludGVudF9nZXQoY29u
c3QgRXdrX0ludGVudF9SZXF1ZXN0ICpyZXF1ZXN0KTsKKworLyoqCisgKiBSZXBvcnQgcmVxdWVz
dCBzdWNjZXNzLgorICoKKyAqIFRoZSBwYXlsb2FkIGRhdGEgd2lsbCBiZSBwYXNzZWQgdG8gdGhl
IHN1Y2Nlc3MgY2FsbGJhY2sgcmVnaXN0ZXJlZCBieSB0aGUgY2xpZW50LgorICoKKyAqIEBwYXJh
bSByZXF1ZXN0IHJlcXVlc3QgaXRlbS4KKyAqIEBwYXJhbSByZXN1bHQgcGF5bG9hZCBkYXRhLgor
ICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZXF1ZXN0X3Jlc3VsdF9wb3N0KEV3a19JbnRlbnRf
UmVxdWVzdCAqcmVxdWVzdCwgY29uc3QgY2hhciAqcmVzdWx0KTsKKworLyoqCisgKiBSZXBvcnQg
cmVxdWVzdCBmYWlsdXJlLgorICoKKyAqIFRoZSBwYXlsb2FkIGRhdGEgd2lsbCBiZSBwYXNzZWQg
dG8gdGhlIGVycm9yIGNhbGxiYWNrIHJlZ2lzdGVyZWQgYnkgdGhlIGNsaWVudC4KKyAqCisgKiBA
cGFyYW0gcmVxdWVzdCByZXF1ZXN0IGl0ZW0uCisgKiBAcGFyYW0gZmFpbHVyZSBwYXlsb2FkIGRh
dGEuCisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3JlcXVlc3RfZmFpbHVyZV9wb3N0KEV3a19J
bnRlbnRfUmVxdWVzdCAqcmVxdWVzdCwgY29uc3QgY2hhciAqZmFpbHVyZSk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2ludGVudF9yZXF1ZXN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UKaW5kZXggZDg0OGM5OC4uMDhkMDVjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCkBAIC04MSw2ICs4MSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9WSUJSQVRJT04gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVklERU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklE
RU9fVFJBQ0sgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VC
X0FVRElPIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9J
TlRFTlRTLCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
VElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dPUktF
UlMgT04pCiBXRUJLSVRfT1BUSU9OX0VORCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>