<?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>108952</bug_id>
          
          <creation_ts>2013-02-05 09:43:49 -0800</creation_ts>
          <short_desc>[Qt][WK2] Replace use of WebPreferences with use of WKPrefences C API</short_desc>
          <delta_ts>2013-02-27 03:42:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108471</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Brüning">michael.bruning</reporter>
          <assigned_to name="Michael Brüning">michael.bruning</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>menard</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825564</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-05 09:43:49 -0800</bug_when>
    <thetext>Most of this is used in QWebPreferences and QQuickWebView*...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826482</commentid>
    <comment_count>1</comment_count>
      <attachid>186865</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-06 08:50:04 -0800</bug_when>
    <thetext>Created attachment 186865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827375</commentid>
    <comment_count>2</comment_count>
      <attachid>186865</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-07 05:39:35 -0800</bug_when>
    <thetext>Comment on attachment 186865
Patch

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

I have a couple of comments.

Would &quot;int(x)&quot; syntax work as good as &quot;static_cast&lt;int&gt;(x)&quot; but with less noise?

&gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:187
&gt; +        WKPreferencesSetStandardFontFamily(preferencesRef(), WKStringCreateWithQString(family));

I think these WKStringRefs leaking here and below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827450</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-07 06:49:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 186865 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186865&amp;action=review

Thanks for the comments, Caio!
&gt; 
&gt; I have a couple of comments.
&gt; 
&gt; Would &quot;int(x)&quot; syntax work as good as &quot;static_cast&lt;int&gt;(x)&quot; but with less noise?
I&apos;d rather not use the function-style cast since it is not explicitly defined which cast type will be used and static_cast does not have this ambiguity.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:187
&gt; &gt; +        WKPreferencesSetStandardFontFamily(preferencesRef(), WKStringCreateWithQString(family));
&gt; 
&gt; I think these WKStringRefs leaking here and below.
True, good catch, thanks :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827462</commentid>
    <comment_count>4</comment_count>
      <attachid>187098</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-07 06:56:15 -0800</bug_when>
    <thetext>Created attachment 187098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827487</commentid>
    <comment_count>5</comment_count>
      <attachid>187098</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-07 07:18:47 -0800</bug_when>
    <thetext>Comment on attachment 187098
Patch

Attachment 187098 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16430185</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827501</commentid>
    <comment_count>6</comment_count>
      <attachid>187107</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-07 07:34:51 -0800</bug_when>
    <thetext>Created attachment 187107
Patch

Fixed leaks by using adoptWK(xyz).get().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827507</commentid>
    <comment_count>7</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-07 07:40:54 -0800</bug_when>
    <thetext>LGTM.

To add those WK2 C APIs you need feedback from Apple developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827570</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-07 08:48:31 -0800</bug_when>
    <thetext>Dear Benjamin, could I ask you to please have a look once again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827893</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-07 14:25:59 -0800</bug_when>
    <thetext>Can you please split the patch in two. One using the existing APIs, and create a second bug for the new C APIs?

The change from WebKit::WebPreferences to WKPreferencesRef is great. I can review that quickly for all the existing APIs.

Adding the API is against our goal of diminishing the current mess. I&apos;ll have to look carefully at that part and possibly ask it to be Qt specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828374</commentid>
    <comment_count>10</comment_count>
      <attachid>187275</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-08 03:06:40 -0800</bug_when>
    <thetext>Created attachment 187275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828393</commentid>
    <comment_count>11</comment_count>
      <attachid>187279</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-08 03:28:47 -0800</bug_when>
    <thetext>Created attachment 187279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828404</commentid>
    <comment_count>12</comment_count>
      <attachid>187107</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-08 03:50:45 -0800</bug_when>
    <thetext>Comment on attachment 187107
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.h:242
&gt; +// Defaults to false.
&gt; +WK_EXPORT bool WKPreferencesGetForceCompositingMode(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetForceCompositingMode(WKPreferencesRef preferencesRef, bool enabled);
&gt; +
&gt; +// Defaults to false.
&gt; +WK_EXPORT bool WKPreferencesGetScrollAnimatorEnabled(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetScrollAnimatorEnabled(WKPreferencesRef preferencesRef, bool enabled);
&gt; +

Let&apos;s just not expose these in the &quot;QML&quot; preferences API and then we also don&apos;t need them here at all.

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.h:253
&gt; +WK_EXPORT uint32_t WKPreferencesGetLayoutFallbackWidth(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetLayoutFallbackWidth(WKPreferencesRef preferencesRef, uint32_t width);
&gt; +
&gt; +// Defaults to 0.
&gt; +WK_EXPORT uint32_t WKPreferencesGetDeviceWidth(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetDeviceWidth(WKPreferencesRef preferencesRef, uint32_t width);
&gt; +
&gt; +// Defaults to 0.
&gt; +WK_EXPORT uint32_t WKPreferencesGetDeviceHeight(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetDeviceHeight(WKPreferencesRef preferencesRef, uint32_t height);

We might not need those public either if instead it&apos;s just the view that uses them (the rawwebview in the current design).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828476</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-08 05:37:41 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 187107 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187107&amp;action=review
&gt; 
&gt; &gt; +// Defaults to false.
&gt; &gt; +WK_EXPORT bool WKPreferencesGetScrollAnimatorEnabled(WKPreferencesRef preferencesRef);
&gt; &gt; +WK_EXPORT void WKPreferencesSetScrollAnimatorEnabled(WKPreferencesRef preferencesRef, bool enabled);
&gt; &gt; +
At least this one is currently exposed to QWebPreferences - should we remove it then?
&gt; 
&gt; Let&apos;s just not expose these in the &quot;QML&quot; preferences API and then we also don&apos;t need them here at all.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPreferences.h:253
&gt; &gt; +WK_EXPORT uint32_t WKPreferencesGetLayoutFallbackWidth(WKPreferencesRef preferencesRef);
&gt; &gt; +WK_EXPORT void WKPreferencesSetLayoutFallbackWidth(WKPreferencesRef preferencesRef, uint32_t width);
&gt; &gt; +
&gt; &gt; +// Defaults to 0.
&gt; &gt; +WK_EXPORT uint32_t WKPreferencesGetDeviceWidth(WKPreferencesRef preferencesRef);
&gt; &gt; +WK_EXPORT void WKPreferencesSetDeviceWidth(WKPreferencesRef preferencesRef, uint32_t width);
&gt; &gt; +
&gt; &gt; +// Defaults to 0.
&gt; &gt; +WK_EXPORT uint32_t WKPreferencesGetDeviceHeight(WKPreferencesRef preferencesRef);
&gt; &gt; +WK_EXPORT void WKPreferencesSetDeviceHeight(WKPreferencesRef preferencesRef, uint32_t height);
&gt; 
&gt; We might not need those public either if instead it&apos;s just the view that uses them (the rawwebview in the current design).
True, they are only used by the view afaics. So let&apos;s leave them for now and see what we do with them as part of the move to QRawWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828480</commentid>
    <comment_count>14</comment_count>
      <attachid>187107</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-08 05:42:41 -0800</bug_when>
    <thetext>Comment on attachment 187107
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.cpp:1040
&gt; +void WKPreferencesSetForceCompositingMode(WKPreferencesRef preferencesRef, bool enabled)
&gt; +{
&gt; +    toImpl(preferencesRef)-&gt;setForceCompositingMode(enabled);
&gt; +}

These are not generic settings, thus we should not add C API for them. Instead these could either be set when you construct your view or as part of your view API. I would prefer the former. It is basically the same for all these settings you are exposing here.

They are either view related or not something you would want to expose to a app developer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828540</commentid>
    <comment_count>15</comment_count>
      <attachid>187314</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-08 07:08:32 -0800</bug_when>
    <thetext>Created attachment 187314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829624</commentid>
    <comment_count>16</comment_count>
      <attachid>187314</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-11 06:30:28 -0800</bug_when>
    <thetext>Comment on attachment 187314
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:48
&gt;  {
&gt;      switch (attr) {
&gt;      case AutoLoadImages:
&gt; -        return preferences()-&gt;loadsImagesAutomatically();
&gt; +        return WKPreferencesGetLoadsImagesAutomatically(preferencesRef());
&gt;  #if ENABLE(FULLSCREEN_API)
&gt;      case FullScreenEnabled:
&gt; -        return preferences()-&gt;fullScreenEnabled();
&gt; +        return WKPreferencesGetFullScreenEnabled(preferencesRef());
&gt;  #endif
&gt;      case JavascriptEnabled:

Why don&apos;t you not just get the preferencesRef once? then I guess you could avoid that weird getter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829666</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-11 07:29:08 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 187314 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187314&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:48
&gt; &gt;  {
&gt; &gt;      switch (attr) {
&gt; &gt;      case AutoLoadImages:
&gt; &gt; -        return preferences()-&gt;loadsImagesAutomatically();
&gt; &gt; +        return WKPreferencesGetLoadsImagesAutomatically(preferencesRef());
&gt; &gt;  #if ENABLE(FULLSCREEN_API)
&gt; &gt;      case FullScreenEnabled:
&gt; &gt; -        return preferences()-&gt;fullScreenEnabled();
&gt; &gt; +        return WKPreferencesGetFullScreenEnabled(preferencesRef());
&gt; &gt;  #endif
&gt; &gt;      case JavascriptEnabled:
&gt; 
&gt; Why don&apos;t you not just get the preferencesRef once? then I guess you could avoid that weird getter

Could you please elaborate why this getter is &quot;weird&quot;? It is how the preferences reference was retrieved before we moved to the C++ API and changed the getter to the return a WebPreferences pointer. I can change it of course and save a little bit in the binary, I just would like to understand if there is anything else that I have overlooked.

Or did you mean saving the preferences reference in a member variable? I would rather not do that as the C API offers a way to set another preferences object as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829732</commentid>
    <comment_count>18</comment_count>
      <attachid>187581</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-11 08:44:09 -0800</bug_when>
    <thetext>Created attachment 187581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829737</commentid>
    <comment_count>19</comment_count>
      <attachid>187581</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-11 08:46:12 -0800</bug_when>
    <thetext>Comment on attachment 187581
Patch

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

I lot nicer

&gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:573
&gt; -WebKit::WebPreferences* QWebPreferencesPrivate::preferences() const
&gt; +WKPreferencesRef QWebPreferencesPrivate::getPreferencesRef() const
&gt;  {
&gt; -    return webViewPrivate-&gt;webPageProxy-&gt;pageGroup()-&gt;preferences();
&gt; +    return WKPageGroupGetPreferences(WKPageGetPageGroup(webViewPrivate-&gt;webPage.get()));

you still really need this?

If you need it outside of this class, isnt it better using it direclty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829783</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-11 09:23:35 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 187581 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187581&amp;action=review
&gt; 
&gt; I lot nicer
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:573
&gt; &gt; -WebKit::WebPreferences* QWebPreferencesPrivate::preferences() const
&gt; &gt; +WKPreferencesRef QWebPreferencesPrivate::getPreferencesRef() const
&gt; &gt;  {
&gt; &gt; -    return webViewPrivate-&gt;webPageProxy-&gt;pageGroup()-&gt;preferences();
&gt; &gt; +    return WKPageGroupGetPreferences(WKPageGetPageGroup(webViewPrivate-&gt;webPage.get()));
&gt; 
&gt; you still really need this?
&gt; 
&gt; If you need it outside of this class, isnt it better using it direclty?

Okay, now I see your point. Why didn&apos;t you mention that you wanted to use the pageGroup directly ? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829795</commentid>
    <comment_count>21</comment_count>
      <attachid>187598</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-11 09:36:34 -0800</bug_when>
    <thetext>Created attachment 187598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830902</commentid>
    <comment_count>22</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-12 06:52:19 -0800</bug_when>
    <thetext>Looks good to me. Though if ScrollAnimator is removed as a preference, I personally think we should change it to default enabled to match the other WK2 ports. We have it special cased in WebPreferenceStore.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830910</commentid>
    <comment_count>23</comment_count>
      <attachid>187598</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-12 07:06:08 -0800</bug_when>
    <thetext>Comment on attachment 187598
Patch

LGTM. Benjamin, can you sign off on this? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837443</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-20 07:02:17 -0800</bug_when>
    <thetext>Ping, seeking sign-off from WK2 owners :). This is a fairly straight-forward port from internal preferences to WKPreferences usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842811</commentid>
    <comment_count>25</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-27 01:01:00 -0800</bug_when>
    <thetext>WK2-sign-off-ping :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842826</commentid>
    <comment_count>26</comment_count>
      <attachid>187598</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-27 01:15:54 -0800</bug_when>
    <thetext>Comment on attachment 187598
Patch

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

I sign off on this, feel free to review for WK2.

&gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:197
&gt; +    WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate-&gt;pageGroup.get());
&gt;      switch (which) {
&gt;      case StandardFont:
&gt; -        preferences()-&gt;setStandardFontFamily(family);
&gt; +        WKPreferencesSetStandardFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());
&gt;          break;
&gt;      case FixedFont:
&gt; -        preferences()-&gt;setFixedFontFamily(family);
&gt; +        WKPreferencesSetFixedFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());
&gt;          break;
&gt;      case SerifFont:
&gt; -        preferences()-&gt;setSerifFontFamily(family);
&gt; +        WKPreferencesSetSerifFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());
&gt;          break;
&gt;      case SansSerifFont:
&gt; -        preferences()-&gt;setSansSerifFontFamily(family);
&gt; +        WKPreferencesSetSansSerifFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());
&gt;          break;
&gt;      case CursiveFont:
&gt; -        preferences()-&gt;setCursiveFontFamily(family);
&gt; +        WKPreferencesSetCursiveFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());
&gt;          break;
&gt;      case FantasyFont:
&gt; -        preferences()-&gt;setFantasyFontFamily(family);
&gt; +        WKPreferencesSetFantasyFontFamily(preferencesRef, adoptWK(WKStringCreateWithQString(family)).get());

Please move adoptWK(WKStringCreateWithQString(family)) above the switch. Something like:
    WKRetain&lt;WKStringRef&gt; familyRef = adoptWK(WKStringCreateWithQString(family).

&gt; Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp:209
&gt; -        return preferences()-&gt;standardFontFamily();
&gt; +        return WKStringCopyQString(adoptWK(WKPreferencesCopyStandardFontFamily(preferencesRef)).get());

A new function adoptToQString(WKStringRef) would be useful here:
    return adoptToQString(WKPreferencesCopyStandardFontFamily(preferencesRef))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842877</commentid>
    <comment_count>27</comment_count>
      <attachid>190479</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-27 02:52:02 -0800</bug_when>
    <thetext>Created attachment 190479
Patch

Added the adoptToQString method Benjamin suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842899</commentid>
    <comment_count>28</comment_count>
      <attachid>190484</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-27 03:33:12 -0800</bug_when>
    <thetext>Created attachment 190484
Patch

Moved adoptToQString into the WebKit namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842906</commentid>
    <comment_count>29</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-02-27 03:42:46 -0800</bug_when>
    <thetext>Committed r144165: &lt;http://trac.webkit.org/changeset/144165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186865</attachid>
            <date>2013-02-06 08:50:04 -0800</date>
            <delta_ts>2013-02-07 06:56:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130206174640.patch</filename>
            <type>text/plain</type>
            <size>25101</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODdiNmFlNGM1OGExN2E1
Mzk3OGRmNmY2NDAxNTNjYTgwMzEyOGFhMy4uYWEyODc0ZjAwMGE1N2EwMDM2ZGU2MDYxYzdjZjA1
OGM0NWY1ZjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTA2ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBJdCBhZGRzIG1ldGhvZHMgdG8gdGhlIFdLUHJlZmVyZW5j
ZXMgQyBBUEkgd2hlcmUgbmVjZXNzYXJ5IHRvCisgICAgICAgIHByZXZlbnQgaGF2aW5nIHRvIHVz
ZSB0aGUgV2ViUHJlZmVyZW5jZXMgbWV0aG9kcyBkaXJlY3RseS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKToK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNHZXREZXZpY2VXaWR0aCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lk
dGgpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6OnByZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFByZWZlcnJlZE1pbmltdW1Db250ZW50c1dp
ZHRoKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZVdpZHRoKToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVdpZHRoKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZUhlaWdodCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXREZXZpY2VIZWlnaHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OnNldEZvbnRGYW1pbHkpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZh
bWlseSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZSk6Cisg
ICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250U2l6ZSk6CisgICAgICAgIChRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXdQcml2YXRlOjpRUmF3
V2ViVmlld1ByaXZhdGUpOgorCiAyMDEzLTAyLTA2ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBUYWtlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQg
d2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggNmMxYjY4YWZkODQwZDZhM2Iw
NGJjMzRhMzQ1MjFhZGM4MjgzMzExZS4uODU2Y2IxMDBjM2ZkY2UxZDQxMmE2ODNlNTU2ZTc0MTY2
MTQ5NTc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcApAQCAtMTAzMywzICsxMDMzLDUzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBh
Z2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKFdLUHJlZmVyZW5jZXNS
CiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnBhZ2VWaXNpYmlsaXR5QmFz
ZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZShlbmFibGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Zm9yY2VDb21wb3NpdGluZ01vZGUoKTsKK30KKwor
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTY3Jv
bGxBbmltYXRvckVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBl
bmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFNjcm9sbEFuaW1hdG9y
RW5hYmxlZChlbmFibGVkKTsKK30KKwordWludDMyX3QgV0tQcmVmZXJlbmNlc0dldExheW91dEZh
bGxiYWNrV2lkdGgoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOworfQorCit2
b2lkIFdLUHJlZmVyZW5jZXNTZXRMYXlvdXRGYWxsYmFja1dpZHRoKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldExheW91dEZhbGxiYWNrV2lkdGgod2lkdGgpOworfQorCit1aW50MzJfdCBXS1By
ZWZlcmVuY2VzR2V0RGV2aWNlV2lkdGgoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZGV2aWNlV2lkdGgoKTsKK30K
Kwordm9pZCBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lkdGgoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgdWludDMyX3Qgd2lkdGgpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c2V0RGV2aWNlV2lkdGgod2lkdGgpOworfQorCit1aW50MzJfdCBXS1ByZWZlcmVuY2VzR2V0
RGV2aWNlSGVpZ2h0KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0
dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmRldmljZUhlaWdodCgpOworfQorCit2b2lkIFdL
UHJlZmVyZW5jZXNTZXREZXZpY2VIZWlnaHQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgdWludDMyX3QgaGVpZ2h0KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldERl
dmljZUhlaWdodChoZWlnaHQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmgKaW5kZXggZDQ1ZWYwMjAzNTExODNmNzZkNDk3ODhkNjkyYjAzNzE4
YjVmMDE4ZS4uYWIxMDc2YTE1ZmU2MjA3YTBlYTJlOTI5MGFkMDlmYzMzM2RlYjgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC0yMzIs
NiArMjMyLDI2IEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiBXS19FWFBPUlQgdm9pZCBXS1By
ZWZlcmVuY2VzU2V0UVRLaXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYs
IGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UVRLaXRFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBm
YWxzZS4KK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBib29sIGVuYWJsZWQpOworCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U2Ny
b2xsQW5pbWF0b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wg
ZW5hYmxlZCk7CisKKy8vIERlZmF1bHRzIHRvIDk4MC4KK1dLX0VYUE9SVCB1aW50MzJfdCBXS1By
ZWZlcmVuY2VzR2V0TGF5b3V0RmFsbGJhY2tXaWR0aChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMYXlvdXRGYWxsYmFja1dp
ZHRoKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKTsKKwor
Ly8gRGVmYXVsdHMgdG8gMC4KK1dLX0VYUE9SVCB1aW50MzJfdCBXS1ByZWZlcmVuY2VzR2V0RGV2
aWNlV2lkdGgoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9p
ZCBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lkdGgoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgdWludDMyX3Qgd2lkdGgpOworCisvLyBEZWZhdWx0cyB0byAwLgorV0tfRVhQT1JUIHVp
bnQzMl90IFdLUHJlZmVyZW5jZXNHZXREZXZpY2VIZWlnaHQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IGhlaWdodCk7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBmMWYxM2NiMjc2ZTIyYzA1MDcyNDRj
Yzc0MGQzYjViY2IxYTg0NGZmLi43MjIzYTg2YWJmMTA1Y2RjNTFlYTQ4NDAwM2NkOTFmODZkODk3
NzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgInFxdWlja25ldHdvcmtyZXBseV9wLmgiCiAjaW5j
bHVkZSAicXF1aWNrbmV0d29ya3JlcXVlc3RfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2Vf
cF9wLmgiCkBAIC02Niw2ICs2NSw3IEBACiAjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tWaWV3Pgog
I2luY2x1ZGUgPFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXS1BhZ2VH
cm91cC5oPgorI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KICNpbmNsdWRlIDxXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdLU3RyaW5nLmg+CiAjaW5jbHVkZSA8V0tTdHJp
bmdRdC5oPgpAQCAtMTkyLDYgKzE5MiwxMSBAQCBzdGF0aWMgUVF1aWNrV2ViVmlld1ByaXZhdGUq
IGNyZWF0ZVByaXZhdGVPYmplY3QoUVF1aWNrV2ViVmlldyogcHVibGljT2JqZWN0KQogICAgIHJl
dHVybiBuZXcgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGUocHVibGljT2JqZWN0KTsKIH0KIAor
c3RhdGljIFdLUHJlZmVyZW5jZXNSZWYgZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihXS1Bh
Z2VSZWYgcGFnZVJlZikKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHZXRQYWdlR3JvdXAocGFnZVJlZikpOworfQorCiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
RmxpY2thYmxlQXhpc0xvY2tlcjo6RmxpY2thYmxlQXhpc0xvY2tlcigpCiAgICAgOiBtX2FsbG93
ZWREaXJlY3Rpb24oUVF1aWNrRmxpY2thYmxlOjpBdXRvRmxpY2tEaXJlY3Rpb24pCiAgICAgLCBt
X3RpbWUoMCksIG1fc2FtcGxlQ291bnQoMCkKQEAgLTMyMywxNCArMzI4LDE1IEBAIHZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhCiAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFz
ZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFPYmplY3Q6OmNvbm5lY3QoaWNvbkRh
dGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFTdHJpbmcpKSwgcV9wdHIsIFNM
T1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykpKTsKIAorICAgIFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKHdl
YlBhZ2UuZ2V0KCkpOwogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxl
IGJlIHNldCBiZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgd2ViUGFnZVByb3h5LT5wYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0
Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0Rm9yY2VDb21wb3NpdGluZ01vZGUocHJlZmVyZW5jZXNSZWYsIHRydWUpOwogICAg
IGJvb2wgc2hvd0RlYnVnVmlzdWFscyA9IHFnZXRlbnYoIldFQktJVF9TSE9XX0NPTVBPU0lUSU5H
X0RFQlVHX1ZJU1VBTFMiKSA9PSAiMSI7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShzaG93RGVidWdWaXN1
YWxzKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRD
b21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAg
d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0RnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCh0cnVlKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldENvbXBv
c2l0aW5nQm9yZGVyc1Zpc2libGUocHJlZmVyZW5jZXNSZWYsIHNob3dEZWJ1Z1Zpc3VhbHMpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUocHJl
ZmVyZW5jZXNSZWYsIHNob3dEZWJ1Z1Zpc3VhbHMpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKIAogICAgIHBhZ2VDbGll
bnQuaW5pdGlhbGl6ZShxX3B0ciwgcGFnZVZpZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0YSgp
LCAmdW5kb0NvbnRyb2xsZXIpOwogICAgIHdlYlBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKQEAgLTk3MSwyMSArOTc3LDIyIEBAIHZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6
c2V0VXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZShib29sIGVuYWJsZSkKICAgICBzY3JlZW5zIGFz
IGl0IHByb3ZpZGVzIGEgZ29vZCB0cmFkZSBvZmYgYmV0d2VlbiBsZWdpdGFibGUgcGFnZXMgYW5k
CiAgICAgbm9uLWJyb2tlbiBjb250ZW50LgogICovCisKIGludCBRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsOjpwcmVmZXJyZWRNaW5pbXVtQ29udGVudHNXaWR0aCgpIGNvbnN0CiB7CiAgICAgUV9E
KGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPnBhZ2VH
cm91cCgpLT5wcmVmZXJlbmNlcygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dldExheW91dEZhbGxiYWNrV2lkdGgoZ2V0
UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdlLmdldCgpKSkpOwogfQogCiB2b2lk
IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFByZWZlcnJlZE1pbmltdW1Db250ZW50c1dp
ZHRoKGludCB3aWR0aCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgV2ViUHJlZmVy
ZW5jZXMqIHdlYlByZWZlcmVuY2VzID0gZC0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gZ2V0UHJl
ZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdlLmdldCgpKTsKIAotICAgIGlmICh3aWR0
aCA9PSB3ZWJQcmVmZXJlbmNlcy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpKQorICAgIGlmICh3aWR0
aCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFdLUHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRo
KHByZWZlcmVuY2VzUmVmKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlByZWZlcmVuY2Vz
LT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRoKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TGF5
b3V0RmFsbGJhY2tXaWR0aChwcmVmZXJlbmNlc1JlZiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHFN
YXgoMCwgd2lkdGgpKSk7CiAgICAgZW1pdCBwcmVmZXJyZWRNaW5pbXVtQ29udGVudHNXaWR0aENo
YW5nZWQoKTsKIH0KIApAQCAtMTIxMywxNCArMTIyMCwxNCBAQCB2b2lkIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6OnNldFVzZXJBZ2VudChjb25zdCBRU3RyaW5nJiB1c2VyQWdlbnQpCiAKIGlu
dCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpkZXZpY2VXaWR0aCgpIGNvbnN0CiB7Ci0gICAg
UV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPnBh
Z2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5kZXZpY2VXaWR0aCgpOworICAgIFFfRChjb25zdCBR
UXVpY2tXZWJWaWV3KTsgICAgCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tQcmVmZXJl
bmNlc0dldERldmljZVdpZHRoKGdldFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFn
ZS5nZXQoKSkpKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXREZXZp
Y2VXaWR0aChpbnQgdmFsdWUpCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwotICAgIGQtPndl
YlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldERldmljZVdpZHRoKHFN
YXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lkdGgoZ2V0UHJlZmVy
ZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdlLmdldCgpKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHFNYXgoMCwgdmFsdWUpKSk7CiAgICAgZW1pdCBkZXZpY2VXaWR0aENoYW5nZWQoKTsKIH0K
IApAQCAtMTIzOCwxMyArMTI0NSwxMyBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6
OnNldERldmljZVdpZHRoKGludCB2YWx1ZSkKIGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
OjpkZXZpY2VIZWlnaHQoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsK
LSAgICByZXR1cm4gZC0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+
ZGV2aWNlSGVpZ2h0KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNl
c0dldERldmljZUhlaWdodChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKGQtPndlYlBhZ2Uu
Z2V0KCkpKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0RGV2aWNl
SGVpZ2h0KGludCB2YWx1ZSkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgZC0+d2Vi
UGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlSGVpZ2h0KHFN
YXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KGdldFByZWZl
cmVuY2VzUmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFnZS5nZXQoKSksIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihxTWF4KDAsIHZhbHVlKSkpOwogICAgIGVtaXQgZGV2aWNlSGVpZ2h0Q2hhbmdlZCgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJl
bmNlcy5jcHAKaW5kZXggN2RkZmQ5MjY5NjUyNWQ3YTgyNWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4u
MjFmZDRhZjU1ZjQ5OThiNzgxZjZmNGViODM0OWRkMDdjODcxYWQ2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApAQCAtMjAs
MTAgKzIwLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVu
Y2VzX3AuaCIKIAotI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYnBy
ZWZlcmVuY2VzX3BfcC5oIgorI2luY2x1ZGUgPFdLUGFnZS5oPgorI2luY2x1ZGUgPFdLUGFnZUdy
b3VwLmg+CisjaW5jbHVkZSA8V0tTdHJpbmdRdC5oPgogCiBRV2ViUHJlZmVyZW5jZXMqIFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZlcmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRl
KiB3ZWJWaWV3UHJpdmF0ZSkKIHsKQEAgLTM3LDQ5ICszOCw0OSBAQCBib29sIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0
cmlidXRlCiB7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoK
LSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgp
OworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShwcmVmZXJlbmNlc1JlZigpKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgY2Fz
ZSBGdWxsU2NyZWVuRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZ1bGxT
Y3JlZW5FbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVl
bkVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRF
bmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdEVuYWJsZWQo
KTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVm
ZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICByZXR1cm4g
cHJlZmVyZW5jZXMoKS0+cGx1Z2luc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRQbHVnaW5zRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIE9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2Vz
KCktPm9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOworICAgICAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChwcmVmZXJl
bmNlc1JlZigpKTsKICAgICBjYXNlIExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAg
ICBjYXNlIFhTU0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCkt
Pnhzc0F1ZGl0b3JFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0WFNT
QXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQcml2YXRlQnJvd3Np
bmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6
Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsK
KyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJl
ZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgICAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5j
ZXNSZWYoKSk7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkOgotICAgICAgICByZXR1
cm4gcHJlZmVyZW5jZXMoKS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOworICAgICAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYo
KSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVkOgotICAgICAgICBy
ZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViR0xFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1By
ZWZlcmVuY2VzR2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKICAgICBjYXNlIENTU0N1c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHJl
dHVybiBwcmVmZXJlbmNlcygpLT5jc3NDdXN0b21GaWx0ZXJFbmFibGVkKCk7CisgICAgICAgIHJl
dHVybiBXS1ByZWZlcmVuY2VzR2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZigpKTsKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBjYXNlIFdl
YkF1ZGlvRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPndlYkF1ZGlvRW5h
YmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFdlYkF1ZGlvRW5hYmxlZChw
cmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQog
ICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogI2VuZGlmCiAg
ICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2Vz
KCktPmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBOb3Rp
ZmljYXRpb25zRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm5vdGlmaWNh
dGlvbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Tm90aWZpY2F0
aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkwLDY1ICs5MSw2
NSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogewogICAgIHN3aXRjaCAoYXR0cikgewogICAg
IGNhc2UgQXV0b0xvYWRJbWFnZXM6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFi
bGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNS
ZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3Jp
cHRFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChl
bmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQocHJlZmVy
ZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbHVnaW5zRW5h
YmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0UGx1Z2luc0VuYWJsZWQoZW5hYmxlKTsK
KyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCks
IGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGVFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQ
cmVmZXJlbmNlc1NldExvY2FsU3RvcmFnZUVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYU1NBdWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAg
IHByZWZlcmVuY2VzKCktPnNldFhTU0F1ZGl0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdL
UHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJs
ZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFi
bGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKHByZWZl
cmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJhbWVGbGF0
dGVuaW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RnJhbWVGbGF0dGVuaW5n
RW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5n
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgY2FzZSBXZWJHTEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCkt
PnNldFdlYkdMRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViR0xF
bmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVO
QUJMRShDU1NfU0hBREVSUykKICAgICBjYXNlIENTU0N1c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldENTU0N1c3RvbUZpbHRlckVuYWJsZWQoZW5hYmxlKTsKKyAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldENTU0N1c3RvbUZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXNS
ZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJM
RShXRUJfQVVESU8pCiAgICAgY2FzZSBXZWJBdWRpb0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVu
Y2VzKCktPnNldFdlYkF1ZGlvRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgY2FzZSBTY3Jv
bGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFNjcm9sbEFuaW1h
dG9yRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0
b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoKICAgICAgICAgLy8gRklYTUU6IENh
cmV0IGJyb3dzaW5nIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGluIHRvdWNoIG1vZGUuCi0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigp
LCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vdGlmaWNhdGlvbnNFbmFibGVk
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3RpZmljYXRpb25zRW5hYmxlZChlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5j
ZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODMsMjIgKzE4NCwyMiBAQCB2b2lkIFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9u
dEZhbWlseSB3aAogewogICAgIHN3aXRjaCAod2hpY2gpIHsKICAgICBjYXNlIFN0YW5kYXJkRm9u
dDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U3RhbmRhcmRGb250RmFtaWx5KGZhbWlseSk7
CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNS
ZWYoKSwgV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZpeGVkRm9u
dEZhbWlseShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5
KHByZWZlcmVuY2VzUmVmKCksIFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFNl
cmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5n
KGZhbWlseSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNhbnNTZXJpZkZvbnQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwg
V0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q3Vyc2l2ZUZvbnRG
YW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250RmFtaWx5
KHByZWZlcmVuY2VzUmVmKCksIFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmFudGFzeUZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldEZhbnRhc3lGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNT
ZXRGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBXS1N0cmluZ0NyZWF0ZVdpdGhR
U3RyaW5nKGZhbWlseSkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKQEAgLTIwOSwzMyArMjEwLDMzIEBAIFFTdHJpbmcgUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6Zm9udEZhbWlseShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpGb250RmFtaWx5IHdoCiB7CiAg
ICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICByZXR1
cm4gcHJlZmVyZW5jZXMoKS0+c3RhbmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBX
S1N0cmluZ0NvcHlRU3RyaW5nKFdLUHJlZmVyZW5jZXNDb3B5U3RhbmRhcmRGb250RmFtaWx5KHBy
ZWZlcmVuY2VzUmVmKCkpKTsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPmZpeGVkRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhXS1ByZWZlcmVuY2VzQ29weUZpeGVkRm9udEZhbWlseShwcmVmZXJlbmNlc1Jl
ZigpKSk7CiAgICAgY2FzZSBTZXJpZkZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygp
LT5zZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmco
V0tQcmVmZXJlbmNlc0NvcHlTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpOwogICAg
IGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNhbnNT
ZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tQ
cmVmZXJlbmNlc0NvcHlTYW5zU2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKTsKICAg
ICBjYXNlIEN1cnNpdmVGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3Vyc2l2
ZUZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tQcmVm
ZXJlbmNlc0NvcHlDdXJzaXZlRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSk7CiAgICAgY2Fz
ZSBGYW50YXN5Rm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZhbnRhc3lGb250
RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLUHJlZmVyZW5j
ZXNDb3B5RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgfQogfQogCiB2b2lkIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXpl
VHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAgICAKICAgICBzd2l0Y2ggKHR5cGUpIHsK
ICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0TWlu
aW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TWluaW11bUZvbnRT
aXplKHByZWZlcmVuY2VzUmVmKCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRE
ZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNp
emUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWZhdWx0Rml4ZWRGb250U2l6ZToKLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoc2l6ZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVmZXJlbmNlc1JlZigp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0NiwxMSArMjQ3LDExIEBA
IHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRTaXplKFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2Fz
ZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5taW5pbXVt
Rm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihXS1ByZWZl
cmVuY2VzR2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCkpKTsKICAgICBjYXNlIERl
ZmF1bHRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRlZmF1bHRGb250
U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5j
ZXNHZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkpOwogICAgIGNhc2UgRGVmYXVs
dEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kZWZhdWx0Rml4
ZWRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdLUHJl
ZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVmZXJlbmNlc1JlZigpKSk7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTU4Nyw5ICs1ODgsOSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0Tm90aWZp
Y2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgZW1pdCBub3RpZmljYXRpb25zRW5hYmxl
ZENoYW5nZWQoKTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6cHJlZmVyZW5jZXMoKSBjb25zdAorV0tQcmVmZXJlbmNlc1JlZiBRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHdlYlZp
ZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOworICAg
IHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJW
aWV3UHJpdmF0ZS0+d2ViUGFnZS5nZXQoKSkpOwogfQogCiBRV2ViUHJlZmVyZW5jZXNQcml2YXRl
KiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpnZXQoUVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZl
cmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmgKaW5kZXggYzgwOThiNTBlYWIyMzg5NWM4MDZiOTJjMmE2MTA4NDgxYjQ1NTIw
NS4uNzRiZDEwNGJmZGVhNjViODZiNzc5ODNhZmUwMjM1NTg2NmFlOWE4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgK
QEAgLTIwLDcgKzIwLDggQEAKICNpZm5kZWYgcXdlYnByZWZlcmVuY2VzX3BfcF9oCiAjZGVmaW5l
IHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNl
cy5oPgogCiBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKIApAQCAtNzQsNyArNzUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRGb250U2l6ZShGb250U2l6ZVR5cGUgdHlwZSwgdW5zaWduZWQg
c2l6ZSk7CiAgICAgdW5zaWduZWQgZm9udFNpemUoRm9udFNpemVUeXBlIHR5cGUpIGNvbnN0Owog
Ci0gICAgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKSBjb25zdDsKKyAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKCkgY29uc3Q7CiAKICAgICBRUXVpY2tXZWJW
aWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRleCBkMzQ4MWVhMDE2MmE1M2Qz
ZDA4ODNlN2Q2MzBjMzJmMzQ3MDNhMWVmLi5jNjgxM2Y5YjYyNjZhODZhMDVmN2I1MWVlNjdkMDI2
ZjlkYWZhNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jh
dy9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9y
YXcvcXJhd3dlYnZpZXcuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3Vw
LmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJxcmF3d2Vidmlld19w
X3AuaCIKKworI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvcXJhd3dlYnZpZXdf
cC5oPgogCkBAIC0yNTYsNyArMjU3LDcgQEAgUVJhd1dlYlZpZXdQcml2YXRlOjpRUmF3V2ViVmll
d1ByaXZhdGUoV2ViS2l0OjpXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJLaXQ6OldlYlAKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fd2ViUGFnZVByb3h5KGNvbnRleHQtPmNyZWF0ZVdl
YlBhZ2UodGhpcywgcGFnZUdyb3VwKSkKIHsKLSAgICBtX3dlYlBhZ2VQcm94eS0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShXS1BhZ2VHcm91cEdldFByZWZlcmVu
Y2VzKHRvQVBJKHBhZ2VHcm91cCkpLCB0cnVlKTsKIH0KIAogUVJhd1dlYlZpZXdQcml2YXRlOjp+
UVJhd1dlYlZpZXdQcml2YXRlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187098</attachid>
            <date>2013-02-07 06:56:15 -0800</date>
            <delta_ts>2013-02-07 07:34:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130207155250.patch</filename>
            <type>text/plain</type>
            <size>25290</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTczZTY0NGRmMmM4OTRj
Y2QzZmQ3MGNhOWRhNTE0YmRjYTlmZTNhYy4uNzk1NDA3MzZmNzRjNjg2NzQ0MjY0N2NkM2ViZDEw
NGEwOGM2NzRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEzLTAyLTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KIAorICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBJdCBhZGRzIG1ldGhvZHMgdG8gdGhlIFdLUHJlZmVyZW5j
ZXMgQyBBUEkgd2hlcmUgbmVjZXNzYXJ5IHRvCisgICAgICAgIHByZXZlbnQgaGF2aW5nIHRvIHVz
ZSB0aGUgV2ViUHJlZmVyZW5jZXMgbWV0aG9kcyBkaXJlY3RseS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKToK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNHZXREZXZpY2VXaWR0aCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lk
dGgpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6OnByZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFByZWZlcnJlZE1pbmltdW1Db250ZW50c1dp
ZHRoKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZVdpZHRoKToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVdpZHRoKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZUhlaWdodCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXREZXZpY2VIZWlnaHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OnNldEZvbnRGYW1pbHkpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZh
bWlseSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZSk6Cisg
ICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250U2l6ZSk6CisgICAgICAgIChRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXdQcml2YXRlOjpRUmF3
V2ViVmlld1ByaXZhdGUpOgorCisyMDEzLTAyLTA3ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFl
bC5icnVuaW5nQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdW1dLMl0gRm9sZCBRdFdlYlBhZ2VM
b2FkQ2xpZW50IGludG8gUVF1aWNrV2ViVmlld1ByaXZhdGUgYW5kIG1vdmUgdG8gQyBBUEkuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg0NzMKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDZjMWI2OGFmZDg0MGQ2YTNiMDRiYzM0YTM0NTIxYWRjODI4MzMxMWUuLjg1NmNiMTAwYzNm
ZGNlMWQ0MTJhNjgzZTU1NmU3NDE2NjE0OTU3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTEwMzMsMyArMTAzMyw1MyBAQCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZChXS1ByZWZlcmVuY2VzUgogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5wYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpOwogfQor
Cit2b2lkIFdLUHJlZmVyZW5jZXNTZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQ
cmVmZXJlbmNlc0dldEZvcmNlQ29tcG9zaXRpbmdNb2RlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmZvcmNlQ29t
cG9zaXRpbmdNb2RlKCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFNjcm9sbEFuaW1hdG9y
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0
b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zY3JvbGxBbmltYXRvckVuYWJsZWQoKTsKK30KKwordm9p
ZCBXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5zZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3VpbnQzMl90IFdL
UHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxheW91dEZh
bGxiYWNrV2lkdGgoKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0TGF5b3V0RmFsbGJhY2tX
aWR0aChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1aW50MzJfdCB3aWR0aCkKK3sK
KyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRo
KTsKK30KKwordWludDMyX3QgV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmRldmljZVdpZHRoKCk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldERldmljZVdpZHRo
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKQoreworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldERldmljZVdpZHRoKHdpZHRoKTsKK30KKwordWlu
dDMyX3QgV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5kZXZpY2VI
ZWlnaHQoKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IGhlaWdodCkKK3sKKyAgICB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5zZXREZXZpY2VIZWlnaHQoaGVpZ2h0KTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGQ0NWVmMDIwMzUx
MTgzZjc2ZDQ5Nzg4ZDY5MmIwMzcxOGI1ZjAxOGUuLmFiMTA3NmExNWZlNjIwN2EwZWEyZTkyOTBh
ZDA5ZmMzMzNkZWI4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuaApAQCAtMjMyLDYgKzIzMiwyNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZQogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFFUS2l0RW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldFFUS2l0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7
CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKKworLy8gRGVmYXVs
dHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2Nyb2xsQW5pbWF0
b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOworCisvLyBEZWZhdWx0cyB0byA5ODAuCitX
S19FWFBPUlQgdWludDMyX3QgV0tQcmVmZXJlbmNlc0dldExheW91dEZhbGxiYWNrV2lkdGgoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0TGF5b3V0RmFsbGJhY2tXaWR0aChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCB1aW50MzJfdCB3aWR0aCk7CisKKy8vIERlZmF1bHRzIHRvIDAuCitXS19FWFBPUlQgdWludDMy
X3QgV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERldmljZVdpZHRoKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKTsKKworLy8gRGVmYXVs
dHMgdG8gMC4KK1dLX0VYUE9SVCB1aW50MzJfdCBXS1ByZWZlcmVuY2VzR2V0RGV2aWNlSGVpZ2h0
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldERldmljZUhlaWdodChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1
aW50MzJfdCBoZWlnaHQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXgg
M2E4MDEwYThiZDcyYjY4ZGE1NTNkYzU3NGYyMTUyYWQyMjliMGJjMS4uMDU5YTI5OTFmOTc1NzI5
M2MyZGYzZTZhNTgwM2M2ZGY4NGEyMThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVk
ZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJxcXVpY2tu
ZXR3b3JrcmVwbHlfcC5oIgogI2luY2x1ZGUgInFxdWlja25ldHdvcmtyZXF1ZXN0X3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgpAQCAtNjUsNiArNjQsNyBAQAogI2luY2x1ZGUg
PFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
Lmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVuY2VzLmg+
CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXS1N0cmlu
Zy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAgLTE5Nyw2ICsxOTcsMTEgQEAgc3RhdGlj
IFFRdWlja1dlYlZpZXdQcml2YXRlKiBjcmVhdGVQcml2YXRlT2JqZWN0KFFRdWlja1dlYlZpZXcq
IHB1YmxpY09iamVjdCkKICAgICByZXR1cm4gbmV3IFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRl
KHB1YmxpY09iamVjdCk7CiB9CiAKK3N0YXRpYyBXS1ByZWZlcmVuY2VzUmVmIGdldFByZWZlcmVu
Y2VzUmVmRnJvbVBhZ2VSZWYoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHBhZ2VSZWYpKTsKK30KKwog
UVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6OkZsaWNrYWJsZUF4aXNM
b2NrZXIoKQogICAgIDogbV9hbGxvd2VkRGlyZWN0aW9uKFFRdWlja0ZsaWNrYWJsZTo6QXV0b0Zs
aWNrRGlyZWN0aW9uKQogICAgICwgbV90aW1lKDApLCBtX3NhbXBsZUNvdW50KDApCkBAIC0zNTYs
MTQgKzM2MSwxNSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIFF0V2ViSWNvbkRhdGFi
YXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBjb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKICAgICBR
T2JqZWN0Ojpjb25uZWN0KGljb25EYXRhYmFzZSwgU0lHTkFMKGljb25DaGFuZ2VkRm9yUGFnZVVS
TChRU3RyaW5nKSksIHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFTdHJp
bmcpKSk7CiAKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gZ2V0UHJlZmVy
ZW5jZXNSZWZGcm9tUGFnZVJlZih3ZWJQYWdlLmdldCgpKTsKICAgICAvLyBBbnkgcGFnZSBzZXR0
aW5nIHNob3VsZCBwcmVmZXJyYWJsZSBiZSBzZXQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwYWdlLgot
ICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZiwgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHByZWZl
cmVuY2VzUmVmLCB0cnVlKTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBxZ2V0ZW52KCJX
RUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiOwotICAgIHdlYlBh
Z2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAo
KS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKHNo
b3dEZWJ1Z1Zpc3VhbHMpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2ViUGFnZVByb3h5
LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKHRydWUpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVm
LCBzaG93RGVidWdWaXN1YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdSZXBh
aW50Q291bnRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1YWxzKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwg
dHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwg
dHJ1ZSk7CiAKICAgICBwYWdlQ2xpZW50LmluaXRpYWxpemUocV9wdHIsIHBhZ2VWaWV3UHJpdmF0
ZS0+ZXZlbnRIYW5kbGVyLmRhdGEoKSwgJnVuZG9Db250cm9sbGVyKTsKICAgICB3ZWJQYWdlUHJv
eHktPmluaXRpYWxpemVXZWJQYWdlKCk7CkBAIC0xMDU1LDIxICsxMDYxLDIyIEBAIHZvaWQgUVF1
aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0VXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZShib29s
IGVuYWJsZSkKICAgICBzY3JlZW5zIGFzIGl0IHByb3ZpZGVzIGEgZ29vZCB0cmFkZSBvZmYgYmV0
d2VlbiBsZWdpdGFibGUgcGFnZXMgYW5kCiAgICAgbm9uLWJyb2tlbiBjb250ZW50LgogICovCisK
IGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpwcmVmZXJyZWRNaW5pbXVtQ29udGVudHNX
aWR0aCgpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJldHVy
biBkLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5sYXlvdXRGYWxs
YmFja1dpZHRoKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dl
dExheW91dEZhbGxiYWNrV2lkdGgoZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQ
YWdlLmdldCgpKSkpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFBy
ZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoKGludCB3aWR0aCkKIHsKICAgICBRX0QoUVF1aWNr
V2ViVmlldyk7Ci0gICAgV2ViUHJlZmVyZW5jZXMqIHdlYlByZWZlcmVuY2VzID0gZC0+d2ViUGFn
ZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmID0gZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdl
LmdldCgpKTsKIAotICAgIGlmICh3aWR0aCA9PSB3ZWJQcmVmZXJlbmNlcy0+bGF5b3V0RmFsbGJh
Y2tXaWR0aCgpKQorICAgIGlmICh3aWR0aCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFdLUHJlZmVyZW5j
ZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKHByZWZlcmVuY2VzUmVmKSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHdlYlByZWZlcmVuY2VzLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRoKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TGF5b3V0RmFsbGJhY2tXaWR0aChwcmVmZXJlbmNlc1JlZiwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHFNYXgoMCwgd2lkdGgpKSk7CiAgICAgZW1pdCBwcmVmZXJy
ZWRNaW5pbXVtQ29udGVudHNXaWR0aENoYW5nZWQoKTsKIH0KIApAQCAtMTI5NywxNCArMTMwNCwx
NCBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFVzZXJBZ2VudChjb25zdCBR
U3RyaW5nJiB1c2VyQWdlbnQpCiAKIGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpkZXZp
Y2VXaWR0aCgpIGNvbnN0CiB7Ci0gICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJl
dHVybiBkLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5kZXZpY2VX
aWR0aCgpOworICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsgICAgCisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKGdldFByZWZlcmVuY2Vz
UmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFnZS5nZXQoKSkpKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJW
aWV3RXhwZXJpbWVudGFsOjpzZXREZXZpY2VXaWR0aChpbnQgdmFsdWUpCiB7CiAgICAgUV9EKFFR
dWlja1dlYlZpZXcpOwotICAgIGQtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCktPnNldERldmljZVdpZHRoKHFNYXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGV2aWNlV2lkdGgoZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdlLmdl
dCgpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHFNYXgoMCwgdmFsdWUpKSk7CiAgICAgZW1pdCBk
ZXZpY2VXaWR0aENoYW5nZWQoKTsKIH0KIApAQCAtMTMyMiwxMyArMTMyOSwxMyBAQCB2b2lkIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVdpZHRoKGludCB2YWx1ZSkKIGludCBR
UXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpkZXZpY2VIZWlnaHQoKSBjb25zdAogewogICAgIFFf
RChjb25zdCBRUXVpY2tXZWJWaWV3KTsKLSAgICByZXR1cm4gZC0+d2ViUGFnZVByb3h5LT5wYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+ZGV2aWNlSGVpZ2h0KCk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodChnZXRQcmVmZXJlbmNlc1Jl
ZkZyb21QYWdlUmVmKGQtPndlYlBhZ2UuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6c2V0RGV2aWNlSGVpZ2h0KGludCB2YWx1ZSkKIHsKICAgICBRX0QoUVF1
aWNrV2ViVmlldyk7Ci0gICAgZC0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c2V0RGV2aWNlSGVpZ2h0KHFNYXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGV2aWNlSGVpZ2h0KGdldFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFnZS5n
ZXQoKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PihxTWF4KDAsIHZhbHVlKSkpOwogICAgIGVtaXQg
ZGV2aWNlSGVpZ2h0Q2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggN2RkZmQ5MjY5NjUyNWQ3YTgy
NWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4uYWFiNTg4MWZkZWFjNzRlNzQxMDdlZTY2ZGJhNTUzNTY1
MDhmMmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnByZWZlcmVuY2VzLmNwcApAQCAtMjAsMTAgKzIwLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKIAotI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdf
cF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5oIgorI2luY2x1ZGUgPFdLUGFn
ZS5oPgorI2luY2x1ZGUgPFdLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V0tTdHJpbmdRdC5oPgog
CiBRV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZlcmVu
Y2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZSkKIHsKQEAgLTM3LDQ5ICsz
OCw0OSBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiB7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAg
ICAgY2FzZSBBdXRvTG9hZEltYWdlczoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNlc1JlZigpKTsKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAgICAgY2FzZSBGdWxsU2NyZWVuRW5hYmxlZDoKLSAgICAgICAgcmV0
dXJuIHByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjZW5k
aWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+amF2YVNjcmlwdEVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNH
ZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFBsdWdpbnNF
bmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+cGx1Z2luc0VuYWJsZWQoKTsK
KyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQbHVnaW5zRW5hYmxlZChwcmVmZXJlbmNl
c1JlZigpKTsKICAgICBjYXNlIE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDoKLSAg
ICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIExvY2FsU3RvcmFn
ZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5sb2NhbFN0b3JhZ2VFbmFi
bGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFhTU0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnhzc0F1ZGl0b3JFbmFibGVkKCk7CisgICAgICAgIHJl
dHVybiBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7
CiAgICAgY2FzZSBQcml2YXRlQnJvd3NpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAg
Y2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5k
bnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRE
TlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRy
YXNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJh
c0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2Ug
V2ViR0xFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViR0xFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViR0xFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKCkpOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICBjYXNlIENTU0N1c3RvbUZp
bHRlckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5jc3NDdXN0b21GaWx0
ZXJFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxF
KFdFQl9BVURJTykKICAgICBjYXNlIFdlYkF1ZGlvRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPndlYkF1ZGlvRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgogI2lmIEVO
QUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCk7Cisg
ICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKHByZWZl
cmVuY2VzUmVmKCkpOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoKLSAg
ICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CisgICAg
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5j
ZXNSZWYoKSk7CiAgICAgY2FzZSBOb3RpZmljYXRpb25zRW5hYmxlZDoKLSAgICAgICAgcmV0dXJu
IHByZWZlcmVuY2VzKCktPm5vdGlmaWNhdGlvbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTkwLDY1ICs5MSw2NSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogewog
ICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShlbmFibGUpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzUmVm
KCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRG
dWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRKYXZhU2NyaXB0RW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0
SmF2YVNjcmlwdEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
UGx1Z2luc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNF
bmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChwcmVm
ZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvY2FsU3Rv
cmFnZUVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvY2FsU3RvcmFnZUVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYU1NB
dWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFhTU0F1ZGl0b3JFbmFi
bGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxlZChw
cmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByaXZh
dGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldERO
U1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RE5T
UHJlZmV0Y2hpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUp
OwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwog
ICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgY2FzZSBXZWJHTEVuYWJsZWQ6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkdMRW5hYmxlZChlbmFibGUpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7
CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICBjYXNlIENTU0N1
c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldENTU0N1c3RvbUZp
bHRlckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldENTU0N1c3RvbUZp
bHRlckVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgY2FzZSBXZWJBdWRpb0Vu
YWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkF1ZGlvRW5hYmxlZChlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzUmVm
KCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNNT09USF9T
Q1JPTExJTkcpCiAgICAgY2FzZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHByZWZl
cmVuY2VzKCktPnNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1By
ZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJs
ZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxl
ZDoKICAgICAgICAgLy8gRklYTUU6IENhcmV0IGJyb3dzaW5nIGRvZXNuJ3QgbWFrZSBtdWNoIHNl
bnNlIGluIHRvdWNoIG1vZGUuCi0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldENhcmV0QnJvd3Np
bmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDYXJldEJyb3dzaW5n
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE5vdGlmaWNhdGlvbnNFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3Rp
ZmljYXRpb25zRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZp
Y2F0aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODMsMjIg
KzE4NCwyMiBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udEZhbWlseSB3aAogewogICAgIHN3aXRjaCAod2hpY2gp
IHsKICAgICBjYXNlIFN0YW5kYXJkRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U3Rh
bmRhcmRGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFy
ZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhR
U3RyaW5nKGZhbWlseSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0g
ICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1pbHkpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTZXJpZkZvbnRG
YW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShw
cmVmZXJlbmNlc1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5
KSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNhbnNTZXJpZkZvbnQ6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQ
cmVmZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q3Vyc2l2ZUZv
bnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250RmFt
aWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhm
YW1pbHkpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmFudGFzeUZvbnQ6Ci0gICAgICAg
IHByZWZlcmVuY2VzKCktPnNldEZhbnRhc3lGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdL
UHJlZmVyZW5jZXNTZXRGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkpOwogICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTIwOSwzMyArMjEwLDMzIEBAIFFTdHJpbmcg
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZhbWlseShRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpGb250RmFtaWx5IHdoCiB7CiAgICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3RhbmRh
cmRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+c3RhbmRhcmRGb250RmFtaWx5
KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NvcHlTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpKTsKICAgICBjYXNl
IEZpeGVkRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZpeGVkRm9udEZhbWls
eSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVy
ZW5jZXNDb3B5Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKSk7CiAgICAgY2FzZSBT
ZXJpZkZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5zZXJpZkZvbnRGYW1pbHko
KTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVu
Y2VzQ29weVNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSkpOwogICAgIGNhc2UgU2Fu
c1NlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNhbnNTZXJpZkZvbnRG
YW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1By
ZWZlcmVuY2VzQ29weVNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpKTsKICAg
ICBjYXNlIEN1cnNpdmVGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3Vyc2l2
ZUZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRX
SyhXS1ByZWZlcmVuY2VzQ29weUN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKSk7
CiAgICAgY2FzZSBGYW50YXN5Rm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZh
bnRhc3lGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFk
b3B0V0soV0tQcmVmZXJlbmNlc0NvcHlGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigp
KSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgfQogfQog
CiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAgICAKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCksIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihzaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAg
IFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KHNpemUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWZhdWx0
Rml4ZWRGb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZpeGVkRm9u
dFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rml4ZWRGb250U2l6
ZShwcmVmZXJlbmNlc1JlZigpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTI0NiwxMSArMjQ3LDExIEBAIHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRT
aXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0CiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5taW5pbXVtRm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihXS1ByZWZlcmVuY2VzR2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVm
KCkpKTsKICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVu
Y2VzKCktPmRlZmF1bHRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkp
OwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJl
bmNlcygpLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVmZXJl
bmNlc1JlZigpKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU4Nyw5ICs1ODgsOSBAQCB2b2lkIFFXZWJQcmVm
ZXJlbmNlczo6c2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgZW1pdCBu
b3RpZmljYXRpb25zRW5hYmxlZENoYW5nZWQoKTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNl
cyogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVyZW5jZXMoKSBjb25zdAorV0tQcmVmZXJl
bmNlc1JlZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5w
cmVmZXJlbmNlcygpOworICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFn
ZUdldFBhZ2VHcm91cCh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZS5nZXQoKSkpOwogfQogCiBRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpnZXQoUVdlYlByZWZl
cmVuY2VzKiBwcmVmZXJlbmNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYzgwOThiNTBlYWIyMzg5NWM4MDZi
OTJjMmE2MTA4NDgxYjQ1NTIwNS4uNzRiZDEwNGJmZGVhNjViODZiNzc5ODNhZmUwMjM1NTg2NmFl
OWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcF9wLmgKQEAgLTIwLDcgKzIwLDggQEAKICNpZm5kZWYgcXdlYnByZWZlcmVu
Y2VzX3BfcF9oCiAjZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogCi0jaW5jbHVkZSAiV2Vi
UHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tQcmVmZXJlbmNlcy5oPgogCiBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKIApA
QCAtNzQsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250U2l6ZShGb250U2l6ZVR5
cGUgdHlwZSwgdW5zaWduZWQgc2l6ZSk7CiAgICAgdW5zaWduZWQgZm9udFNpemUoRm9udFNpemVU
eXBlIHR5cGUpIGNvbnN0OwogCi0gICAgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5j
ZXMoKSBjb25zdDsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKCkgY29uc3Q7
CiAKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRl
eCBkMzQ4MWVhMDE2MmE1M2QzZDA4ODNlN2Q2MzBjMzJmMzQ3MDNhMWVmLi5jNjgxM2Y5YjYyNjZh
ODZhMDVmN2I1MWVlNjdkMDI2ZjlkYWZhNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV2ViUGFnZUdyb3VwLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNs
dWRlICJxcmF3d2Vidmlld19wX3AuaCIKKworI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oPgogI2luY2x1ZGUgPFdl
YktpdDIvcXJhd3dlYnZpZXdfcC5oPgogCkBAIC0yNTYsNyArMjU3LDcgQEAgUVJhd1dlYlZpZXdQ
cml2YXRlOjpRUmF3V2ViVmlld1ByaXZhdGUoV2ViS2l0OjpXZWJDb250ZXh0KiBjb250ZXh0LCBX
ZWJLaXQ6OldlYlAKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fd2ViUGFnZVByb3h5
KGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFnZUdyb3VwKSkKIHsKLSAgICBtX3dlYlBh
Z2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdN
b2RlKHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKHRvQVBJKHBhZ2VHcm91cCkpLCB0cnVlKTsKIH0KIAogUVJh
d1dlYlZpZXdQcml2YXRlOjp+UVJhd1dlYlZpZXdQcml2YXRlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187107</attachid>
            <date>2013-02-07 07:34:51 -0800</date>
            <delta_ts>2013-02-08 05:42:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130207163127.patch</filename>
            <type>text/plain</type>
            <size>25388</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTczZTY0NGRmMmM4OTRj
Y2QzZmQ3MGNhOWRhNTE0YmRjYTlmZTNhYy4uNzk1NDA3MzZmNzRjNjg2NzQ0MjY0N2NkM2ViZDEw
NGEwOGM2NzRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEzLTAyLTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KIAorICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBJdCBhZGRzIG1ldGhvZHMgdG8gdGhlIFdLUHJlZmVyZW5j
ZXMgQyBBUEkgd2hlcmUgbmVjZXNzYXJ5IHRvCisgICAgICAgIHByZXZlbnQgaGF2aW5nIHRvIHVz
ZSB0aGUgV2ViUHJlZmVyZW5jZXMgbWV0aG9kcyBkaXJlY3RseS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKToK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRMYXlvdXRGYWxsYmFja1dpZHRoKToKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNHZXREZXZpY2VXaWR0aCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RGV2aWNlV2lk
dGgpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6OnByZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFByZWZlcnJlZE1pbmltdW1Db250ZW50c1dp
ZHRoKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZVdpZHRoKToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVdpZHRoKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmRldmljZUhlaWdodCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXREZXZpY2VIZWlnaHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OnNldEZvbnRGYW1pbHkpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZh
bWlseSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZSk6Cisg
ICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250U2l6ZSk6CisgICAgICAgIChRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXdQcml2YXRlOjpRUmF3
V2ViVmlld1ByaXZhdGUpOgorCisyMDEzLTAyLTA3ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFl
bC5icnVuaW5nQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdW1dLMl0gRm9sZCBRdFdlYlBhZ2VM
b2FkQ2xpZW50IGludG8gUVF1aWNrV2ViVmlld1ByaXZhdGUgYW5kIG1vdmUgdG8gQyBBUEkuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg0NzMKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDZjMWI2OGFmZDg0MGQ2YTNiMDRiYzM0YTM0NTIxYWRjODI4MzMxMWUuLjg1NmNiMTAwYzNm
ZGNlMWQ0MTJhNjgzZTU1NmU3NDE2NjE0OTU3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTEwMzMsMyArMTAzMyw1MyBAQCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZChXS1ByZWZlcmVuY2VzUgogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5wYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpOwogfQor
Cit2b2lkIFdLUHJlZmVyZW5jZXNTZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQ
cmVmZXJlbmNlc0dldEZvcmNlQ29tcG9zaXRpbmdNb2RlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmZvcmNlQ29t
cG9zaXRpbmdNb2RlKCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFNjcm9sbEFuaW1hdG9y
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0
b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zY3JvbGxBbmltYXRvckVuYWJsZWQoKTsKK30KKwordm9p
ZCBXS1ByZWZlcmVuY2VzU2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5zZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3VpbnQzMl90IFdL
UHJlZmVyZW5jZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxheW91dEZh
bGxiYWNrV2lkdGgoKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0TGF5b3V0RmFsbGJhY2tX
aWR0aChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1aW50MzJfdCB3aWR0aCkKK3sK
KyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRo
KTsKK30KKwordWludDMyX3QgV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmRldmljZVdpZHRoKCk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldERldmljZVdpZHRo
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKQoreworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldERldmljZVdpZHRoKHdpZHRoKTsKK30KKwordWlu
dDMyX3QgV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5kZXZpY2VI
ZWlnaHQoKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0RGV2aWNlSGVpZ2h0KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IGhlaWdodCkKK3sKKyAgICB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5zZXREZXZpY2VIZWlnaHQoaGVpZ2h0KTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGQ0NWVmMDIwMzUx
MTgzZjc2ZDQ5Nzg4ZDY5MmIwMzcxOGI1ZjAxOGUuLmFiMTA3NmExNWZlNjIwN2EwZWEyZTkyOTBh
ZDA5ZmMzMzNkZWI4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuaApAQCAtMjMyLDYgKzIzMiwyNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZQogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFFUS2l0RW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldFFUS2l0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7
CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKKworLy8gRGVmYXVs
dHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2Nyb2xsQW5pbWF0
b3JFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOworCisvLyBEZWZhdWx0cyB0byA5ODAuCitX
S19FWFBPUlQgdWludDMyX3QgV0tQcmVmZXJlbmNlc0dldExheW91dEZhbGxiYWNrV2lkdGgoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0TGF5b3V0RmFsbGJhY2tXaWR0aChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCB1aW50MzJfdCB3aWR0aCk7CisKKy8vIERlZmF1bHRzIHRvIDAuCitXS19FWFBPUlQgdWludDMy
X3QgV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERldmljZVdpZHRoKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHdpZHRoKTsKKworLy8gRGVmYXVs
dHMgdG8gMC4KK1dLX0VYUE9SVCB1aW50MzJfdCBXS1ByZWZlcmVuY2VzR2V0RGV2aWNlSGVpZ2h0
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldERldmljZUhlaWdodChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1
aW50MzJfdCBoZWlnaHQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXgg
M2E4MDEwYThiZDcyYjY4ZGE1NTNkYzU3NGYyMTUyYWQyMjliMGJjMS4uMDU5YTI5OTFmOTc1NzI5
M2MyZGYzZTZhNTgwM2M2ZGY4NGEyMThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVk
ZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJxcXVpY2tu
ZXR3b3JrcmVwbHlfcC5oIgogI2luY2x1ZGUgInFxdWlja25ldHdvcmtyZXF1ZXN0X3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgpAQCAtNjUsNiArNjQsNyBAQAogI2luY2x1ZGUg
PFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
Lmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVuY2VzLmg+
CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXS1N0cmlu
Zy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAgLTE5Nyw2ICsxOTcsMTEgQEAgc3RhdGlj
IFFRdWlja1dlYlZpZXdQcml2YXRlKiBjcmVhdGVQcml2YXRlT2JqZWN0KFFRdWlja1dlYlZpZXcq
IHB1YmxpY09iamVjdCkKICAgICByZXR1cm4gbmV3IFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRl
KHB1YmxpY09iamVjdCk7CiB9CiAKK3N0YXRpYyBXS1ByZWZlcmVuY2VzUmVmIGdldFByZWZlcmVu
Y2VzUmVmRnJvbVBhZ2VSZWYoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHBhZ2VSZWYpKTsKK30KKwog
UVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6OkZsaWNrYWJsZUF4aXNM
b2NrZXIoKQogICAgIDogbV9hbGxvd2VkRGlyZWN0aW9uKFFRdWlja0ZsaWNrYWJsZTo6QXV0b0Zs
aWNrRGlyZWN0aW9uKQogICAgICwgbV90aW1lKDApLCBtX3NhbXBsZUNvdW50KDApCkBAIC0zNTYs
MTQgKzM2MSwxNSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIFF0V2ViSWNvbkRhdGFi
YXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBjb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKICAgICBR
T2JqZWN0Ojpjb25uZWN0KGljb25EYXRhYmFzZSwgU0lHTkFMKGljb25DaGFuZ2VkRm9yUGFnZVVS
TChRU3RyaW5nKSksIHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFTdHJp
bmcpKSk7CiAKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gZ2V0UHJlZmVy
ZW5jZXNSZWZGcm9tUGFnZVJlZih3ZWJQYWdlLmdldCgpKTsKICAgICAvLyBBbnkgcGFnZSBzZXR0
aW5nIHNob3VsZCBwcmVmZXJyYWJsZSBiZSBzZXQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwYWdlLgot
ICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZiwgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHByZWZl
cmVuY2VzUmVmLCB0cnVlKTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBxZ2V0ZW52KCJX
RUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiOwotICAgIHdlYlBh
Z2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAo
KS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKHNo
b3dEZWJ1Z1Zpc3VhbHMpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2ViUGFnZVByb3h5
LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKHRydWUpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVm
LCBzaG93RGVidWdWaXN1YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdSZXBh
aW50Q291bnRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1YWxzKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwg
dHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwg
dHJ1ZSk7CiAKICAgICBwYWdlQ2xpZW50LmluaXRpYWxpemUocV9wdHIsIHBhZ2VWaWV3UHJpdmF0
ZS0+ZXZlbnRIYW5kbGVyLmRhdGEoKSwgJnVuZG9Db250cm9sbGVyKTsKICAgICB3ZWJQYWdlUHJv
eHktPmluaXRpYWxpemVXZWJQYWdlKCk7CkBAIC0xMDU1LDIxICsxMDYxLDIyIEBAIHZvaWQgUVF1
aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0VXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZShib29s
IGVuYWJsZSkKICAgICBzY3JlZW5zIGFzIGl0IHByb3ZpZGVzIGEgZ29vZCB0cmFkZSBvZmYgYmV0
d2VlbiBsZWdpdGFibGUgcGFnZXMgYW5kCiAgICAgbm9uLWJyb2tlbiBjb250ZW50LgogICovCisK
IGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpwcmVmZXJyZWRNaW5pbXVtQ29udGVudHNX
aWR0aCgpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJldHVy
biBkLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5sYXlvdXRGYWxs
YmFja1dpZHRoKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dl
dExheW91dEZhbGxiYWNrV2lkdGgoZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQ
YWdlLmdldCgpKSkpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFBy
ZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoKGludCB3aWR0aCkKIHsKICAgICBRX0QoUVF1aWNr
V2ViVmlldyk7Ci0gICAgV2ViUHJlZmVyZW5jZXMqIHdlYlByZWZlcmVuY2VzID0gZC0+d2ViUGFn
ZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmID0gZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdl
LmdldCgpKTsKIAotICAgIGlmICh3aWR0aCA9PSB3ZWJQcmVmZXJlbmNlcy0+bGF5b3V0RmFsbGJh
Y2tXaWR0aCgpKQorICAgIGlmICh3aWR0aCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFdLUHJlZmVyZW5j
ZXNHZXRMYXlvdXRGYWxsYmFja1dpZHRoKHByZWZlcmVuY2VzUmVmKSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHdlYlByZWZlcmVuY2VzLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRoKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TGF5b3V0RmFsbGJhY2tXaWR0aChwcmVmZXJlbmNlc1JlZiwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHFNYXgoMCwgd2lkdGgpKSk7CiAgICAgZW1pdCBwcmVmZXJy
ZWRNaW5pbXVtQ29udGVudHNXaWR0aENoYW5nZWQoKTsKIH0KIApAQCAtMTI5NywxNCArMTMwNCwx
NCBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFVzZXJBZ2VudChjb25zdCBR
U3RyaW5nJiB1c2VyQWdlbnQpCiAKIGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpkZXZp
Y2VXaWR0aCgpIGNvbnN0CiB7Ci0gICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOwotICAgIHJl
dHVybiBkLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5kZXZpY2VX
aWR0aCgpOworICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsgICAgCisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dldERldmljZVdpZHRoKGdldFByZWZlcmVuY2Vz
UmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFnZS5nZXQoKSkpKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJW
aWV3RXhwZXJpbWVudGFsOjpzZXREZXZpY2VXaWR0aChpbnQgdmFsdWUpCiB7CiAgICAgUV9EKFFR
dWlja1dlYlZpZXcpOwotICAgIGQtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCktPnNldERldmljZVdpZHRoKHFNYXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGV2aWNlV2lkdGgoZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihkLT53ZWJQYWdlLmdl
dCgpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHFNYXgoMCwgdmFsdWUpKSk7CiAgICAgZW1pdCBk
ZXZpY2VXaWR0aENoYW5nZWQoKTsKIH0KIApAQCAtMTMyMiwxMyArMTMyOSwxMyBAQCB2b2lkIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVdpZHRoKGludCB2YWx1ZSkKIGludCBR
UXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpkZXZpY2VIZWlnaHQoKSBjb25zdAogewogICAgIFFf
RChjb25zdCBRUXVpY2tXZWJWaWV3KTsKLSAgICByZXR1cm4gZC0+d2ViUGFnZVByb3h5LT5wYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+ZGV2aWNlSGVpZ2h0KCk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oV0tQcmVmZXJlbmNlc0dldERldmljZUhlaWdodChnZXRQcmVmZXJlbmNlc1Jl
ZkZyb21QYWdlUmVmKGQtPndlYlBhZ2UuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6c2V0RGV2aWNlSGVpZ2h0KGludCB2YWx1ZSkKIHsKICAgICBRX0QoUVF1
aWNrV2ViVmlldyk7Ci0gICAgZC0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c2V0RGV2aWNlSGVpZ2h0KHFNYXgoMCwgdmFsdWUpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGV2aWNlSGVpZ2h0KGdldFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYoZC0+d2ViUGFnZS5n
ZXQoKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PihxTWF4KDAsIHZhbHVlKSkpOwogICAgIGVtaXQg
ZGV2aWNlSGVpZ2h0Q2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggN2RkZmQ5MjY5NjUyNWQ3YTgy
NWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4uNDVhNzFkYzljYmQwY2QzYWVlZWJiOWQzMTA4Y2IxN2Vm
YzgzNTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnByZWZlcmVuY2VzLmNwcApAQCAtMjAsMTAgKzIwLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKIAotI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdf
cF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5oIgorI2luY2x1ZGUgPFdLUGFn
ZS5oPgorI2luY2x1ZGUgPFdLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V0tSZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDxXS1N0cmluZ1F0Lmg+CiAKIFFXZWJQcmVmZXJlbmNlcyogUVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNrV2ViVmlld1ByaXZhdGUqIHdlYlZp
ZXdQcml2YXRlKQogewpAQCAtMzcsNDkgKzM5LDQ5IEBAIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUK
IHsKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAg
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZl
cmVuY2VzUmVmKCkpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNlIEZ1bGxT
Y3JlZW5FbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZnVsbFNjcmVlbkVu
YWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVuRW5hYmxl
ZChwcmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJsZWQ6
Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2Vz
UmVmKCkpOwogICAgIGNhc2UgUGx1Z2luc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJl
bmNlcygpLT5wbHVnaW5zRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dl
dFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgT2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+b2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVuY2VzUmVm
KCkpOwogICAgIGNhc2UgTG9jYWxTdG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZl
cmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2Ug
WFNTQXVkaXRpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+eHNzQXVk
aXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9y
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOworICAgICAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEROU1ByZWZldGNoaW5nRW5hYmxlZChwcmVmZXJlbmNl
c1JlZigpKTsKICAgICBjYXNlIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigp
KTsKICAgICBjYXNlIERldmVsb3BlckV4dHJhc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1By
ZWZlcmVuY2VzR2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgY2FzZSBXZWJHTEVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBw
cmVmZXJlbmNlcygpLT53ZWJHTEVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRXZWJHTEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjaWYgRU5BQkxFKENTU19TSEFE
RVJTKQogICAgIGNhc2UgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPmNzc0N1c3RvbUZpbHRlckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwog
I2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGNhc2UgV2ViQXVkaW9F
bmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViQXVkaW9FbmFibGVkKCk7
CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVu
Y2VzUmVmKCkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgY2Fz
ZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5z
Y3JvbGxBbmltYXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRT
Y3JvbGxBbmltYXRvckVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjZW5kaWYKICAgICBjYXNl
IENhcmV0QnJvd3NpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y2Fy
ZXRCcm93c2luZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRDYXJl
dEJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIE5vdGlmaWNhdGlv
bnNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bm90aWZpY2F0aW9uc0Vu
YWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXROb3RpZmljYXRpb25zRW5h
YmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTAsNjUgKzkyLDY1IEBAIHZv
aWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OldlYkF0dHJpYnV0ZSBhCiB7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBB
dXRvTG9hZEltYWdlczoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGNhc2UgRnVsbFNjcmVlbkVuYWJsZWQ6Ci0g
ICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJs
ZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEphdmFTY3JpcHRFbmFibGVkKGVuYWJsZSk7
CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGUpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVu
YWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTG9jYWxTdG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFhTU0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVy
ZW5jZXMoKS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJl
bmNlc1NldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoKLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFi
bGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVu
YWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHBy
ZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShXRUJH
TCkKICAgICBjYXNlIFdlYkdMRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0V2Vi
R0xFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENT
U19TSEFERVJTKQogICAgIGNhc2UgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChlbmFibGUpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKICAgICBjYXNlIFdlYkF1ZGlvRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+
c2V0V2ViQXVkaW9FbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJB
dWRpb0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKICAgICBjYXNlIFNjcm9sbEFuaW1h
dG9yRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2Nyb2xsQW5pbWF0b3JFbmFi
bGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTY3JvbGxBbmltYXRvckVuYWJs
ZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAg
ICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgogICAgICAgICAvLyBGSVhNRTogQ2FyZXQgYnJv
d3NpbmcgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgaW4gdG91Y2ggbW9kZS4KLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQ
cmVmZXJlbmNlc1NldENhcmV0QnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm90aWZpY2F0aW9uc0VuYWJsZWQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXROb3RpZmljYXRpb25zRW5hYmxlZChwcmVmZXJlbmNlc1JlZigp
LCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTE4MywyMiArMTg1LDIyIEBAIHZvaWQgUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6c2V0Rm9udEZhbWlseShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpGb250RmFtaWx5
IHdoCiB7CiAgICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAg
ICAgICBwcmVmZXJlbmNlcygpLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
Rml4ZWRGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRGaXhlZEZv
bnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3Ry
aW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZXJpZkZvbnQ6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFNlcmlmRm9udEZhbWlseShmYW1pbHkpOworICAg
ICAgICBXS1ByZWZlcmVuY2VzU2V0U2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+
c2V0U2Fuc1NlcmlmRm9udEZhbWlseShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0
U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEN1cnNpdmVGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRDdXJzaXZlRm9udEZhbWls
eShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Q3Vyc2l2ZUZvbnRGYW1pbHkocHJl
ZmVyZW5jZXNSZWYoKSwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkp
LmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGYW50YXN5Rm9udDoKLSAgICAgICAg
cHJlZmVyZW5jZXMoKS0+c2V0RmFudGFzeUZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQ
cmVmZXJlbmNlc1NldEZhbnRhc3lGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMjA5LDMzICsyMTEsMzMgQEAgUVN0
cmluZyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OkZvbnRGYW1pbHkgd2gKIHsKICAgICBzd2l0Y2ggKHdoaWNoKSB7CiAgICAgY2FzZSBT
dGFuZGFyZEZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5zdGFuZGFyZEZvbnRG
YW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1By
ZWZlcmVuY2VzQ29weVN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSkuZ2V0KCkp
OwogICAgIGNhc2UgRml4ZWRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Zml4
ZWRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0
V0soV0tQcmVmZXJlbmNlc0NvcHlGaXhlZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpLmdl
dCgpKTsKICAgICBjYXNlIFNlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCkt
PnNlcmlmRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhh
ZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkp
KS5nZXQoKSk7CiAgICAgY2FzZSBTYW5zU2VyaWZGb250OgotICAgICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMoKS0+c2Fuc1NlcmlmRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U2Fuc1NlcmlmRm9udEZhbWlseShw
cmVmZXJlbmNlc1JlZigpKSkuZ2V0KCkpOwogICAgIGNhc2UgQ3Vyc2l2ZUZvbnQ6Ci0gICAgICAg
IHJldHVybiBwcmVmZXJlbmNlcygpLT5jdXJzaXZlRm9udEZhbWlseSgpOworICAgICAgICByZXR1
cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5Q3Vyc2l2ZUZv
bnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpLmdldCgpKTsKICAgICBjYXNlIEZhbnRhc3lGb250
OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZmFudGFzeUZvbnRGYW1pbHkoKTsKKyAg
ICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29w
eUZhbnRhc3lGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKS5nZXQoKSk7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKICAgICB9CiB9CiAKIHZvaWQgUVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udFNp
emVUeXBlIHR5cGUsIHVuc2lnbmVkIHNpemUpCi17Cit7ICAgIAogICAgIHN3aXRjaCAodHlwZSkg
ewogICAgIGNhc2UgTWluaW11bUZvbnRTaXplOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRN
aW5pbXVtRm9udFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRNaW5pbXVtRm9u
dFNpemUocHJlZmVyZW5jZXNSZWYoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNpemUpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWZhdWx0Rm9udFNpemU6Ci0gICAgICAgIHByZWZlcmVu
Y2VzKCktPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dERlZmF1bHRGb250U2l6ZShwcmVmZXJlbmNlc1JlZigpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
c2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGaXhlZEZvbnRTaXplOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZShzaXplKTsKKyAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRGaXhlZEZvbnRTaXplKHByZWZlcmVuY2VzUmVm
KCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjQ2LDExICsyNDgsMTEg
QEAgdW5zaWduZWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udFNpemUoUVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTo6Rm9udFNpemVUeXBlIHQKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBj
YXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm1pbmlt
dW1Gb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdLUHJl
ZmVyZW5jZXNHZXRNaW5pbXVtRm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkpOwogICAgIGNhc2Ug
RGVmYXVsdEZvbnRTaXplOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGVmYXVsdEZv
bnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJl
bmNlc0dldERlZmF1bHRGb250U2l6ZShwcmVmZXJlbmNlc1JlZigpKSk7CiAgICAgY2FzZSBEZWZh
dWx0Rml4ZWRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRlZmF1bHRG
aXhlZEZvbnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQ
cmVmZXJlbmNlc0dldERlZmF1bHRGaXhlZEZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCkpKTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNTg3LDkgKzU4OSw5IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXROb3Rp
ZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZSkKICAgICBlbWl0IG5vdGlmaWNhdGlvbnNFbmFi
bGVkQ2hhbmdlZCgpOwogfQogCi1XZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjpwcmVmZXJlbmNlcygpIGNvbnN0CitXS1ByZWZlcmVuY2VzUmVmIFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnByZWZlcmVuY2VzUmVmKCkgY29uc3QKIHsKLSAgICByZXR1cm4gd2Vi
Vmlld1ByaXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7Cisg
ICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdl
YlZpZXdQcml2YXRlLT53ZWJQYWdlLmdldCgpKSk7CiB9CiAKIFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGUqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmdldChRV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVu
Y2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlc19wX3AuaAppbmRleCBjODA5OGI1MGVhYjIzODk1YzgwNmI5MmMyYTYxMDg0ODFiNDU1
MjA1Li43NGJkMTA0YmZkZWE2NWI4NmI3Nzk4M2FmZTAyMzU1ODY2YWU5YTgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3Au
aApAQCAtMjAsNyArMjAsOCBAQAogI2lmbmRlZiBxd2VicHJlZmVyZW5jZXNfcF9wX2gKICNkZWZp
bmUgcXdlYnByZWZlcmVuY2VzX3BfcF9oCiAKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgor
I2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVu
Y2VzLmg+CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwogCkBAIC03NCw3ICs3NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTaXplKEZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25l
ZCBzaXplKTsKICAgICB1bnNpZ25lZCBmb250U2l6ZShGb250U2l6ZVR5cGUgdHlwZSkgY29uc3Q7
CiAKLSAgICBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OworICAg
IFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYoKSBjb25zdDsKIAogICAgIFFRdWlja1dl
YlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCmluZGV4IGQzNDgxZWEwMTYyYTUz
ZDNkMDg4M2U3ZDYzMGMzMmYzNDcwM2ExZWYuLmM2ODEzZjliNjI2NmE4NmEwNWY3YjUxZWU2N2Qw
MjZmOWRhZmE2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cmF3L3FyYXd3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Jhdy9xcmF3d2Vidmlldy5jcHAKQEAgLTMyLDggKzMyLDkgQEAKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJQYWdlR3Jv
dXAuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgInFyYXd3ZWJ2aWV3
X3BfcC5oIgorCisjaW5jbHVkZSA8V0tQcmVmZXJlbmNlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9xcmF3d2Vidmll
d19wLmg+CiAKQEAgLTI1Niw3ICsyNTcsNyBAQCBRUmF3V2ViVmlld1ByaXZhdGU6OlFSYXdXZWJW
aWV3UHJpdmF0ZShXZWJLaXQ6OldlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdDo6V2ViUAogICAg
ICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV93ZWJQYWdlUHJveHkoY29udGV4dC0+Y3JlYXRl
V2ViUGFnZSh0aGlzLCBwYWdlR3JvdXApKQogewotICAgIG1fd2ViUGFnZVByb3h5LT5wYWdlR3Jv
dXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldEZvcmNlQ29tcG9zaXRpbmdNb2RlKFdLUGFnZUdyb3VwR2V0UHJlZmVy
ZW5jZXModG9BUEkocGFnZUdyb3VwKSksIHRydWUpOwogfQogCiBRUmF3V2ViVmlld1ByaXZhdGU6
On5RUmF3V2ViVmlld1ByaXZhdGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187275</attachid>
            <date>2013-02-08 03:06:40 -0800</date>
            <delta_ts>2013-02-08 03:28:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130208120315.patch</filename>
            <type>text/plain</type>
            <size>17257</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjk5YTI3NzVlZDU3NDU4
OTU1ODFjNjBmMzMzOThjYzA3M2NkMDBmMy4uOTRiMGQ5NzYyZDczMmM5OThlOGY4OGMxMWZiZjcz
M2Q0YjMyNjJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTA4ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKToKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRl
Ojp0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0
dHJpYnV0ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250RmFtaWx5
KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRGYW1pbHkpOgorICAgICAg
ICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUpOgorICAgICAgICAoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udFNpemUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6cHJlZmVyZW5jZXNSZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3BfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2
aWV3LmNwcDoKKwogMjAxMy0wMi0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MjIxMi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmlu
ZGV4IDNhODAxMGE4YmQ3MmI2OGRhNTUzZGM1NzRmMjE1MmFkMjI5YjBiYzEuLjg3MTViMDdlNjc0
OWZiZDNkM2Q3ZTAxZmI0OTA2ZDk0NmU5NDRiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2lu
Y2x1ZGUgPFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVu
Y2VzLmg+CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxX
S1N0cmluZy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAgLTE5Nyw2ICsxOTgsMTEgQEAg
c3RhdGljIFFRdWlja1dlYlZpZXdQcml2YXRlKiBjcmVhdGVQcml2YXRlT2JqZWN0KFFRdWlja1dl
YlZpZXcqIHB1YmxpY09iamVjdCkKICAgICByZXR1cm4gbmV3IFFRdWlja1dlYlZpZXdMZWdhY3lQ
cml2YXRlKHB1YmxpY09iamVjdCk7CiB9CiAKK3N0YXRpYyBXS1ByZWZlcmVuY2VzUmVmIGdldFBy
ZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJu
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHBhZ2VSZWYpKTsK
K30KKwogUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6OkZsaWNrYWJs
ZUF4aXNMb2NrZXIoKQogICAgIDogbV9hbGxvd2VkRGlyZWN0aW9uKFFRdWlja0ZsaWNrYWJsZTo6
QXV0b0ZsaWNrRGlyZWN0aW9uKQogICAgICwgbV90aW1lKDApLCBtX3NhbXBsZUNvdW50KDApCkBA
IC0zNTcsMTMgKzM2MywxNCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXpl
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIFFPYmplY3Q6
OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFTdHJp
bmcpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykpKTsK
IAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBiZWZv
cmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAg
d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IGdl
dFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYod2ViUGFnZS5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVl
KTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBxZ2V0ZW52KCJXRUJLSVRfU0hPV19DT01Q
T1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoc2hvd0Rl
YnVnVmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMo
KS0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKHNob3dEZWJ1Z1Zpc3VhbHMp
OwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1
YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNp
YmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1YWxzKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgdHJ1ZSk7CisgICAgV0tQ
cmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgdHJ1ZSk7CisgICAgd2Vi
UGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUodHJ1ZSk7CiAKICAgICBwYWdlQ2xpZW50LmluaXRpYWxpemUocV9wdHIsIHBhZ2VWaWV3
UHJpdmF0ZS0+ZXZlbnRIYW5kbGVyLmRhdGEoKSwgJnVuZG9Db250cm9sbGVyKTsKICAgICB3ZWJQ
YWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggN2RkZmQ5MjY5NjUyNWQ3
YTgyNWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4uN2JlZDRhY2I5MGZhZGVmYTBmNzk4NmZhMDlhNjgy
NWFlMDY3YTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnByZWZlcmVuY2VzLmNwcApAQCAtMjIsOCArMjIsMTQgQEAKIAogI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKICNpbmNsdWRlICJxd2Vi
cHJlZmVyZW5jZXNfcF9wLmgiCisjaW5jbHVkZSA8V0tQYWdlLmg+CisjaW5jbHVkZSA8V0tQYWdl
R3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVuY2VzLmg+CisjaW5jbHVkZSA8V0tSZXRhaW5Q
dHIuaD4KKyNpbmNsdWRlIDxXS1N0cmluZ1F0Lmg+CiAKIFFXZWJQcmVmZXJlbmNlcyogUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNrV2ViVmlld1ByaXZhdGUq
IHdlYlZpZXdQcml2YXRlKQogewpAQCAtMzcsNDkgKzQzLDQ5IEBAIGJvb2wgUVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRy
aWJ1dGUKIHsKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7
CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzUmVmKCkpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNl
IEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZnVsbFNj
cmVlbkVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVu
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgogICAgIGNhc2UgSmF2YXNjcmlwdEVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgp
OworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHByZWZl
cmVuY2VzUmVmKCkpOwogICAgIGNhc2UgUGx1Z2luc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBw
cmVmZXJlbmNlcygpLT5wbHVnaW5zRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgT2ZmbGlu
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKCkpOwogICAgIGNhc2UgTG9jYWxTdG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcmV0dXJu
IHByZWZlcmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAg
IGNhc2UgWFNTQXVkaXRpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+
eHNzQXVkaXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRYU1NB
dWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoK
LSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOwor
ICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEROU1ByZWZldGNoaW5nRW5hYmxlZChwcmVm
ZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Ci0gICAgICAg
IHJldHVybiBwcmVmZXJlbmNlcygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7CisgICAgICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNl
c1JlZigpKTsKICAgICBjYXNlIERldmVsb3BlckV4dHJhc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigp
KTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgY2FzZSBXZWJHTEVuYWJsZWQ6Ci0gICAgICAgIHJl
dHVybiBwcmVmZXJlbmNlcygpLT53ZWJHTEVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRXZWJHTEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjaWYgRU5BQkxFKENT
U19TSEFERVJTKQogICAgIGNhc2UgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcmV0
dXJuIHByZWZlcmVuY2VzKCktPmNzc0N1c3RvbUZpbHRlckVuYWJsZWQoKTsKKyAgICAgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKHByZWZlcmVuY2VzUmVm
KCkpOwogI2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGNhc2UgV2Vi
QXVkaW9FbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViQXVkaW9FbmFi
bGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViQXVkaW9FbmFibGVkKHBy
ZWZlcmVuY2VzUmVmKCkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAg
ICAgY2FzZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5zY3JvbGxBbmltYXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIHdlYlZpZXdQcml2
YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zY3JvbGxBbmlt
YXRvckVuYWJsZWQoKTsKICNlbmRpZgogICAgIGNhc2UgQ2FyZXRCcm93c2luZ0VuYWJsZWQ6Ci0g
ICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldENhcmV0QnJvd3NpbmdFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKCkpOwogICAgIGNhc2UgTm90aWZpY2F0aW9uc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5ub3RpZmljYXRpb25zRW5hYmxlZCgpOworICAgICAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldE5vdGlmaWNhdGlvbnNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC05MCw2NSArOTYsNjUgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpzZXRBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKIHsK
ICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNlc1Jl
ZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgY2FzZSBGdWxsU2NyZWVuRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
RnVsbFNjcmVlbkVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxT
Y3JlZW5FbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGx1Z2luc0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNl
dFBsdWdpbnNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5z
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb2NhbFN0
b3JhZ2VFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRMb2NhbFN0b3JhZ2VFbmFi
bGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2NhbFN0b3JhZ2VFbmFibGVk
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWFNT
QXVkaXRpbmdFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRYU1NBdWRpdG9yRW5h
YmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcml2
YXRlQnJvd3NpbmdFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRG5zUHJlZmV0Y2hFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRE
TlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldERO
U1ByZWZldGNoaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVu
Y2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVm
ZXJlbmNlc1NldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxl
KTsKICAgICBjYXNlIERldmVsb3BlckV4dHJhc0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJl
bmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVk
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUp
OwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgY2FzZSBDU1ND
dXN0b21GaWx0ZXJFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRDU1NDdXN0b21G
aWx0ZXJFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDU1NDdXN0b21G
aWx0ZXJFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGNhc2UgV2ViQXVkaW9F
bmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRXZWJBdWRpb0VuYWJsZWQoZW5hYmxl
KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVOQUJMRShTTU9PVEhf
U0NST0xMSU5HKQogICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgotICAgICAgICBwcmVm
ZXJlbmNlcygpLT5zZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgd2Vi
Vmlld1ByaXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNl
dFNjcm9sbEFuaW1hdG9yRW5hYmxlZChlbmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgog
ICAgIGNhc2UgQ2FyZXRCcm93c2luZ0VuYWJsZWQ6CiAgICAgICAgIC8vIEZJWE1FOiBDYXJldCBi
cm93c2luZyBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSBpbiB0b3VjaCBtb2RlLgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5h
YmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb3RpZmljYXRpb25zRW5hYmxlZDoKLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldE5vdGlmaWNhdGlvbnNFbmFibGVkKHByZWZlcmVuY2VzUmVm
KCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTgzLDIyICsxODksMjIgQEAgdm9pZCBRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjpzZXRGb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1p
bHkgd2gKIHsKICAgICBzd2l0Y2ggKHdoaWNoKSB7CiAgICAgY2FzZSBTdGFuZGFyZEZvbnQ6Ci0g
ICAgICAgIHByZWZlcmVuY2VzKCktPnNldFN0YW5kYXJkRm9udEZhbWlseShmYW1pbHkpOworICAg
ICAgICBXS1ByZWZlcmVuY2VzU2V0U3RhbmRhcmRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCks
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRml4ZWRGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5z
ZXRGaXhlZEZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEZpeGVk
Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFT
dHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlcmlmRm9u
dDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2VyaWZGb250RmFtaWx5KGZhbWlseSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwg
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTYW5zU2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRTYW5zU2VyaWZGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNT
ZXRTYW5zU2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ3Vyc2l2ZUZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEN1cnNpdmVGb250RmFt
aWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDdXJzaXZlRm9udEZhbWlseShw
cmVmZXJlbmNlc1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5
KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZhbnRhc3lGb250OgotICAgICAg
ICBwcmVmZXJlbmNlcygpLT5zZXRGYW50YXN5Rm9udEZhbWlseShmYW1pbHkpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0yMDksMzMgKzIxNSwzMyBAQCBR
U3RyaW5nIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRGYW1pbHkoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6Rm9udEZhbWlseSB3aAogewogICAgIHN3aXRjaCAod2hpY2gpIHsKICAgICBjYXNl
IFN0YW5kYXJkRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnN0YW5kYXJkRm9u
dEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdL
UHJlZmVyZW5jZXNDb3B5U3RhbmRhcmRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKS5nZXQo
KSk7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5m
aXhlZEZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRv
cHRXSyhXS1ByZWZlcmVuY2VzQ29weUZpeGVkRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSku
Z2V0KCkpOwogICAgIGNhc2UgU2VyaWZGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+c2VyaWZGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5n
KGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYo
KSkpLmdldCgpKTsKICAgICBjYXNlIFNhbnNTZXJpZkZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5zYW5zU2VyaWZGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmlu
Z0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTYW5zU2VyaWZGb250RmFtaWx5
KHByZWZlcmVuY2VzUmVmKCkpKS5nZXQoKSk7CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmN1cnNpdmVGb250RmFtaWx5KCk7CisgICAgICAgIHJl
dHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlDdXJzaXZl
Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSkuZ2V0KCkpOwogICAgIGNhc2UgRmFudGFzeUZv
bnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5mYW50YXN5Rm9udEZhbWlseSgpOwor
ICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXND
b3B5RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpLmdldCgpKTsKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gUVN0cmluZygpOwogICAgIH0KIH0KIAogdm9pZCBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpGb250
U2l6ZVR5cGUgdHlwZSwgdW5zaWduZWQgc2l6ZSkKLXsKK3sgICAgCiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNl
dE1pbmltdW1Gb250U2l6ZShzaXplKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1G
b250U2l6ZShwcmVmZXJlbmNlc1JlZigpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcHJlZmVy
ZW5jZXMoKS0+c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCksIHN0YXRpY19jYXN0PHVpbnQzMl90
PihzaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKHNpemUpOwor
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdEZpeGVkRm9udFNpemUocHJlZmVyZW5jZXNS
ZWYoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNpemUpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNDYsMTEgKzI1Miwx
MSBAQCB1bnNpZ25lZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250U2l6ZShRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpGb250U2l6ZVR5cGUgdAogewogICAgIHN3aXRjaCAodHlwZSkgewogICAg
IGNhc2UgTWluaW11bUZvbnRTaXplOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bWlu
aW11bUZvbnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQ
cmVmZXJlbmNlc0dldE1pbmltdW1Gb250U2l6ZShwcmVmZXJlbmNlc1JlZigpKSk7CiAgICAgY2Fz
ZSBEZWZhdWx0Rm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kZWZhdWx0
Rm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihXS1ByZWZl
cmVuY2VzR2V0RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCkpKTsKICAgICBjYXNlIERl
ZmF1bHRGaXhlZEZvbnRTaXplOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGVmYXVs
dEZpeGVkRm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihX
S1ByZWZlcmVuY2VzR2V0RGVmYXVsdEZpeGVkRm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC01ODcsOSArNTkzLDkgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldE5v
dGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlKQogICAgIGVtaXQgbm90aWZpY2F0aW9uc0Vu
YWJsZWRDaGFuZ2VkKCk7CiB9CiAKLVdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OnByZWZlcmVuY2VzKCkgY29uc3QKK1dLUHJlZmVyZW5jZXNSZWYgUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVyZW5jZXNSZWYoKSBjb25zdAogewotICAgIHJldHVybiB3
ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsK
KyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAo
d2ViVmlld1ByaXZhdGUtPndlYlBhZ2UuZ2V0KCkpKTsKIH0KIAogUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZSogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Z2V0KFFXZWJQcmVmZXJlbmNlcyogcHJlZmVy
ZW5jZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlc19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3BfcC5oCmluZGV4IGM4MDk4YjUwZWFiMjM4OTVjODA2YjkyYzJhNjEwODQ4MWI0
NTUyMDUuLjc0YmQxMDRiZmRlYTY1Yjg2Yjc3OTgzYWZlMDIzNTU4NjZhZTlhODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3Bf
cC5oCkBAIC0yMCw3ICsyMCw4IEBACiAjaWZuZGVmIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogI2Rl
ZmluZSBxd2VicHJlZmVyZW5jZXNfcF9wX2gKIAotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgi
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVy
ZW5jZXMuaD4KIAogY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CiAKQEAgLTc0LDcgKzc1LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udFNpemUoRm9udFNpemVUeXBlIHR5cGUsIHVuc2ln
bmVkIHNpemUpOwogICAgIHVuc2lnbmVkIGZvbnRTaXplKEZvbnRTaXplVHlwZSB0eXBlKSBjb25z
dDsKIAotICAgIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Cisg
ICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZigpIGNvbnN0OwogCiAgICAgUVF1aWNr
V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdQcml2YXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5kZXggZDM0ODFlYTAxNjJh
NTNkM2QwODgzZTdkNjMwYzMyZjM0NzAzYTFlZi4uNDk4ZmI0ZTgwZTkyNjE4YjNiNzhiM2MzNWQz
MDIxOWM2NTc1MTJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9yYXcvcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAicXJhd3dl
YnZpZXdfcF9wLmgiCisKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvcXJhd3dlYnZpZXdfcC5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187279</attachid>
            <date>2013-02-08 03:28:47 -0800</date>
            <delta_ts>2013-02-08 07:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130208122521.patch</filename>
            <type>text/plain</type>
            <size>16686</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjk5YTI3NzVlZDU3NDU4
OTU1ODFjNjBmMzMzOThjYzA3M2NkMDBmMy4uZDE0MDU2OTllOWVhMmZjODI2YWI2ZDQxNDkxNzEx
NWY0MzlkZTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTA4ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdlUmVmKToKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRl
Ojp0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0
dHJpYnV0ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250RmFtaWx5
KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRGYW1pbHkpOgorICAgICAg
ICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUpOgorICAgICAgICAoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udFNpemUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6cHJlZmVyZW5jZXNSZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3BfcC5oOgorCiAyMDEzLTAyLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQy
MjEyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAKaW5kZXggM2E4MDEwYThiZDcyYjY4ZGE1NTNkYzU3NGYyMTUyYWQyMjliMGJjMS4uODcx
NWIwN2U2NzQ5ZmJkM2QzZDdlMDFmYjQ5MDZkOTQ2ZTk0NGJhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC02NSw2ICs2NSw3
IEBACiAjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tWaWV3PgogI2luY2x1ZGUgPFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXS1BhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdL
UHJlZmVyZW5jZXMuaD4KICNpbmNsdWRlIDxXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdLU3RyaW5nLmg+CiAjaW5jbHVkZSA8V0tTdHJpbmdRdC5oPgpAQCAtMTk3LDYgKzE5
OCwxMSBAQCBzdGF0aWMgUVF1aWNrV2ViVmlld1ByaXZhdGUqIGNyZWF0ZVByaXZhdGVPYmplY3Qo
UVF1aWNrV2ViVmlldyogcHVibGljT2JqZWN0KQogICAgIHJldHVybiBuZXcgUVF1aWNrV2ViVmll
d0xlZ2FjeVByaXZhdGUocHVibGljT2JqZWN0KTsKIH0KIAorc3RhdGljIFdLUHJlZmVyZW5jZXNS
ZWYgZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZihXS1BhZ2VSZWYgcGFnZVJlZikKK3sKKyAg
ICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAocGFn
ZVJlZikpOworfQorCiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xvY2tlcjo6
RmxpY2thYmxlQXhpc0xvY2tlcigpCiAgICAgOiBtX2FsbG93ZWREaXJlY3Rpb24oUVF1aWNrRmxp
Y2thYmxlOjpBdXRvRmxpY2tEaXJlY3Rpb24pCiAgICAgLCBtX3RpbWUoMCksIG1fc2FtcGxlQ291
bnQoMCkKQEAgLTM1NywxMyArMzYzLDE0IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Omlu
aXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhCiAgICAg
UU9iamVjdDo6Y29ubmVjdChpY29uRGF0YWJhc2UsIFNJR05BTChpY29uQ2hhbmdlZEZvclBhZ2VV
UkwoUVN0cmluZykpLCBxX3B0ciwgU0xPVChfcV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChRU3Ry
aW5nKSkpOwogCiAgICAgLy8gQW55IHBhZ2Ugc2V0dGluZyBzaG91bGQgcHJlZmVycmFibGUgYmUg
c2V0IGJlZm9yZSBjcmVhdGluZyB0aGUgcGFnZS4KLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91
cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVl
KTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmID0gZ2V0UHJlZmVyZW5jZXNSZWZGcm9tUGFnZVJlZih3ZWJQYWdlLmdldCgpKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYsIHRydWUpOwogICAgIGJvb2wgc2hvd0RlYnVnVmlzdWFscyA9IHFnZXRlbnYoIldFQktJVF9T
SE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKSA9PSAiMSI7Ci0gICAgd2ViUGFnZVByb3h5
LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJs
ZShzaG93RGVidWdWaXN1YWxzKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpLT5zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoc2hvd0RlYnVn
VmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+
c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VH
cm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUocHJlZmVyZW5jZXNSZWYsIHNob3dE
ZWJ1Z1Zpc3VhbHMpOworICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFpbnRDb3Vu
dGVyc1Zpc2libGUocHJlZmVyZW5jZXNSZWYsIHNob3dEZWJ1Z1Zpc3VhbHMpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsK
KyAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZSh0cnVlKTsKIAogICAgIHBhZ2VDbGllbnQuaW5pdGlhbGl6ZShxX3B0ciwg
cGFnZVZpZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0YSgpLCAmdW5kb0NvbnRyb2xsZXIpOwog
ICAgIHdlYlBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3ZGRmZDky
Njk2NTI1ZDdhODI1ZjEzMDU4MTRmOGE2ZjE1Zjg3ZjAxLi43YmVkNGFjYjkwZmFkZWZhMGY3OTg2
ZmEwOWE2ODI1YWUwNjdhNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCkBAIC0yMiw4ICsyMiwxNCBAQAogCiAjaW5jbHVk
ZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgogI2luY2x1
ZGUgInF3ZWJwcmVmZXJlbmNlc19wX3AuaCIKKyNpbmNsdWRlIDxXS1BhZ2UuaD4KKyNpbmNsdWRl
IDxXS1BhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxX
S1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KIAogUVdlYlByZWZlcmVuY2Vz
KiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3
UHJpdmF0ZSogd2ViVmlld1ByaXZhdGUpCiB7CkBAIC0zNyw0OSArNDMsNDkgQEAgYm9vbCBRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OldlYkF0dHJpYnV0ZQogewogICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xvYWRJ
bWFnZXM6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5sb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIGNhc2UgRnVsbFNjcmVlbkVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygp
LT5mdWxsU2NyZWVuRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1
bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogI2VuZGlmCiAgICAgY2FzZSBKYXZh
c2NyaXB0RW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmphdmFTY3JpcHRF
bmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJs
ZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKLSAgICAgICAg
cmV0dXJuIHByZWZlcmVuY2VzKCktPnBsdWdpbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0UGx1Z2luc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2Fz
ZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICAgICAg
cmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBMb2NhbFN0b3JhZ2VFbmFibGVkOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bG9jYWxTdG9yYWdlRW5hYmxlZCgpOworICAgICAgICBy
ZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQocHJlZmVyZW5jZXNSZWYo
KSk7CiAgICAgY2FzZSBYU1NBdWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJl
bmNlcygpLT54c3NBdWRpdG9yRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgUHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnByaXZhdGVC
cm93c2luZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgRG5zUHJlZmV0Y2hF
bmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZG5zUHJlZmV0Y2hpbmdFbmFi
bGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RE5TUHJlZmV0Y2hpbmdFbmFi
bGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoK
LSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKTsK
KyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHBy
ZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKKyAgICAg
ICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKCkpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBjYXNlIFdlYkdMRW5hYmxlZDoKLSAg
ICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPndlYkdMRW5hYmxlZCgpOworICAgICAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgY2FzZSBDU1NDdXN0b21GaWx0ZXJFbmFibGVkOgotICAg
ICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3NzQ3VzdG9tRmlsdGVyRW5hYmxlZCgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldENTU0N1c3RvbUZpbHRlckVuYWJsZWQocHJlZmVy
ZW5jZXNSZWYoKSk7CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAg
Y2FzZSBXZWJBdWRpb0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT53ZWJB
dWRpb0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0Vu
YWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKICAgICBjYXNlIFNjcm9sbEFuaW1hdG9yRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gd2Vi
Vmlld1ByaXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNj
cm9sbEFuaW1hdG9yRW5hYmxlZCgpOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5h
YmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmNhcmV0QnJvd3NpbmdFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBOb3RpZmljYXRpb25zRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm5vdGlmaWNhdGlvbnNFbmFibGVkKCk7CisgICAgICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTkwLDY1ICs5Niw2NSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1
dGUgYQogewogICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6Ci0g
ICAgICAgIHByZWZlcmVuY2VzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZl
cmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAgICBwcmVm
ZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0UGx1Z2luc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxl
KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldExvY2FsU3Rv
cmFnZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvY2FsU3RvcmFn
ZUVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBYU1NBdWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFhTU0F1
ZGl0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9y
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoKLSAgICAgICAg
cHJlZmVyZW5jZXMoKS0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChlbmFibGUpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigp
LCBlbmFibGUpOwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgY2FzZSBXZWJH
TEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkdMRW5hYmxlZChlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCks
IGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICBj
YXNlIENTU0N1c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldENT
U0N1c3RvbUZpbHRlckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldENT
U0N1c3RvbUZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgY2FzZSBX
ZWJBdWRpb0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkF1ZGlvRW5hYmxl
ZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHByZWZl
cmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxF
KFNNT09USF9TQ1JPTExJTkcpCiAgICAgY2FzZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChlbmFibGUpOworICAg
ICAgICB3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoKICAgICAgICAgLy8gRklYTUU6
IENhcmV0IGJyb3dzaW5nIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGluIHRvdWNoIG1vZGUuCi0g
ICAgICAgIHByZWZlcmVuY2VzKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vdGlmaWNhdGlvbnNFbmFi
bGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3RpZmljYXRpb25zRW5hYmxlZChlbmFi
bGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVy
ZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODMsMjIgKzE4OSwyMiBAQCB2b2lkIFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6
Rm9udEZhbWlseSB3aAogewogICAgIHN3aXRjaCAod2hpY2gpIHsKICAgICBjYXNlIFN0YW5kYXJk
Rm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U3RhbmRhcmRGb250RmFtaWx5KGZhbWls
eSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5j
ZXNSZWYoKSwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgp
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAgICAgIHByZWZlcmVu
Y2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJpbmdDcmVh
dGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTZXJpZkZvbnRGYW1pbHkoZmFt
aWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNl
c1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNhbnNTZXJpZkZvbnQ6Ci0gICAgICAgIHByZWZl
cmVuY2VzKCktPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVm
ZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q3Vyc2l2
ZUZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250
RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmlu
ZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmFudGFzeUZvbnQ6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZhbnRhc3lGb250RmFtaWx5KGZhbWlseSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigp
LCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTIwOSwzMyArMjE1
LDMzIEBAIFFTdHJpbmcgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZhbWlseShRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpGb250RmFtaWx5IHdoCiB7CiAgICAgc3dpdGNoICh3aGljaCkgewog
ICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+c3Rh
bmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFk
b3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYo
KSkpLmdldCgpKTsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVu
Y2VzKCktPmZpeGVkRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0
cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2Vz
UmVmKCkpKS5nZXQoKSk7CiAgICAgY2FzZSBTZXJpZkZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5zZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29w
eVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVNlcmlmRm9udEZhbWlseShwcmVmZXJl
bmNlc1JlZigpKSkuZ2V0KCkpOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAgICAgcmV0
dXJuIHByZWZlcmVuY2VzKCktPnNhbnNTZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJu
IFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVNhbnNTZXJpZkZv
bnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpLmdldCgpKTsKICAgICBjYXNlIEN1cnNpdmVGb250
OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3Vyc2l2ZUZvbnRGYW1pbHkoKTsKKyAg
ICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29w
eUN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKS5nZXQoKSk7CiAgICAgY2FzZSBG
YW50YXN5Rm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZhbnRhc3lGb250RmFt
aWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVm
ZXJlbmNlc0NvcHlGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSkuZ2V0KCkpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgfQogfQogCiB2b2lk
IFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OkZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAgICAKICAgICBzd2l0
Y2ggKHR5cGUpIHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0
TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCksIHN0YXRpY19jYXN0PHVpbnQzMl90Pihz
aXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAgICAg
ICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpemUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWZhdWx0Rml4ZWRG
b250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUo
c2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVm
ZXJlbmNlc1JlZigpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0Niwx
MSArMjUyLDExIEBAIHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRTaXplKFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0CiB7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5taW5pbXVtRm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihXS1ByZWZlcmVuY2VzR2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCkpKTsK
ICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCkt
PmRlZmF1bHRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkpOwogICAg
IGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygp
LT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVmZXJlbmNlc1Jl
ZigpKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTU4Nyw5ICs1OTMsOSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNl
czo6c2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgZW1pdCBub3RpZmlj
YXRpb25zRW5hYmxlZENoYW5nZWQoKTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVyZW5jZXMoKSBjb25zdAorV0tQcmVmZXJlbmNlc1Jl
ZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpOworICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBh
Z2VHcm91cCh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZS5nZXQoKSkpOwogfQogCiBRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpnZXQoUVdlYlByZWZlcmVuY2Vz
KiBwcmVmZXJlbmNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYzgwOThiNTBlYWIyMzg5NWM4MDZiOTJjMmE2
MTA4NDgxYjQ1NTIwNS4uNzRiZDEwNGJmZGVhNjViODZiNzc5ODNhZmUwMjM1NTg2NmFlOWE4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmgKQEAgLTIwLDcgKzIwLDggQEAKICNpZm5kZWYgcXdlYnByZWZlcmVuY2VzX3Bf
cF9oCiAjZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogCi0jaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tQcmVmZXJlbmNlcy5oPgogCiBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKIApAQCAtNzQs
NyArNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250U2l6ZShGb250U2l6ZVR5cGUgdHlw
ZSwgdW5zaWduZWQgc2l6ZSk7CiAgICAgdW5zaWduZWQgZm9udFNpemUoRm9udFNpemVUeXBlIHR5
cGUpIGNvbnN0OwogCi0gICAgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKSBj
b25zdDsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKCkgY29uc3Q7CiAKICAg
ICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187314</attachid>
            <date>2013-02-08 07:08:32 -0800</date>
            <delta_ts>2013-02-11 08:44:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130208160506.patch</filename>
            <type>text/plain</type>
            <size>19243</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjk5YTI3NzVlZDU3NDU4
OTU1ODFjNjBmMzMzOThjYzA3M2NkMDBmMy4uMmJhNjI3OWFlNmRiNTliMzQ0YjQ2Mzc0YzE5NDIw
Y2M5NWU4NTEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTA4ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBSZW1vdmVzIHRoZSBTY3JvbGxBbmltYXRvckVuYWJsZWQg
b3B0aW9ucyBmcm9tIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChnZXRQcmVmZXJlbmNlc1JlZkZyb21QYWdl
UmVmKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2
YXRlOjpzZXRGb250RmFtaWx5KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZv
bnRGYW1pbHkpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUp
OgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udFNpemUpOgorICAgICAgICAo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVyZW5jZXNSZWYpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaDoKKwogMjAxMy0wMi0wNyAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0MjIxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCmluZGV4IDNhODAxMGE4YmQ3MmI2OGRhNTUzZGM1NzRmMjE1MmFkMjI5
YjBiYzEuLjg3MTViMDdlNjc0OWZiZDNkM2Q3ZTAxZmI0OTA2ZDk0NmU5NDRiYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAt
NjUsNiArNjUsNyBAQAogI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNp
bmNsdWRlIDxXS1ByZWZlcmVuY2VzLmg+CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaD4KICNpbmNsdWRlIDxXS1N0cmluZy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAg
LTE5Nyw2ICsxOTgsMTEgQEAgc3RhdGljIFFRdWlja1dlYlZpZXdQcml2YXRlKiBjcmVhdGVQcml2
YXRlT2JqZWN0KFFRdWlja1dlYlZpZXcqIHB1YmxpY09iamVjdCkKICAgICByZXR1cm4gbmV3IFFR
dWlja1dlYlZpZXdMZWdhY3lQcml2YXRlKHB1YmxpY09iamVjdCk7CiB9CiAKK3N0YXRpYyBXS1By
ZWZlcmVuY2VzUmVmIGdldFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYoV0tQYWdlUmVmIHBhZ2VS
ZWYpCit7CisgICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFn
ZUdyb3VwKHBhZ2VSZWYpKTsKK30KKwogUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4
aXNMb2NrZXI6OkZsaWNrYWJsZUF4aXNMb2NrZXIoKQogICAgIDogbV9hbGxvd2VkRGlyZWN0aW9u
KFFRdWlja0ZsaWNrYWJsZTo6QXV0b0ZsaWNrRGlyZWN0aW9uKQogICAgICwgbV90aW1lKDApLCBt
X3NhbXBsZUNvdW50KDApCkBAIC0zNTcsMTMgKzM2MywxNCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJl
ZiBwYQogICAgIFFPYmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5n
ZWRGb3JQYWdlVVJMKFFTdHJpbmcpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBh
Z2VVUkwoUVN0cmluZykpKTsKIAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZl
cnJhYmxlIGJlIHNldCBiZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgd2ViUGFnZVByb3h5
LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMo
KS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiA9IGdldFByZWZlcmVuY2VzUmVmRnJvbVBhZ2VSZWYod2ViUGFnZS5nZXQo
KSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHBy
ZWZlcmVuY2VzUmVmLCB0cnVlKTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBxZ2V0ZW52
KCJXRUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiOwotICAgIHdl
YlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5nQm9y
ZGVyc1Zpc2libGUoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3Jv
dXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxl
KHNob3dEZWJ1Z1Zpc3VhbHMpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2ViUGFnZVBy
b3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKHRydWUpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2Vz
UmVmLCBzaG93RGVidWdWaXN1YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdS
ZXBhaW50Q291bnRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1YWxzKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZiwgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1Jl
ZiwgdHJ1ZSk7CisgICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiAKICAgICBwYWdlQ2xpZW50LmluaXRpYWxp
emUocV9wdHIsIHBhZ2VWaWV3UHJpdmF0ZS0+ZXZlbnRIYW5kbGVyLmRhdGEoKSwgJnVuZG9Db250
cm9sbGVyKTsKICAgICB3ZWJQYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5k
ZXggN2RkZmQ5MjY5NjUyNWQ3YTgyNWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4uM2NhZmI1YmI5NTE2
ZmUxMWFjZTQ3YmFkOWQyYzZlMjVkMmQzMzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApAQCAtMjAsMTAgKzIwLDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKIAot
I2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3Bf
cC5oIgorI2luY2x1ZGUgPFdLUGFnZS5oPgorI2luY2x1ZGUgPFdLUGFnZUdyb3VwLmg+CisjaW5j
bHVkZSA8V0tQcmVmZXJlbmNlcy5oPgorI2luY2x1ZGUgPFdLUmV0YWluUHRyLmg+CisjaW5jbHVk
ZSA8V0tTdHJpbmdRdC5oPgogCiBRV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OmNyZWF0ZVByZWZlcmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0
ZSkKIHsKQEAgLTM3LDQ5ICs0MCw0NSBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRl
c3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiB7CiAgICAg
c3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKLSAgICAgICAgcmV0dXJu
IHByZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgICAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNlc1Jl
ZigpKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgY2FzZSBGdWxsU2NyZWVuRW5h
YmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7
CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVy
ZW5jZXNSZWYoKSk7CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdEVuYWJsZWQoKTsKKyAgICAgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsK
ICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+
cGx1Z2luc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQbHVnaW5z
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAg
ICBjYXNlIExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygp
LT5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFhTU0F1ZGl0
aW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnhzc0F1ZGl0b3JFbmFi
bGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQcml2YXRlQnJvd3NpbmdFbmFibGVkOgotICAg
ICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVy
ZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJu
IFdLUHJlZmVyZW5jZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7
CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMoKS0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAg
Y2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAjaWYgRU5BQkxF
KFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+d2ViR0xFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2Vi
R0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAg
ICBjYXNlIENTU0N1c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5jc3NDdXN0b21GaWx0ZXJFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICNlbmRpZgog
I2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBjYXNlIFdlYkF1ZGlvRW5hYmxlZDoK
LSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPndlYkF1ZGlvRW5hYmxlZCgpOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgY2FzZSBTY3JvbGxBbmltYXRvckVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5zY3JvbGxBbmltYXRvckVuYWJs
ZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJsZWQocHJl
ZmVyZW5jZXNSZWYoKSk7CiAjZW5kaWYKICAgICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y2FyZXRCcm93c2luZ0VuYWJsZWQoKTsKKyAg
ICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJl
bmNlc1JlZigpKTsKICAgICBjYXNlIE5vdGlmaWNhdGlvbnNFbmFibGVkOgotICAgICAgICByZXR1
cm4gcHJlZmVyZW5jZXMoKS0+bm90aWZpY2F0aW9uc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJu
IFdLUHJlZmVyZW5jZXNHZXROb3RpZmljYXRpb25zRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtOTAsNjUgKzg5LDYwIEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBhCiB7
CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKLSAgICAgICAg
cHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNS
ZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIGNhc2UgRnVsbFNjcmVlbkVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNl
dEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxs
U2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldEphdmFTY3JpcHRFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNT
ZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5z
ZXRQbHVnaW5zRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UGx1Z2lu
c0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVu
Y2VzKCktPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChlbmFibGUpOworICAg
ICAgICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHBy
ZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG9jYWxT
dG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0TG9jYWxTdG9yYWdlRW5h
YmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFhT
U0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0WFNTQXVkaXRvckVu
YWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFibGVk
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRE
TlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAgICBwcmVmZXJl
bmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJs
ZSk7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVy
ZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7
CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBjYXNlIFdlYkdMRW5hYmxl
ZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKGVuYWJsZSk7CisgICAg
ICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxl
KTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgIGNhc2UgQ1NT
Q3VzdG9tRmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q1NTQ3VzdG9t
RmlsdGVyRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Q1NTQ3VzdG9t
RmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBjYXNlIFdlYkF1ZGlv
RW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0V2ViQXVkaW9FbmFibGVkKGVuYWJs
ZSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0gICAgY2FzZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCkt
PnNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoKICAgICAgICAgLy8g
RklYTUU6IENhcmV0IGJyb3dzaW5nIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGluIHRvdWNoIG1v
ZGUuCi0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGVuYWJs
ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJl
bmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vdGlmaWNhdGlv
bnNFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3RpZmljYXRpb25zRW5hYmxl
ZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODMsMjIgKzE3NywyMiBAQCB2b2lk
IFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6Rm9udEZhbWlseSB3aAogewogICAgIHN3aXRjaCAod2hpY2gpIHsKICAgICBjYXNlIFN0
YW5kYXJkRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U3RhbmRhcmRGb250RmFtaWx5
KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFyZEZvbnRGYW1pbHkocHJl
ZmVyZW5jZXNSZWYoKSwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkp
LmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1pbHkpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTZXJpZkZvbnRGYW1p
bHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShwcmVm
ZXJlbmNlc1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSku
Z2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNhbnNTZXJpZkZvbnQ6Ci0gICAgICAg
IHByZWZlcmVuY2VzKCktPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAg
V0tQcmVmZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSwgYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
Q3Vyc2l2ZUZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNp
dmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCksIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
UVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmFudGFz
eUZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZhbnRhc3lGb250RmFtaWx5KGZhbWls
eSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNl
c1JlZigpLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTIwOSwz
MyArMjAzLDMzIEBAIFFTdHJpbmcgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZhbWlseShR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpGb250RmFtaWx5IHdoCiB7CiAgICAgc3dpdGNoICh3aGlj
aCkgewogICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+c3RhbmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3Ry
aW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5j
ZXNSZWYoKSkpLmdldCgpKTsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPmZpeGVkRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5Rml4ZWRGb250RmFtaWx5KHByZWZl
cmVuY2VzUmVmKCkpKS5nZXQoKSk7CiAgICAgY2FzZSBTZXJpZkZvbnQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5zZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3Ry
aW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVNlcmlmRm9udEZhbWlseShw
cmVmZXJlbmNlc1JlZigpKSkuZ2V0KCkpOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNhbnNTZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAg
cmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVNhbnNT
ZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYoKSkpLmdldCgpKTsKICAgICBjYXNlIEN1cnNp
dmVGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3Vyc2l2ZUZvbnRGYW1pbHko
KTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVu
Y2VzQ29weUN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKCkpKS5nZXQoKSk7CiAgICAg
Y2FzZSBGYW50YXN5Rm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZhbnRhc3lG
b250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0so
V0tQcmVmZXJlbmNlc0NvcHlGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZigpKSkuZ2V0
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgfQogfQog
CiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAgICAKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKCksIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihzaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAg
IFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KHNpemUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWZhdWx0
Rml4ZWRGb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZpeGVkRm9u
dFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rml4ZWRGb250U2l6
ZShwcmVmZXJlbmNlc1JlZigpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTI0NiwxMSArMjQwLDExIEBAIHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRT
aXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0CiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5taW5pbXVtRm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihXS1ByZWZlcmVuY2VzR2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVm
KCkpKTsKICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVu
Y2VzKCktPmRlZmF1bHRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rm9udFNpemUocHJlZmVyZW5jZXNSZWYoKSkp
OwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJl
bmNlcygpLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVmZXJl
bmNlc1JlZigpKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU0NiwyNSArNTQwLDYgQEAgdm9pZCBRV2ViUHJl
ZmVyZW5jZXM6OnNldFdlYkF1ZGlvRW5hYmxlZChib29sIGVuYWJsZSkKICNlbmRpZgogfQogCi1i
b29sIFFXZWJQcmVmZXJlbmNlczo6c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3QKLXsKLSNp
ZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpTY3JvbGxBbmltYXRvckVuYWJsZWQpOwotI2Vsc2UKLSAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQotdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldFNj
cm9sbEFuaW1hdG9yRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSNpZiBFTkFCTEUoU01PT1RIX1ND
Uk9MTElORykKLSAgICBkLT5zZXRBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6U2Ny
b2xsQW5pbWF0b3JFbmFibGVkLCBlbmFibGUpOwotICAgIGVtaXQgc2Nyb2xsQW5pbWF0b3JFbmFi
bGVkQ2hhbmdlZCgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKLSNlbmRpZgot
fQotCiBib29sIFFXZWJQcmVmZXJlbmNlczo6Y2FyZXRCcm93c2luZ0VuYWJsZWQoKSBjb25zdAog
ewogICAgIHJldHVybiBkLT50ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkNh
cmV0QnJvd3NpbmdFbmFibGVkKTsKQEAgLTU4Nyw5ICs1NjIsOSBAQCB2b2lkIFFXZWJQcmVmZXJl
bmNlczo6c2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgZW1pdCBub3Rp
ZmljYXRpb25zRW5hYmxlZENoYW5nZWQoKTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyog
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVyZW5jZXMoKSBjb25zdAorV0tQcmVmZXJlbmNl
c1JlZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpOworICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdl
dFBhZ2VHcm91cCh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZS5nZXQoKSkpOwogfQogCiBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpnZXQoUVdlYlByZWZlcmVu
Y2VzKiBwcmVmZXJlbmNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzX3AuaAppbmRleCBlM2ZhYjc5YWJhYjIyYjRkNzlhNWM5M2I0YzQz
YWUwZTQyNTcxY2QxLi43ZmM1MjIwNDJkOWM3ZTVhMTg5NjBmYmI1MGFjMTQ1ZGUyM2JiYWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNl
c19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXNfcC5oCkBAIC00NSw3ICs0NSw2IEBAIHB1YmxpYzoKICAgICBRX1BST1BFUlRZKGJvb2wgZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCBSRUFEIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgV1JJVEUgc2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBOT1RJRlkgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5n
ZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIHdlYkdMRW5hYmxlZCBSRUFEIHdlYkdMRW5h
YmxlZCBXUklURSBzZXRXZWJHTEVuYWJsZWQgTk9USUZZIHdlYkdMRW5hYmxlZENoYW5nZWQgRklO
QUwpCiAgICAgUV9QUk9QRVJUWShib29sIHdlYkF1ZGlvRW5hYmxlZCBSRUFEIHdlYkF1ZGlvRW5h
YmxlZCBXUklURSBzZXRXZWJBdWRpb0VuYWJsZWQgTk9USUZZIHdlYkF1ZGlvRW5hYmxlZENoYW5n
ZWQgRklOQUwpCi0gICAgUV9QUk9QRVJUWShib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCBSRUFE
IHNjcm9sbEFuaW1hdG9yRW5hYmxlZCBXUklURSBzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQgTk9U
SUZZIHNjcm9sbEFuaW1hdG9yRW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShi
b29sIGNhcmV0QnJvd3NpbmdFbmFibGVkIFJFQUQgY2FyZXRCcm93c2luZ0VuYWJsZWQgV1JJVEUg
c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQgTk9USUZZIGNhcmV0QnJvd3NpbmdFbmFibGVkQ2hhbmdl
ZCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgbm90aWZpY2F0aW9uc0VuYWJsZWQgUkVBRCBu
b3RpZmljYXRpb25zRW5hYmxlZCBXUklURSBzZXROb3RpZmljYXRpb25zRW5hYmxlZCBOT1RJRlkg
bm90aWZpY2F0aW9uc0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQogCkBAIC0xMDIsOSArMTAxLDYgQEAg
cHVibGljOgogICAgIGJvb2wgd2ViQXVkaW9FbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRX
ZWJBdWRpb0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCi0gICAgYm9vbCBzY3JvbGxBbmltYXRvckVu
YWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChib29sIGVu
YWJsZSk7Ci0KICAgICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAKQEAgLTE1Myw3ICsxNDks
NiBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkQ2hhbmdlZCgp
OwogICAgIHZvaWQgd2ViR0xFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgd2ViQXVkaW9FbmFi
bGVkQ2hhbmdlZCgpOwotICAgIHZvaWQgc2Nyb2xsQW5pbWF0b3JFbmFibGVkQ2hhbmdlZCgpOwog
ICAgIHZvaWQgY2FyZXRCcm93c2luZ0VuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25zRW5hYmxlZENoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAppbmRleCBjODA5OGI1MGVhYjIzODk1
YzgwNmI5MmMyYTYxMDg0ODFiNDU1MjA1Li43ZDA2MDNkNTA2ZjY0M2JmNzcyYTkwZDU0YmUyNjA1
MDA2OTRmNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlc19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlc19wX3AuaApAQCAtMjAsNyArMjAsOCBAQAogI2lmbmRlZiBxd2VicHJl
ZmVyZW5jZXNfcF9wX2gKICNkZWZpbmUgcXdlYnByZWZlcmVuY2VzX3BfcF9oCiAKLSNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRl
OwogCkBAIC00Miw3ICs0Myw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xFbmFibGVkLAogICAg
ICAgICBDU1NDdXN0b21GaWx0ZXJFbmFibGVkLAogICAgICAgICBXZWJBdWRpb0VuYWJsZWQsCi0g
ICAgICAgIFNjcm9sbEFuaW1hdG9yRW5hYmxlZCwKICAgICAgICAgQ2FyZXRCcm93c2luZ0VuYWJs
ZWQsCiAgICAgICAgIE5vdGlmaWNhdGlvbnNFbmFibGVkCiAgICAgfTsKQEAgLTc0LDcgKzc0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udFNpemUoRm9udFNpemVUeXBlIHR5cGUsIHVuc2ln
bmVkIHNpemUpOwogICAgIHVuc2lnbmVkIGZvbnRTaXplKEZvbnRTaXplVHlwZSB0eXBlKSBjb25z
dDsKIAotICAgIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Cisg
ICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZigpIGNvbnN0OwogCiAgICAgUVF1aWNr
V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdQcml2YXRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187581</attachid>
            <date>2013-02-11 08:44:09 -0800</date>
            <delta_ts>2013-02-11 09:36:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130211174039.patch</filename>
            <type>text/plain</type>
            <size>19490</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTdhZDFkMTgyMmU5OTA3
Y2FmMGFiMzZhYjVmMmYwZjE3MTYyOTAyNy4uMjZkNGI4YmYxNTk2MzE0ZmY0MTJhODlkMmFjNGIy
NTczNDBkYTZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTExICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBSZW1vdmVzIHRoZSBTY3JvbGxBbmltYXRvckVuYWJsZWQg
b3B0aW9ucyBmcm9tIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5p
dGlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3Bw
OgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAg
ICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udEZhbWlseSk6CisgICAgICAgIChRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpmb250RmFtaWx5KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OnNldEZvbnRTaXplKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRT
aXplKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmdldFByZWZlcmVuY2VzUmVm
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisKIDIwMTMtMDIt
MTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRoZSBQbHVn
LWluIFhQQ1NlcnZpY2UgYnVpbGQgd29yayBldmVuIHdoZW4gYnVpbGRpbmcgaW4gWGNvZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmlu
ZGV4IDNhODAxMGE4YmQ3MmI2OGRhNTUzZGM1NzRmMjE1MmFkMjI5YjBiYzEuLjU4ZDA1NWVkYTky
ZTcwZTQ4MjAzMWEzYzkyZDFlMmFlOGE5NmY0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2lu
Y2x1ZGUgPFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVu
Y2VzLmg+CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxX
S1N0cmluZy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAgLTM1NywxMyArMzU4LDE0IEBA
IHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgUU9iamVjdDo6Y29ubmVjdChpY29uRGF0YWJh
c2UsIFNJR05BTChpY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykpLCBxX3B0ciwgU0xPVChf
cV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChRU3RyaW5nKSkpOwogCiAgICAgLy8gQW55IHBhZ2Ug
c2V0dGluZyBzaG91bGQgcHJlZmVycmFibGUgYmUgc2V0IGJlZm9yZSBjcmVhdGluZyB0aGUgcGFn
ZS4KLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VH
cm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJl
bmNlcyhwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgdHJ1ZSk7CiAgICAgYm9vbCBzaG93RGVi
dWdWaXN1YWxzID0gcWdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFM
UyIpID09ICIxIjsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
LT5zZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHNob3dEZWJ1Z1Zpc3VhbHMpOwotICAgIHdl
YlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5nUmVw
YWludENvdW50ZXJzVmlzaWJsZShzaG93RGVidWdWaXN1YWxzKTsKLSAgICB3ZWJQYWdlUHJveHkt
PnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRy
dWUpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldFdl
YkdMRW5hYmxlZCh0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdCb3JkZXJz
VmlzaWJsZShwcmVmZXJlbmNlc1JlZiwgc2hvd0RlYnVnVmlzdWFscyk7CisgICAgV0tQcmVmZXJl
bmNlc1NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZShwcmVmZXJlbmNlc1JlZiwg
c2hvd0RlYnVnVmlzdWFscyk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQocHJlZmVyZW5jZXNSZWYsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVu
YWJsZWQocHJlZmVyZW5jZXNSZWYsIHRydWUpOworICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwogCiAgICAg
cGFnZUNsaWVudC5pbml0aWFsaXplKHFfcHRyLCBwYWdlVmlld1ByaXZhdGUtPmV2ZW50SGFuZGxl
ci5kYXRhKCksICZ1bmRvQ29udHJvbGxlcik7CiAgICAgd2ViUGFnZVByb3h5LT5pbml0aWFsaXpl
V2ViUGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwCmluZGV4IDdkZGZkOTI2OTY1MjVkN2E4MjVmMTMwNTgxNGY4YTZmMTVm
ODdmMDEuLmY3NjE0Y2RhODQyNWRkNzZjYjJkMWFiOTJmYWFlNzhjZTg5YjZkZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAK
QEAgLTIwLDEwICsyMCwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInF3ZWJw
cmVmZXJlbmNlc19wLmgiCiAKLSNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgogI2luY2x1ZGUg
InF3ZWJwcmVmZXJlbmNlc19wX3AuaCIKKyNpbmNsdWRlIDxXS1BhZ2UuaD4KKyNpbmNsdWRlIDxX
S1BhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXS1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KIAogUVdlYlByZWZlcmVuY2VzKiBR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3UHJp
dmF0ZSogd2ViVmlld1ByaXZhdGUpCiB7CkBAIC0zNSw1MSArMzgsNDggQEAgUVdlYlByZWZlcmVu
Y2VzKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJW
aWV3UHJpdmF0ZSoKIAogYm9vbCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRl
KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdAogeworICAg
IFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBnZXRQcmVmZXJlbmNlc1JlZigpOwog
ICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6Ci0gICAgICAgIHJl
dHVybiBwcmVmZXJlbmNlcygpLT5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKTsKKyAgICAgICAg
cmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5j
ZXNSZWYpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNlIEZ1bGxTY3JlZW5F
bmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZnVsbFNjcmVlbkVuYWJsZWQo
KTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVm
ZXJlbmNlc1JlZik7CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdEVuYWJsZWQoKTsKKyAgICAgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAg
ICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnBs
dWdpbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UGx1Z2luc0Vu
YWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+b2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNl
IExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5sb2Nh
bFN0b3JhZ2VFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9jYWxT
dG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBYU1NBdWRpdGluZ0VuYWJs
ZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT54c3NBdWRpdG9yRW5hYmxlZCgpOwor
ICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKTsKICAgICBjYXNlIFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7
CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgRnJh
bWVGbGF0dGVuaW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNlIERldmVsb3BlckV4
dHJhc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRy
YXNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2Ug
V2ViR0xFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViR0xFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViR0xFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKTsKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgY2FzZSBDU1NDdXN0b21GaWx0
ZXJFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3NzQ3VzdG9tRmlsdGVy
RW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldENTU0N1c3RvbUZpbHRl
ckVuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogI2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQogICAgIGNhc2UgV2ViQXVkaW9FbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMoKS0+d2ViQXVkaW9FbmFibGVkKCk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU01PT1RIX1ND
Uk9MTElORykKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yRW5hYmxlZDoKLSAgICAgICAgcmV0dXJu
IHByZWZlcmVuY2VzKCktPnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpOworICAgICAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldFdlYkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjZW5kaWYK
ICAgICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+Y2FyZXRCcm93c2luZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBOb3Rp
ZmljYXRpb25zRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm5vdGlmaWNh
dGlvbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Tm90aWZpY2F0
aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04OCw2NyArODgsNjMg
QEAgYm9vbCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZQogCiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYXR0ciwg
Ym9vbCBlbmFibGUpCiB7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IGdl
dFByZWZlcmVuY2VzUmVmKCk7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9h
ZEltYWdlczoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5KGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1By
ZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAg
ICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKLSAgICAg
ICAgcHJlZmVyZW5jZXMoKS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAg
V0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICBwcmVm
ZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0UGx1Z2luc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAg
ICBwcmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5h
YmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBMb2NhbFN0b3JhZ2VFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRMb2NhbFN0
b3JhZ2VFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2NhbFN0b3Jh
Z2VFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFhTU0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0WFNTQXVk
aXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JF
bmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRG5zUHJlZmV0Y2hFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5z
ZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dEROU1ByZWZldGNoaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAgICBwcmVmZXJl
bmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUp
OwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAg
ICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVkOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAg
V0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAg
ICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgIGNhc2UgQ1NTQ3VzdG9t
RmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q1NTQ3VzdG9tRmlsdGVy
RW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Q1NTQ3VzdG9tRmlsdGVy
RW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYK
ICNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgY2FzZSBXZWJBdWRpb0VuYWJsZWQ6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkF1ZGlvRW5hYmxlZChlbmFibGUpOwotICAg
ICAgICBicmVhazsKLSNlbmRpZgotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAgIGNh
c2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTY3Jv
bGxBbmltYXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1
ZGlvRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKICAgICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgogICAgICAgICAvLyBGSVhNRTogQ2Fy
ZXQgYnJvd3NpbmcgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgaW4gdG91Y2ggbW9kZS4KLSAgICAg
ICAgcHJlZmVyZW5jZXMoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldENhcmV0QnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vdGlmaWNhdGlvbnNFbmFibGVkOgot
ICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3RpZmljYXRpb25zRW5hYmxlZChlbmFibGUpOwor
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTgxLDI0ICsxNzcsMjUgQEAgdm9pZCBRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjppbml0aWFsaXplRGVmYXVsdEZvbnRTZXR0aW5ncygpCiAKIHZvaWQgUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udEZhbWlseShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpG
b250RmFtaWx5IHdoaWNoLCBjb25zdCBRU3RyaW5nJiBmYW1pbHkpCiB7CisgICAgV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IGdldFByZWZlcmVuY2VzUmVmKCk7CiAgICAgc3dpdGNo
ICh3aGljaCkgewogICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dFN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZiwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
aXhlZEZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1p
bHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2Vz
UmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNlcmlmRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0U2VyaWZGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRT
ZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
UVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Fuc1Nl
cmlmRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2Fuc1NlcmlmRm9udEZhbWlseShm
YW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVm
ZXJlbmNlc1JlZiwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdl
dCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0Q3Vyc2l2ZUZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVm
ZXJlbmNlc1NldEN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmLCBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZhbnRhc3lGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRGYW50YXN5Rm9u
dEZhbWlseShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RmFudGFzeUZvbnRGYW1p
bHkocHJlZmVyZW5jZXNSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1p
bHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFr
OwpAQCAtMjA3LDM1ICsyMDQsMzcgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRG
b250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1pbHkgd2gKIAogUVN0cmlu
ZyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OkZvbnRGYW1pbHkgd2hpY2gpIGNvbnN0CiB7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiA9IGdldFByZWZlcmVuY2VzUmVmKCk7CiAgICAgc3dpdGNoICh3aGljaCkgewog
ICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+c3Rh
bmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFk
b3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTdGFuZGFyZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYp
KS5nZXQoKSk7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5maXhlZEZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJp
bmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weUZpeGVkRm9udEZhbWlseShwcmVmZXJlbmNlc1Jl
ZikpLmdldCgpKTsKICAgICBjYXNlIFNlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVu
Y2VzKCktPnNlcmlmRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0
cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2Vz
UmVmKSkuZ2V0KCkpOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPnNhbnNTZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3Ry
aW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVNhbnNTZXJpZkZvbnRGYW1p
bHkocHJlZmVyZW5jZXNSZWYpKS5nZXQoKSk7CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmN1cnNpdmVGb250RmFtaWx5KCk7CisgICAgICAgIHJl
dHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlDdXJzaXZl
Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpLmdldCgpKTsKICAgICBjYXNlIEZhbnRhc3lGb250
OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZmFudGFzeUZvbnRGYW1pbHkoKTsKKyAg
ICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29w
eUZhbnRhc3lGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKSkuZ2V0KCkpOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgfQogfQogCiB2b2lkIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXpl
VHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAgICAKKyAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmID0gZ2V0UHJlZmVyZW5jZXNSZWYoKTsKICAgICBzd2l0Y2ggKHR5cGUp
IHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TWluaW11bUZv
bnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0
RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6
ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGaXhlZEZvbnRTaXplOgotICAg
ICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZShzaXplKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRGaXhlZEZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0NCwxMyArMjQzLDE0IEBAIHZv
aWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUoUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6Rm9udFNpemVUeXBlIHR5CiAKIHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OmZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBlKSBjb25z
dAogeworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBnZXRQcmVmZXJlbmNl
c1JlZigpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTWluaW11bUZvbnRTaXplOgot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bWluaW11bUZvbnRTaXplKCk7CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldE1pbmltdW1Gb250
U2l6ZShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAgICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGVmYXVsdEZvbnRTaXplKCk7CisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShw
cmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAg
IHJldHVybiBwcmVmZXJlbmNlcygpLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRG
b250U2l6ZShwcmVmZXJlbmNlc1JlZikpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NDYsMjUgKzU0Niw2IEBA
IHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCBlbmFibGUpCiAj
ZW5kaWYKIH0KIAotYm9vbCBRV2ViUHJlZmVyZW5jZXM6OnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgp
IGNvbnN0Ci17Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgcmV0dXJuIGQtPnRl
c3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6U2Nyb2xsQW5pbWF0b3JFbmFibGVk
KTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgUVdlYlByZWZl
cmVuY2VzOjpzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0jaWYgRU5B
QkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OlNjcm9sbEFuaW1hdG9yRW5hYmxlZCwgZW5hYmxlKTsKLSAgICBlbWl0IHNjcm9s
bEFuaW1hdG9yRW5hYmxlZENoYW5nZWQoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGVuYWJs
ZSk7Ci0jZW5kaWYKLX0KLQogYm9vbCBRV2ViUHJlZmVyZW5jZXM6OmNhcmV0QnJvd3NpbmdFbmFi
bGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7CkBAIC01ODcsOSArNTY4LDkgQEAgdm9p
ZCBRV2ViUHJlZmVyZW5jZXM6OnNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlKQog
ICAgIGVtaXQgbm90aWZpY2F0aW9uc0VuYWJsZWRDaGFuZ2VkKCk7CiB9CiAKLVdlYktpdDo6V2Vi
UHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnByZWZlcmVuY2VzKCkgY29uc3QK
K1dLUHJlZmVyZW5jZXNSZWYgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Z2V0UHJlZmVyZW5jZXNS
ZWYoKSBjb25zdAogewotICAgIHJldHVybiB3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5LT5w
YWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlld1ByaXZhdGUtPndlYlBhZ2UuZ2V0KCkp
KTsKIH0KIAogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZSogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6
Z2V0KFFXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKaW5kZXggZTNmYWI3OWFiYWIy
MmI0ZDc5YTVjOTNiNGM0M2FlMGU0MjU3MWNkMS4uN2ZjNTIyMDQyZDljN2U1YTE4OTYwZmJiNTBh
YzE0NWRlMjNiYmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzX3AuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgUV9Q
Uk9QRVJUWShib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgUkVBRCBkZXZlbG9wZXJFeHRyYXNF
bmFibGVkIFdSSVRFIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQgTk9USUZZIGRldmVsb3BlckV4
dHJhc0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJHTEVuYWJs
ZWQgUkVBRCB3ZWJHTEVuYWJsZWQgV1JJVEUgc2V0V2ViR0xFbmFibGVkIE5PVElGWSB3ZWJHTEVu
YWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJBdWRpb0VuYWJsZWQg
UkVBRCB3ZWJBdWRpb0VuYWJsZWQgV1JJVEUgc2V0V2ViQXVkaW9FbmFibGVkIE5PVElGWSB3ZWJB
dWRpb0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFkoYm9vbCBzY3JvbGxBbmlt
YXRvckVuYWJsZWQgUkVBRCBzY3JvbGxBbmltYXRvckVuYWJsZWQgV1JJVEUgc2V0U2Nyb2xsQW5p
bWF0b3JFbmFibGVkIE5PVElGWSBzY3JvbGxBbmltYXRvckVuYWJsZWRDaGFuZ2VkIEZJTkFMKQog
ICAgIFFfUFJPUEVSVFkoYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCBSRUFEIGNhcmV0QnJvd3Np
bmdFbmFibGVkIFdSSVRFIHNldENhcmV0QnJvd3NpbmdFbmFibGVkIE5PVElGWSBjYXJldEJyb3dz
aW5nRW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIG5vdGlmaWNhdGlv
bnNFbmFibGVkIFJFQUQgbm90aWZpY2F0aW9uc0VuYWJsZWQgV1JJVEUgc2V0Tm90aWZpY2F0aW9u
c0VuYWJsZWQgTk9USUZZIG5vdGlmaWNhdGlvbnNFbmFibGVkQ2hhbmdlZCBGSU5BTCkKIApAQCAt
MTAyLDkgKzEwMSw2IEBAIHB1YmxpYzoKICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0
OwogICAgIHZvaWQgc2V0V2ViQXVkaW9FbmFibGVkKGJvb2wgZW5hYmxlKTsKIAotICAgIGJvb2wg
c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTY3JvbGxBbmltYXRv
ckVuYWJsZWQoYm9vbCBlbmFibGUpOwotCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwog
CkBAIC0xNTMsNyArMTQ5LDYgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHdlYkdMRW5hYmxlZENoYW5nZWQoKTsKICAgICB2
b2lkIHdlYkF1ZGlvRW5hYmxlZENoYW5nZWQoKTsKLSAgICB2b2lkIHNjcm9sbEFuaW1hdG9yRW5h
YmxlZENoYW5nZWQoKTsKICAgICB2b2lkIGNhcmV0QnJvd3NpbmdFbmFibGVkQ2hhbmdlZCgpOwog
ICAgIHZvaWQgbm90aWZpY2F0aW9uc0VuYWJsZWRDaGFuZ2VkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXgg
YzgwOThiNTBlYWIyMzg5NWM4MDZiOTJjMmE2MTA4NDgxYjQ1NTIwNS4uNTdiOWY5MGJmZWEyNmQ2
Y2M1MTUyMDQ3NWYyMDQzYjYxYjYyZmRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKQEAgLTIwLDcgKzIwLDggQEAK
ICNpZm5kZWYgcXdlYnByZWZlcmVuY2VzX3BfcF9oCiAjZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19w
X3BfaAogCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgogCiBjbGFzcyBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTsKIApAQCAtNDIsNyArNDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIFdl
YkdMRW5hYmxlZCwKICAgICAgICAgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCwKICAgICAgICAgV2Vi
QXVkaW9FbmFibGVkLAotICAgICAgICBTY3JvbGxBbmltYXRvckVuYWJsZWQsCiAgICAgICAgIENh
cmV0QnJvd3NpbmdFbmFibGVkLAogICAgICAgICBOb3RpZmljYXRpb25zRW5hYmxlZAogICAgIH07
CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTaXplKEZvbnRTaXpl
VHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKTsKICAgICB1bnNpZ25lZCBmb250U2l6ZShGb250U2l6
ZVR5cGUgdHlwZSkgY29uc3Q7CiAKLSAgICBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcygpIGNvbnN0OworICAgIFdLUHJlZmVyZW5jZXNSZWYgZ2V0UHJlZmVyZW5jZXNSZWYoKSBj
b25zdDsKIAogICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187598</attachid>
            <date>2013-02-11 09:36:34 -0800</date>
            <delta_ts>2013-02-27 02:51:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130211183304.patch</filename>
            <type>text/plain</type>
            <size>19500</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTdhZDFkMTgyMmU5OTA3
Y2FmMGFiMzZhYjVmMmYwZjE3MTYyOTAyNy4uNjEyNDA1YzgxN2JmMGZiMjczMjdmNzAwZmQ0ZmYz
OWUwYjQ2YmI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTExICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHZpZXcgY2xhc3NlcyBhbmQgcHJlZmVyZW5jZXMgaW4gdGhl
IFF0IEFQSQorICAgICAgICB0byB1c2UgdGhlIEMgQVBJIGZvciBhY2Nlc3NpbmcgYW5kIG1hbmlw
dWxhdGluZyBwcmVmZXJlbmNlcyBhcworICAgICAgICBwYXJ0IG9mIHRoZSBjbGVhbnVwIGFuZCBt
b3ZlIHRvd2FyZHMgdXNpbmcgdGhlIEMgQVBJIGFzIGJhc2UgZm9yCisgICAgICAgIHRoZSBRdCBX
ZWJLaXQyIEFQSS4KKworICAgICAgICBSZW1vdmVzIHRoZSBTY3JvbGxBbmltYXRvckVuYWJsZWQg
b3B0aW9ucyBmcm9tIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5p
dGlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3Bw
OgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAg
ICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udEZhbWlseSk6CisgICAgICAgIChRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpmb250RmFtaWx5KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OnNldEZvbnRTaXplKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRT
aXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisKIDIwMTMt
MDItMTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRoZSBQ
bHVnLWluIFhQQ1NlcnZpY2UgYnVpbGQgd29yayBldmVuIHdoZW4gYnVpbGRpbmcgaW4gWGNvZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CmluZGV4IDNhODAxMGE4YmQ3MmI2OGRhNTUzZGM1NzRmMjE1MmFkMjI5YjBiYzEuLjU4ZDA1NWVk
YTkyZTcwZTQ4MjAzMWEzYzkyZDFlMmFlOGE5NmY0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNjUsNiArNjUsNyBAQAog
I2luY2x1ZGUgPFF0UXVpY2svUVF1aWNrVmlldz4KICNpbmNsdWRlIDxXS09wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZl
cmVuY2VzLmg+CiAjaW5jbHVkZSA8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRl
IDxXS1N0cmluZy5oPgogI2luY2x1ZGUgPFdLU3RyaW5nUXQuaD4KQEAgLTM1NywxMyArMzU4LDE0
IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgUU9iamVjdDo6Y29ubmVjdChpY29uRGF0
YWJhc2UsIFNJR05BTChpY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykpLCBxX3B0ciwgU0xP
VChfcV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChRU3RyaW5nKSkpOwogCiAgICAgLy8gQW55IHBh
Z2Ugc2V0dGluZyBzaG91bGQgcHJlZmVycmFibGUgYmUgc2V0IGJlZm9yZSBjcmVhdGluZyB0aGUg
cGFnZS4KLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICB3ZWJQYWdlUHJveHktPnBh
Z2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsK
KyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgdHJ1ZSk7CiAgICAgYm9vbCBzaG93
RGVidWdWaXN1YWxzID0gcWdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklT
VUFMUyIpID09ICIxIjsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHNob3dEZWJ1Z1Zpc3VhbHMpOwotICAg
IHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0aW5n
UmVwYWludENvdW50ZXJzVmlzaWJsZShzaG93RGVidWdWaXN1YWxzKTsKLSAgICB3ZWJQYWdlUHJv
eHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KHRydWUpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNl
dFdlYkdMRW5hYmxlZCh0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdCb3Jk
ZXJzVmlzaWJsZShwcmVmZXJlbmNlc1JlZiwgc2hvd0RlYnVnVmlzdWFscyk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZShwcmVmZXJlbmNlc1Jl
Ziwgc2hvd0RlYnVnVmlzdWFscyk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJH
TEVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIHRydWUpOworICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwogCiAg
ICAgcGFnZUNsaWVudC5pbml0aWFsaXplKHFfcHRyLCBwYWdlVmlld1ByaXZhdGUtPmV2ZW50SGFu
ZGxlci5kYXRhKCksICZ1bmRvQ29udHJvbGxlcik7CiAgICAgd2ViUGFnZVByb3h5LT5pbml0aWFs
aXplV2ViUGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwCmluZGV4IDdkZGZkOTI2OTY1MjVkN2E4MjVmMTMwNTgxNGY4YTZm
MTVmODdmMDEuLjM1MDU4YjY0MTg1YzM2Zjc4ZGVhMjY4NzNmNTFlNmRlZmNiOTBlZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5j
cHAKQEAgLTIwLDEwICsyMCwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInF3
ZWJwcmVmZXJlbmNlc19wLmgiCiAKLSNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgogI2luY2x1
ZGUgInF3ZWJwcmVmZXJlbmNlc19wX3AuaCIKKyNpbmNsdWRlIDxXS1BhZ2VHcm91cC5oPgorI2lu
Y2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPFdLU3RyaW5nUXQuaD4KIAogUVdlYlByZWZlcmVuY2VzKiBRV2ViUHJlZmVyZW5jZXNQcml2
YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZh
dGUpCiB7CkBAIC0zNSw1MSArMzcsNDggQEAgUVdlYlByZWZlcmVuY2VzKiBRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3UHJpdmF0ZSoKIAogYm9v
bCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OldlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdAogeworICAgIFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHdlYlZpZXdQcml2YXRl
LT5wYWdlR3JvdXAuZ2V0KCkpOwogICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xv
YWRJbWFnZXM6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5sb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRG
dWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjZW5kaWYKICAgICBjYXNlIEphdmFz
Y3JpcHRFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdEVu
YWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxl
ZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKLSAgICAgICAgcmV0
dXJuIHByZWZlcmVuY2VzKCktPnBsdWdpbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1By
ZWZlcmVuY2VzR2V0UGx1Z2luc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgT2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZl
cmVuY2VzUmVmKTsKICAgICBjYXNlIExvY2FsU3RvcmFnZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVy
biBwcmVmZXJlbmNlcygpLT5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAg
Y2FzZSBYU1NBdWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT54
c3NBdWRpdG9yRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFhTU0F1
ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNlIFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBEbnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAg
ICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsKKyAgICAg
ICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXNSZWYpOwogICAgIGNhc2UgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJu
IHByZWZlcmVuY2VzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJu
IFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsK
ICAgICBjYXNlIERldmVsb3BlckV4dHJhc0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJl
bmNlcygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjaWYgRU5B
QkxFKFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMoKS0+d2ViR0xFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAg
ICAgY2FzZSBDU1NDdXN0b21GaWx0ZXJFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5j
ZXMoKS0+Y3NzQ3VzdG9tRmlsdGVyRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldENTU0N1c3RvbUZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogI2VuZGlmCiAj
ZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGNhc2UgV2ViQXVkaW9FbmFibGVkOgot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+d2ViQXVkaW9FbmFibGVkKCk7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yRW5h
YmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFdlYkF1ZGlvRW5hYmxlZChwcmVm
ZXJlbmNlc1JlZik7CiAjZW5kaWYKICAgICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgotICAg
ICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y2FyZXRCcm93c2luZ0VuYWJsZWQoKTsKKyAgICAg
ICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRDYXJldEJyb3dzaW5nRW5hYmxlZChwcmVmZXJlbmNl
c1JlZik7CiAgICAgY2FzZSBOb3RpZmljYXRpb25zRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPm5vdGlmaWNhdGlvbnNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1By
ZWZlcmVuY2VzR2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC04OCw2NyArODcsNjMgQEAgYm9vbCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0
QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZQogCiB2b2lkIFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpXZWJBdHRyaWJ1dGUgYXR0ciwgYm9vbCBlbmFibGUpCiB7CisgICAgV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2ViVmlld1ByaXZh
dGUtPnBhZ2VHcm91cC5nZXQoKSk7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRv
TG9hZEltYWdlczoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBjYXNlIEZ1bGxTY3JlZW5FbmFibGVkOgotICAgICAg
ICBwcmVmZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7
CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFi
bGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgotICAg
ICAgICBwcmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
ZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBMb2NhbFN0b3JhZ2VFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRMb2Nh
bFN0b3JhZ2VFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2NhbFN0
b3JhZ2VFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFhTU0F1ZGl0aW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0WFNT
QXVkaXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0
b3JFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRG5zUHJlZmV0Y2hFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNl
c1NldEROU1ByZWZldGNoaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAgICBwcmVm
ZXJlbmNlcygpLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdL
UHJlZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFi
bGUpOwogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5j
ZXMoKS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGNhc2UgV2ViR0xFbmFibGVk
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQoZW5hYmxlKTsKKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgIGNhc2UgQ1NTQ3Vz
dG9tRmlsdGVyRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgY2FzZSBXZWJBdWRpb0VuYWJs
ZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFdlYkF1ZGlvRW5hYmxlZChlbmFibGUpOwot
ICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAg
IGNhc2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRT
Y3JvbGxBbmltYXRvckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFdl
YkF1ZGlvRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIENhcmV0QnJvd3NpbmdFbmFibGVkOgogICAgICAgICAvLyBGSVhNRTog
Q2FyZXQgYnJvd3NpbmcgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgaW4gdG91Y2ggbW9kZS4KLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldENhcmV0QnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVm
LCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vdGlmaWNhdGlvbnNFbmFibGVk
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXROb3RpZmljYXRpb25zRW5hYmxlZChlbmFibGUp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQocHJlZmVyZW5j
ZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTgxLDI0ICsxNzYsMjUgQEAgdm9pZCBRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjppbml0aWFsaXplRGVmYXVsdEZvbnRTZXR0aW5ncygpCiAKIHZvaWQgUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udEZhbWlseShRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpGb250RmFtaWx5IHdoaWNoLCBjb25zdCBRU3RyaW5nJiBmYW1pbHkpCiB7CisgICAgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2Vi
Vmlld1ByaXZhdGUtPnBhZ2VHcm91cC5nZXQoKSk7CiAgICAgc3dpdGNoICh3aGljaCkgewogICAg
IGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTdGFuZGFyZEZv
bnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZh
bWlseShwcmVmZXJlbmNlc1JlZiwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZh
bWlseSkpLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0gICAg
ICAgIHByZWZlcmVuY2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1pbHkpOworICAgICAgICBX
S1ByZWZlcmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmLCBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNlcmlmRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2VyaWZGb250
RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRGYW1pbHko
cHJlZmVyZW5jZXNSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkp
KS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAg
ICAgcHJlZmVyZW5jZXMoKS0+c2V0U2Fuc1NlcmlmRm9udEZhbWlseShmYW1pbHkpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZiwgYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0
Q3Vyc2l2ZUZvbnRGYW1pbHkoZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNp
dmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFT
dHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZhbnRhc3lG
b250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRGYW50YXN5Rm9udEZhbWlseShmYW1pbHkp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNS
ZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMjA3LDM1ICsy
MDMsMzcgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRGb250RmFtaWx5KFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1pbHkgd2gKIAogUVN0cmluZyBRV2ViUHJlZmVyZW5j
ZXNQcml2YXRlOjpmb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1pbHkg
d2hpY2gpIGNvbnN0CiB7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IFdL
UGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2ViVmlld1ByaXZhdGUtPnBhZ2VHcm91cC5nZXQoKSk7
CiAgICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3RhbmRhcmRGb250OgotICAgICAgICBy
ZXR1cm4gcHJlZmVyZW5jZXMoKS0+c3RhbmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVy
biBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTdGFuZGFyZEZv
bnRGYW1pbHkocHJlZmVyZW5jZXNSZWYpKS5nZXQoKSk7CiAgICAgY2FzZSBGaXhlZEZvbnQ6Ci0g
ICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5maXhlZEZvbnRGYW1pbHkoKTsKKyAgICAgICAg
cmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weUZpeGVk
Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpLmdldCgpKTsKICAgICBjYXNlIFNlcmlmRm9udDoK
LSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNlcmlmRm9udEZhbWlseSgpOworICAgICAg
ICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U2Vy
aWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKSkuZ2V0KCkpOwogICAgIGNhc2UgU2Fuc1Nlcmlm
Rm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNhbnNTZXJpZkZvbnRGYW1pbHko
KTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVu
Y2VzQ29weVNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYpKS5nZXQoKSk7CiAgICAg
Y2FzZSBDdXJzaXZlRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmN1cnNpdmVG
b250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0so
V0tQcmVmZXJlbmNlc0NvcHlDdXJzaXZlRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpLmdldCgp
KTsKICAgICBjYXNlIEZhbnRhc3lGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+
ZmFudGFzeUZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmco
YWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weUZhbnRhc3lGb250RmFtaWx5KHByZWZlcmVuY2VzUmVm
KSkuZ2V0KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAg
fQogfQogCiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRTaXplKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKQoteworeyAg
ICAKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFnZUdyb3VwLmdldCgpKTsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TWlu
aW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGb250U2l6ZToKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGaXhlZEZvbnRTaXpl
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZShzaXplKTsK
KyAgICAgICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRGaXhlZEZvbnRTaXplKHByZWZlcmVuY2Vz
UmVmLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0NCwxMyArMjQyLDE0
IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUoUVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTo6Rm9udFNpemVUeXBlIHR5CiAKIHVuc2lnbmVkIFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OmZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBl
KSBjb25zdAogeworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKHdlYlZpZXdQcml2YXRlLT5wYWdlR3JvdXAuZ2V0KCkpOwogICAg
IHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTWluaW11bUZvbnRTaXplOgotICAgICAgICByZXR1
cm4gcHJlZmVyZW5jZXMoKS0+bWluaW11bUZvbnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldE1pbmltdW1Gb250U2l6ZShwcmVmZXJl
bmNlc1JlZikpOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAgICAgICByZXR1cm4gcHJl
ZmVyZW5jZXMoKS0+ZGVmYXVsdEZvbnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShwcmVmZXJlbmNlc1Jl
ZikpOwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4ZWRGb250U2l6ZShwcmVm
ZXJlbmNlc1JlZikpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NDYsMjUgKzU0NSw2IEBAIHZvaWQgUVdlYlBy
ZWZlcmVuY2VzOjpzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCBlbmFibGUpCiAjZW5kaWYKIH0KIAot
Ym9vbCBRV2ViUHJlZmVyZW5jZXM6OnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0Ci17Ci0j
aWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgcmV0dXJuIGQtPnRlc3RBdHRyaWJ1dGUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6U2Nyb2xsQW5pbWF0b3JFbmFibGVkKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRT
Y3JvbGxBbmltYXRvckVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0jaWYgRU5BQkxFKFNNT09USF9T
Q1JPTExJTkcpCi0gICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OlNj
cm9sbEFuaW1hdG9yRW5hYmxlZCwgZW5hYmxlKTsKLSAgICBlbWl0IHNjcm9sbEFuaW1hdG9yRW5h
YmxlZENoYW5nZWQoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGVuYWJsZSk7Ci0jZW5kaWYK
LX0KLQogYm9vbCBRV2ViUHJlZmVyZW5jZXM6OmNhcmV0QnJvd3NpbmdFbmFibGVkKCkgY29uc3QK
IHsKICAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpD
YXJldEJyb3dzaW5nRW5hYmxlZCk7CkBAIC01ODcsMTEgKzU2Nyw2IEBAIHZvaWQgUVdlYlByZWZl
cmVuY2VzOjpzZXROb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZSkKICAgICBlbWl0IG5v
dGlmaWNhdGlvbnNFbmFibGVkQ2hhbmdlZCgpOwogfQogCi1XZWJLaXQ6OldlYlByZWZlcmVuY2Vz
KiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlcygpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpOwotfQotCiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpnZXQoUVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKIHsKICAgICByZXR1cm4gcHJlZmVy
ZW5jZXMtPmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlc19wLmgKaW5kZXggZTNmYWI3OWFiYWIyMmI0ZDc5YTVjOTNiNGM0M2FlMGU0MjU3
MWNkMS4uN2ZjNTIyMDQyZDljN2U1YTE4OTYwZmJiNTBhYzE0NWRlMjNiYmFkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaApA
QCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgUV9QUk9QRVJUWShib29sIGRldmVsb3BlckV4
dHJhc0VuYWJsZWQgUkVBRCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdSSVRFIHNldERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQgTk9USUZZIGRldmVsb3BlckV4dHJhc0VuYWJsZWRDaGFuZ2VkIEZJTkFM
KQogICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJHTEVuYWJsZWQgUkVBRCB3ZWJHTEVuYWJsZWQgV1JJ
VEUgc2V0V2ViR0xFbmFibGVkIE5PVElGWSB3ZWJHTEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAg
IFFfUFJPUEVSVFkoYm9vbCB3ZWJBdWRpb0VuYWJsZWQgUkVBRCB3ZWJBdWRpb0VuYWJsZWQgV1JJ
VEUgc2V0V2ViQXVkaW9FbmFibGVkIE5PVElGWSB3ZWJBdWRpb0VuYWJsZWRDaGFuZ2VkIEZJTkFM
KQotICAgIFFfUFJPUEVSVFkoYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQgUkVBRCBzY3JvbGxB
bmltYXRvckVuYWJsZWQgV1JJVEUgc2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkIE5PVElGWSBzY3Jv
bGxBbmltYXRvckVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBjYXJl
dEJyb3dzaW5nRW5hYmxlZCBSRUFEIGNhcmV0QnJvd3NpbmdFbmFibGVkIFdSSVRFIHNldENhcmV0
QnJvd3NpbmdFbmFibGVkIE5PVElGWSBjYXJldEJyb3dzaW5nRW5hYmxlZENoYW5nZWQgRklOQUwp
CiAgICAgUV9QUk9QRVJUWShib29sIG5vdGlmaWNhdGlvbnNFbmFibGVkIFJFQUQgbm90aWZpY2F0
aW9uc0VuYWJsZWQgV1JJVEUgc2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQgTk9USUZZIG5vdGlmaWNh
dGlvbnNFbmFibGVkQ2hhbmdlZCBGSU5BTCkKIApAQCAtMTAyLDkgKzEwMSw2IEBAIHB1YmxpYzoK
ICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0V2ViQXVkaW9F
bmFibGVkKGJvb2wgZW5hYmxlKTsKIAotICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoYm9vbCBlbmFibGUpOwot
CiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2Fy
ZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCkBAIC0xNTMsNyArMTQ5LDYgQEAgUV9T
SUdOQUxTOgogICAgIHZvaWQgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5nZWQoKTsKICAgICB2
b2lkIHdlYkdMRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHdlYkF1ZGlvRW5hYmxlZENoYW5n
ZWQoKTsKLSAgICB2b2lkIHNjcm9sbEFuaW1hdG9yRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lk
IGNhcmV0QnJvd3NpbmdFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgbm90aWZpY2F0aW9uc0Vu
YWJsZWRDaGFuZ2VkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYzgwOThiNTBlYWIyMzg5NWM4MDZiOTJj
MmE2MTA4NDgxYjQ1NTIwNS4uNmVlNjkyYzMwYmNmYTU0YmVkNmJhYTg2OTM5ZmI2NDIzNTZkZWM0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcF9wLmgKQEAgLTIwLDggKzIwLDYgQEAKICNpZm5kZWYgcXdlYnByZWZlcmVuY2Vz
X3BfcF9oCiAjZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogCi0jaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKLQogY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CiAKIGNsYXNzIFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUgewpAQCAtNDIsNyArNDAsNiBAQCBwdWJsaWM6CiAgICAgICAgIFdl
YkdMRW5hYmxlZCwKICAgICAgICAgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCwKICAgICAgICAgV2Vi
QXVkaW9FbmFibGVkLAotICAgICAgICBTY3JvbGxBbmltYXRvckVuYWJsZWQsCiAgICAgICAgIENh
cmV0QnJvd3NpbmdFbmFibGVkLAogICAgICAgICBOb3RpZmljYXRpb25zRW5hYmxlZAogICAgIH07
CkBAIC03NCw4ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTaXplKEZvbnRTaXpl
VHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKTsKICAgICB1bnNpZ25lZCBmb250U2l6ZShGb250U2l6
ZVR5cGUgdHlwZSkgY29uc3Q7CiAKLSAgICBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcygpIGNvbnN0OwotCiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUqIHdlYlZpZXdQcml2YXRl
OwogCiAgICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGUqIGdldChRV2ViUHJlZmVyZW5j
ZXMqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190479</attachid>
            <date>2013-02-27 02:52:02 -0800</date>
            <delta_ts>2013-02-27 03:33:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130227114815.patch</filename>
            <type>text/plain</type>
            <size>21194</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmY0YzQyYjJmOWYzYzQz
NTg0N2IzNmZiOWQwNmYzYTE5NWU0NjRjOS4uZTM2NzMzNTQzYWVjMzJjNjA1YjYyOWNkNzEyZjE1
Yjg3YTJjMzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTI3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNpZ25lZCBvZmYgZm9yIFdlYktpdDIgYnkgQmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICBU
aGlzIHBhdGNoIG1vdmVzIHRoZSB2aWV3IGNsYXNzZXMgYW5kIHByZWZlcmVuY2VzIGluIHRoZSBR
dCBBUEkKKyAgICAgICAgdG8gdXNlIHRoZSBDIEFQSSBmb3IgYWNjZXNzaW5nIGFuZCBtYW5pcHVs
YXRpbmcgcHJlZmVyZW5jZXMgYXMKKyAgICAgICAgcGFydCBvZiB0aGUgY2xlYW51cCBhbmQgbW92
ZSB0b3dhcmRzIHVzaW5nIHRoZSBDIEFQSSBhcyBiYXNlIGZvcgorICAgICAgICB0aGUgUXQgV2Vi
S2l0MiBBUEkuCisKKyAgICAgICAgQWRkcyB0aGUgZnVuY3Rpb24gYWRvcHRUb1FTdHJpbmcgZm9y
IGNvbnZlbmllbmNlIHdoZW4gZGVhbGluZyB3aXRoCisgICAgICAgIFFTdHJpbmcgYW5kIGNvcGll
ZCBTdHJpbmcgb2JqZWN0cy4KKworICAgICAgICBSZW1vdmVzIHRoZSBTY3JvbGxBbmltYXRvckVu
YWJsZWQgb3B0aW9ucyBmcm9tIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwOgorICAgICAgICAoYWRvcHRUb1FTdHJpbmcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmll
d1ByaXZhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRy
aWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKToK
KyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkpOgorICAgICAg
ICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udEZhbWlseSk6CisgICAgICAgIChRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQ
cml2YXRlOjpmb250U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3Bf
cC5oOgorCiAyMDEzLTAyLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IFN0b3JhZ2VBcmVhUHJveHk6OmdldEl0ZW0gYW5kIFN0b3Jh
Z2VBcmVhUHJveHk6OnNldEl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tTdHJpbmdRdC5jcHAKaW5kZXggZjJmMTg4MzU0NTM4MTViZTNhNTY2OTUyOThm
YmZiZjE1NzcxMGVhNy4uYjE0MGVmODc2M2E5ZmQ0MWUyYTBiZGE1NTM3NGYwY2MyNWYwOTM3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdR
dC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCiAKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgPFFT
dHJpbmc+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtNDEsMyArNDIsOCBAQCBRU3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tT
dHJpbmdSZWYgc3RyaW5nUmVmKQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcgPSB0b0lt
cGwoc3RyaW5nUmVmKS0+c3RyaW5nKCk7CiAgICAgcmV0dXJuIFFTdHJpbmcocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBRQ2hhcio+KHN0cmluZy5jaGFyYWN0ZXJzKCkpLCBzdHJpbmcubGVuZ3RoKCkp
OwogfQorCitRU3RyaW5nIGFkb3B0VG9RU3RyaW5nKFdLU3RyaW5nUmVmIHN0cmluZ1JlZikKK3sK
KyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKHN0cmluZ1JlZikuZ2V0KCkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tT
dHJpbmdRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdR
dC5oCmluZGV4IGNjNDZlNDI1MDgwMGJkMmYzMTY1MmU2MDkyMmQ0MGZhNjgzZmYwZDMuLjM3Njcz
N2NmOTVlODMxZDc2YzhmZDQzMzIzZjVmZDc3N2Q2ODE1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmgKQEAgLTI2LDUgKzI2LDYgQEAK
IAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoY29uc3Qg
UVN0cmluZyYgc3RyaW5nKTsKIFdLX0VYUE9SVCBRU3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmco
V0tTdHJpbmdSZWYgc3RyaW5nKTsKK1dLX0VYUE9SVCBRU3RyaW5nIGFkb3B0VG9RU3RyaW5nKFdL
U3RyaW5nUmVmKTsKIAogI2VuZGlmIC8qIFdLU3RyaW5nUXRfaCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNzk3M2Y5ODlj
Y2FiYzFmOTQxZjZkMTAxMmM5OWZhNDllMDk0ZGQ5Yy4uNjZjYjgzYzNhZjMxZmVjNmZiNDA0ZTFm
YzMxOGY0NDlkNjA0N2NiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSA8UXRRdWlj
ay9RUXVpY2tWaWV3PgogI2luY2x1ZGUgPFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaD4KICNp
bmNsdWRlIDxXS1BhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdLUHJlZmVyZW5jZXMuaD4KICNpbmNs
dWRlIDxXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdLU3RyaW5nLmg+CiAj
aW5jbHVkZSA8V0tTdHJpbmdRdC5oPgpAQCAtMzU3LDEzICszNTgsMTQgQEAgdm9pZCBRUXVpY2tX
ZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdl
R3JvdXBSZWYgcGEKICAgICBRT2JqZWN0Ojpjb25uZWN0KGljb25EYXRhYmFzZSwgU0lHTkFMKGlj
b25DaGFuZ2VkRm9yUGFnZVVSTChRU3RyaW5nKSksIHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5n
ZWRGb3JQYWdlVVJMKFFTdHJpbmcpKSk7CiAKICAgICAvLyBBbnkgcGFnZSBzZXR0aW5nIHNob3Vs
ZCBwcmVmZXJyYWJsZSBiZSBzZXQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwYWdlLgotICAgIHdlYlBh
Z2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKHRydWUpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91
cC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBx
Z2V0ZW52KCJXRUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiOwot
ICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldENvbXBvc2l0
aW5nQm9yZGVyc1Zpc2libGUoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAgd2ViUGFnZVByb3h5LT5w
YWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNW
aXNpYmxlKHNob3dEZWJ1Z1Zpc3VhbHMpOwotICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCkt
PnByZWZlcmVuY2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2Vi
UGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKHByZWZl
cmVuY2VzUmVmLCBzaG93RGVidWdWaXN1YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9z
aXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKHByZWZlcmVuY2VzUmVmLCBzaG93RGVidWdWaXN1
YWxzKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJl
bmNlc1JlZiwgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJl
bmNlc1JlZiwgdHJ1ZSk7CisgICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiAKICAgICBwYWdlQ2xpZW50Lmlu
aXRpYWxpemUocV9wdHIsIHBhZ2VWaWV3UHJpdmF0ZS0+ZXZlbnRIYW5kbGVyLmRhdGEoKSwgJnVu
ZG9Db250cm9sbGVyKTsKICAgICB3ZWJQYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5j
cHAKaW5kZXggN2RkZmQ5MjY5NjUyNWQ3YTgyNWYxMzA1ODE0ZjhhNmYxNWY4N2YwMS4uMzUwNThi
NjQxODVjMzZmNzhkZWEyNjg3M2Y1MWU2ZGVmY2I5MGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApAQCAtMjAsMTAgKzIw
LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3Au
aCIKIAotI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVu
Y2VzX3BfcC5oIgorI2luY2x1ZGUgPFdLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V0tQcmVmZXJl
bmNlcy5oPgorI2luY2x1ZGUgPFdLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V0tTdHJpbmdRdC5o
PgogCiBRV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZl
cmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZSkKIHsKQEAgLTM1LDUx
ICszNyw0OCBAQCBRV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0
ZVByZWZlcmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKgogCiBib29sIFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmli
dXRlIGF0dHIpIGNvbnN0CiB7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2ViVmlld1ByaXZhdGUtPnBhZ2VHcm91cC5nZXQo
KSk7CiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVm
ZXJlbmNlc1JlZik7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGNhc2UgRnVsbFNj
cmVlbkVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5mdWxsU2NyZWVuRW5h
YmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5FbmFibGVk
KHByZWZlcmVuY2VzUmVmKTsKICNlbmRpZgogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJsZWQ6Ci0g
ICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworICAgICAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVm
KTsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+cGx1Z2luc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQbHVn
aW5zRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5vZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNH
ZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAg
IGNhc2UgTG9jYWxTdG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCkt
PmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRM
b2NhbFN0b3JhZ2VFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNlIFhTU0F1ZGl0aW5n
RW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnhzc0F1ZGl0b3JFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDoKLSAgICAgICAg
cmV0dXJuIHByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKTsKKyAgICAgICAg
cmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2Vz
UmVmKTsKICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZl
cmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldEROU1ByZWZldGNoaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2Fz
ZSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgRGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAg
Y2FzZSBXZWJHTEVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT53ZWJHTEVu
YWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRXZWJHTEVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYpOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICBjYXNlIENTU0N1c3Rv
bUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5jc3NDdXN0b21G
aWx0ZXJFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Q1NTQ3VzdG9t
RmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJM
RShXRUJfQVVESU8pCiAgICAgY2FzZSBXZWJBdWRpb0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBw
cmVmZXJlbmNlcygpLT53ZWJBdWRpb0VuYWJsZWQoKTsKLSNlbmRpZgotI2lmIEVOQUJMRShTTU9P
VEhfU0NST0xMSU5HKQotICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JFbmFibGVkOgotICAgICAgICBy
ZXR1cm4gcHJlZmVyZW5jZXMoKS0+c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCk7CisgICAgICAgIHJl
dHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViQXVkaW9FbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICNl
bmRpZgogICAgIGNhc2UgQ2FyZXRCcm93c2luZ0VuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVm
ZXJlbmNlcygpLT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldENhcmV0QnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNl
IE5vdGlmaWNhdGlvbnNFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bm90
aWZpY2F0aW9uc0VuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXROb3Rp
ZmljYXRpb25zRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg4LDY3ICs4
Nyw2MyBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAKIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBh
dHRyLCBib29sIGVuYWJsZSkKIHsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
ID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFnZUdyb3VwLmdl
dCgpKTsKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgotICAg
ICAgICBwcmVmZXJlbmNlcygpLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZW5hYmxlKTsK
KyAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJl
bmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIGNhc2UgRnVsbFNjcmVlbkVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCkt
PnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRG
dWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7
CiAjZW5kaWYKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0SmF2YVNjcmlwdEVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGx1Z2luc0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNl
dFBsdWdpbnNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5z
RW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChlbmFibGUpOworICAgICAg
ICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZl
cmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvY2FsU3RvcmFn
ZUVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJsZWQo
ZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvY2FsU3RvcmFnZUVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWFNTQXVkaXRp
bmdFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChl
bmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVy
ZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBE
bnNQcmVmZXRjaEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEROU1ByZWZldGNo
aW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RE5TUHJlZmV0Y2hp
bmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgY2FzZSBE
ZXZlbG9wZXJFeHRyYXNFbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
ICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgY2FzZSBXZWJHTEVuYWJsZWQ6Ci0gICAgICAgIHByZWZl
cmVuY2VzKCktPnNldFdlYkdMRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
ICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgY2FzZSBDU1NDdXN0b21GaWx0ZXJFbmFibGVk
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKGVuYWJs
ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKHByZWZl
cmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2VuZGlmCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKICAgICBjYXNlIFdlYkF1ZGlvRW5hYmxlZDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0V2ViQXVkaW9FbmFibGVkKGVuYWJsZSk7Ci0gICAgICAgIGJyZWFrOwot
I2VuZGlmCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgY2FzZSBTY3JvbGxBbmlt
YXRvckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHBy
ZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2Ug
Q2FyZXRCcm93c2luZ0VuYWJsZWQ6CiAgICAgICAgIC8vIEZJWE1FOiBDYXJldCBicm93c2luZyBk
b2Vzbid0IG1ha2UgbXVjaCBzZW5zZSBpbiB0b3VjaCBtb2RlLgotICAgICAgICBwcmVmZXJlbmNl
cygpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVu
Y2VzU2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTm90aWZpY2F0aW9uc0VuYWJsZWQ6Ci0gICAgICAgIHByZWZl
cmVuY2VzKCktPnNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXROb3RpZmljYXRpb25zRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0xODEsMjQgKzE3NiwyNSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6Omlu
aXRpYWxpemVEZWZhdWx0Rm9udFNldHRpbmdzKCkKIAogdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2
YXRlOjpzZXRGb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1pbHkgd2hp
Y2gsIGNvbnN0IFFTdHJpbmcmIGZhbWlseSkKIHsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFn
ZUdyb3VwLmdldCgpKTsKICAgICBzd2l0Y2ggKHdoaWNoKSB7CiAgICAgY2FzZSBTdGFuZGFyZEZv
bnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldFN0YW5kYXJkRm9udEZhbWlseShmYW1pbHkp
OworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0U3RhbmRhcmRGb250RmFtaWx5KHByZWZlcmVuY2Vz
UmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcHJlZmVyZW5jZXMo
KS0+c2V0Rml4ZWRGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRG
aXhlZEZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
UVN0cmluZyhmYW1pbHkpKS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VyaWZG
b250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTZXJpZkZvbnRGYW1pbHkoZmFtaWx5KTsK
KyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZiwg
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTYW5zU2VyaWZGb250OgotICAgICAgICBwcmVmZXJlbmNlcygp
LT5zZXRTYW5zU2VyaWZGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNT
ZXRTYW5zU2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFFTdHJpbmcoZmFtaWx5KSkuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEN1cnNpdmVGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRDdXJzaXZlRm9udEZhbWls
eShmYW1pbHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Q3Vyc2l2ZUZvbnRGYW1pbHkocHJl
ZmVyZW5jZXNSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhmYW1pbHkpKS5n
ZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmFudGFzeUZvbnQ6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldEZhbnRhc3lGb250RmFtaWx5KGZhbWlseSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXRGYW50YXN5Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZiwgYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGZhbWlseSkpLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0yMDcsMzUgKzIwMywzNyBAQCB2b2lkIFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6Rm9udEZhbWlseSB3aAogCiBRU3RyaW5nIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRG
YW1pbHkoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udEZhbWlseSB3aGljaCkgY29uc3QKIHsK
KyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFnZUdyb3VwLmdldCgpKTsKICAgICBzd2l0Y2ggKHdo
aWNoKSB7CiAgICAgY2FzZSBTdGFuZGFyZEZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNl
cygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFT
dHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJl
bmNlc1JlZikpLmdldCgpKTsKICAgICBjYXNlIEZpeGVkRm9udDoKLSAgICAgICAgcmV0dXJuIHBy
ZWZlcmVuY2VzKCktPmZpeGVkRm9udEZhbWlseSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5Rml4ZWRGb250RmFtaWx5KHByZWZl
cmVuY2VzUmVmKSkuZ2V0KCkpOwogICAgIGNhc2UgU2VyaWZGb250OgotICAgICAgICByZXR1cm4g
cHJlZmVyZW5jZXMoKS0+c2VyaWZGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBXS1N0cmlu
Z0NvcHlRU3RyaW5nKGFkb3B0V0soV0tQcmVmZXJlbmNlc0NvcHlTZXJpZkZvbnRGYW1pbHkocHJl
ZmVyZW5jZXNSZWYpKS5nZXQoKSk7CiAgICAgY2FzZSBTYW5zU2VyaWZGb250OgotICAgICAgICBy
ZXR1cm4gcHJlZmVyZW5jZXMoKS0+c2Fuc1NlcmlmRm9udEZhbWlseSgpOworICAgICAgICByZXR1
cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U2Fuc1Nlcmlm
Rm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpLmdldCgpKTsKICAgICBjYXNlIEN1cnNpdmVGb250
OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Y3Vyc2l2ZUZvbnRGYW1pbHkoKTsKKyAg
ICAgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29w
eUN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVmKSkuZ2V0KCkpOwogICAgIGNhc2UgRmFu
dGFzeUZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5mYW50YXN5Rm9udEZhbWls
eSgpOworICAgICAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLUHJlZmVy
ZW5jZXNDb3B5RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYpKS5nZXQoKSk7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKICAgICB9CiB9CiAKIHZvaWQgUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNpemUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6
Rm9udFNpemVUeXBlIHR5cGUsIHVuc2lnbmVkIHNpemUpCi17Cit7ICAgIAorICAgIFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHdlYlZp
ZXdQcml2YXRlLT5wYWdlR3JvdXAuZ2V0KCkpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNh
c2UgTWluaW11bUZvbnRTaXplOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRNaW5pbXVtRm9u
dFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRNaW5pbXVtRm9udFNpemUocHJl
ZmVyZW5jZXNSZWYsIHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRE
ZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9u
dFNpemUocHJlZmVyZW5jZXNSZWYsIHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAgICAgIHByZWZl
cmVuY2VzKCktPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKHNpemUpOworICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0RGVmYXVsdEZpeGVkRm9udFNpemUocHJlZmVyZW5jZXNSZWYsIHN0YXRpY19jYXN0
PHVpbnQzMl90PihzaXplKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjQ0LDEzICsyNDIsMTQgQEAgdm9pZCBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpzZXRGb250U2l6ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpGb250
U2l6ZVR5cGUgdHkKIAogdW5zaWduZWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Zm9udFNpemUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udFNpemVUeXBlIHR5cGUpIGNvbnN0CiB7CisgICAg
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5j
ZXMod2ViVmlld1ByaXZhdGUtPnBhZ2VHcm91cC5nZXQoKSk7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBNaW5pbXVtRm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygp
LT5taW5pbXVtRm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihXS1ByZWZlcmVuY2VzR2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmKSk7CiAgICAg
Y2FzZSBEZWZhdWx0Rm9udFNpemU6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kZWZh
dWx0Rm9udFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihXS1By
ZWZlcmVuY2VzR2V0RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmKSk7CiAgICAgY2FzZSBE
ZWZhdWx0Rml4ZWRGb250U2l6ZToKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmRlZmF1
bHRGaXhlZEZvbnRTaXplKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
V0tQcmVmZXJlbmNlc0dldERlZmF1bHRGaXhlZEZvbnRTaXplKHByZWZlcmVuY2VzUmVmKSk7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTU0NiwyNSArNTQ1LDYgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldFdl
YkF1ZGlvRW5hYmxlZChib29sIGVuYWJsZSkKICNlbmRpZgogfQogCi1ib29sIFFXZWJQcmVmZXJl
bmNlczo6c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3QKLXsKLSNpZiBFTkFCTEUoU01PT1RI
X1NDUk9MTElORykKLSAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQ
cml2YXRlOjpTY3JvbGxBbmltYXRvckVuYWJsZWQpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKLX0KLQotdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZChib29sIGVuYWJsZSkKLXsKLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBk
LT5zZXRBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6U2Nyb2xsQW5pbWF0b3JFbmFi
bGVkLCBlbmFibGUpOwotICAgIGVtaXQgc2Nyb2xsQW5pbWF0b3JFbmFibGVkQ2hhbmdlZCgpOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKLSNlbmRpZgotfQotCiBib29sIFFXZWJQ
cmVmZXJlbmNlczo6Y2FyZXRCcm93c2luZ0VuYWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBk
LT50ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkNhcmV0QnJvd3NpbmdFbmFi
bGVkKTsKQEAgLTU4NywxMSArNTY3LDYgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldE5vdGlm
aWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlKQogICAgIGVtaXQgbm90aWZpY2F0aW9uc0VuYWJs
ZWRDaGFuZ2VkKCk7CiB9CiAKLVdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OnByZWZlcmVuY2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gd2ViVmlld1ByaXZh
dGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7Ci19Ci0KIFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmdldChRV2ViUHJlZmVy
ZW5jZXMqIHByZWZlcmVuY2VzKQogewogICAgIHJldHVybiBwcmVmZXJlbmNlcy0+ZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaApp
bmRleCBlM2ZhYjc5YWJhYjIyYjRkNzlhNWM5M2I0YzQzYWUwZTQyNTcxY2QxLi43ZmM1MjIwNDJk
OWM3ZTVhMTg5NjBmYmI1MGFjMTQ1ZGUyM2JiYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCkBAIC00NSw3ICs0NSw2IEBA
IHB1YmxpYzoKICAgICBRX1BST1BFUlRZKGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBSRUFE
IGRldmVsb3BlckV4dHJhc0VuYWJsZWQgV1JJVEUgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBO
T1RJRlkgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJU
WShib29sIHdlYkdMRW5hYmxlZCBSRUFEIHdlYkdMRW5hYmxlZCBXUklURSBzZXRXZWJHTEVuYWJs
ZWQgTk9USUZZIHdlYkdMRW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29s
IHdlYkF1ZGlvRW5hYmxlZCBSRUFEIHdlYkF1ZGlvRW5hYmxlZCBXUklURSBzZXRXZWJBdWRpb0Vu
YWJsZWQgTk9USUZZIHdlYkF1ZGlvRW5hYmxlZENoYW5nZWQgRklOQUwpCi0gICAgUV9QUk9QRVJU
WShib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCBSRUFEIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCBX
UklURSBzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQgTk9USUZZIHNjcm9sbEFuaW1hdG9yRW5hYmxl
ZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIGNhcmV0QnJvd3NpbmdFbmFibGVk
IFJFQUQgY2FyZXRCcm93c2luZ0VuYWJsZWQgV1JJVEUgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQg
Tk9USUZZIGNhcmV0QnJvd3NpbmdFbmFibGVkQ2hhbmdlZCBGSU5BTCkKICAgICBRX1BST1BFUlRZ
KGJvb2wgbm90aWZpY2F0aW9uc0VuYWJsZWQgUkVBRCBub3RpZmljYXRpb25zRW5hYmxlZCBXUklU
RSBzZXROb3RpZmljYXRpb25zRW5hYmxlZCBOT1RJRlkgbm90aWZpY2F0aW9uc0VuYWJsZWRDaGFu
Z2VkIEZJTkFMKQogCkBAIC0xMDIsOSArMTAxLDYgQEAgcHVibGljOgogICAgIGJvb2wgd2ViQXVk
aW9FbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCBlbmFi
bGUpOwogCi0gICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdDsKLSAgICB2b2lk
IHNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChib29sIGVuYWJsZSk7Ci0KICAgICBib29sIGNhcmV0
QnJvd3NpbmdFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZChib29sIGVuYWJsZSk7CiAKQEAgLTE1Myw3ICsxNDksNiBAQCBRX1NJR05BTFM6CiAgICAgdm9p
ZCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgd2ViR0xFbmFibGVk
Q2hhbmdlZCgpOwogICAgIHZvaWQgd2ViQXVkaW9FbmFibGVkQ2hhbmdlZCgpOwotICAgIHZvaWQg
c2Nyb2xsQW5pbWF0b3JFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgY2FyZXRCcm93c2luZ0Vu
YWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBub3RpZmljYXRpb25zRW5hYmxlZENoYW5nZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJl
bmNlc19wX3AuaAppbmRleCBjODA5OGI1MGVhYjIzODk1YzgwNmI5MmMyYTYxMDg0ODFiNDU1MjA1
Li42ZWU2OTJjMzBiY2ZhNTRiZWQ2YmFhODY5MzlmYjY0MjM1NmRlYzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaApA
QCAtMjAsOCArMjAsNiBAQAogI2lmbmRlZiBxd2VicHJlZmVyZW5jZXNfcF9wX2gKICNkZWZpbmUg
cXdlYnByZWZlcmVuY2VzX3BfcF9oCiAKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgotCiBj
bGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKIAogY2xhc3MgUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZSB7CkBAIC00Miw3ICs0MCw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xFbmFibGVkLAogICAg
ICAgICBDU1NDdXN0b21GaWx0ZXJFbmFibGVkLAogICAgICAgICBXZWJBdWRpb0VuYWJsZWQsCi0g
ICAgICAgIFNjcm9sbEFuaW1hdG9yRW5hYmxlZCwKICAgICAgICAgQ2FyZXRCcm93c2luZ0VuYWJs
ZWQsCiAgICAgICAgIE5vdGlmaWNhdGlvbnNFbmFibGVkCiAgICAgfTsKQEAgLTc0LDggKzcxLDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udFNpemUoRm9udFNpemVUeXBlIHR5cGUsIHVuc2ln
bmVkIHNpemUpOwogICAgIHVuc2lnbmVkIGZvbnRTaXplKEZvbnRTaXplVHlwZSB0eXBlKSBjb25z
dDsKIAotICAgIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0K
ICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAKICAgICBzdGF0aWMg
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZSogZ2V0KFFXZWJQcmVmZXJlbmNlcyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190484</attachid>
            <date>2013-02-27 03:33:12 -0800</date>
            <delta_ts>2013-02-27 03:39:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108952-20130227122925.patch</filename>
            <type>text/plain</type>
            <size>21111</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmY0YzQyYjJmOWYzYzQz
NTg0N2IzNmZiOWQwNmYzYTE5NWU0NjRjOS4uMDQxMzU0NTUxNDU1Njg4NzZhNGIwYTg3ZDc2NjE4
NmVjNjBiNmY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAyLTI3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gUmVwbGFjZSB1c2Ugb2YgV2ViUHJlZmVyZW5jZXMgd2l0aCB1c2Ugb2YgV0tQcmVmZW5j
ZXMgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNpZ25lZCBvZmYgZm9yIFdlYktpdDIgYnkgQmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICBU
aGlzIHBhdGNoIG1vdmVzIHRoZSB2aWV3IGNsYXNzZXMgYW5kIHByZWZlcmVuY2VzIGluIHRoZSBR
dCBBUEkKKyAgICAgICAgdG8gdXNlIHRoZSBDIEFQSSBmb3IgYWNjZXNzaW5nIGFuZCBtYW5pcHVs
YXRpbmcgcHJlZmVyZW5jZXMgYXMKKyAgICAgICAgcGFydCBvZiB0aGUgY2xlYW51cCBhbmQgbW92
ZSB0b3dhcmRzIHVzaW5nIHRoZSBDIEFQSSBhcyBiYXNlIGZvcgorICAgICAgICB0aGUgUXQgV2Vi
S2l0MiBBUEkuCisKKyAgICAgICAgQWRkcyB0aGUgZnVuY3Rpb24gV2ViS2l0OjphZG9wdFRvUVN0
cmluZyBmb3IgY29udmVuaWVuY2Ugd2hlbgorICAgICAgICBkZWFsaW5nIHdpdGggUVN0cmluZyBh
bmQgY29waWVkIFN0cmluZyBvYmplY3RzLgorCisgICAgICAgIFJlbW92ZXMgdGhlIFNjcm9sbEFu
aW1hdG9yRW5hYmxlZCBvcHRpb25zIGZyb20gUVdlYlByZWZlcmVuY2VzLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmFk
b3B0VG9RU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTo6c2V0Rm9udEZhbWlseSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2
YXRlOjpmb250RmFtaWx5KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZv
bnRTaXplKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRTaXplKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisKIDIwMTMtMDItMjYgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQg
U3RvcmFnZUFyZWFQcm94eTo6Z2V0SXRlbSBhbmQgU3RvcmFnZUFyZWFQcm94eTo6c2V0SXRlbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNw
cAppbmRleCBmMmYxODgzNTQ1MzgxNWJlM2E1NjY5NTI5OGZiZmJmMTU3NzEwZWE3Li40YWU0NDhl
NjI5NDViOTI5YTk0ODIxN2MzMTEzM2Y3YThiM2NlOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcApAQCAtMjIsNiArMjIsNyBA
QAogI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSA8UVN0cmluZz4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSwzICs0Miwx
MCBAQCBRU3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQog
ICAgIGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcgPSB0b0ltcGwoc3RyaW5nUmVmKS0+c3RyaW5n
KCk7CiAgICAgcmV0dXJuIFFTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KHN0
cmluZy5jaGFyYWN0ZXJzKCkpLCBzdHJpbmcubGVuZ3RoKCkpOwogfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK1FTdHJpbmcgYWRvcHRUb1FTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQorewor
ICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKGFkb3B0V0soc3RyaW5nUmVmKS5nZXQoKSk7
Cit9Cit9IC8qIG5hbWVzcGFjZSBXZWJLaXQgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaAppbmRleCBjYzQ2ZTQyNTA4MDBiZDJmMzE2NTJl
NjA5MjJkNDBmYTY4M2ZmMGQzLi5mZjJjZmE4Mzc3NmYzOWE4ZDAwZTNlMGVmNzkzMDI2NzM2NmFm
YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0
cmluZ1F0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJp
bmdRdC5oCkBAIC0yNyw0ICsyNyw5IEBACiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdD
cmVhdGVXaXRoUVN0cmluZyhjb25zdCBRU3RyaW5nJiBzdHJpbmcpOwogV0tfRVhQT1JUIFFTdHJp
bmcgV0tTdHJpbmdDb3B5UVN0cmluZyhXS1N0cmluZ1JlZiBzdHJpbmcpOwogCituYW1lc3BhY2Ug
V2ViS2l0IHsKK1FTdHJpbmcgYWRvcHRUb1FTdHJpbmcoV0tTdHJpbmdSZWYpOworfSAvKiBuYW1l
c3BhY2UgV2ViS2l0ICovCisKK3VzaW5nIFdlYktpdDo6YWRvcHRUb1FTdHJpbmc7CiAjZW5kaWYg
LyogV0tTdHJpbmdRdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCA3OTczZjk4OWNjYWJjMWY5NDFmNmQxMDEyYzk5ZmE0
OWUwOTRkZDljLi42NmNiODNjM2FmMzFmZWM2ZmI0MDRlMWZjMzE4ZjQ0OWQ2MDQ3Y2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
QEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja1ZpZXc+CiAjaW5jbHVk
ZSA8V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdLUGFnZUdyb3VwLmg+
CisjaW5jbHVkZSA8V0tQcmVmZXJlbmNlcy5oPgogI2luY2x1ZGUgPFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmg+CiAjaW5jbHVkZSA8V0tTdHJpbmcuaD4KICNpbmNsdWRlIDxXS1N0cmluZ1F0Lmg+
CkBAIC0zNTcsMTMgKzM1OCwxNCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFs
aXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIFFPYmpl
Y3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFT
dHJpbmcpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykp
KTsKIAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBi
ZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSk7Ci0g
ICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIHRy
dWUpOwogICAgIGJvb2wgc2hvd0RlYnVnVmlzdWFscyA9IHFnZXRlbnYoIldFQktJVF9TSE9XX0NP
TVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKSA9PSAiMSI7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShzaG93
RGVidWdWaXN1YWxzKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoc2hvd0RlYnVnVmlzdWFs
cyk7Ci0gICAgd2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKLSAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgp
LT5wcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUocHJlZmVyZW5jZXNSZWYsIHNob3dEZWJ1Z1Zp
c3VhbHMpOworICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zp
c2libGUocHJlZmVyZW5jZXNSZWYsIHNob3dEZWJ1Z1Zpc3VhbHMpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmLCB0cnVlKTsKKyAgICB3
ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0
aW5nTW9kZSh0cnVlKTsKIAogICAgIHBhZ2VDbGllbnQuaW5pdGlhbGl6ZShxX3B0ciwgcGFnZVZp
ZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0YSgpLCAmdW5kb0NvbnRyb2xsZXIpOwogICAgIHdl
YlBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3ZGRmZDkyNjk2NTI1
ZDdhODI1ZjEzMDU4MTRmOGE2ZjE1Zjg3ZjAxLi42ZDJjYWMxMDFkOTI2MDI1ODcwZTY5ZDI2ZjNk
NjEyOWU4YWMwODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXMuY3BwCkBAIC0yMCwxMCArMjAsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJxd2VicHJlZmVyZW5jZXNfcC5oIgogCi0jaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vi
dmlld19wX3AuaCIKICNpbmNsdWRlICJxd2VicHJlZmVyZW5jZXNfcF9wLmgiCisjaW5jbHVkZSA8
V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXS1ByZWZlcmVuY2VzLmg+CisjaW5jbHVkZSA8V0tS
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXS1N0cmluZ1F0Lmg+CiAKIFFXZWJQcmVmZXJlbmNlcyog
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNrV2ViVmlld1By
aXZhdGUqIHdlYlZpZXdQcml2YXRlKQogewpAQCAtMzUsNTEgKzM3LDQ4IEBAIFFXZWJQcmVmZXJl
bmNlcyogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNrV2Vi
Vmlld1ByaXZhdGUqCiAKIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0
ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYXR0cikgY29uc3QKIHsKKyAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJl
bmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFnZUdyb3VwLmdldCgpKTsKICAgICBzd2l0Y2ggKGF0dHIp
IHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMo
KS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzUmVmKTsKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgY2FzZSBGdWxsU2NyZWVuRW5hYmxlZDoKLSAgICAgICAg
cmV0dXJuIHByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogI2Vu
ZGlmCiAgICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVu
Y2VzKCktPmphdmFTY3JpcHRFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0SmF2YVNjcmlwdEVuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgUGx1Z2luc0Vu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5wbHVnaW5zRW5hYmxlZCgpOwor
ICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2Vz
UmVmKTsKICAgICBjYXNlIE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPm9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBMb2NhbFN0b3JhZ2VFbmFi
bGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bG9jYWxTdG9yYWdlRW5hYmxlZCgp
OworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgWFNTQXVkaXRpbmdFbmFibGVkOgotICAgICAgICByZXR1
cm4gcHJlZmVyZW5jZXMoKS0+eHNzQXVkaXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2Fz
ZSBQcml2YXRlQnJvd3NpbmdFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgRG5zUHJl
ZmV0Y2hFbmFibGVkOgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZG5zUHJlZmV0Y2hp
bmdFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RE5TUHJlZmV0Y2hp
bmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKTsKICAgICBjYXNlIEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZChwcmVmZXJlbmNlc1JlZik7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkOgotICAg
ICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOworICAg
ICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVy
ZW5jZXNSZWYpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBjYXNlIFdlYkdMRW5hYmxlZDoKLSAg
ICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPndlYkdMRW5hYmxlZCgpOworICAgICAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZik7CiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogICAgIGNhc2UgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDoKLSAgICAg
ICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmNzc0N1c3RvbUZpbHRlckVuYWJsZWQoKTsKKyAgICAg
ICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKHByZWZlcmVu
Y2VzUmVmKTsKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBjYXNl
IFdlYkF1ZGlvRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPndlYkF1ZGlv
RW5hYmxlZCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgY2Fz
ZSBTY3JvbGxBbmltYXRvckVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5z
Y3JvbGxBbmltYXRvckVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRX
ZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJy
b3dzaW5nRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPmNhcmV0QnJvd3Np
bmdFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0Q2FyZXRCcm93c2lu
Z0VuYWJsZWQocHJlZmVyZW5jZXNSZWYpOwogICAgIGNhc2UgTm90aWZpY2F0aW9uc0VuYWJsZWQ6
Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5ub3RpZmljYXRpb25zRW5hYmxlZCgpOwor
ICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldE5vdGlmaWNhdGlvbnNFbmFibGVkKHByZWZl
cmVuY2VzUmVmKTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODgsNjcgKzg3LDYzIEBAIGJvb2wgUVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJB
dHRyaWJ1dGUKIAogdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGF0dHIsIGJvb2wgZW5hYmxlKQogewor
ICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHdlYlZpZXdQcml2YXRlLT5wYWdlR3JvdXAuZ2V0KCkpOwogICAgIHN3aXRjaCAoYXR0
cikgewogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShlbmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2Vz
U2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAg
ICAgICBicmVhazsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgY2FzZSBGdWxsU2Ny
ZWVuRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RnVsbFNjcmVlbkVuYWJsZWQo
ZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZl
cmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSmF2
YXNjcmlwdEVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEphdmFTY3JpcHRFbmFi
bGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChw
cmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbHVnaW5z
RW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0UGx1Z2luc0VuYWJsZWQoZW5hYmxl
KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFibGVkKHByZWZlcmVuY2VzUmVm
LCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG9jYWxTdG9yYWdlRW5hYmxlZDoKLSAgICAgICAgcHJl
ZmVyZW5jZXMoKS0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOworICAgICAgICBXS1By
ZWZlcmVuY2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYU1NBdWRpdGluZ0VuYWJsZWQ6Ci0gICAgICAgIHBy
ZWZlcmVuY2VzKCktPnNldFhTU0F1ZGl0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcml2YXRlQnJvd3NpbmdFbmFibGVkOgotICAgICAgICBw
cmVmZXJlbmNlcygpLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAg
IFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBl
bmFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERuc1ByZWZldGNoRW5hYmxlZDoKLSAg
ICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQocHJlZmVyZW5jZXNS
ZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJhbWVGbGF0dGVuaW5nRW5h
YmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChl
bmFibGUpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChw
cmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICBjYXNlIERldmVsb3BlckV4dHJhc0VuYWJsZWQ6
Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZW5hYmxl
KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJlZmVy
ZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShXRUJHTCkKICAg
ICBjYXNlIFdlYkdMRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFi
bGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVuYWJsZWQocHJlZmVy
ZW5jZXNSZWYsIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKICAgICBjYXNlIENTU0N1c3RvbUZpbHRlckVuYWJsZWQ6Ci0gICAgICAgIHByZWZlcmVuY2Vz
KCktPnNldENTU0N1c3RvbUZpbHRlckVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJl
bmNlc1NldENTU0N1c3RvbUZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7CiAg
ICAgICAgIGJyZWFrOwogI2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAg
IGNhc2UgV2ViQXVkaW9FbmFibGVkOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRXZWJBdWRp
b0VuYWJsZWQoZW5hYmxlKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU01P
T1RIX1NDUk9MTElORykKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yRW5hYmxlZDoKLSAgICAgICAg
cHJlZmVyZW5jZXMoKS0+c2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAg
IFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQocHJlZmVyZW5jZXNSZWYsIGVuYWJsZSk7
CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDYXJldEJyb3dzaW5nRW5hYmxlZDoK
ICAgICAgICAgLy8gRklYTUU6IENhcmV0IGJyb3dzaW5nIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNl
IGluIHRvdWNoIG1vZGUuCi0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldENhcmV0QnJvd3NpbmdF
bmFibGVkKGVuYWJsZSk7CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRDYXJldEJyb3dzaW5nRW5h
YmxlZChwcmVmZXJlbmNlc1JlZiwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBO
b3RpZmljYXRpb25zRW5hYmxlZDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Tm90aWZpY2F0
aW9uc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldE5vdGlmaWNhdGlv
bnNFbmFibGVkKHByZWZlcmVuY2VzUmVmLCBlbmFibGUpOwogICAgICAgICBicmVhazsKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4MSwyNCArMTc2LDI2
IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6aW5pdGlhbGl6ZURlZmF1bHRGb250U2V0
dGluZ3MoKQogCiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZvbnRGYW1pbHkoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udEZhbWlseSB3aGljaCwgY29uc3QgUVN0cmluZyYgZmFt
aWx5KQogeworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHdlYlZpZXdQcml2YXRlLT5wYWdlR3JvdXAuZ2V0KCkpOworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBmYW1pbHlSZWYgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFFTdHJpbmcoZmFtaWx5KSk7CiAgICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3Rh
bmRhcmRGb250OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHko
ZmFtaWx5KTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVm
ZXJlbmNlc1JlZiwgZmFtaWx5UmVmLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
aXhlZEZvbnQ6Ci0gICAgICAgIHByZWZlcmVuY2VzKCktPnNldEZpeGVkRm9udEZhbWlseShmYW1p
bHkpOworICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Rml4ZWRGb250RmFtaWx5KHByZWZlcmVuY2Vz
UmVmLCBmYW1pbHlSZWYuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlcmlmRm9u
dDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2VyaWZGb250RmFtaWx5KGZhbWlseSk7Cisg
ICAgICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYsIGZh
bWlseVJlZi5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoK
LSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0U2Fuc1NlcmlmRm9udEZhbWlseShmYW1pbHkpOwor
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1Jl
ZiwgZmFtaWx5UmVmLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzaXZlRm9u
dDoKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0Q3Vyc2l2ZUZvbnRGYW1pbHkoZmFtaWx5KTsK
KyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250RmFtaWx5KHByZWZlcmVuY2VzUmVm
LCBmYW1pbHlSZWYuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZhbnRhc3lGb250
OgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXRGYW50YXN5Rm9udEZhbWlseShmYW1pbHkpOwor
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RmFudGFzeUZvbnRGYW1pbHkocHJlZmVyZW5jZXNSZWYs
IGZhbWlseVJlZi5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwpAQCAtMjA3LDM1ICsyMDQsMzcgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRl
OjpzZXRGb250RmFtaWx5KFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRGYW1pbHkgd2gKIAog
UVN0cmluZyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpmb250RmFtaWx5KFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OkZvbnRGYW1pbHkgd2hpY2gpIGNvbnN0CiB7CisgICAgV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2ViVmlld1ByaXZh
dGUtPnBhZ2VHcm91cC5nZXQoKSk7CiAgICAgc3dpdGNoICh3aGljaCkgewogICAgIGNhc2UgU3Rh
bmRhcmRGb250OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+c3RhbmRhcmRGb250RmFt
aWx5KCk7CisgICAgICAgIHJldHVybiBhZG9wdFRvUVN0cmluZyhXS1ByZWZlcmVuY2VzQ29weVN0
YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRml4ZWRGb250Ogot
ICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+Zml4ZWRGb250RmFtaWx5KCk7CisgICAgICAg
IHJldHVybiBhZG9wdFRvUVN0cmluZyhXS1ByZWZlcmVuY2VzQ29weUZpeGVkRm9udEZhbWlseShw
cmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgU2VyaWZGb250OgotICAgICAgICByZXR1cm4gcHJl
ZmVyZW5jZXMoKS0+c2VyaWZGb250RmFtaWx5KCk7CisgICAgICAgIHJldHVybiBhZG9wdFRvUVN0
cmluZyhXS1ByZWZlcmVuY2VzQ29weVNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpOwog
ICAgIGNhc2UgU2Fuc1NlcmlmRm9udDoKLSAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzKCktPnNh
bnNTZXJpZkZvbnRGYW1pbHkoKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0VG9RU3RyaW5nKFdLUHJl
ZmVyZW5jZXNDb3B5U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNh
c2UgQ3Vyc2l2ZUZvbnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5jdXJzaXZlRm9u
dEZhbWlseSgpOworICAgICAgICByZXR1cm4gYWRvcHRUb1FTdHJpbmcoV0tQcmVmZXJlbmNlc0Nv
cHlDdXJzaXZlRm9udEZhbWlseShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRmFudGFzeUZv
bnQ6Ci0gICAgICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5mYW50YXN5Rm9udEZhbWlseSgpOwor
ICAgICAgICByZXR1cm4gYWRvcHRUb1FTdHJpbmcoV0tQcmVmZXJlbmNlc0NvcHlGYW50YXN5Rm9u
dEZhbWlseShwcmVmZXJlbmNlc1JlZikpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBR
U3RyaW5nKCk7CiAgICAgfQogfQogCiB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEZv
bnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25l
ZCBzaXplKQoteworeyAgICAKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmID0g
V0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyh3ZWJWaWV3UHJpdmF0ZS0+cGFnZUdyb3VwLmdldCgp
KTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIE1pbmltdW1Gb250U2l6ZToKLSAgICAg
ICAgcHJlZmVyZW5jZXMoKS0+c2V0TWluaW11bUZvbnRTaXplKHNpemUpOworICAgICAgICBXS1By
ZWZlcmVuY2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRGb250U2l6
ZToKLSAgICAgICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAg
ICAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdEZvbnRTaXplKHByZWZlcmVuY2VzUmVmLCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1
bHRGaXhlZEZvbnRTaXplOgotICAgICAgICBwcmVmZXJlbmNlcygpLT5zZXREZWZhdWx0Rml4ZWRG
b250U2l6ZShzaXplKTsKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRGaXhlZEZvbnRT
aXplKHByZWZlcmVuY2VzUmVmLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2l6ZSkpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTI0NCwxMyArMjQzLDE0IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0Rm9udFNp
emUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Rm9udFNpemVUeXBlIHR5CiAKIHVuc2lnbmVkIFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmZvbnRTaXplKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkZv
bnRTaXplVHlwZSB0eXBlKSBjb25zdAogeworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHdlYlZpZXdQcml2YXRlLT5wYWdlR3Jv
dXAuZ2V0KCkpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTWluaW11bUZvbnRTaXpl
OgotICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+bWluaW11bUZvbnRTaXplKCk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldE1pbmltdW1G
b250U2l6ZShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRGVmYXVsdEZvbnRTaXplOgotICAg
ICAgICByZXR1cm4gcHJlZmVyZW5jZXMoKS0+ZGVmYXVsdEZvbnRTaXplKCk7CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6
ZShwcmVmZXJlbmNlc1JlZikpOwogICAgIGNhc2UgRGVmYXVsdEZpeGVkRm9udFNpemU6Ci0gICAg
ICAgIHJldHVybiBwcmVmZXJlbmNlcygpLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdLUHJlZmVyZW5jZXNHZXREZWZhdWx0Rml4
ZWRGb250U2l6ZShwcmVmZXJlbmNlc1JlZikpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NDYsMjUgKzU0Niw2
IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCBlbmFibGUp
CiAjZW5kaWYKIH0KIAotYm9vbCBRV2ViUHJlZmVyZW5jZXM6OnNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCgpIGNvbnN0Ci17Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgcmV0dXJuIGQt
PnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6U2Nyb2xsQW5pbWF0b3JFbmFi
bGVkKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgUVdlYlBy
ZWZlcmVuY2VzOjpzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0jaWYg
RU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OlNjcm9sbEFuaW1hdG9yRW5hYmxlZCwgZW5hYmxlKTsKLSAgICBlbWl0IHNj
cm9sbEFuaW1hdG9yRW5hYmxlZENoYW5nZWQoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGVu
YWJsZSk7Ci0jZW5kaWYKLX0KLQogYm9vbCBRV2ViUHJlZmVyZW5jZXM6OmNhcmV0QnJvd3NpbmdF
bmFibGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7CkBAIC01ODcsMTEgKzU2OCw2IEBA
IHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXROb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJs
ZSkKICAgICBlbWl0IG5vdGlmaWNhdGlvbnNFbmFibGVkQ2hhbmdlZCgpOwogfQogCi1XZWJLaXQ6
OldlYlByZWZlcmVuY2VzKiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlcygpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91
cCgpLT5wcmVmZXJlbmNlcygpOwotfQotCiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlKiBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpnZXQoUVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKIHsKICAg
ICByZXR1cm4gcHJlZmVyZW5jZXMtPmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKaW5kZXggZTNmYWI3OWFiYWIyMmI0ZDc5YTVj
OTNiNGM0M2FlMGU0MjU3MWNkMS4uN2ZjNTIyMDQyZDljN2U1YTE4OTYwZmJiNTBhYzE0NWRlMjNi
YmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3AuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgUV9QUk9QRVJUWShi
b29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgUkVBRCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdS
SVRFIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQgTk9USUZZIGRldmVsb3BlckV4dHJhc0VuYWJs
ZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJHTEVuYWJsZWQgUkVBRCB3
ZWJHTEVuYWJsZWQgV1JJVEUgc2V0V2ViR0xFbmFibGVkIE5PVElGWSB3ZWJHTEVuYWJsZWRDaGFu
Z2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJBdWRpb0VuYWJsZWQgUkVBRCB3ZWJB
dWRpb0VuYWJsZWQgV1JJVEUgc2V0V2ViQXVkaW9FbmFibGVkIE5PVElGWSB3ZWJBdWRpb0VuYWJs
ZWRDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFkoYm9vbCBzY3JvbGxBbmltYXRvckVuYWJs
ZWQgUkVBRCBzY3JvbGxBbmltYXRvckVuYWJsZWQgV1JJVEUgc2V0U2Nyb2xsQW5pbWF0b3JFbmFi
bGVkIE5PVElGWSBzY3JvbGxBbmltYXRvckVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJP
UEVSVFkoYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCBSRUFEIGNhcmV0QnJvd3NpbmdFbmFibGVk
IFdSSVRFIHNldENhcmV0QnJvd3NpbmdFbmFibGVkIE5PVElGWSBjYXJldEJyb3dzaW5nRW5hYmxl
ZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIG5vdGlmaWNhdGlvbnNFbmFibGVk
IFJFQUQgbm90aWZpY2F0aW9uc0VuYWJsZWQgV1JJVEUgc2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQg
Tk9USUZZIG5vdGlmaWNhdGlvbnNFbmFibGVkQ2hhbmdlZCBGSU5BTCkKIApAQCAtMTAyLDkgKzEw
MSw2IEBAIHB1YmxpYzoKICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0OwogICAgIHZv
aWQgc2V0V2ViQXVkaW9FbmFibGVkKGJvb2wgZW5hYmxlKTsKIAotICAgIGJvb2wgc2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQo
Ym9vbCBlbmFibGUpOwotCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCkBAIC0xNTMs
NyArMTQ5LDYgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENo
YW5nZWQoKTsKICAgICB2b2lkIHdlYkdMRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHdlYkF1
ZGlvRW5hYmxlZENoYW5nZWQoKTsKLSAgICB2b2lkIHNjcm9sbEFuaW1hdG9yRW5hYmxlZENoYW5n
ZWQoKTsKICAgICB2b2lkIGNhcmV0QnJvd3NpbmdFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQg
bm90aWZpY2F0aW9uc0VuYWJsZWRDaGFuZ2VkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYzgwOThiNTBl
YWIyMzg5NWM4MDZiOTJjMmE2MTA4NDgxYjQ1NTIwNS4uNmVlNjkyYzMwYmNmYTU0YmVkNmJhYTg2
OTM5ZmI2NDIzNTZkZWM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKQEAgLTIwLDggKzIwLDYgQEAKICNpZm5kZWYg
cXdlYnByZWZlcmVuY2VzX3BfcF9oCiAjZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAogCi0j
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKLQogY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7
CiAKIGNsYXNzIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGUgewpAQCAtNDIsNyArNDAsNiBAQCBwdWJs
aWM6CiAgICAgICAgIFdlYkdMRW5hYmxlZCwKICAgICAgICAgQ1NTQ3VzdG9tRmlsdGVyRW5hYmxl
ZCwKICAgICAgICAgV2ViQXVkaW9FbmFibGVkLAotICAgICAgICBTY3JvbGxBbmltYXRvckVuYWJs
ZWQsCiAgICAgICAgIENhcmV0QnJvd3NpbmdFbmFibGVkLAogICAgICAgICBOb3RpZmljYXRpb25z
RW5hYmxlZAogICAgIH07CkBAIC03NCw4ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZv
bnRTaXplKEZvbnRTaXplVHlwZSB0eXBlLCB1bnNpZ25lZCBzaXplKTsKICAgICB1bnNpZ25lZCBm
b250U2l6ZShGb250U2l6ZVR5cGUgdHlwZSkgY29uc3Q7CiAKLSAgICBXZWJLaXQ6OldlYlByZWZl
cmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OwotCiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUq
IHdlYlZpZXdQcml2YXRlOwogCiAgICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGUqIGdl
dChRV2ViUHJlZmVyZW5jZXMqKTsK
</data>
<flag name="review"
          id="211156"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>