<?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>139532</bug_id>
          
          <creation_ts>2014-12-10 23:12:28 -0800</creation_ts>
          <short_desc>Final clean up OwnPtr in JSC - runtime, ftl, and tool directories</short_desc>
          <delta_ts>2014-12-12 05:34:25 -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>JavaScriptCore</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>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1054431</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-10 23:12:28 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054432</commentid>
    <comment_count>1</comment_count>
      <attachid>243108</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-10 23:14:08 -0800</bug_when>
    <thetext>Created attachment 243108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054486</commentid>
    <comment_count>2</comment_count>
      <attachid>243122</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 07:20:33 -0800</bug_when>
    <thetext>Created attachment 243122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054488</commentid>
    <comment_count>3</comment_count>
      <attachid>243122</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-12-11 07:50:02 -0800</bug_when>
    <thetext>Comment on attachment 243122
Patch

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

&gt; Source/JavaScriptCore/runtime/Structure.cpp:40
&gt; +#include &lt;wtf/PassOwnPtr.h&gt;

Why do we need this?

&gt; Source/JavaScriptCore/runtime/StructureIDTable.cpp:49
&gt; -    OwnPtr&lt;StructureOrOffset&gt; newTable = adoptPtr(new StructureOrOffset[newCapacity]);
&gt; +    auto newTable = std::make_unique&lt;StructureOrOffset[]&gt;(newCapacity);

In the code below this, we append the old m_table (swap’ed into newTable) to m_oldTables.  Currently, that code uses release().  Shouldn&apos;t we be using WTF::move() instead there?

&gt; Source/JavaScriptCore/runtime/StructureIDTable.h:69
&gt; +    Vector&lt;std::unique_ptr&lt;StructureOrOffset&gt;&gt; m_oldTables;

Shouldn’t this be &quot;Vector&lt;std::unique_ptr&lt;StructureOrOffset[]&gt;&gt; m_oldTables;” instead?

&gt; Source/JavaScriptCore/tools/CodeProfile.h:44
&gt; -            parent-&gt;addChild(this);
&gt; +            parent-&gt;addChild(std::make_unique&lt;CodeProfile&gt;(source, parent));

This is incorrect.  Previously, the parent retains a pointer to “this”.  Now it retains a pointer to a clone of “this” by constructing another instance, and it looks like this results in infinite recursion too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054756</commentid>
    <comment_count>4</comment_count>
      <attachid>243178</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 22:37:45 -0800</bug_when>
    <thetext>Created attachment 243178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054757</commentid>
    <comment_count>5</comment_count>
      <attachid>243122</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 22:43:28 -0800</bug_when>
    <thetext>Comment on attachment 243122
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Structure.cpp:40
&gt;&gt; +#include &lt;wtf/PassOwnPtr.h&gt;
&gt; 
&gt; Why do we need this?

Removed.

&gt;&gt; Source/JavaScriptCore/runtime/StructureIDTable.cpp:49
&gt;&gt; +    auto newTable = std::make_unique&lt;StructureOrOffset[]&gt;(newCapacity);
&gt; 
&gt; In the code below this, we append the old m_table (swap’ed into newTable) to m_oldTables.  Currently, that code uses release().  Shouldn&apos;t we be using WTF::move() instead there?

Done.

&gt;&gt; Source/JavaScriptCore/runtime/StructureIDTable.h:69
&gt;&gt; +    Vector&lt;std::unique_ptr&lt;StructureOrOffset&gt;&gt; m_oldTables;
&gt; 
&gt; Shouldn’t this be &quot;Vector&lt;std::unique_ptr&lt;StructureOrOffset[]&gt;&gt; m_oldTables;” instead?

Used it.

&gt;&gt; Source/JavaScriptCore/tools/CodeProfile.h:44
&gt;&gt; +            parent-&gt;addChild(std::make_unique&lt;CodeProfile&gt;(source, parent));
&gt; 
&gt; This is incorrect.  Previously, the parent retains a pointer to “this”.  Now it retains a pointer to a clone of “this” by constructing another instance, and it looks like this results in infinite recursion too.

I don&apos;t know how to cast this pointer to unique_ptr. If you know it, please let me know.

Anyway, I change to add &quot;this&quot; instance to m_children in caller (CodeProfiling::begin())

    bool alreadyProfiling = s_profileStack;
    auto profileStack = std::make_unique&lt;CodeProfile&gt;(source, const_cast&lt;CodeProfile*&gt;(s_profileStack));
    s_profileStack = profileStack.get();
    profileStack-&gt;addChild(WTF::move(profileStack));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054761</commentid>
    <comment_count>6</comment_count>
      <attachid>243178</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-12-11 23:09:41 -0800</bug_when>
    <thetext>Comment on attachment 243178
Patch

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

When you’re done updating your patch, please do a recursive grep in the JavaScriptCore directory to ensure that there are no more uses of OwnPtr and PassOwnPtr?  This will help catch any #include that you may have missed.

&gt; Source/JavaScriptCore/runtime/StructureIDTable.h:68
&gt;      static const size_t s_initialSize = 256;

There’s a #include &lt;OwnPtr.h&gt; at the top of this file that should be removed now.  You had this change in your previous patch.  Why did you undo it?

&gt; Source/JavaScriptCore/tools/CodeProfile.h:-44
&gt; -        if (parent)
&gt; -            parent-&gt;addChild(this);

Let’s keep the original design that hides this detail in the CodeProfile class instead of passing this burden (of associating the child with the parent) onto the client.

You can implement this as the following:
    if (parent)
        parent-&gt;addChile(std::unique_ptr&lt;CodeProfile&gt;(this));

&gt; Source/JavaScriptCore/tools/CodeProfiling.cpp:139
&gt; -    CodeProfile* profileStack = const_cast&lt;CodeProfile*&gt;(s_profileStack);
&gt; -    bool alreadyProfiling = profileStack;
&gt; -    s_profileStack = profileStack = new CodeProfile(source, profileStack);
&gt; +    bool alreadyProfiling = s_profileStack;
&gt; +    auto profileStack = std::make_unique&lt;CodeProfile&gt;(source, const_cast&lt;CodeProfile*&gt;(s_profileStack));
&gt; +    s_profileStack = profileStack.get();
&gt; +    profileStack-&gt;addChild(WTF::move(profileStack));

Let’s undo this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054763</commentid>
    <comment_count>7</comment_count>
      <attachid>243180</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 23:19:28 -0800</bug_when>
    <thetext>Created attachment 243180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054764</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 23:24:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 243178 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243178&amp;action=review
&gt; 
&gt; When you’re done updating your patch, please do a recursive grep in the
&gt; JavaScriptCore directory to ensure that there are no more uses of OwnPtr and
&gt; PassOwnPtr?  This will help catch any #include that you may have missed.

&gt; &gt; Source/JavaScriptCore/runtime/StructureIDTable.h:68
&gt; &gt;      static const size_t s_initialSize = 256;
&gt; 
&gt; There’s a #include &lt;OwnPtr.h&gt; at the top of this file that should be removed
&gt; now.  You had this change in your previous patch.  Why did you undo it?

Yes, I have tried to remove useless #include &lt;wtf/OwnPtr.h&gt; / &lt;wtf/PassOwnPtr.h&gt; with clean up OwnPtr,PassOwnPtr. However, build break sometimes occurs because of include chain. In this case, I restored it because of build break in other file, which seems to include StructureIDTable.h. Anyway, now it can be removed. I will also try to remove useless #include &lt;wtf/OwnPtr.h&gt;. 


&gt; &gt; Source/JavaScriptCore/tools/CodeProfile.h:-44
&gt; &gt; -        if (parent)
&gt; &gt; -            parent-&gt;addChild(this);
&gt; 
&gt; Let’s keep the original design that hides this detail in the CodeProfile
&gt; class instead of passing this burden (of associating the child with the
&gt; parent) onto the client.
&gt; 
&gt; You can implement this as the following:
&gt;     if (parent)
&gt;         parent-&gt;addChile(std::unique_ptr&lt;CodeProfile&gt;(this));

Oh, right. I only thought to use std::make_unique&lt;&gt;. Fixed.
 
&gt; &gt; Source/JavaScriptCore/tools/CodeProfiling.cpp:139
&gt; &gt; -    CodeProfile* profileStack = const_cast&lt;CodeProfile*&gt;(s_profileStack);
&gt; &gt; -    bool alreadyProfiling = profileStack;
&gt; &gt; -    s_profileStack = profileStack = new CodeProfile(source, profileStack);
&gt; &gt; +    bool alreadyProfiling = s_profileStack;
&gt; &gt; +    auto profileStack = std::make_unique&lt;CodeProfile&gt;(source, const_cast&lt;CodeProfile*&gt;(s_profileStack));
&gt; &gt; +    s_profileStack = profileStack.get();
&gt; &gt; +    profileStack-&gt;addChild(WTF::move(profileStack));
&gt; 
&gt; Let’s undo this.

Done !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054765</commentid>
    <comment_count>9</comment_count>
      <attachid>243180</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-12-11 23:25:34 -0800</bug_when>
    <thetext>Comment on attachment 243180
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/PropertyMapHashTable.h:245
&gt; +    std::unique_ptr&lt; Vector&lt;PropertyOffset&gt;&gt; m_deletedOffsets;

nit: Can you please remove the space between the &lt; and Vector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054766</commentid>
    <comment_count>10</comment_count>
      <attachid>243181</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 23:27:44 -0800</bug_when>
    <thetext>Created attachment 243181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054767</commentid>
    <comment_count>11</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-11 23:28:26 -0800</bug_when>
    <thetext>(In reply to comment #9)

&gt; &gt; Source/JavaScriptCore/runtime/PropertyMapHashTable.h:245
&gt; &gt; +    std::unique_ptr&lt; Vector&lt;PropertyOffset&gt;&gt; m_deletedOffsets;
&gt; 
&gt; nit: Can you please remove the space between the &lt; and Vector?

Fixed. Thanks !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054818</commentid>
    <comment_count>12</comment_count>
      <attachid>243181</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-12 05:34:21 -0800</bug_when>
    <thetext>Comment on attachment 243181
Patch

Clearing flags on attachment: 243181

Committed r177222: &lt;http://trac.webkit.org/changeset/177222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054819</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-12 05:34:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243108</attachid>
            <date>2014-12-10 23:14:08 -0800</date>
            <delta_ts>2014-12-11 07:20:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139532-20141211161449.patch</filename>
            <type>text/plain</type>
            <size>21278</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODczZTgyN2Y2Yzc5MDY4MWZlNzdhNDJjZGJiZDA1ZmQ5YmM4ZmMzLi45M2ZkZmM3ZDBkYWMwOGVi
YmQ3ODgxMGFhZTUxOTVmNWMzZTAzMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OCBAQAogMjAxNC0xMi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgogCisgICAgICAgIEZpbmFsIGNsZWFuIHVwIE93blB0ciBpbiBKU0MgLSBydW50aW1l
LCBmdGwsIGFuZCB0b29sIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaW5hbCByZW1vdmUgT3duUHRyLCBQYXNzT3duUHRyIGluIHJ1
bnRpbWUsIGZ0bCwgYW5kIHRvb2xzIGRpcmVjdG9yaWVzIG9mIEpTQy4KKworICAgICAgICAqIGJ1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAgICogZnRsL0ZUTEFic3Ry
YWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6YXRT
bG93KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2NhdGVEYXRhU2VjdGlvbik6
CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGpzYy5jcHA6Cisg
ICAgICAgIChqc2NtYWluKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFi
bGU6OmNsZWFyRGVsZXRlZE9mZnNldHMpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjph
ZGREZWxldGVkT2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpT
dHJ1Y3R1cmVJRFRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6cmVzaXpl
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3Bw
OgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAg
ICAgKEpTQzo6Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZVBy
b2ZpbGU6OmFkZENoaWxkKToKKworMjAxNC0xMi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgorCiAgICAgICAgIFVzZSBzdGQ6OnVuaXF1ZV9wdHIgaW5zdGVhZCBv
ZiBPd25QdHIgaW4gSlNDIC0gaGVhcCwgaml0LCBydW50aW1lLCBhbmQgcGFyc2VyIGRpcmVjdG9y
aWVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkz
NTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5F
eGVjdXRhYmxlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVj
dXRhYmxlcy5oCmluZGV4IDFmNGIwOGY0NWJkMTc5ZTZhMDk1NzE1NjZmMzUzOGE2ZjcxYzA2Nzcu
LmIwNTNhMGVlMzg3MTlhOGJiZDA0MjQ0OGY0NTg3ZWU2Mzc0NTRkMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIlNvdXJjZUNv
ZGUuaCIKICNpbmNsdWRlICJXZWFrLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaAppbmRleCBmOTc4NDgzNjE5Mzc2NmQxYjgxZDYzNDI3NDE1MGIxNjEzNjdkN2Q2Li4yNzY3
YmQyNzg3ODJmNDAxMzM0YzBhOGYyMDM5OGVkMjY3M2IwOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC03MCw3ICs3MCw2IEBACiAjaW5jbHVkZSAi
V2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9CYWcuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1h
bGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU2Vn
bWVudGVkVmVjdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCAxYWVlOGViM2M5ODNlNDc0NGM4OGE4NjY5YThk
ZjM3NDJhYWJhYTE1Li43NDBhMjQ0MjY1Y2M4NTJiYTNhN2JjYTJhMWViN2Y0NTg5NzhjNDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVC
bG9jay5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqIGdlbmVyYXRlRnVuY3Rpb25Db2RlQmxvY2soVk0mIHZtLCBVbmxpbmtlZEZ1bmMKICAgICBl
eGVjdXRhYmxlLT5yZWNvcmRQYXJzZShmdW5jdGlvbi0+ZmVhdHVyZXMoKSwgZnVuY3Rpb24tPmhh
c0NhcHR1cmVkVmFyaWFibGVzKCkpOwogICAgIAogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqIHJlc3VsdCA9IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s6OmNyZWF0ZSgmdm0sIEZ1bmN0
aW9uQ29kZSwgRXhlY3V0YWJsZUluZm8oZnVuY3Rpb24tPm5lZWRzQWN0aXZhdGlvbigpLCBmdW5j
dGlvbi0+dXNlc0V2YWwoKSwgZnVuY3Rpb24tPmlzU3RyaWN0TW9kZSgpLCBraW5kID09IENvZGVG
b3JDb25zdHJ1Y3QsIGZ1bmN0aW9uS2luZCA9PSBVbmxpbmtlZEJ1aWx0aW5GdW5jdGlvbikpOwot
ICAgIE93blB0cjxCeXRlY29kZUdlbmVyYXRvcj4gZ2VuZXJhdG9yKGFkb3B0UHRyKG5ldyBCeXRl
Y29kZUdlbmVyYXRvcih2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBw
cm9maWxlck1vZGUpKSk7CisgICAgYXV0byBnZW5lcmF0b3Ioc3RkOjptYWtlX3VuaXF1ZTxCeXRl
Y29kZUdlbmVyYXRvcj4odm0sIGZ1bmN0aW9uLmdldCgpLCByZXN1bHQsIGRlYnVnZ2VyTW9kZSwg
cHJvZmlsZXJNb2RlKSk7CiAgICAgZXJyb3IgPSBnZW5lcmF0b3ItPmdlbmVyYXRlKCk7CiAgICAg
aWYgKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJvcjo6RXJyb3JOb25lKQogICAgICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcApp
bmRleCBkZmJiZWIxOGM5M2RhN2U4ZGE3MTAyMTNkNGJjNTBiMWVkZWNjNTczLi4wMDM3YTdhNTRj
Y2Q0MmMwZjU2NmI3YTkxMTcwNDBiYTlkNjM0NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgY29uc3QgQWJz
dHJhY3RGaWVsZCYgSW5kZXhlZEFic3RyYWN0SGVhcDo6YXRTbG93KHB0cmRpZmZfdCBpbmRleCkK
ICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPj0gbV9zbWFsbEluZGljZXMu
c2l6ZSgpKTsKICAgICAKICAgICBpZiAoVU5MSUtFTFkoIW1fbGFyZ2VJbmRpY2VzKSkKLSAgICAg
ICAgbV9sYXJnZUluZGljZXMgPSBhZG9wdFB0cihuZXcgTWFwVHlwZSgpKTsKKyAgICAgICAgbV9s
YXJnZUluZGljZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPE1hcFR5cGU+KCk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8QWJzdHJhY3RGaWVsZD4mIGZpZWxkID0gbV9sYXJnZUluZGljZXMtPmFkZChpbmRl
eCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghZmllbGQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCmluZGV4IDA3MzFlZWRiZDEyY2Qx
NzdmYjM1ZjNkNGQwMzFmZWU1OGY0NzY2NWUuLmViMTYzYzFkYzQ0ODZhNWQ5ODIwN2E4MzkzOGIy
NzhjYzg4NzJlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJz
dHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTgzLDcgKzE4Miw3IEBAIHByaXZhdGU6CiAgICAgfTsK
ICAgICB0eXBlZGVmIEhhc2hNYXA8cHRyZGlmZl90LCBzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RG
aWVsZD4sIFdURjo6SW50SGFzaDxwdHJkaWZmX3Q+LCBXaXRob3V0WmVyb09yT25lSGFzaFRyYWl0
cz4gTWFwVHlwZTsKICAgICAKLSAgICBPd25QdHI8TWFwVHlwZT4gbV9sYXJnZUluZGljZXM7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPE1hcFR5cGU+IG1fbGFyZ2VJbmRpY2VzOwogICAgIFZlY3RvcjxD
U3RyaW5nLCAxNj4gbV9sYXJnZUluZGV4TmFtZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDb21waWxlLmNwcAppbmRleCA4YjI4YzlhMGNmM2M3NmJmYmY1Y2VkZGI5MGRhNWRh
MGMyN2QwZTc0Li5kYzY5OTQzM2Y1NjA3ZDJjMjhkYTM3ZWM4ZTZkOTAyZTQ1OGFkNjE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKQEAgLTMyMiw4ICszMjIsOCBA
QCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkpOwogICAgICAgICBSRUxF
QVNFX0FTU0VSVChkaWRTZWVVbndpbmRJbmZvKTsKICAgICAgICAgCi0gICAgICAgIE93blB0cjxM
aW5rQnVmZmVyPiBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCi0gICAgICAg
ICAgICB2bSwgZXhpdFRodW5rR2VuZXJhdG9yLCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVz
dFN1Y2NlZWQpKTsKKyAgICAgICAgYXV0byBsaW5rQnVmZmVyID0gc3RkOjptYWtlX3VuaXF1ZTxM
aW5rQnVmZmVyPigKKyAgICAgICAgICAgIHZtLCBleGl0VGh1bmtHZW5lcmF0b3IsIGNvZGVCbG9j
aywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7CiAgICAgICAgIAogICAgICAgICBSRUxFQVNF
X0FTU0VSVChzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXQuc2l6ZSgpID09IHN0YXRlLmppdENvZGUt
Pm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAgCkBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIHZv
aWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVy
ID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+ZXhpdFRo
dW5rc0xpbmtCdWZmZXIgPSBXVEY6Om1vdmUobGlua0J1ZmZlcik7CiAgICAgfQogCiAgICAgaWYg
KCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1dEJ5SWRzLmlzRW1wdHkoKSB8
fCAhc3RhdGUuY2hlY2tJbnMuaXNFbXB0eSgpKSB7CkBAIC00ODMsOCArNDgzLDcgQEAgc3RhdGlj
IHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICBleGNlcHRpb25UYXJn
ZXQubGluaygmc2xvd1BhdGhKSVQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBleGNl
cHRpb25KdW1wID0gc2xvd1BhdGhKSVQuanVtcCgpOwogICAgICAgICAKLSAgICAgICAgc3RhdGUu
ZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXIgPSBhZG9wdFB0cigKLSAgICAgICAgICAgIG5l
dyBMaW5rQnVmZmVyKHZtLCBzbG93UGF0aEpJVCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11
c3RTdWNjZWVkKSk7CisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVy
ID0gc3RkOjptYWtlX3VuaXF1ZTxMaW5rQnVmZmVyPih2bSwgc2xvd1BhdGhKSVQsIGNvZGVCbG9j
aywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7CiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+
c2lkZUNvZGVMaW5rQnVmZmVyLT5saW5rKAogICAgICAgICAgICAgZXhjZXB0aW9uSnVtcCwgc3Rh
dGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgpKTsK
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZp
bmFsaXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaApp
bmRleCA0ZGZmZGFhNzkwODFhMjhlOGZlNDliNGIzMzMxOWE3N2IxYWZhMzc2Li5jMGRmNTc5YTU5
NDA3OTY1YjljZDQ4MmM2ZWZmM2IxMzRlYzM1YTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklURmluYWxpemVyLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGljOgogICAgIGJv
b2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVy
cmlkZTsKIAotICAgIE93blB0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5rc0xpbmtCdWZmZXI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPExpbmtCdWZmZXI+IGVudHJ5cG9pbnRMaW5rQnVmZmVyOwotICAgIE93
blB0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PExpbmtCdWZmZXI+IHNpZGVDb2RlTGlua0J1ZmZlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGlu
a0J1ZmZlcj4gaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXI7CiAgICAgVmVjdG9yPFNsb3dQYXRo
Q2FsbD4gc2xvd1BhdGhDYWxsczsgLy8gQ2FsbHMgaW5zaWRlIHRoZSBzaWRlIGNvZGUuCiAgICAg
VmVjdG9yPE9TUkV4aXRDb21waWxhdGlvbkluZm8+IG9zckV4aXQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CmluZGV4IDM5Y2RjZjRlYjUwNjk4ZDM4Y2E2MjU3ZDcwMTZhZjlmZWU1M2FjZmMuLjUwNmJkMGNi
NjVhYzQ5M2E0Y2NjYjExMjkyM2I3YWQ5NGIxMmRmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBA
IC0xNDUxLDcgKzE0NTEsNyBAQCBpbnQganNjbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAg
ICAgICAgIEpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogCiAgICAgICAgIGlmIChvcHRpb25zLm1f
cHJvZmlsZSAmJiAhdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikKLSAgICAgICAgICAgIHZtLT5t
X3BlckJ5dGVjb2RlUHJvZmlsZXIgPSBhZG9wdFB0cihuZXcgUHJvZmlsZXI6OkRhdGFiYXNlKCp2
bSkpOworICAgICAgICAgICAgdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UHJvZmlsZXI6OkRhdGFiYXNlPigqdm0pOwogICAgIAogICAgICAgICBHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IEdsb2JhbE9iamVjdDo6Y3JlYXRlKCp2bSwgR2xvYmFsT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUoKnZtLCBqc051bGwoKSksIG9wdGlvbnMubV9hcmd1bWVudHMpOwog
ICAgICAgICBib29sIHN1Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlv
bnMubV9zY3JpcHRzLCBvcHRpb25zLm1fZHVtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmgKaW5kZXggM2ZkZDY2MTc1YzhiMDRhNzBhMzEwM2I2NmYwNjRlYTE3OTkwYzU4YS4uODFi
NDMzNGQ4NDlkODNlNzVmYWRhZmVmNTQyMDg0MTZhOGQxNmQ2NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTGV4ZXIuaApAQCAtNDQsNyArNDQsOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9rZXl3b3JkVGFibGUuZW50cnkoaWRlbnQpOwogICAgIH0KLSAgICAKKworICAg
IGV4cGxpY2l0IEtleXdvcmRzKFZNJik7CisKICAgICB+S2V5d29yZHMoKQogICAgIHsKICAgICAg
ICAgbV9rZXl3b3JkVGFibGUuZGVsZXRlVGFibGUoKTsKQEAgLTUzLDggKzU1LDYgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVk07CiAgICAgCi0gICAgZXhwbGljaXQgS2V5
d29yZHMoVk0mKTsKLSAgICAKICAgICBWTSYgbV92bTsKICAgICBjb25zdCBIYXNoVGFibGUgbV9r
ZXl3b3JkVGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKaW5kZXggY2FiZTU1NGFjMjVmOTY5Y2Y2M2E2OWY3YjBi
ZWY1NDQxMDc4NGNkZC4uZDAwOGFhNmVmNTgyNjI1ODUxYjUyYzg5NWE1YWU3YWEyZmZlODE1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNo
VGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhh
c2hUYWJsZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5oPgog
CkBAIC0yNDMsNyArMjQyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCogbV9pbmRleDsKICAg
ICB1bnNpZ25lZCBtX2tleUNvdW50OwogICAgIHVuc2lnbmVkIG1fZGVsZXRlZENvdW50OwotICAg
IE93blB0cjwgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4gbV9kZWxldGVkT2Zmc2V0czsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8IFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4+IG1fZGVsZXRlZE9mZnNldHM7
CiAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWluaW11bVRhYmxlU2l6ZSA9IDE2OwogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBFbXB0eUVudHJ5SW5kZXggPSAwOwpAQCAtNDIxLDcgKzQy
MCw3IEBAIGlubGluZSB1bnNpZ25lZCBQcm9wZXJ0eVRhYmxlOjpwcm9wZXJ0eVN0b3JhZ2VTaXpl
KCkgY29uc3QKIAogaW5saW5lIHZvaWQgUHJvcGVydHlUYWJsZTo6Y2xlYXJEZWxldGVkT2Zmc2V0
cygpCiB7Ci0gICAgbV9kZWxldGVkT2Zmc2V0cy5jbGVhcigpOworICAgIG1fZGVsZXRlZE9mZnNl
dHMgPSBudWxscHRyOwogfQogCiBpbmxpbmUgYm9vbCBQcm9wZXJ0eVRhYmxlOjpoYXNEZWxldGVk
T2Zmc2V0KCkKQEAgLTQzOSw3ICs0MzgsNyBAQCBpbmxpbmUgUHJvcGVydHlPZmZzZXQgUHJvcGVy
dHlUYWJsZTo6Z2V0RGVsZXRlZE9mZnNldCgpCiBpbmxpbmUgdm9pZCBQcm9wZXJ0eVRhYmxlOjph
ZGREZWxldGVkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBpZiAoIW1fZGVs
ZXRlZE9mZnNldHMpCi0gICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0cihuZXcgVmVj
dG9yPFByb3BlcnR5T2Zmc2V0Pik7CisgICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4+KCk7CiAgICAgbV9kZWxldGVkT2Zmc2V0
cy0+YXBwZW5kKG9mZnNldCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlUYWJsZS5jcHAKaW5kZXggNTcwZTVmOTU5MjBmZTY3YWM4NGNjMzhmYWFmZmM4
NzNlYWZjM2RlMS4uNzQ0NzRjNmQ5MTVmM2RhZDVhYjlkY2QyMzdlOThiMGMyZTlkZjBiMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAKQEAg
LTg4LDcgKzg4LDcgQEAgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShWTSYgdm0sIGNvbnN0
IFByb3BlcnR5VGFibGUmIG90aGVyKQogICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9mZnNldHMg
dmVjdG9yLgogICAgIFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4qIG90aGVyRGVsZXRlZE9mZnNldHMg
PSBvdGhlci5tX2RlbGV0ZWRPZmZzZXRzLmdldCgpOwogICAgIGlmIChvdGhlckRlbGV0ZWRPZmZz
ZXRzKQotICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxQcm9w
ZXJ0eU9mZnNldD4oKm90aGVyRGVsZXRlZE9mZnNldHMpKTsKKyAgICAgICAgbV9kZWxldGVkT2Zm
c2V0cyA9IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4oKm90aGVyRGVs
ZXRlZE9mZnNldHMpOwogfQogCiBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwg
dW5zaWduZWQgaW5pdGlhbENhcGFjaXR5LCBjb25zdCBQcm9wZXJ0eVRhYmxlJiBvdGhlcikKQEAg
LTExMiw3ICsxMTIsNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgdW5z
aWduZWQgaW5pdGlhbENhcGFjaXR5LCBjb25zdCBQcm9wZXJ0eVRhYgogICAgIC8vIENvcHkgdGhl
IG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgogICAgIFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4qIG90
aGVyRGVsZXRlZE9mZnNldHMgPSBvdGhlci5tX2RlbGV0ZWRPZmZzZXRzLmdldCgpOwogICAgIGlm
IChvdGhlckRlbGV0ZWRPZmZzZXRzKQotICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRvcHRQ
dHIobmV3IFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4oKm90aGVyRGVsZXRlZE9mZnNldHMpKTsKKyAg
ICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPFByb3BlcnR5
T2Zmc2V0Pj4oKm90aGVyRGVsZXRlZE9mZnNldHMpOwogfQogCiB2b2lkIFByb3BlcnR5VGFibGU6
OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNWY0ZTc2ZTRjODBmZDJmYzM1NGYzMzhmMzAwYzA4NWY1
M2UyM2VhNi4uNGQ5ZDBiMjdlNGQwYzhjOTFmOWZlYjQ1YTFkNTRlNTk1ZDMzZDUxOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiUmVnRXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TbWFsbFN0cmluZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21h
bGxTdHJpbmdzLmNwcAppbmRleCAxZGY5ZjYzYzkyMTFjM2Q0NzEwZjBiYzQxM2IzYjAxNTA2NTc3
YjAxLi40M2IyOTU4Y2M4MmY2NWU4ZGViZjZmMDNjZmIwYmQ0NmMwNmUwMmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKQEAgLTMxLDcgKzMx
LDYgQEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA4NmQwYjZmYmRh
ZWNlMzgzMmNjMzYyZmI4MzQwOThkYmNlZTA4M2E0Li42Zjg1YTQ1MjExMGMxNmMxMTExZDhkYjEy
NzA0MTY4NTkzZDY0YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVDaGFpbi5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21t
YVByaW50ZXIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzSUQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAppbmRleCA1N2FjZDI5ZmU0Y2Y3ZDQ0ZTA2NjgxNDAxOTIz
OTA3MjNiYTlmZjU1Li4xMmM2NGQ5M2U5OTkyYjk4YjQ3MmFmNDdhMTUyOWUyYzM4YjQyOTg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxl
LmNwcApAQCAtMjksMTMgKzI5LDEyIEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8
d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBTdHJ1Y3R1cmVJRFRhYmxlOjpTdHJ1
Y3R1cmVJRFRhYmxlKCkKICAgICA6IG1fZmlyc3RGcmVlT2Zmc2V0KDApCi0gICAgLCBtX3RhYmxl
KGFkb3B0UHRyKG5ldyBTdHJ1Y3R1cmVPck9mZnNldFtzX2luaXRpYWxTaXplXSkpCisgICAgLCBt
X3RhYmxlKHN0ZDo6bWFrZV91bmlxdWU8U3RydWN0dXJlT3JPZmZzZXRbXT4oc19pbml0aWFsU2l6
ZSkpCiAgICAgLCBtX3NpemUoMCkKICAgICAsIG1fY2FwYWNpdHkoc19pbml0aWFsU2l6ZSkKIHsK
QEAgLTQ3LDcgKzQ2LDcgQEAgU3RydWN0dXJlSURUYWJsZTo6U3RydWN0dXJlSURUYWJsZSgpCiB2
b2lkIFN0cnVjdHVyZUlEVGFibGU6OnJlc2l6ZShzaXplX3QgbmV3Q2FwYWNpdHkpCiB7CiAgICAg
Ly8gQ3JlYXRlIHRoZSBuZXcgdGFibGUuCi0gICAgT3duUHRyPFN0cnVjdHVyZU9yT2Zmc2V0PiBu
ZXdUYWJsZSA9IGFkb3B0UHRyKG5ldyBTdHJ1Y3R1cmVPck9mZnNldFtuZXdDYXBhY2l0eV0pOwor
ICAgIGF1dG8gbmV3VGFibGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cnVjdHVyZU9yT2Zmc2V0W10+
KG5ld0NhcGFjaXR5KTsKIAogICAgIC8vIENvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBvbGQgdGFi
bGUgdG8gdGhlIG5ldyB0YWJsZS4KICAgICBtZW1jcHkobmV3VGFibGUuZ2V0KCksIHRhYmxlKCks
IG1fY2FwYWNpdHkgKiBzaXplb2YoU3RydWN0dXJlT3JPZmZzZXQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAppbmRleCBjZmFjM2FkODU0
Y2MxOGE1NjA1OTExYWI0ZmFlZWI4NjU0ODdjOTNiLi5hYjE5ZGM1MWYzMWQ3OGRmM2NlMGY5NzM2
YTc5ZmQxMmVmMGNiMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJRFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlSURUYWJsZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFN0cnVjdHVyZUlE
VGFibGVfaAogCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgotI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNjcs
MTAgKzY2LDEwIEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzX2lu
aXRpYWxTaXplID0gMjU2OwogCi0gICAgVmVjdG9yPE93blB0cjxTdHJ1Y3R1cmVPck9mZnNldD4+
IG1fb2xkVGFibGVzOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U3RydWN0dXJlT3JPZmZz
ZXQ+PiBtX29sZFRhYmxlczsKIAogICAgIHVpbnQzMl90IG1fZmlyc3RGcmVlT2Zmc2V0OwotICAg
IE93blB0cjxTdHJ1Y3R1cmVPck9mZnNldD4gbV90YWJsZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U3RydWN0dXJlT3JPZmZzZXRbXT4gbV90YWJsZTsKIAogICAgIHNpemVfdCBtX3NpemU7CiAgICAg
c2l6ZV90IG1fY2FwYWNpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCmluZGV4IDEzMGVmZGExZWY1MWFiNjU1
MzI0OGE1OGZmNzk3ZjMzNzNiZGIwNWEuLjIzYzZjYTMwZGZhMzhlNDAyYjk5NTY4YTYzMDFmNTM3
ZTgyMDU4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZVRyYW5zaXRpb25UYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAi
SW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hGdW5jdGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nSW1wbC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAppbmRleCBiYTBlMGI0YTc1ZWM0ZmQ3NzcwMDM4NzEyOTdjZjVmN2Vl
MzE4NDYwLi43YTg4MzQ0NjA3ODE4NWExOWU4NmI2ZWM5MDU1ZTllNTczNDQ0OGYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgVk06OlZNKFZN
VHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgbV9hdG9taWNTdHJpbmdUYWJs
ZSh2bVR5cGUgPT0gRGVmYXVsdCA/IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgp
IDogbmV3IEF0b21pY1N0cmluZ1RhYmxlKQogICAgICwgcHJvcGVydHlOYW1lcyhudWxscHRyKQog
ICAgICwgZW1wdHlMaXN0KG5ldyBNYXJrZWRBcmd1bWVudEJ1ZmZlcikKLSAgICAsIGtleXdvcmRz
KGFkb3B0UHRyKG5ldyBLZXl3b3JkcygqdGhpcykpKQorICAgICwga2V5d29yZHMoc3RkOjptYWtl
X3VuaXF1ZTxLZXl3b3Jkcz4oKnRoaXMpKQogICAgICwgaW50ZXJwcmV0ZXIoMCkKICAgICAsIGpz
QXJyYXlDbGFzc0luZm8oSlNBcnJheTo6aW5mbygpKQogICAgICwganNGaW5hbE9iamVjdENsYXNz
SW5mbyhKU0ZpbmFsT2JqZWN0OjppbmZvKCkpCkBAIC0yNDEsNyArMjQxLDcgQEAgVk06OlZNKFZN
VHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIHd0ZlRocmVhZERhdGEoKS5zZXRD
dXJyZW50QXRvbWljU3RyaW5nVGFibGUoZXhpc3RpbmdFbnRyeUF0b21pY1N0cmluZ1RhYmxlKTsK
IAogI2lmIEVOQUJMRShKSVQpCi0gICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtz
KCkpOworICAgIGppdFN0dWJzID0gc3RkOjptYWtlX3VuaXF1ZTxKSVRUaHVua3M+KCk7CiAgICAg
YXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEFyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzPigpOwogI2VuZGlmCiAgICAgYXJpdHlDaGVja0RhdGEgPSBzdGQ6Om1h
a2VfdW5pcXVlPENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+KCk7CkBAIC0yNjEsNyAr
MjYxLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIExM
SW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCiAgICAgaWYgKE9wdGlv
bnM6OmVuYWJsZVByb2ZpbGVyKCkpIHsKLSAgICAgICAgbV9wZXJCeXRlY29kZVByb2ZpbGVyID0g
YWRvcHRQdHIobmV3IFByb2ZpbGVyOjpEYXRhYmFzZSgqdGhpcykpOworICAgICAgICBtX3BlckJ5
dGVjb2RlUHJvZmlsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4oKnRo
aXMpOwogCiAgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIHBhdGhPdXQ7CiAgICAgICAgIGNvbnN0
IGNoYXIqIHByb2ZpbGVyUGF0aCA9IGdldGVudigiSlNDX1BST0ZJTEVSX1BBVEgiKTsKQEAgLTI3
Myw3ICsyNzMsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoY2FuVXNlSklUKCkpCi0gICAgICAgIGRmZ1N0
YXRlID0gYWRvcHRQdHIobmV3IERGRzo6TG9uZ0xpdmVkU3RhdGUoKSk7CisgICAgICAgIGRmZ1N0
YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxERkc6OkxvbmdMaXZlZFN0YXRlPigpOwogI2VuZGlmCiAg
ICAgCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGlzIGxhc3QsIGFzIGEgZnJlZSB3YXkgb2YgYXNzZXJ0
aW5nIHRoYXQgVk0gaW5pdGlhbGl6YXRpb24gaXRzZWxmCkBAIC0zMDMsOCArMzAzLDggQEAgVk06
On5WTSgpCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhp
cyBmaXJzdCB0byBlbnN1cmUgdGhhdCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMg
ZnJvbSBpdC4KLSAgICBtX3BlckJ5dGVjb2RlUHJvZmlsZXIuY2xlYXIoKTsKLSAgICAKKyAgICBt
X3BlckJ5dGVjb2RlUHJvZmlsZXIgPSBudWxscHRyOworCiAgICAgQVNTRVJUKG1fYXBpTG9jay0+
Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7CiAgICAgbV9hcGlMb2NrLT53aWxsRGVzdHJv
eVZNKHRoaXMpOwogICAgIGhlYXAubGFzdENoYW5jZVRvRmluYWxpemUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCmluZGV4IGMxMThiOWI4NzgwYzAxYjYzOGJkYTdhYjliY2U3NWExMDk0
YTBhYWQuLmY4ODQyODIxNzYxZjZhZDhhYmVhMDk4ZDI4YWE3NmIwOTQyYjZlMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMjM1LDcgKzIzNSw3IEBAIHB1YmxpYzoKICAgICBI
ZWFwIGhlYXA7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBPd25QdHI8REZHOjpMb25nTGl2
ZWRTdGF0ZT4gZGZnU3RhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPERGRzo6TG9uZ0xpdmVkU3Rh
dGU+IGRmZ1N0YXRlOwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPENhbGxFZGdlTG9nPiBjYWxsRWRnZUxvZzsKQEAgLTMyOCwxMCArMzI4LDEwIEBAIHB1
YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U291cmNlUHJvdmlkZXI+LCBSZWZQ
dHI8U291cmNlUHJvdmlkZXJDYWNoZT4+IFNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CiAgICAgU291
cmNlUHJvdmlkZXJDYWNoZU1hcCBzb3VyY2VQcm92aWRlckNhY2hlTWFwOwotICAgIE93blB0cjxL
ZXl3b3Jkcz4ga2V5d29yZHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEtleXdvcmRzPiBrZXl3b3Jk
czsKICAgICBJbnRlcnByZXRlciogaW50ZXJwcmV0ZXI7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBP
d25QdHI8SklUVGh1bmtzPiBqaXRTdHViczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SklUVGh1bmtz
PiBqaXRTdHViczsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0Q1RJU3R1YihUaHVua0dl
bmVyYXRvciBnZW5lcmF0b3IpCiAgICAgewogICAgICAgICByZXR1cm4gaml0U3R1YnMtPmN0aVN0
dWIodGhpcywgZ2VuZXJhdG9yKTsKQEAgLTQ1OCw3ICs0NTgsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGNhY2hlZERhdGVTdHJpbmc7CiAgICAgZG91YmxlIGNhY2hlZERhdGVTdHJpbmdWYWx1ZTsK
IAotICAgIE93blB0cjxQcm9maWxlcjo6RGF0YWJhc2U+IG1fcGVyQnl0ZWNvZGVQcm9maWxlcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvZmlsZXI6OkRhdGFiYXNlPiBtX3BlckJ5dGVjb2RlUHJv
ZmlsZXI7CiAgICAgUmVmUHRyPFR5cGVkQXJyYXlDb250cm9sbGVyPiBtX3R5cGVkQXJyYXlDb250
cm9sbGVyOwogICAgIFJlZ0V4cENhY2hlKiBtX3JlZ0V4cENhY2hlOwogICAgIEJ1bXBQb2ludGVy
QWxsb2NhdG9yIG1fcmVnRXhwQWxsb2NhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Q29kZVByb2ZpbGUuaAppbmRleCA2YjBhMzA2ODk4NGQ4MTdkNjQ0ZjQ0MzZlOWZjN2UwMTcwN2Nj
OGI4Li42ODQ2OTcyNGFiYzNjODRjMjcyZjQzNTk1YThkMzU2ZGI5M2Y3MTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9wYXJlbnQocGFyZW50KQogICAgIHsKICAgICAgICAgaWYgKHBhcmVu
dCkKLSAgICAgICAgICAgIHBhcmVudC0+YWRkQ2hpbGQodGhpcyk7CisgICAgICAgICAgICBwYXJl
bnQtPmFkZENoaWxkKHN0ZDo6bWFrZV91bmlxdWU8Q29kZVByb2ZpbGU+KHNvdXJjZSwgcGFyZW50
KSk7CiAgICAgfQogCiAgICAgdm9pZCBzYW1wbGUodm9pZCogcGMsIHZvaWQqKiBmcmFtZVBvaW50
ZXIpOwpAQCAtNTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3BhcmVudDsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBhZGRDaGlsZChDb2RlUHJvZmlsZSogY2hpbGQpCisgICAg
dm9pZCBhZGRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8Q29kZVByb2ZpbGU+IGNoaWxkKQogICAgIHsK
LSAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoYWRvcHRQdHIoY2hpbGQpKTsKKyAgICAgICAgbV9j
aGlsZHJlbi5hcHBlbmQoV1RGOjptb3ZlKGNoaWxkKSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAt
ODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIENTdHJpbmcgbV9maWxlOwogICAgIHVuc2lnbmVk
IG1fbGluZU5vOwogICAgIENvZGVQcm9maWxlKiBtX3BhcmVudDsKLSAgICBWZWN0b3I8IE93blB0
cjxDb2RlUHJvZmlsZT4+IG1fY2hpbGRyZW47CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxD
b2RlUHJvZmlsZT4+IG1fY2hpbGRyZW47CiAgICAgVGllcmVkTU1hcEFycmF5PENvZGVSZWNvcmQ+
IG1fc2FtcGxlczsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzX2NvZGVUeXBlTmFtZXNbTnVt
YmVyT2ZDb2RlVHlwZXNdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243122</attachid>
            <date>2014-12-11 07:20:33 -0800</date>
            <delta_ts>2014-12-11 22:44:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139532-20141212002115.patch</filename>
            <type>text/plain</type>
            <size>21220</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODczZTgyN2Y2Yzc5MDY4MWZlNzdhNDJjZGJiZDA1ZmQ5YmM4ZmMzLi5jYWYwZDc1MGJmN2I2YzRi
ZWRlYTE1NTk2ODcwNGRiNWVmZDUwNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNC0xMi0xMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgorCisgICAgICAgIEZpbmFsIGNsZWFuIHVwIE93blB0ciBpbiBKU0MgLSBydW50aW1l
LCBmdGwsIGFuZCB0b29sIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaW5hbCByZW1vdmUgT3duUHRyLCBQYXNzT3duUHRyIGluIHJ1
bnRpbWUsIGZ0bCwgYW5kIHRvb2xzIGRpcmVjdG9yaWVzIG9mIEpTQy4KKworICAgICAgICAqIGJ1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAgICogZnRsL0ZUTEFic3Ry
YWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6YXRT
bG93KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2NhdGVEYXRhU2VjdGlvbik6
CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGpzYy5jcHA6Cisg
ICAgICAgIChqc2NtYWluKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFi
bGU6OmNsZWFyRGVsZXRlZE9mZnNldHMpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjph
ZGREZWxldGVkT2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpT
dHJ1Y3R1cmVJRFRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6cmVzaXpl
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3Bw
OgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAg
ICAgKEpTQzo6Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZVBy
b2ZpbGU6OmFkZENoaWxkKToKKwogMjAxNC0xMi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVzZSBzdGQ6OnVuaXF1ZV9wdHIgaW5zdGVhZCBv
ZiBPd25QdHIgaW4gSlNDIC0gaGVhcCwgaml0LCBydW50aW1lLCBhbmQgcGFyc2VyIGRpcmVjdG9y
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4
ZWN1dGFibGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1
dGFibGVzLmgKaW5kZXggMWY0YjA4ZjQ1YmQxNzllNmEwOTU3MTU2NmYzNTM4YTZmNzFjMDY3Ny4u
YjA1M2EwZWUzODcxOWE4YmJkMDQyNDQ4ZjQ1ODdlZTYzNzQ1NGQxNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaApAQCAtMjks
NyArMjksNiBAQAogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIldlYWsuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCmluZGV4IGY5Nzg0ODM2MTkzNzY2ZDFiODFkNjM0Mjc0MTUwYjE2MTM2N2Q3ZDYuLjI3Njdi
ZDI3ODc4MmY0MDEzMzRjMGE4ZjIwMzk4ZWQyNjczYjA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTcwLDcgKzcwLDYgQEAKICNpbmNsdWRlICJX
YXRjaHBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFs
bG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdt
ZW50ZWRWZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwCmluZGV4IDFhZWU4ZWIzYzk4M2U0NzQ0Yzg4YTg2NjlhOGRm
Mzc0MmFhYmFhMTUuLjc0MGEyNDQyNjVjYzg1MmJhM2E3YmNhMmExZWI3ZjQ1ODk3OGM0NGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJs
b2NrLmNwcApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayogZ2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayhWTSYgdm0sIFVubGlua2VkRnVuYwogICAgIGV4
ZWN1dGFibGUtPnJlY29yZFBhcnNlKGZ1bmN0aW9uLT5mZWF0dXJlcygpLCBmdW5jdGlvbi0+aGFz
Q2FwdHVyZWRWYXJpYWJsZXMoKSk7CiAgICAgCiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayogcmVzdWx0ID0gVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlKCZ2bSwgRnVuY3Rp
b25Db2RlLCBFeGVjdXRhYmxlSW5mbyhmdW5jdGlvbi0+bmVlZHNBY3RpdmF0aW9uKCksIGZ1bmN0
aW9uLT51c2VzRXZhbCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCwgZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uKSk7Ci0g
ICAgT3duUHRyPEJ5dGVjb2RlR2VuZXJhdG9yPiBnZW5lcmF0b3IoYWRvcHRQdHIobmV3IEJ5dGVj
b2RlR2VuZXJhdG9yKHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIHBy
b2ZpbGVyTW9kZSkpKTsKKyAgICBhdXRvIGdlbmVyYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVj
b2RlR2VuZXJhdG9yPih2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBw
cm9maWxlck1vZGUpKTsKICAgICBlcnJvciA9IGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKICAgICBp
ZiAoZXJyb3IubV90eXBlICE9IFBhcnNlckVycm9yOjpFcnJvck5vbmUpCiAgICAgICAgIHJldHVy
biAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCmlu
ZGV4IGRmYmJlYjE4YzkzZGE3ZThkYTcxMDIxM2Q0YmM1MGIxZWRlY2M1NzMuLjAwMzdhN2E1NGNj
ZDQyYzBmNTY2YjdhOTExNzA0MGJhOWQ2MzQ3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBjb25zdCBBYnN0
cmFjdEZpZWxkJiBJbmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGluZGV4KQog
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA+PSBtX3NtYWxsSW5kaWNlcy5z
aXplKCkpOwogICAgIAogICAgIGlmIChVTkxJS0VMWSghbV9sYXJnZUluZGljZXMpKQotICAgICAg
ICBtX2xhcmdlSW5kaWNlcyA9IGFkb3B0UHRyKG5ldyBNYXBUeXBlKCkpOworICAgICAgICBtX2xh
cmdlSW5kaWNlcyA9IHN0ZDo6bWFrZV91bmlxdWU8TWFwVHlwZT4oKTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBYnN0cmFjdEZpZWxkPiYgZmllbGQgPSBtX2xhcmdlSW5kaWNlcy0+YWRkKGluZGV4
LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFmaWVsZCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKaW5kZXggMDczMWVlZGJkMTJjZDE3
N2ZiMzVmM2Q0ZDAzMWZlZTU4ZjQ3NjY1ZS4uZWIxNjNjMWRjNDQ4NmE1ZDk4MjA3YTgzOTM4YjI3
OGNjODg3MmU4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cC5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCkBAIC0xODMsNyArMTgyLDcgQEAgcHJpdmF0ZToKICAgICB9Owog
ICAgIHR5cGVkZWYgSGFzaE1hcDxwdHJkaWZmX3QsIHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdEZp
ZWxkPiwgV1RGOjpJbnRIYXNoPHB0cmRpZmZfdD4sIFdpdGhvdXRaZXJvT3JPbmVIYXNoVHJhaXRz
PiBNYXBUeXBlOwogICAgIAotICAgIE93blB0cjxNYXBUeXBlPiBtX2xhcmdlSW5kaWNlczsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWFwVHlwZT4gbV9sYXJnZUluZGljZXM7CiAgICAgVmVjdG9yPENT
dHJpbmcsIDE2PiBtX2xhcmdlSW5kZXhOYW1lczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbXBpbGUuY3BwCmluZGV4IDhiMjhjOWEwY2YzYzc2YmZiZjVjZWRkYjkwZGE1ZGEw
YzI3ZDBlNzQuLmRjNjk5NDMzZjU2MDdkMmMyOGRhMzdlYzhlNmQ5MDJlNDU4YWQ2MTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApAQCAtMzIyLDggKzMyMiw4IEBA
IHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGRpZFNlZVVud2luZEluZm8pOwogICAgICAgICAKLSAgICAgICAgT3duUHRyPExp
bmtCdWZmZXI+IGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKLSAgICAgICAg
ICAgIHZtLCBleGl0VGh1bmtHZW5lcmF0b3IsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0
U3VjY2VlZCkpOworICAgICAgICBhdXRvIGxpbmtCdWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExp
bmtCdWZmZXI+KAorICAgICAgICAgICAgdm0sIGV4aXRUaHVua0dlbmVyYXRvciwgY29kZUJsb2Nr
LCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgCiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkgPT0gc3RhdGUuaml0Q29kZS0+
b3NyRXhpdC5zaXplKCkpOwogICAgICAgICAKQEAgLTM1OSw3ICszNTksNyBAQCBzdGF0aWMgdm9p
ZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIHN0YXRlLmZpbmFsaXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXIg
PSBsaW5rQnVmZmVyLnJlbGVhc2UoKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1
bmtzTGlua0J1ZmZlciA9IFdURjo6bW92ZShsaW5rQnVmZmVyKTsKICAgICB9CiAKICAgICBpZiAo
IXN0YXRlLmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMuaXNFbXB0eSgpIHx8
ICFzdGF0ZS5jaGVja0lucy5pc0VtcHR5KCkpIHsKQEAgLTQ4Myw4ICs0ODMsNyBAQCBzdGF0aWMg
dm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgIGV4Y2VwdGlvblRhcmdl
dC5saW5rKCZzbG93UGF0aEpJVCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4Y2Vw
dGlvbkp1bXAgPSBzbG93UGF0aEpJVC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBzdGF0ZS5m
aW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlciA9IGFkb3B0UHRyKAotICAgICAgICAgICAgbmV3
IExpbmtCdWZmZXIodm0sIHNsb3dQYXRoSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVz
dFN1Y2NlZWQpKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPExpbmtCdWZmZXI+KHZtLCBzbG93UGF0aEpJVCwgY29kZUJsb2Nr
LCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5z
aWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCiAgICAgICAgICAgICBleGNlcHRpb25KdW1wLCBzdGF0
ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBvaW50KCkpOwog
ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmlu
YWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCmlu
ZGV4IDRkZmZkYWE3OTA4MWEyOGU4ZmU0OWI0YjMzMzE5YTc3YjFhZmEzNzYuLmMwZGY1NzlhNTk0
MDc5NjViOWNkNDgyYzZlZmYzYjEzNGVjMzVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRGaW5hbGl6ZXIuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJy
aWRlOwogCi0gICAgT3duUHRyPExpbmtCdWZmZXI+IGV4aXRUaHVua3NMaW5rQnVmZmVyOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4gZW50cnlwb2ludExpbmtCdWZmZXI7Ci0gICAgT3du
UHRyPExpbmtCdWZmZXI+IHNpZGVDb2RlTGlua0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGlua0J1ZmZlcj4gc2lkZUNvZGVMaW5rQnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5r
QnVmZmVyPiBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcjsKICAgICBWZWN0b3I8U2xvd1BhdGhD
YWxsPiBzbG93UGF0aENhbGxzOyAvLyBDYWxscyBpbnNpZGUgdGhlIHNpZGUgY29kZS4KICAgICBW
ZWN0b3I8T1NSRXhpdENvbXBpbGF0aW9uSW5mbz4gb3NyRXhpdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
aW5kZXggMzljZGNmNGViNTA2OThkMzhjYTYyNTdkNzAxNmFmOWZlZTUzYWNmYy4uNTA2YmQwY2I2
NWFjNDkzYTRjY2NiMTEyOTIzYjdhZDk0YjEyZGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAg
LTE0NTEsNyArMTQ1MSw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CiAKICAgICAgICAgaWYgKG9wdGlvbnMubV9w
cm9maWxlICYmICF2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyKQotICAgICAgICAgICAgdm0tPm1f
cGVyQnl0ZWNvZGVQcm9maWxlciA9IGFkb3B0UHRyKG5ldyBQcm9maWxlcjo6RGF0YWJhc2UoKnZt
KSk7CisgICAgICAgICAgICB2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxQcm9maWxlcjo6RGF0YWJhc2U+KCp2bSk7CiAgICAgCiAgICAgICAgIEdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gR2xvYmFsT2JqZWN0OjpjcmVhdGUoKnZtLCBHbG9iYWxPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZSgqdm0sIGpzTnVsbCgpKSwgb3B0aW9ucy5tX2FyZ3VtZW50cyk7CiAg
ICAgICAgIGJvb2wgc3VjY2VzcyA9IHJ1bldpdGhTY3JpcHRzKGdsb2JhbE9iamVjdCwgb3B0aW9u
cy5tX3NjcmlwdHMsIG9wdGlvbnMubV9kdW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTGV4ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4
ZXIuaAppbmRleCAzZmRkNjYxNzVjOGIwNGE3MGEzMTAzYjY2ZjA2NGVhMTc5OTBjNThhLi44MWI0
MzM0ZDg0OWQ4M2U3NWZhZGFmZWY1NDIwODQxNmE4ZDE2ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5oCkBAIC00NCw3ICs0NCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IHJldHVybiBtX2tleXdvcmRUYWJsZS5lbnRyeShpZGVudCk7CiAgICAgfQotICAgIAorCisgICAg
ZXhwbGljaXQgS2V5d29yZHMoVk0mKTsKKwogICAgIH5LZXl3b3JkcygpCiAgICAgewogICAgICAg
ICBtX2tleXdvcmRUYWJsZS5kZWxldGVUYWJsZSgpOwpAQCAtNTMsOCArNTUsNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBWTTsKICAgICAKLSAgICBleHBsaWNpdCBLZXl3
b3JkcyhWTSYpOwotICAgIAogICAgIFZNJiBtX3ZtOwogICAgIGNvbnN0IEhhc2hUYWJsZSBtX2tl
eXdvcmRUYWJsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlNYXBIYXNoVGFibGUuaAppbmRleCBjYWJlNTU0YWMyNWY5NjljZjYzYTY5ZjdiMGJl
ZjU0NDEwNzg0Y2RkLi5kMDA4YWE2ZWY1ODI2MjU4NTFiNTJjODk1YTVhZTdhYTJmZmU4MTVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hU
YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFz
aFRhYmxlLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2Fs
bHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBsLmg+CiAK
QEAgLTI0Myw3ICsyNDIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkKiBtX2luZGV4OwogICAg
IHVuc2lnbmVkIG1fa2V5Q291bnQ7CiAgICAgdW5zaWduZWQgbV9kZWxldGVkQ291bnQ7Ci0gICAg
T3duUHRyPCBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+PiBtX2RlbGV0ZWRPZmZzZXRzOworICAgIHN0
ZDo6dW5pcXVlX3B0cjwgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4gbV9kZWxldGVkT2Zmc2V0czsK
IAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNaW5pbXVtVGFibGVTaXplID0gMTY7CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEVtcHR5RW50cnlJbmRleCA9IDA7CkBAIC00MjEsNyArNDIw
LDcgQEAgaW5saW5lIHVuc2lnbmVkIFByb3BlcnR5VGFibGU6OnByb3BlcnR5U3RvcmFnZVNpemUo
KSBjb25zdAogCiBpbmxpbmUgdm9pZCBQcm9wZXJ0eVRhYmxlOjpjbGVhckRlbGV0ZWRPZmZzZXRz
KCkKIHsKLSAgICBtX2RlbGV0ZWRPZmZzZXRzLmNsZWFyKCk7CisgICAgbV9kZWxldGVkT2Zmc2V0
cyA9IG51bGxwdHI7CiB9CiAKIGlubGluZSBib29sIFByb3BlcnR5VGFibGU6Omhhc0RlbGV0ZWRP
ZmZzZXQoKQpAQCAtNDM5LDcgKzQzOCw3IEBAIGlubGluZSBQcm9wZXJ0eU9mZnNldCBQcm9wZXJ0
eVRhYmxlOjpnZXREZWxldGVkT2Zmc2V0KCkKIGlubGluZSB2b2lkIFByb3BlcnR5VGFibGU6OmFk
ZERlbGV0ZWRPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmICghbV9kZWxl
dGVkT2Zmc2V0cykKLSAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0
b3I8UHJvcGVydHlPZmZzZXQ+KTsKKyAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IHN0ZDo6bWFr
ZV91bmlxdWU8VmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4oKTsKICAgICBtX2RlbGV0ZWRPZmZzZXRz
LT5hcHBlbmQob2Zmc2V0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVRhYmxlLmNwcAppbmRleCA1NzBlNWY5NTkyMGZlNjdhYzg0Y2MzOGZhYWZmYzg3
M2VhZmMzZGUxLi43NDQ3NGM2ZDkxNWYzZGFkNWFiOWRjZDIzN2U5OGIwYzJlOWRmMGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcApAQCAt
ODgsNyArODgsNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgY29uc3Qg
UHJvcGVydHlUYWJsZSYgb3RoZXIpCiAgICAgLy8gQ29weSB0aGUgbV9kZWxldGVkT2Zmc2V0cyB2
ZWN0b3IuCiAgICAgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Piogb3RoZXJEZWxldGVkT2Zmc2V0cyA9
IG90aGVyLm1fZGVsZXRlZE9mZnNldHMuZ2V0KCk7CiAgICAgaWYgKG90aGVyRGVsZXRlZE9mZnNl
dHMpCi0gICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFByb3Bl
cnR5T2Zmc2V0Pigqb3RoZXJEZWxldGVkT2Zmc2V0cykpOworICAgICAgICBtX2RlbGV0ZWRPZmZz
ZXRzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UHJvcGVydHlPZmZzZXQ+Pigqb3RoZXJEZWxl
dGVkT2Zmc2V0cyk7CiB9CiAKIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCB1
bnNpZ25lZCBpbml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5VGFibGUmIG90aGVyKQpAQCAt
MTEyLDcgKzExMiw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCB1bnNp
Z25lZCBpbml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5VGFiCiAgICAgLy8gQ29weSB0aGUg
bV9kZWxldGVkT2Zmc2V0cyB2ZWN0b3IuCiAgICAgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Piogb3Ro
ZXJEZWxldGVkT2Zmc2V0cyA9IG90aGVyLm1fZGVsZXRlZE9mZnNldHMuZ2V0KCk7CiAgICAgaWYg
KG90aGVyRGVsZXRlZE9mZnNldHMpCi0gICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0
cihuZXcgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Pigqb3RoZXJEZWxldGVkT2Zmc2V0cykpOworICAg
ICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UHJvcGVydHlP
ZmZzZXQ+Pigqb3RoZXJEZWxldGVkT2Zmc2V0cyk7CiB9CiAKIHZvaWQgUHJvcGVydHlUYWJsZTo6
ZGVzdHJveShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcAppbmRleCA1ZjRlNzZlNGM4MGZkMmZjMzU0ZjMzOGYzMDBjMDg1ZjUz
ZTIzZWE2Li40ZDlkMGIyN2U0ZDBjOGM5MWY5ZmViNDVhMWQ1NGU1OTVkMzNkNTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKQEAgLTM0LDcg
KzM0LDYgQEAKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlJlZ0V4
cE1hdGNoZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFs
bFN0cmluZ3MuY3BwCmluZGV4IDFkZjlmNjNjOTIxMWMzZDQ3MTBmMGJjNDEzYjNiMDE1MDY1Nzdi
MDEuLjQzYjI5NThjYzgyZjY1ZThkZWJmNmYwM2NmYjBiZDQ2YzA2ZTAyYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDg2ZDBiNmZiZGFl
Y2UzODMyY2MzNjJmYjgzNDA5OGRiY2VlMDgzYTQuLjZmODVhNDUyMTEwYzE2YzExMTFkOGRiMTI3
MDQxNjg1OTNkNjRiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1h
UHJpbnRlci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1By
b2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuY3BwCmluZGV4IDU3YWNkMjlmZTRjZjdkNDRlMDY2ODE0MDE5MjM5
MDcyM2JhOWZmNTUuLjEyYzY0ZDkzZTk5OTJiOThiNDcyYWY0N2ExNTI5ZTJjMzhiNDI5ODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUu
Y3BwCkBAIC0yOSwxMyArMjksMTIgQEAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3
dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIFN0cnVjdHVyZUlEVGFibGU6OlN0cnVj
dHVyZUlEVGFibGUoKQogICAgIDogbV9maXJzdEZyZWVPZmZzZXQoMCkKLSAgICAsIG1fdGFibGUo
YWRvcHRQdHIobmV3IFN0cnVjdHVyZU9yT2Zmc2V0W3NfaW5pdGlhbFNpemVdKSkKKyAgICAsIG1f
dGFibGUoc3RkOjptYWtlX3VuaXF1ZTxTdHJ1Y3R1cmVPck9mZnNldFtdPihzX2luaXRpYWxTaXpl
KSkKICAgICAsIG1fc2l6ZSgwKQogICAgICwgbV9jYXBhY2l0eShzX2luaXRpYWxTaXplKQogewpA
QCAtNDcsNyArNDYsNyBAQCBTdHJ1Y3R1cmVJRFRhYmxlOjpTdHJ1Y3R1cmVJRFRhYmxlKCkKIHZv
aWQgU3RydWN0dXJlSURUYWJsZTo6cmVzaXplKHNpemVfdCBuZXdDYXBhY2l0eSkKIHsKICAgICAv
LyBDcmVhdGUgdGhlIG5ldyB0YWJsZS4KLSAgICBPd25QdHI8U3RydWN0dXJlT3JPZmZzZXQ+IG5l
d1RhYmxlID0gYWRvcHRQdHIobmV3IFN0cnVjdHVyZU9yT2Zmc2V0W25ld0NhcGFjaXR5XSk7Cisg
ICAgYXV0byBuZXdUYWJsZSA9IHN0ZDo6bWFrZV91bmlxdWU8U3RydWN0dXJlT3JPZmZzZXRbXT4o
bmV3Q2FwYWNpdHkpOwogCiAgICAgLy8gQ29weSB0aGUgY29udGVudHMgb2YgdGhlIG9sZCB0YWJs
ZSB0byB0aGUgbmV3IHRhYmxlLgogICAgIG1lbWNweShuZXdUYWJsZS5nZXQoKSwgdGFibGUoKSwg
bV9jYXBhY2l0eSAqIHNpemVvZihTdHJ1Y3R1cmVPck9mZnNldCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oCmluZGV4IGNmYWMzYWQ4NTRj
YzE4YTU2MDU5MTFhYjRmYWVlYjg2NTQ4N2M5M2IuLmFiMTlkYzUxZjMxZDc4ZGYzY2UwZjk3MzZh
NzlmZDEyZWYwY2IxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVJRFRhYmxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgU3RydWN0dXJlSURU
YWJsZV9oCiAKICNpbmNsdWRlICJVbnVzZWRQb2ludGVyLmgiCi0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC02Nywx
MCArNjYsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNfaW5p
dGlhbFNpemUgPSAyNTY7CiAKLSAgICBWZWN0b3I8T3duUHRyPFN0cnVjdHVyZU9yT2Zmc2V0Pj4g
bV9vbGRUYWJsZXM7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTdHJ1Y3R1cmVPck9mZnNl
dD4+IG1fb2xkVGFibGVzOwogCiAgICAgdWludDMyX3QgbV9maXJzdEZyZWVPZmZzZXQ7Ci0gICAg
T3duUHRyPFN0cnVjdHVyZU9yT2Zmc2V0PiBtX3RhYmxlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxT
dHJ1Y3R1cmVPck9mZnNldFtdPiBtX3RhYmxlOwogCiAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICBz
aXplX3QgbV9jYXBhY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKaW5kZXggMTMwZWZkYTFlZjUxYWI2NTUz
MjQ4YTU4ZmY3OTdmMzM3M2JkYjA1YS4uMjNjNmNhMzBkZmEzOGU0MDJiOTk1NjhhNjMwMWY1Mzdl
ODIwNThmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlVHJhbnNpdGlvblRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJJ
bmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJXZWFrR0NNYXAuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwCmluZGV4IGJhMGUwYjRhNzVlYzRmZDc3NzAwMzg3MTI5N2NmNWY3ZWUz
MTg0NjAuLjdhODgzNDQ2MDc4MTg1YTE5ZTg2YjZlYzkwNTVlOWU1NzM0NDQ4ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBtX2F0b21pY1N0cmluZ1RhYmxl
KHZtVHlwZSA9PSBEZWZhdWx0ID8gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkg
OiBuZXcgQXRvbWljU3RyaW5nVGFibGUpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG51bGxwdHIpCiAg
ICAgLCBlbXB0eUxpc3QobmV3IE1hcmtlZEFyZ3VtZW50QnVmZmVyKQotICAgICwga2V5d29yZHMo
YWRvcHRQdHIobmV3IEtleXdvcmRzKCp0aGlzKSkpCisgICAgLCBrZXl3b3JkcyhzdGQ6Om1ha2Vf
dW5pcXVlPEtleXdvcmRzPigqdGhpcykpCiAgICAgLCBpbnRlcnByZXRlcigwKQogICAgICwganNB
cnJheUNsYXNzSW5mbyhKU0FycmF5OjppbmZvKCkpCiAgICAgLCBqc0ZpbmFsT2JqZWN0Q2xhc3NJ
bmZvKEpTRmluYWxPYmplY3Q6OmluZm8oKSkKQEAgLTI0MSw3ICsyNDEsNyBAQCBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1
cnJlbnRBdG9taWNTdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbWljU3RyaW5nVGFibGUpOwog
CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBqaXRTdHVicyA9IGFkb3B0UHRyKG5ldyBKSVRUaHVua3Mo
KSk7CisgICAgaml0U3R1YnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEpJVFRodW5rcz4oKTsKICAgICBh
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3M+KCk7CiAjZW5kaWYKICAgICBhcml0eUNoZWNrRGF0YSA9IHN0ZDo6bWFr
ZV91bmlxdWU8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4oKTsKQEAgLTI2MSw3ICsy
NjEsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgTExJ
bnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0aGlzKTsKICAgICAKICAgICBpZiAoT3B0aW9u
czo6ZW5hYmxlUHJvZmlsZXIoKSkgewotICAgICAgICBtX3BlckJ5dGVjb2RlUHJvZmlsZXIgPSBh
ZG9wdFB0cihuZXcgUHJvZmlsZXI6OkRhdGFiYXNlKCp0aGlzKSk7CisgICAgICAgIG1fcGVyQnl0
ZWNvZGVQcm9maWxlciA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvZmlsZXI6OkRhdGFiYXNlPigqdGhp
cyk7CiAKICAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gcGF0aE91dDsKICAgICAgICAgY29uc3Qg
Y2hhciogcHJvZmlsZXJQYXRoID0gZ2V0ZW52KCJKU0NfUFJPRklMRVJfUEFUSCIpOwpAQCAtMjcz
LDcgKzI3Myw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIAog
I2lmIEVOQUJMRShERkdfSklUKQogICAgIGlmIChjYW5Vc2VKSVQoKSkKLSAgICAgICAgZGZnU3Rh
dGUgPSBhZG9wdFB0cihuZXcgREZHOjpMb25nTGl2ZWRTdGF0ZSgpKTsKKyAgICAgICAgZGZnU3Rh
dGUgPSBzdGQ6Om1ha2VfdW5pcXVlPERGRzo6TG9uZ0xpdmVkU3RhdGU+KCk7CiAjZW5kaWYKICAg
ICAKICAgICAvLyBJbml0aWFsaXplIHRoaXMgbGFzdCwgYXMgYSBmcmVlIHdheSBvZiBhc3NlcnRp
bmcgdGhhdCBWTSBpbml0aWFsaXphdGlvbiBpdHNlbGYKQEAgLTMwMyw4ICszMDMsOCBAQCBWTTo6
flZNKCkKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICAgICAKICAgICAvLyBDbGVhciB0aGlz
IGZpcnN0IHRvIGVuc3VyZSB0aGF0IG5vYm9keSB0cmllcyB0byByZW1vdmUgdGhlbXNlbHZlcyBm
cm9tIGl0LgotICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlci5jbGVhcigpOwotICAgIAorICAgIG1f
cGVyQnl0ZWNvZGVQcm9maWxlciA9IG51bGxwdHI7CisKICAgICBBU1NFUlQobV9hcGlMb2NrLT5j
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKICAgICBtX2FwaUxvY2stPndpbGxEZXN0cm95
Vk0odGhpcyk7CiAgICAgaGVhcC5sYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgKaW5kZXggYzExOGI5Yjg3ODBjMDFiNjM4YmRhN2FiOWJjZTc1YTEwOTRh
MGFhZC4uZjg4NDI4MjE3NjFmNmFkOGFiZWEwOThkMjhhYTc2YjA5NDJiNmUwZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0yMzUsNyArMjM1LDcgQEAgcHVibGljOgogICAgIEhl
YXAgaGVhcDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIE93blB0cjxERkc6OkxvbmdMaXZl
ZFN0YXRlPiBkZmdTdGF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8REZHOjpMb25nTGl2ZWRTdGF0
ZT4gZGZnU3RhdGU7CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q2FsbEVkZ2VMb2c+IGNhbGxFZGdlTG9nOwpAQCAtMzI4LDEwICszMjgsMTAgQEAgcHVi
bGljOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTb3VyY2VQcm92aWRlcj4sIFJlZlB0
cjxTb3VyY2VQcm92aWRlckNhY2hlPj4gU291cmNlUHJvdmlkZXJDYWNoZU1hcDsKICAgICBTb3Vy
Y2VQcm92aWRlckNhY2hlTWFwIHNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7Ci0gICAgT3duUHRyPEtl
eXdvcmRzPiBrZXl3b3JkczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8S2V5d29yZHM+IGtleXdvcmRz
OwogICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlcjsKICNpZiBFTkFCTEUoSklUKQotICAgIE93
blB0cjxKSVRUaHVua3M+IGppdFN0dWJzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKSVRUaHVua3M+
IGppdFN0dWJzOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRDVElTdHViKFRodW5rR2Vu
ZXJhdG9yIGdlbmVyYXRvcikKICAgICB7CiAgICAgICAgIHJldHVybiBqaXRTdHVicy0+Y3RpU3R1
Yih0aGlzLCBnZW5lcmF0b3IpOwpAQCAtNDU4LDcgKzQ1OCw3IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgY2FjaGVkRGF0ZVN0cmluZzsKICAgICBkb3VibGUgY2FjaGVkRGF0ZVN0cmluZ1ZhbHVlOwog
Ci0gICAgT3duUHRyPFByb2ZpbGVyOjpEYXRhYmFzZT4gbV9wZXJCeXRlY29kZVByb2ZpbGVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9maWxlcjo6RGF0YWJhc2U+IG1fcGVyQnl0ZWNvZGVQcm9m
aWxlcjsKICAgICBSZWZQdHI8VHlwZWRBcnJheUNvbnRyb2xsZXI+IG1fdHlwZWRBcnJheUNvbnRy
b2xsZXI7CiAgICAgUmVnRXhwQ2FjaGUqIG1fcmVnRXhwQ2FjaGU7CiAgICAgQnVtcFBvaW50ZXJB
bGxvY2F0b3IgbV9yZWdFeHBBbGxvY2F0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9D
b2RlUHJvZmlsZS5oCmluZGV4IDZiMGEzMDY4OTg0ZDgxN2Q2NDRmNDQzNmU5ZmM3ZTAxNzA3Y2M4
YjguLjY4NDY5NzI0YWJjM2M4NGMyNzJmNDM1OTVhOGQzNTZkYjkzZjcxOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgewogICAgICAgICBpZiAocGFyZW50
KQotICAgICAgICAgICAgcGFyZW50LT5hZGRDaGlsZCh0aGlzKTsKKyAgICAgICAgICAgIHBhcmVu
dC0+YWRkQ2hpbGQoc3RkOjptYWtlX3VuaXF1ZTxDb2RlUHJvZmlsZT4oc291cmNlLCBwYXJlbnQp
KTsKICAgICB9CiAKICAgICB2b2lkIHNhbXBsZSh2b2lkKiBwYywgdm9pZCoqIGZyYW1lUG9pbnRl
cik7CkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcGFyZW50Owog
ICAgIH0KICAgICAKLSAgICB2b2lkIGFkZENoaWxkKENvZGVQcm9maWxlKiBjaGlsZCkKKyAgICB2
b2lkIGFkZENoaWxkKHN0ZDo6dW5pcXVlX3B0cjxDb2RlUHJvZmlsZT4gY2hpbGQpCiAgICAgewot
ICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChhZG9wdFB0cihjaGlsZCkpOworICAgICAgICBtX2No
aWxkcmVuLmFwcGVuZChXVEY6Om1vdmUoY2hpbGQpKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC04
Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX2ZpbGU7CiAgICAgdW5zaWduZWQg
bV9saW5lTm87CiAgICAgQ29kZVByb2ZpbGUqIG1fcGFyZW50OwotICAgIFZlY3RvcjwgT3duUHRy
PENvZGVQcm9maWxlPj4gbV9jaGlsZHJlbjsKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENv
ZGVQcm9maWxlPj4gbV9jaGlsZHJlbjsKICAgICBUaWVyZWRNTWFwQXJyYXk8Q29kZVJlY29yZD4g
bV9zYW1wbGVzOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNfY29kZVR5cGVOYW1lc1tOdW1i
ZXJPZkNvZGVUeXBlc107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243178</attachid>
            <date>2014-12-11 22:37:45 -0800</date>
            <delta_ts>2014-12-11 23:19:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139532-20141212153827.patch</filename>
            <type>text/plain</type>
            <size>21852</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmU1Y2VhZTRkNDBkZWE0MjQyMDQ3Yjg4NzI2YmMzMzc2OTcwMTk3Li4yZTRjMGMzMTdjMGZiNTRm
MTkxMzJkMTQ4MDU1ODcxNGRjMzk5NGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNC0xMi0xMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgorCisgICAgICAgIEZpbmFsIGNsZWFuIHVwIE93blB0ciBpbiBKU0MgLSBydW50aW1l
LCBmdGwsIGFuZCB0b29sIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaW5hbCByZW1vdmUgT3duUHRyLCBQYXNzT3duUHRyIGluIHJ1
bnRpbWUsIGZ0bCwgYW5kIHRvb2xzIGRpcmVjdG9yaWVzIG9mIEpTQy4KKworICAgICAgICAqIGJ1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAgICogZnRsL0ZUTEFic3Ry
YWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6YXRT
bG93KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2NhdGVEYXRhU2VjdGlvbik6
CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGpzYy5jcHA6Cisg
ICAgICAgIChqc2NtYWluKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFi
bGU6OmNsZWFyRGVsZXRlZE9mZnNldHMpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjph
ZGREZWxldGVkT2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpT
dHJ1Y3R1cmVJRFRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6cmVzaXpl
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3Bw
OgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAg
ICAgKEpTQzo6Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZVBy
b2ZpbGU6OmFkZENoaWxkKToKKwogMjAxNC0xMi0xMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cGxpY2l0bHkgZXhwb3J0IHNvbXJlIG1vcmUgUldJ
UHJvdG9jb2wgY2xhc3Nlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCAxZjRiMDhmNDViZDE3OWU2YTA5NTcxNTY2ZjM1
MzhhNmY3MWMwNjc3Li5iMDUzYTBlZTM4NzE5YThiYmQwNDI0NDhmNDU4N2VlNjM3NDU0ZDE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFi
bGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRh
Ymxlcy5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNs
dWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2Vhay5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggZjk3ODQ4MzYxOTM3NjZkMWI4MWQ2MzQyNzQxNTBiMTYx
MzY3ZDdkNi4uMjc2N2JkMjc4NzgyZjQwMTMzNGMwYThmMjAzOThlZDI2NzNiMDkzMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtNzAsNyArNzAsNiBA
QAogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1NlZ21lbnRlZFZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKaW5kZXggMWFlZThlYjNjOTgzZTQ3
NDRjODhhODY2OWE4ZGYzNzQyYWFiYWExNS4uNzQwYTI0NDI2NWNjODUyYmEzYTdiY2EyYTFlYjdm
NDU4OTc4YzQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Vu
bGlua2VkQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiB2bSwgVW5saW5r
ZWRGdW5jCiAgICAgZXhlY3V0YWJsZS0+cmVjb3JkUGFyc2UoZnVuY3Rpb24tPmZlYXR1cmVzKCks
IGZ1bmN0aW9uLT5oYXNDYXB0dXJlZFZhcmlhYmxlcygpKTsKICAgICAKICAgICBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVh
dGUoJnZtLCBGdW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT5uZWVkc0FjdGl2
YXRpb24oKSwgZnVuY3Rpb24tPnVzZXNFdmFsKCksIGZ1bmN0aW9uLT5pc1N0cmljdE1vZGUoKSwg
a2luZCA9PSBDb2RlRm9yQ29uc3RydWN0LCBmdW5jdGlvbktpbmQgPT0gVW5saW5rZWRCdWlsdGlu
RnVuY3Rpb24pKTsKLSAgICBPd25QdHI8Qnl0ZWNvZGVHZW5lcmF0b3I+IGdlbmVyYXRvcihhZG9w
dFB0cihuZXcgQnl0ZWNvZGVHZW5lcmF0b3Iodm0sIGZ1bmN0aW9uLmdldCgpLCByZXN1bHQsIGRl
YnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlKSkpOworICAgIGF1dG8gZ2VuZXJhdG9yKHN0ZDo6bWFr
ZV91bmlxdWU8Qnl0ZWNvZGVHZW5lcmF0b3I+KHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBk
ZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSkpOwogICAgIGVycm9yID0gZ2VuZXJhdG9yLT5nZW5l
cmF0ZSgpOwogICAgIGlmIChlcnJvci5tX3R5cGUgIT0gUGFyc2VyRXJyb3I6OkVycm9yTm9uZSkK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcC5jcHAKaW5kZXggZGZiYmViMThjOTNkYTdlOGRhNzEwMjEzZDRiYzUwYjFlZGVjYzU3
My4uMDAzN2E3YTU0Y2NkNDJjMGY1NjZiN2E5MTE3MDQwYmE5ZDYzNDcyYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIGNvbnN0IEFic3RyYWN0RmllbGQmIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmF0U2xvdyhwdHJk
aWZmX3QgaW5kZXgpCiAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpID49IG1f
c21hbGxJbmRpY2VzLnNpemUoKSk7CiAgICAgCiAgICAgaWYgKFVOTElLRUxZKCFtX2xhcmdlSW5k
aWNlcykpCi0gICAgICAgIG1fbGFyZ2VJbmRpY2VzID0gYWRvcHRQdHIobmV3IE1hcFR5cGUoKSk7
CisgICAgICAgIG1fbGFyZ2VJbmRpY2VzID0gc3RkOjptYWtlX3VuaXF1ZTxNYXBUeXBlPigpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0RmllbGQ+JiBmaWVsZCA9IG1fbGFyZ2VJbmRp
Y2VzLT5hZGQoaW5kZXgsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIWZpZWxk
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAppbmRleCAw
NzMxZWVkYmQxMmNkMTc3ZmIzNWYzZDRkMDMxZmVlNThmNDc2NjVlLi5lYjE2M2MxZGM0NDg2YTVk
OTgyMDdhODM5MzhiMjc4Y2M4ODcyZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvRmFzdE1h
bGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE4Myw3ICsxODIsNyBAQCBwcml2
YXRlOgogICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPHB0cmRpZmZfdCwgc3RkOjp1bmlxdWVf
cHRyPEFic3RyYWN0RmllbGQ+LCBXVEY6OkludEhhc2g8cHRyZGlmZl90PiwgV2l0aG91dFplcm9P
ck9uZUhhc2hUcmFpdHM+IE1hcFR5cGU7CiAgICAgCi0gICAgT3duUHRyPE1hcFR5cGU+IG1fbGFy
Z2VJbmRpY2VzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNYXBUeXBlPiBtX2xhcmdlSW5kaWNlczsK
ICAgICBWZWN0b3I8Q1N0cmluZywgMTY+IG1fbGFyZ2VJbmRleE5hbWVzOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKaW5kZXggOGIyOGM5YTBjZjNjNzZiZmJm
NWNlZGRiOTBkYTVkYTBjMjdkMGU3NC4uZGM2OTk0MzNmNTYwN2QyYzI4ZGEzN2VjOGU2ZDkwMmU0
NThhZDYxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCkBAIC0z
MjIsOCArMzIyLDggQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZGlkU2VlVW53aW5kSW5mbyk7CiAgICAgICAgIAotICAg
ICAgICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVm
ZmVyKAotICAgICAgICAgICAgdm0sIGV4aXRUaHVua0dlbmVyYXRvciwgY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGF1dG8gbGlua0J1ZmZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8TGlua0J1ZmZlcj4oCisgICAgICAgICAgICB2bSwgZXhpdFRodW5rR2VuZXJh
dG9yLCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpOwogICAgICAgICAKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0LnNpemUoKSA9PSBz
dGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIApAQCAtMzU5LDcgKzM1OSw3
IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1
bmtzTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOworICAgICAgICBzdGF0ZS5maW5h
bGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVyID0gV1RGOjptb3ZlKGxpbmtCdWZmZXIpOwogICAg
IH0KIAogICAgIGlmICghc3RhdGUuZ2V0QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0ZS5wdXRCeUlk
cy5pc0VtcHR5KCkgfHwgIXN0YXRlLmNoZWNrSW5zLmlzRW1wdHkoKSkgewpAQCAtNDgzLDggKzQ4
Myw3IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAg
ZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1bXAoKTsKICAgICAgICAgCi0g
ICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVyID0gYWRvcHRQdHIoCi0g
ICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgc2xvd1BhdGhKSVQsIGNvZGVCbG9jaywgSklU
Q29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNpZGVD
b2RlTGlua0J1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8TGlua0J1ZmZlcj4odm0sIHNsb3dQYXRo
SklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpOwogICAgICAgICBzdGF0
ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlci0+bGluaygKICAgICAgICAgICAgIGV4Y2Vw
dGlvbkp1bXAsIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPmVu
dHJ5cG9pbnQoKSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRGaW5hbGl6ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
RmluYWxpemVyLmgKaW5kZXggNGRmZmRhYTc5MDgxYTI4ZThmZTQ5YjRiMzMzMTlhNzdiMWFmYTM3
Ni4uYzBkZjU3OWE1OTQwNzk2NWI5Y2Q0ODJjNmVmZjNiMTM0ZWMzNWEyNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCkBAIC00OCw5ICs0OCw5IEBAIHB1
YmxpYzoKICAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBmaW5hbGl6ZUZ1
bmN0aW9uKCkgb3ZlcnJpZGU7CiAKLSAgICBPd25QdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5rc0xp
bmtCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPExpbmtCdWZmZXI+IGV4aXRUaHVua3NMaW5r
QnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBlbnRyeXBvaW50TGlua0J1
ZmZlcjsKLSAgICBPd25QdHI8TGlua0J1ZmZlcj4gc2lkZUNvZGVMaW5rQnVmZmVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPExpbmtCdWZmZXI+IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyOwogICAgIFZl
Y3RvcjxTbG93UGF0aENhbGw+IHNsb3dQYXRoQ2FsbHM7IC8vIENhbGxzIGluc2lkZSB0aGUgc2lk
ZSBjb2RlLgogICAgIFZlY3RvcjxPU1JFeGl0Q29tcGlsYXRpb25JbmZvPiBvc3JFeGl0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAppbmRleCAzOWNkY2Y0ZWI1MDY5OGQzOGNhNjI1N2Q3MDE2YWY5ZmVlNTNh
Y2ZjLi41MDZiZDBjYjY1YWM0OTNhNGNjY2IxMTI5MjNiN2FkOTRiMTJkZmQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcApAQCAtMTQ1MSw3ICsxNDUxLDcgQEAgaW50IGpzY21haW4oaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQogICAgICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKIAogICAgICAgICBp
ZiAob3B0aW9ucy5tX3Byb2ZpbGUgJiYgIXZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpCi0gICAg
ICAgICAgICB2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID0gYWRvcHRQdHIobmV3IFByb2ZpbGVy
OjpEYXRhYmFzZSgqdm0pKTsKKyAgICAgICAgICAgIHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4oKnZtKTsKICAgICAKICAgICAg
ICAgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBHbG9iYWxPYmplY3Q6OmNyZWF0ZSgqdm0s
IEdsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKCp2bSwganNOdWxsKCkpLCBvcHRpb25zLm1f
YXJndW1lbnRzKTsKICAgICAgICAgYm9vbCBzdWNjZXNzID0gcnVuV2l0aFNjcmlwdHMoZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLm1fc2NyaXB0cywgb3B0aW9ucy5tX2R1bXApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5oCmluZGV4IDNmZGQ2NjE3NWM4YjA0YTcwYTMxMDNiNjZmMDY0ZWEx
Nzk5MGM1OGEuLjgxYjQzMzRkODQ5ZDgzZTc1ZmFkYWZlZjU0MjA4NDE2YThkMTZkNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTQ0LDcgKzQ0LDkgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fa2V5d29yZFRhYmxlLmVudHJ5KGlkZW50KTsKICAgICB9
Ci0gICAgCisKKyAgICBleHBsaWNpdCBLZXl3b3JkcyhWTSYpOworCiAgICAgfktleXdvcmRzKCkK
ICAgICB7CiAgICAgICAgIG1fa2V5d29yZFRhYmxlLmRlbGV0ZVRhYmxlKCk7CkBAIC01Myw4ICs1
NSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFZNOwogICAgIAotICAg
IGV4cGxpY2l0IEtleXdvcmRzKFZNJik7Ci0gICAgCiAgICAgVk0mIG1fdm07CiAgICAgY29uc3Qg
SGFzaFRhYmxlIG1fa2V5d29yZFRhYmxlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCmluZGV4IGNhYmU1NTRhYzI1Zjk2
OWNmNjNhNjlmN2IwYmVmNTQ0MTA3ODRjZGQuLmQwMDhhYTZlZjU4MjYyNTg1MWI1MmM4OTVhNWFl
N2FhMmZmZTgxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5TWFwSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlNYXBIYXNoVGFibGUuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgPHd0Zi9D
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVGFibGUu
aD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZ0ltcGwuaD4KIApAQCAtMjQzLDcgKzI0Miw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQq
IG1faW5kZXg7CiAgICAgdW5zaWduZWQgbV9rZXlDb3VudDsKICAgICB1bnNpZ25lZCBtX2RlbGV0
ZWRDb3VudDsKLSAgICBPd25QdHI8IFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4+IG1fZGVsZXRlZE9m
ZnNldHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPCBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+PiBtX2Rl
bGV0ZWRPZmZzZXRzOwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1pbmltdW1UYWJsZVNp
emUgPSAxNjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgRW1wdHlFbnRyeUluZGV4ID0gMDsK
QEAgLTQyMSw3ICs0MjAsNyBAQCBpbmxpbmUgdW5zaWduZWQgUHJvcGVydHlUYWJsZTo6cHJvcGVy
dHlTdG9yYWdlU2l6ZSgpIGNvbnN0CiAKIGlubGluZSB2b2lkIFByb3BlcnR5VGFibGU6OmNsZWFy
RGVsZXRlZE9mZnNldHMoKQogewotICAgIG1fZGVsZXRlZE9mZnNldHMuY2xlYXIoKTsKKyAgICBt
X2RlbGV0ZWRPZmZzZXRzID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIGJvb2wgUHJvcGVydHlUYWJs
ZTo6aGFzRGVsZXRlZE9mZnNldCgpCkBAIC00MzksNyArNDM4LDcgQEAgaW5saW5lIFByb3BlcnR5
T2Zmc2V0IFByb3BlcnR5VGFibGU6OmdldERlbGV0ZWRPZmZzZXQoKQogaW5saW5lIHZvaWQgUHJv
cGVydHlUYWJsZTo6YWRkRGVsZXRlZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAg
ICAgaWYgKCFtX2RlbGV0ZWRPZmZzZXRzKQotICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRv
cHRQdHIobmV3IFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4pOworICAgICAgICBtX2RlbGV0ZWRPZmZz
ZXRzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UHJvcGVydHlPZmZzZXQ+PigpOwogICAgIG1f
ZGVsZXRlZE9mZnNldHMtPmFwcGVuZChvZmZzZXQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCmluZGV4IDU3MGU1Zjk1OTIwZmU2N2Fj
ODRjYzM4ZmFhZmZjODczZWFmYzNkZTEuLjc0NDc0YzZkOTE1ZjNkYWQ1YWI5ZGNkMjM3ZTk4YjBj
MmU5ZGYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
VGFibGUuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUo
Vk0mIHZtLCBjb25zdCBQcm9wZXJ0eVRhYmxlJiBvdGhlcikKICAgICAvLyBDb3B5IHRoZSBtX2Rl
bGV0ZWRPZmZzZXRzIHZlY3Rvci4KICAgICBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KiBvdGhlckRl
bGV0ZWRPZmZzZXRzID0gb3RoZXIubV9kZWxldGVkT2Zmc2V0cy5nZXQoKTsKICAgICBpZiAob3Ro
ZXJEZWxldGVkT2Zmc2V0cykKLSAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IGFkb3B0UHRyKG5l
dyBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KCpvdGhlckRlbGV0ZWRPZmZzZXRzKSk7CisgICAgICAg
IG1fZGVsZXRlZE9mZnNldHMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxQcm9wZXJ0eU9mZnNl
dD4+KCpvdGhlckRlbGV0ZWRPZmZzZXRzKTsKIH0KIAogUHJvcGVydHlUYWJsZTo6UHJvcGVydHlU
YWJsZShWTSYgdm0sIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eSwgY29uc3QgUHJvcGVydHlUYWJs
ZSYgb3RoZXIpCkBAIC0xMTIsNyArMTEyLDcgQEAgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJs
ZShWTSYgdm0sIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eSwgY29uc3QgUHJvcGVydHlUYWIKICAg
ICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KICAgICBWZWN0b3I8UHJvcGVy
dHlPZmZzZXQ+KiBvdGhlckRlbGV0ZWRPZmZzZXRzID0gb3RoZXIubV9kZWxldGVkT2Zmc2V0cy5n
ZXQoKTsKICAgICBpZiAob3RoZXJEZWxldGVkT2Zmc2V0cykKLSAgICAgICAgbV9kZWxldGVkT2Zm
c2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KCpvdGhlckRlbGV0ZWRP
ZmZzZXRzKSk7CisgICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZl
Y3RvcjxQcm9wZXJ0eU9mZnNldD4+KCpvdGhlckRlbGV0ZWRPZmZzZXRzKTsKIH0KIAogdm9pZCBQ
cm9wZXJ0eVRhYmxlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDVmNGU3NmU0YzgwZmQyZmMzNTRm
MzM4ZjMwMGMwODVmNTNlMjNlYTYuLjRkOWQwYjI3ZTRkMGM4YzkxZjlmZWI0NWExZDU0ZTU5NWQz
M2Q1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhwUHJvdG90eXBl
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKaW5kZXggMWRmOWY2M2M5MjExYzNkNDcxMGYwYmM0
MTNiM2IwMTUwNjU3N2IwMS4uNDNiMjk1OGNjODJmNjVlOGRlYmY2ZjAzY2ZiMGJkNDZjMDZlMDJi
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3Bw
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlSURUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJ
RFRhYmxlLmNwcAppbmRleCA1N2FjZDI5ZmU0Y2Y3ZDQ0ZTA2NjgxNDAxOTIzOTA3MjNiYTlmZjU1
Li44YWE4OWIwNjZlNjYzMzhkYWFlMDUzYTQ4OThmMzNmMWFiMTAxNWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcApAQCAtMjks
MTMgKzI5LDEyIEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3Mu
aD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogCiBTdHJ1Y3R1cmVJRFRhYmxlOjpTdHJ1Y3R1cmVJRFRhYmxl
KCkKICAgICA6IG1fZmlyc3RGcmVlT2Zmc2V0KDApCi0gICAgLCBtX3RhYmxlKGFkb3B0UHRyKG5l
dyBTdHJ1Y3R1cmVPck9mZnNldFtzX2luaXRpYWxTaXplXSkpCisgICAgLCBtX3RhYmxlKHN0ZDo6
bWFrZV91bmlxdWU8U3RydWN0dXJlT3JPZmZzZXRbXT4oc19pbml0aWFsU2l6ZSkpCiAgICAgLCBt
X3NpemUoMCkKICAgICAsIG1fY2FwYWNpdHkoc19pbml0aWFsU2l6ZSkKIHsKQEAgLTQ3LDcgKzQ2
LDcgQEAgU3RydWN0dXJlSURUYWJsZTo6U3RydWN0dXJlSURUYWJsZSgpCiB2b2lkIFN0cnVjdHVy
ZUlEVGFibGU6OnJlc2l6ZShzaXplX3QgbmV3Q2FwYWNpdHkpCiB7CiAgICAgLy8gQ3JlYXRlIHRo
ZSBuZXcgdGFibGUuCi0gICAgT3duUHRyPFN0cnVjdHVyZU9yT2Zmc2V0PiBuZXdUYWJsZSA9IGFk
b3B0UHRyKG5ldyBTdHJ1Y3R1cmVPck9mZnNldFtuZXdDYXBhY2l0eV0pOworICAgIGF1dG8gbmV3
VGFibGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cnVjdHVyZU9yT2Zmc2V0W10+KG5ld0NhcGFjaXR5
KTsKIAogICAgIC8vIENvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBvbGQgdGFibGUgdG8gdGhlIG5l
dyB0YWJsZS4KICAgICBtZW1jcHkobmV3VGFibGUuZ2V0KCksIHRhYmxlKCksIG1fY2FwYWNpdHkg
KiBzaXplb2YoU3RydWN0dXJlT3JPZmZzZXQpKTsKQEAgLTU5LDcgKzU4LDcgQEAgdm9pZCBTdHJ1
Y3R1cmVJRFRhYmxlOjpyZXNpemUoc2l6ZV90IG5ld0NhcGFjaXR5KQogICAgIHN3YXAobV90YWJs
ZSwgbmV3VGFibGUpOwogCiAgICAgLy8gUHV0IHRoZSBvbGQgdGFibGUgKG5vdyBsYWJlbGVkIGFz
IG5ldykgaW50byB0aGUgbGlzdCBvZiBvbGQgdGFibGVzLgotICAgIG1fb2xkVGFibGVzLmFwcGVu
ZChuZXdUYWJsZS5yZWxlYXNlKCkpOworICAgIG1fb2xkVGFibGVzLmFwcGVuZChXVEY6Om1vdmUo
bmV3VGFibGUpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgY2FwYWNpdHkuCiAgICAgbV9jYXBhY2l0
eSA9IG5ld0NhcGFjaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlSURUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlSURUYWJsZS5oCmluZGV4IGNmYWMzYWQ4NTRjYzE4YTU2MDU5MTFhYjRmYWVlYjg2NTQ4
N2M5M2IuLmFmNjk1N2Y4YmE5NGI2OWRjMjM0N2Q3NGE2YmE0M2E1MTE0Zjk1NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmgKQEAgLTY3
LDEwICs2NywxMCBAQCBwcml2YXRlOgogICAgIAogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19p
bml0aWFsU2l6ZSA9IDI1NjsKIAotICAgIFZlY3RvcjxPd25QdHI8U3RydWN0dXJlT3JPZmZzZXQ+
PiBtX29sZFRhYmxlczsKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFN0cnVjdHVyZU9yT2Zm
c2V0W10+PiBtX29sZFRhYmxlczsKIAogICAgIHVpbnQzMl90IG1fZmlyc3RGcmVlT2Zmc2V0Owot
ICAgIE93blB0cjxTdHJ1Y3R1cmVPck9mZnNldD4gbV90YWJsZTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3RydWN0dXJlT3JPZmZzZXRbXT4gbV90YWJsZTsKIAogICAgIHNpemVfdCBtX3NpemU7CiAg
ICAgc2l6ZV90IG1fY2FwYWNpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCmluZGV4IDEzMGVmZGExZWY1MWFi
NjU1MzI0OGE1OGZmNzk3ZjMzNzNiZGIwNWEuLjIzYzZjYTMwZGZhMzhlNDAyYjk5NTY4YTYzMDFm
NTM3ZTgyMDU4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVk
ZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hGdW5jdGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nSW1wbC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBiYTBlMGI0YTc1ZWM0ZmQ3NzcwMDM4NzEyOTdjZjVm
N2VlMzE4NDYwLi43YTg4MzQ0NjA3ODE4NWExOWU4NmI2ZWM5MDU1ZTllNTczNDQ0OGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgVk06OlZN
KFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgbV9hdG9taWNTdHJpbmdU
YWJsZSh2bVR5cGUgPT0gRGVmYXVsdCA/IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJs
ZSgpIDogbmV3IEF0b21pY1N0cmluZ1RhYmxlKQogICAgICwgcHJvcGVydHlOYW1lcyhudWxscHRy
KQogICAgICwgZW1wdHlMaXN0KG5ldyBNYXJrZWRBcmd1bWVudEJ1ZmZlcikKLSAgICAsIGtleXdv
cmRzKGFkb3B0UHRyKG5ldyBLZXl3b3JkcygqdGhpcykpKQorICAgICwga2V5d29yZHMoc3RkOjpt
YWtlX3VuaXF1ZTxLZXl3b3Jkcz4oKnRoaXMpKQogICAgICwgaW50ZXJwcmV0ZXIoMCkKICAgICAs
IGpzQXJyYXlDbGFzc0luZm8oSlNBcnJheTo6aW5mbygpKQogICAgICwganNGaW5hbE9iamVjdENs
YXNzSW5mbyhKU0ZpbmFsT2JqZWN0OjppbmZvKCkpCkBAIC0yNDEsNyArMjQxLDcgQEAgVk06OlZN
KFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIHd0ZlRocmVhZERhdGEoKS5z
ZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUoZXhpc3RpbmdFbnRyeUF0b21pY1N0cmluZ1RhYmxl
KTsKIAogI2lmIEVOQUJMRShKSVQpCi0gICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1
bmtzKCkpOworICAgIGppdFN0dWJzID0gc3RkOjptYWtlX3VuaXF1ZTxKSVRUaHVua3M+KCk7CiAg
ICAgYXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzPigpOwogI2VuZGlmCiAgICAgYXJpdHlDaGVja0RhdGEgPSBzdGQ6
Om1ha2VfdW5pcXVlPENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+KCk7CkBAIC0yNjEs
NyArMjYxLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAg
IExMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCiAgICAgaWYgKE9w
dGlvbnM6OmVuYWJsZVByb2ZpbGVyKCkpIHsKLSAgICAgICAgbV9wZXJCeXRlY29kZVByb2ZpbGVy
ID0gYWRvcHRQdHIobmV3IFByb2ZpbGVyOjpEYXRhYmFzZSgqdGhpcykpOworICAgICAgICBtX3Bl
ckJ5dGVjb2RlUHJvZmlsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4o
KnRoaXMpOwogCiAgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIHBhdGhPdXQ7CiAgICAgICAgIGNv
bnN0IGNoYXIqIHByb2ZpbGVyUGF0aCA9IGdldGVudigiSlNDX1BST0ZJTEVSX1BBVEgiKTsKQEAg
LTI3Myw3ICsyNzMsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUp
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoY2FuVXNlSklUKCkpCi0gICAgICAgIGRm
Z1N0YXRlID0gYWRvcHRQdHIobmV3IERGRzo6TG9uZ0xpdmVkU3RhdGUoKSk7CisgICAgICAgIGRm
Z1N0YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxERkc6OkxvbmdMaXZlZFN0YXRlPigpOwogI2VuZGlm
CiAgICAgCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGlzIGxhc3QsIGFzIGEgZnJlZSB3YXkgb2YgYXNz
ZXJ0aW5nIHRoYXQgVk0gaW5pdGlhbGl6YXRpb24gaXRzZWxmCkBAIC0zMDMsOCArMzAzLDggQEAg
Vk06On5WTSgpCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIg
dGhpcyBmaXJzdCB0byBlbnN1cmUgdGhhdCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2
ZXMgZnJvbSBpdC4KLSAgICBtX3BlckJ5dGVjb2RlUHJvZmlsZXIuY2xlYXIoKTsKLSAgICAKKyAg
ICBtX3BlckJ5dGVjb2RlUHJvZmlsZXIgPSBudWxscHRyOworCiAgICAgQVNTRVJUKG1fYXBpTG9j
ay0+Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7CiAgICAgbV9hcGlMb2NrLT53aWxsRGVz
dHJveVZNKHRoaXMpOwogICAgIGhlYXAubGFzdENoYW5jZVRvRmluYWxpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IGMxMThiOWI4NzgwYzAxYjYzOGJkYTdhYjliY2U3NWEx
MDk0YTBhYWQuLmY4ODQyODIxNzYxZjZhZDhhYmVhMDk4ZDI4YWE3NmIwOTQyYjZlMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMjM1LDcgKzIzNSw3IEBAIHB1YmxpYzoKICAg
ICBIZWFwIGhlYXA7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBPd25QdHI8REZHOjpMb25n
TGl2ZWRTdGF0ZT4gZGZnU3RhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPERGRzo6TG9uZ0xpdmVk
U3RhdGU+IGRmZ1N0YXRlOwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPENhbGxFZGdlTG9nPiBjYWxsRWRnZUxvZzsKQEAgLTMyOCwxMCArMzI4LDEwIEBA
IHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U291cmNlUHJvdmlkZXI+LCBS
ZWZQdHI8U291cmNlUHJvdmlkZXJDYWNoZT4+IFNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CiAgICAg
U291cmNlUHJvdmlkZXJDYWNoZU1hcCBzb3VyY2VQcm92aWRlckNhY2hlTWFwOwotICAgIE93blB0
cjxLZXl3b3Jkcz4ga2V5d29yZHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEtleXdvcmRzPiBrZXl3
b3JkczsKICAgICBJbnRlcnByZXRlciogaW50ZXJwcmV0ZXI7CiAjaWYgRU5BQkxFKEpJVCkKLSAg
ICBPd25QdHI8SklUVGh1bmtzPiBqaXRTdHViczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SklUVGh1
bmtzPiBqaXRTdHViczsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0Q1RJU3R1YihUaHVu
a0dlbmVyYXRvciBnZW5lcmF0b3IpCiAgICAgewogICAgICAgICByZXR1cm4gaml0U3R1YnMtPmN0
aVN0dWIodGhpcywgZ2VuZXJhdG9yKTsKQEAgLTQ1OCw3ICs0NTgsNyBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGNhY2hlZERhdGVTdHJpbmc7CiAgICAgZG91YmxlIGNhY2hlZERhdGVTdHJpbmdWYWx1
ZTsKIAotICAgIE93blB0cjxQcm9maWxlcjo6RGF0YWJhc2U+IG1fcGVyQnl0ZWNvZGVQcm9maWxl
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvZmlsZXI6OkRhdGFiYXNlPiBtX3BlckJ5dGVjb2Rl
UHJvZmlsZXI7CiAgICAgUmVmUHRyPFR5cGVkQXJyYXlDb250cm9sbGVyPiBtX3R5cGVkQXJyYXlD
b250cm9sbGVyOwogICAgIFJlZ0V4cENhY2hlKiBtX3JlZ0V4cENhY2hlOwogICAgIEJ1bXBQb2lu
dGVyQWxsb2NhdG9yIG1fcmVnRXhwQWxsb2NhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvQ29kZVByb2ZpbGUuaAppbmRleCA2YjBhMzA2ODk4NGQ4MTdkNjQ0ZjQ0MzZlOWZjN2UwMTcw
N2NjOGI4Li5lOWVjZjIxYTQ3MWMzZTExNDQwOWM1MjNkYTRhZjcwYzI2Njg4YTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaApAQCAtNDAsOCArNDAsNiBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9saW5lTm8oc291cmNlLmZpcnN0TGluZSgpKQogICAgICAgICAs
IG1fcGFyZW50KHBhcmVudCkKICAgICB7Ci0gICAgICAgIGlmIChwYXJlbnQpCi0gICAgICAgICAg
ICBwYXJlbnQtPmFkZENoaWxkKHRoaXMpOwogICAgIH0KIAogICAgIHZvaWQgc2FtcGxlKHZvaWQq
IHBjLCB2b2lkKiogZnJhbWVQb2ludGVyKTsKQEAgLTUyLDkgKzUwLDkgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV9wYXJlbnQ7CiAgICAgfQogICAgIAotICAgIHZvaWQgYWRkQ2hpbGQoQ29k
ZVByb2ZpbGUqIGNoaWxkKQorICAgIHZvaWQgYWRkQ2hpbGQoc3RkOjp1bmlxdWVfcHRyPENvZGVQ
cm9maWxlPiBjaGlsZCkKICAgICB7Ci0gICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKGFkb3B0UHRy
KGNoaWxkKSk7CisgICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKFdURjo6bW92ZShjaGlsZCkpOwog
ICAgIH0KIAogcHJpdmF0ZToKQEAgLTgyLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBDU3RyaW5n
IG1fZmlsZTsKICAgICB1bnNpZ25lZCBtX2xpbmVObzsKICAgICBDb2RlUHJvZmlsZSogbV9wYXJl
bnQ7Ci0gICAgVmVjdG9yPCBPd25QdHI8Q29kZVByb2ZpbGU+PiBtX2NoaWxkcmVuOworICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q29kZVByb2ZpbGU+PiBtX2NoaWxkcmVuOwogICAgIFRpZXJl
ZE1NYXBBcnJheTxDb2RlUmVjb3JkPiBtX3NhbXBsZXM7CiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogc19jb2RlVHlwZU5hbWVzW051bWJlck9mQ29kZVR5cGVzXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcAppbmRleCAzMDJiNWY5Mjk2MjczMTk5NTQ4
NmQ2NDUxZGNhN2QxMjk4NTgwNzYxLi43YmIxYWI2NzQxOTE4YWVmMGU1NjM2MTBkNzczZTA2YWM0
MTE5MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2Zp
bGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcu
Y3BwCkBAIC0xMzMsOSArMTMzLDEwIEBAIHZvaWQqIENvZGVQcm9maWxpbmc6OmdldE93bmVyVUlE
Rm9yUEModm9pZCogYWRkcmVzcykKIHZvaWQgQ29kZVByb2ZpbGluZzo6YmVnaW4oY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQogewogICAgIC8vIFB1c2ggYSBuZXcgQ29kZVByb2ZpbGUgb250byB0
aGUgc3RhY2sgZm9yIGVhY2ggc2NyaXB0IGVuY291bnRlcmVkLgotICAgIENvZGVQcm9maWxlKiBw
cm9maWxlU3RhY2sgPSBjb25zdF9jYXN0PENvZGVQcm9maWxlKj4oc19wcm9maWxlU3RhY2spOwot
ICAgIGJvb2wgYWxyZWFkeVByb2ZpbGluZyA9IHByb2ZpbGVTdGFjazsKLSAgICBzX3Byb2ZpbGVT
dGFjayA9IHByb2ZpbGVTdGFjayA9IG5ldyBDb2RlUHJvZmlsZShzb3VyY2UsIHByb2ZpbGVTdGFj
ayk7CisgICAgYm9vbCBhbHJlYWR5UHJvZmlsaW5nID0gc19wcm9maWxlU3RhY2s7CisgICAgYXV0
byBwcm9maWxlU3RhY2sgPSBzdGQ6Om1ha2VfdW5pcXVlPENvZGVQcm9maWxlPihzb3VyY2UsIGNv
bnN0X2Nhc3Q8Q29kZVByb2ZpbGUqPihzX3Byb2ZpbGVTdGFjaykpOworICAgIHNfcHJvZmlsZVN0
YWNrID0gcHJvZmlsZVN0YWNrLmdldCgpOworICAgIHByb2ZpbGVTdGFjay0+YWRkQ2hpbGQoV1RG
Ojptb3ZlKHByb2ZpbGVTdGFjaykpOwogCiAgICAgLy8gSXMgdGhlIHByb2ZpbGVyIGFscmVhZHkg
cnVubmluZyAtIGlmIHNvLCB0aGUgdGltZXIgd2lsbCBhbHJlYWR5IGJlIHNldCB1cC4KICAgICBp
ZiAoYWxyZWFkeVByb2ZpbGluZykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243180</attachid>
            <date>2014-12-11 23:19:28 -0800</date>
            <delta_ts>2014-12-11 23:27:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139532-20141212162010.patch</filename>
            <type>text/plain</type>
            <size>20939</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWMxMjBiNTE5NzFkMjhhZjY4MmQ4ZjU2NWUxZDVjMTYxYjQyYWM2Li42OWEwZTUyMjBjOTVhMDI0
NzMzYTMxNDY4NmI1ZDZhNjMzZjA3NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNC0xMi0xMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgorCisgICAgICAgIEZpbmFsIGNsZWFuIHVwIE93blB0ciBpbiBKU0MgLSBydW50aW1l
LCBmdGwsIGFuZCB0b29sIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaW5hbCByZW1vdmUgT3duUHRyLCBQYXNzT3duUHRyIGluIHJ1
bnRpbWUsIGZ0bCwgYW5kIHRvb2xzIGRpcmVjdG9yaWVzIG9mIEpTQy4KKworICAgICAgICAqIGJ1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAgICogZnRsL0ZUTEFic3Ry
YWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6YXRT
bG93KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2NhdGVEYXRhU2VjdGlvbik6
CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGpzYy5jcHA6Cisg
ICAgICAgIChqc2NtYWluKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFi
bGU6OmNsZWFyRGVsZXRlZE9mZnNldHMpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjph
ZGREZWxldGVkT2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZUlEVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpT
dHJ1Y3R1cmVJRFRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6cmVzaXpl
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3Bw
OgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAg
ICAgKEpTQzo6Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZVBy
b2ZpbGU6OmFkZENoaWxkKToKKwogMjAxNC0xMi0xMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIGlPUyBTaW11bGF0b3IgcHJvZHVjdGlvbiBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFi
bGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVz
LmgKaW5kZXggMWY0YjA4ZjQ1YmQxNzllNmEwOTU3MTU2NmYzNTM4YTZmNzFjMDY3Ny4uYjA1M2Ew
ZWUzODcxOWE4YmJkMDQyNDQ4ZjQ1ODdlZTYzNzQ1NGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaApAQCAtMjksNyArMjks
NiBAQAogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgog
I2luY2x1ZGUgIldlYWsuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmlu
ZGV4IGY5Nzg0ODM2MTkzNzY2ZDFiODFkNjM0Mjc0MTUwYjE2MTM2N2Q3ZDYuLjI3NjdiZDI3ODc4
MmY0MDEzMzRjMGE4ZjIwMzk4ZWQyNjczYjA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTcwLDcgKzcwLDYgQEAKICNpbmNsdWRlICJXYXRjaHBv
aW50LmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRW
ZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwCmluZGV4IDFhZWU4ZWIzYzk4M2U0NzQ0Yzg4YTg2NjlhOGRmMzc0MmFh
YmFhMTUuLjc0MGEyNDQyNjVjYzg1MmJhM2E3YmNhMmExZWI3ZjQ1ODk3OGM0NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNw
cApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2Vu
ZXJhdGVGdW5jdGlvbkNvZGVCbG9jayhWTSYgdm0sIFVubGlua2VkRnVuYwogICAgIGV4ZWN1dGFi
bGUtPnJlY29yZFBhcnNlKGZ1bmN0aW9uLT5mZWF0dXJlcygpLCBmdW5jdGlvbi0+aGFzQ2FwdHVy
ZWRWYXJpYWJsZXMoKSk7CiAgICAgCiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogcmVz
dWx0ID0gVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlKCZ2bSwgRnVuY3Rpb25Db2Rl
LCBFeGVjdXRhYmxlSW5mbyhmdW5jdGlvbi0+bmVlZHNBY3RpdmF0aW9uKCksIGZ1bmN0aW9uLT51
c2VzRXZhbCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0
cnVjdCwgZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uKSk7Ci0gICAgT3du
UHRyPEJ5dGVjb2RlR2VuZXJhdG9yPiBnZW5lcmF0b3IoYWRvcHRQdHIobmV3IEJ5dGVjb2RlR2Vu
ZXJhdG9yKHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVy
TW9kZSkpKTsKKyAgICBhdXRvIGdlbmVyYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlR2Vu
ZXJhdG9yPih2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBwcm9maWxl
ck1vZGUpKTsKICAgICBlcnJvciA9IGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKICAgICBpZiAoZXJy
b3IubV90eXBlICE9IFBhcnNlckVycm9yOjpFcnJvck5vbmUpCiAgICAgICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCmluZGV4IGRm
YmJlYjE4YzkzZGE3ZThkYTcxMDIxM2Q0YmM1MGIxZWRlY2M1NzMuLjAwMzdhN2E1NGNjZDQyYzBm
NTY2YjdhOTExNzA0MGJhOWQ2MzQ3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBjb25zdCBBYnN0cmFjdEZp
ZWxkJiBJbmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGluZGV4KQogICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA+PSBtX3NtYWxsSW5kaWNlcy5zaXplKCkp
OwogICAgIAogICAgIGlmIChVTkxJS0VMWSghbV9sYXJnZUluZGljZXMpKQotICAgICAgICBtX2xh
cmdlSW5kaWNlcyA9IGFkb3B0UHRyKG5ldyBNYXBUeXBlKCkpOworICAgICAgICBtX2xhcmdlSW5k
aWNlcyA9IHN0ZDo6bWFrZV91bmlxdWU8TWFwVHlwZT4oKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBYnN0cmFjdEZpZWxkPiYgZmllbGQgPSBtX2xhcmdlSW5kaWNlcy0+YWRkKGluZGV4LCBudWxs
cHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFmaWVsZCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKaW5kZXggMDczMWVlZGJkMTJjZDE3N2ZiMzVm
M2Q0ZDAzMWZlZTU4ZjQ3NjY1ZS4uZWIxNjNjMWRjNDQ4NmE1ZDk4MjA3YTgzOTM4YjI3OGNjODg3
MmU4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCkBA
IC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCkBAIC0xODMsNyArMTgyLDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIHR5
cGVkZWYgSGFzaE1hcDxwdHJkaWZmX3QsIHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdEZpZWxkPiwg
V1RGOjpJbnRIYXNoPHB0cmRpZmZfdD4sIFdpdGhvdXRaZXJvT3JPbmVIYXNoVHJhaXRzPiBNYXBU
eXBlOwogICAgIAotICAgIE93blB0cjxNYXBUeXBlPiBtX2xhcmdlSW5kaWNlczsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8TWFwVHlwZT4gbV9sYXJnZUluZGljZXM7CiAgICAgVmVjdG9yPENTdHJpbmcs
IDE2PiBtX2xhcmdlSW5kZXhOYW1lczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENvbXBpbGUuY3BwCmluZGV4IDhiMjhjOWEwY2YzYzc2YmZiZjVjZWRkYjkwZGE1ZGEwYzI3ZDBl
NzQuLmRjNjk5NDMzZjU2MDdkMmMyOGRhMzdlYzhlNmQ5MDJlNDU4YWQ2MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApAQCAtMzIyLDggKzMyMiw4IEBAIHN0YXRp
YyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGRpZFNlZVVud2luZEluZm8pOwogICAgICAgICAKLSAgICAgICAgT3duUHRyPExpbmtCdWZm
ZXI+IGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKLSAgICAgICAgICAgIHZt
LCBleGl0VGh1bmtHZW5lcmF0b3IsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2Vl
ZCkpOworICAgICAgICBhdXRvIGxpbmtCdWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExpbmtCdWZm
ZXI+KAorICAgICAgICAgICAgdm0sIGV4aXRUaHVua0dlbmVyYXRvciwgY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgCiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkgPT0gc3RhdGUuaml0Q29kZS0+b3NyRXhp
dC5zaXplKCkpOwogICAgICAgICAKQEAgLTM1OSw3ICszNTksNyBAQCBzdGF0aWMgdm9pZCBmaXhG
dW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIHN0YXRlLmZpbmFsaXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXIgPSBsaW5r
QnVmZmVyLnJlbGVhc2UoKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1bmtzTGlu
a0J1ZmZlciA9IFdURjo6bW92ZShsaW5rQnVmZmVyKTsKICAgICB9CiAKICAgICBpZiAoIXN0YXRl
LmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0
ZS5jaGVja0lucy5pc0VtcHR5KCkpIHsKQEAgLTQ4Myw4ICs0ODMsNyBAQCBzdGF0aWMgdm9pZCBm
aXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgIGV4Y2VwdGlvblRhcmdldC5saW5r
KCZzbG93UGF0aEpJVCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4Y2VwdGlvbkp1
bXAgPSBzbG93UGF0aEpJVC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBzdGF0ZS5maW5hbGl6
ZXItPnNpZGVDb2RlTGlua0J1ZmZlciA9IGFkb3B0UHRyKAotICAgICAgICAgICAgbmV3IExpbmtC
dWZmZXIodm0sIHNsb3dQYXRoSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2Nl
ZWQpKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPExpbmtCdWZmZXI+KHZtLCBzbG93UGF0aEpJVCwgY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29k
ZUxpbmtCdWZmZXItPmxpbmsoCiAgICAgICAgICAgICBleGNlcHRpb25KdW1wLCBzdGF0ZS5maW5h
bGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBvaW50KCkpOwogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCmluZGV4IDRk
ZmZkYWE3OTA4MWEyOGU4ZmU0OWI0YjMzMzE5YTc3YjFhZmEzNzYuLmMwZGY1NzlhNTk0MDc5NjVi
OWNkNDgyYzZlZmYzYjEzNGVjMzVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKSVRGaW5hbGl6ZXIuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBmaW5h
bGl6ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwog
Ci0gICAgT3duUHRyPExpbmtCdWZmZXI+IGV4aXRUaHVua3NMaW5rQnVmZmVyOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGlua0J1ZmZlcj4gZW50cnlwb2ludExpbmtCdWZmZXI7Ci0gICAgT3duUHRyPExp
bmtCdWZmZXI+IHNpZGVDb2RlTGlua0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1
ZmZlcj4gc2lkZUNvZGVMaW5rQnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVy
PiBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcjsKICAgICBWZWN0b3I8U2xvd1BhdGhDYWxsPiBz
bG93UGF0aENhbGxzOyAvLyBDYWxscyBpbnNpZGUgdGhlIHNpZGUgY29kZS4KICAgICBWZWN0b3I8
T1NSRXhpdENvbXBpbGF0aW9uSW5mbz4gb3NyRXhpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
MzljZGNmNGViNTA2OThkMzhjYTYyNTdkNzAxNmFmOWZlZTUzYWNmYy4uNTA2YmQwY2I2NWFjNDkz
YTRjY2NiMTEyOTIzYjdhZDk0YjEyZGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE0NTEs
NyArMTQ1MSw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAg
SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CiAKICAgICAgICAgaWYgKG9wdGlvbnMubV9wcm9maWxl
ICYmICF2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyKQotICAgICAgICAgICAgdm0tPm1fcGVyQnl0
ZWNvZGVQcm9maWxlciA9IGFkb3B0UHRyKG5ldyBQcm9maWxlcjo6RGF0YWJhc2UoKnZtKSk7Cisg
ICAgICAgICAgICB2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxQ
cm9maWxlcjo6RGF0YWJhc2U+KCp2bSk7CiAgICAgCiAgICAgICAgIEdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gR2xvYmFsT2JqZWN0OjpjcmVhdGUoKnZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZSgqdm0sIGpzTnVsbCgpKSwgb3B0aW9ucy5tX2FyZ3VtZW50cyk7CiAgICAgICAg
IGJvb2wgc3VjY2VzcyA9IHJ1bldpdGhTY3JpcHRzKGdsb2JhbE9iamVjdCwgb3B0aW9ucy5tX3Nj
cmlwdHMsIG9wdGlvbnMubV9kdW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTGV4ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaApp
bmRleCAzZmRkNjYxNzVjOGIwNGE3MGEzMTAzYjY2ZjA2NGVhMTc5OTBjNThhLi44MWI0MzM0ZDg0
OWQ4M2U3NWZhZGFmZWY1NDIwODQxNmE4ZDE2ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5oCkBAIC00NCw3ICs0NCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biBtX2tleXdvcmRUYWJsZS5lbnRyeShpZGVudCk7CiAgICAgfQotICAgIAorCisgICAgZXhwbGlj
aXQgS2V5d29yZHMoVk0mKTsKKwogICAgIH5LZXl3b3JkcygpCiAgICAgewogICAgICAgICBtX2tl
eXdvcmRUYWJsZS5kZWxldGVUYWJsZSgpOwpAQCAtNTMsOCArNTUsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBWTTsKICAgICAKLSAgICBleHBsaWNpdCBLZXl3b3JkcyhW
TSYpOwotICAgIAogICAgIFZNJiBtX3ZtOwogICAgIGNvbnN0IEhhc2hUYWJsZSBtX2tleXdvcmRU
YWJsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU1hcEhhc2hUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlNYXBIYXNoVGFibGUuaAppbmRleCBjYWJlNTU0YWMyNWY5NjljZjYzYTY5ZjdiMGJlZjU0NDEw
Nzg0Y2RkLi5kMDA4YWE2ZWY1ODI2MjU4NTFiNTJjODk1YTVhZTdhYTJmZmU4MTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxl
LmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBsLmg+CiAKQEAgLTI0
Myw3ICsyNDIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkKiBtX2luZGV4OwogICAgIHVuc2ln
bmVkIG1fa2V5Q291bnQ7CiAgICAgdW5zaWduZWQgbV9kZWxldGVkQ291bnQ7Ci0gICAgT3duUHRy
PCBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+PiBtX2RlbGV0ZWRPZmZzZXRzOworICAgIHN0ZDo6dW5p
cXVlX3B0cjwgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4gbV9kZWxldGVkT2Zmc2V0czsKIAogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNaW5pbXVtVGFibGVTaXplID0gMTY7CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIEVtcHR5RW50cnlJbmRleCA9IDA7CkBAIC00MjEsNyArNDIwLDcgQEAg
aW5saW5lIHVuc2lnbmVkIFByb3BlcnR5VGFibGU6OnByb3BlcnR5U3RvcmFnZVNpemUoKSBjb25z
dAogCiBpbmxpbmUgdm9pZCBQcm9wZXJ0eVRhYmxlOjpjbGVhckRlbGV0ZWRPZmZzZXRzKCkKIHsK
LSAgICBtX2RlbGV0ZWRPZmZzZXRzLmNsZWFyKCk7CisgICAgbV9kZWxldGVkT2Zmc2V0cyA9IG51
bGxwdHI7CiB9CiAKIGlubGluZSBib29sIFByb3BlcnR5VGFibGU6Omhhc0RlbGV0ZWRPZmZzZXQo
KQpAQCAtNDM5LDcgKzQzOCw3IEBAIGlubGluZSBQcm9wZXJ0eU9mZnNldCBQcm9wZXJ0eVRhYmxl
OjpnZXREZWxldGVkT2Zmc2V0KCkKIGlubGluZSB2b2lkIFByb3BlcnR5VGFibGU6OmFkZERlbGV0
ZWRPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmICghbV9kZWxldGVkT2Zm
c2V0cykKLSAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8UHJv
cGVydHlPZmZzZXQ+KTsKKyAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IHN0ZDo6bWFrZV91bmlx
dWU8VmVjdG9yPFByb3BlcnR5T2Zmc2V0Pj4oKTsKICAgICBtX2RlbGV0ZWRPZmZzZXRzLT5hcHBl
bmQob2Zmc2V0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVRhYmxlLmNwcAppbmRleCA1NzBlNWY5NTkyMGZlNjdhYzg0Y2MzOGZhYWZmYzg3M2VhZmMz
ZGUxLi43NDQ3NGM2ZDkxNWYzZGFkNWFiOWRjZDIzN2U5OGIwYzJlOWRmMGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcApAQCAtODgsNyAr
ODgsNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgY29uc3QgUHJvcGVy
dHlUYWJsZSYgb3RoZXIpCiAgICAgLy8gQ29weSB0aGUgbV9kZWxldGVkT2Zmc2V0cyB2ZWN0b3Iu
CiAgICAgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Piogb3RoZXJEZWxldGVkT2Zmc2V0cyA9IG90aGVy
Lm1fZGVsZXRlZE9mZnNldHMuZ2V0KCk7CiAgICAgaWYgKG90aGVyRGVsZXRlZE9mZnNldHMpCi0g
ICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFByb3BlcnR5T2Zm
c2V0Pigqb3RoZXJEZWxldGVkT2Zmc2V0cykpOworICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0g
c3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UHJvcGVydHlPZmZzZXQ+Pigqb3RoZXJEZWxldGVkT2Zm
c2V0cyk7CiB9CiAKIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCB1bnNpZ25l
ZCBpbml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5VGFibGUmIG90aGVyKQpAQCAtMTEyLDcg
KzExMiw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCB1bnNpZ25lZCBp
bml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5VGFiCiAgICAgLy8gQ29weSB0aGUgbV9kZWxl
dGVkT2Zmc2V0cyB2ZWN0b3IuCiAgICAgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Piogb3RoZXJEZWxl
dGVkT2Zmc2V0cyA9IG90aGVyLm1fZGVsZXRlZE9mZnNldHMuZ2V0KCk7CiAgICAgaWYgKG90aGVy
RGVsZXRlZE9mZnNldHMpCi0gICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0cihuZXcg
VmVjdG9yPFByb3BlcnR5T2Zmc2V0Pigqb3RoZXJEZWxldGVkT2Zmc2V0cykpOworICAgICAgICBt
X2RlbGV0ZWRPZmZzZXRzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UHJvcGVydHlPZmZzZXQ+
Pigqb3RoZXJEZWxldGVkT2Zmc2V0cyk7CiB9CiAKIHZvaWQgUHJvcGVydHlUYWJsZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcAppbmRleCA1ZjRlNzZlNGM4MGZkMmZjMzU0ZjMzOGYzMDBjMDg1ZjUzZTIzZWE2
Li40ZDlkMGIyN2U0ZDBjOGM5MWY5ZmViNDVhMWQ1NGU1OTVkMzNkNTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKQEAgLTM0LDcgKzM0LDYg
QEAKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNo
ZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nt
YWxsU3RyaW5ncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmlu
Z3MuY3BwCmluZGV4IDFkZjlmNjNjOTIxMWMzZDQ3MTBmMGJjNDEzYjNiMDE1MDY1NzdiMDEuLjQz
YjI5NThjYzgyZjY1ZThkZWJmNmYwM2NmYjBiZDQ2YzA2ZTAyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAKaW5kZXggNTdh
Y2QyOWZlNGNmN2Q0NGUwNjY4MTQwMTkyMzkwNzIzYmE5ZmY1NS4uOGFhODliMDY2ZTY2MzM4ZGFh
ZTA1M2E0ODk4ZjMzZjFhYjEwMTVkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAKQEAgLTI5LDEzICsyOSwxMiBAQAogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0Rh
dGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogU3RydWN0dXJlSURUYWJsZTo6U3RydWN0dXJlSURUYWJsZSgpCiAgICAgOiBtX2ZpcnN0RnJl
ZU9mZnNldCgwKQotICAgICwgbV90YWJsZShhZG9wdFB0cihuZXcgU3RydWN0dXJlT3JPZmZzZXRb
c19pbml0aWFsU2l6ZV0pKQorICAgICwgbV90YWJsZShzdGQ6Om1ha2VfdW5pcXVlPFN0cnVjdHVy
ZU9yT2Zmc2V0W10+KHNfaW5pdGlhbFNpemUpKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2Nh
cGFjaXR5KHNfaW5pdGlhbFNpemUpCiB7CkBAIC00Nyw3ICs0Niw3IEBAIFN0cnVjdHVyZUlEVGFi
bGU6OlN0cnVjdHVyZUlEVGFibGUoKQogdm9pZCBTdHJ1Y3R1cmVJRFRhYmxlOjpyZXNpemUoc2l6
ZV90IG5ld0NhcGFjaXR5KQogewogICAgIC8vIENyZWF0ZSB0aGUgbmV3IHRhYmxlLgotICAgIE93
blB0cjxTdHJ1Y3R1cmVPck9mZnNldD4gbmV3VGFibGUgPSBhZG9wdFB0cihuZXcgU3RydWN0dXJl
T3JPZmZzZXRbbmV3Q2FwYWNpdHldKTsKKyAgICBhdXRvIG5ld1RhYmxlID0gc3RkOjptYWtlX3Vu
aXF1ZTxTdHJ1Y3R1cmVPck9mZnNldFtdPihuZXdDYXBhY2l0eSk7CiAKICAgICAvLyBDb3B5IHRo
ZSBjb250ZW50cyBvZiB0aGUgb2xkIHRhYmxlIHRvIHRoZSBuZXcgdGFibGUuCiAgICAgbWVtY3B5
KG5ld1RhYmxlLmdldCgpLCB0YWJsZSgpLCBtX2NhcGFjaXR5ICogc2l6ZW9mKFN0cnVjdHVyZU9y
T2Zmc2V0KSk7CkBAIC01OSw3ICs1OCw3IEBAIHZvaWQgU3RydWN0dXJlSURUYWJsZTo6cmVzaXpl
KHNpemVfdCBuZXdDYXBhY2l0eSkKICAgICBzd2FwKG1fdGFibGUsIG5ld1RhYmxlKTsKIAogICAg
IC8vIFB1dCB0aGUgb2xkIHRhYmxlIChub3cgbGFiZWxlZCBhcyBuZXcpIGludG8gdGhlIGxpc3Qg
b2Ygb2xkIHRhYmxlcy4KLSAgICBtX29sZFRhYmxlcy5hcHBlbmQobmV3VGFibGUucmVsZWFzZSgp
KTsKKyAgICBtX29sZFRhYmxlcy5hcHBlbmQoV1RGOjptb3ZlKG5ld1RhYmxlKSk7CiAKICAgICAv
LyBVcGRhdGUgdGhlIGNhcGFjaXR5LgogICAgIG1fY2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAppbmRl
eCBjZmFjM2FkODU0Y2MxOGE1NjA1OTExYWI0ZmFlZWI4NjU0ODdjOTNiLi42MzAzMzNmMGM1NzFh
ZGExNTViOTg0ZjBkZjUwNGE3ZjIyZjM3NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5l
IFN0cnVjdHVyZUlEVGFibGVfaAogCiAjaW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpAQCAtNjcsMTAgKzY2LDEwIEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBzX2luaXRpYWxTaXplID0gMjU2OwogCi0gICAgVmVjdG9yPE93blB0cjxTdHJ1Y3R1
cmVPck9mZnNldD4+IG1fb2xkVGFibGVzOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U3Ry
dWN0dXJlT3JPZmZzZXRbXT4+IG1fb2xkVGFibGVzOwogCiAgICAgdWludDMyX3QgbV9maXJzdEZy
ZWVPZmZzZXQ7Ci0gICAgT3duUHRyPFN0cnVjdHVyZU9yT2Zmc2V0PiBtX3RhYmxlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTdHJ1Y3R1cmVPck9mZnNldFtdPiBtX3RhYmxlOwogCiAgICAgc2l6ZV90
IG1fc2l6ZTsKICAgICBzaXplX3QgbV9jYXBhY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKaW5kZXggMTMw
ZWZkYTFlZjUxYWI2NTUzMjQ4YTU4ZmY3OTdmMzM3M2JkYjA1YS4uMjNjNmNhMzBkZmEzOGU0MDJi
OTk1NjhhNjMwMWY1MzdlODIwNThmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJXZWFrR0NNYXAuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFjZSBKU0Mgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGJhMGUwYjRhNzVlYzRmZDc3NzAw
Mzg3MTI5N2NmNWY3ZWUzMTg0NjAuLjdhODgzNDQ2MDc4MTg1YTE5ZTg2YjZlYzkwNTVlOWU1NzM0
NDQ4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTE1Myw3ICsxNTMs
NyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBtX2F0
b21pY1N0cmluZ1RhYmxlKHZtVHlwZSA9PSBEZWZhdWx0ID8gd3RmVGhyZWFkRGF0YSgpLmF0b21p
Y1N0cmluZ1RhYmxlKCkgOiBuZXcgQXRvbWljU3RyaW5nVGFibGUpCiAgICAgLCBwcm9wZXJ0eU5h
bWVzKG51bGxwdHIpCiAgICAgLCBlbXB0eUxpc3QobmV3IE1hcmtlZEFyZ3VtZW50QnVmZmVyKQot
ICAgICwga2V5d29yZHMoYWRvcHRQdHIobmV3IEtleXdvcmRzKCp0aGlzKSkpCisgICAgLCBrZXl3
b3JkcyhzdGQ6Om1ha2VfdW5pcXVlPEtleXdvcmRzPigqdGhpcykpCiAgICAgLCBpbnRlcnByZXRl
cigwKQogICAgICwganNBcnJheUNsYXNzSW5mbyhKU0FycmF5OjppbmZvKCkpCiAgICAgLCBqc0Zp
bmFsT2JqZWN0Q2xhc3NJbmZvKEpTRmluYWxPYmplY3Q6OmluZm8oKSkKQEAgLTI0MSw3ICsyNDEs
NyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgd3RmVGhy
ZWFkRGF0YSgpLnNldEN1cnJlbnRBdG9taWNTdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbWlj
U3RyaW5nVGFibGUpOwogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBqaXRTdHVicyA9IGFkb3B0UHRy
KG5ldyBKSVRUaHVua3MoKSk7CisgICAgaml0U3R1YnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEpJVFRo
dW5rcz4oKTsKICAgICBhcml0eUNoZWNrRmFpbFJldHVyblRodW5rcyA9IHN0ZDo6bWFrZV91bmlx
dWU8QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M+KCk7CiAjZW5kaWYKICAgICBhcml0eUNoZWNr
RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4o
KTsKQEAgLTI2MSw3ICsyNjEsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVh
cFR5cGUpCiAgICAgTExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0aGlzKTsKICAgICAK
ICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUHJvZmlsZXIoKSkgewotICAgICAgICBtX3BlckJ5dGVj
b2RlUHJvZmlsZXIgPSBhZG9wdFB0cihuZXcgUHJvZmlsZXI6OkRhdGFiYXNlKCp0aGlzKSk7Cisg
ICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlciA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvZmlsZXI6
OkRhdGFiYXNlPigqdGhpcyk7CiAKICAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gcGF0aE91dDsK
ICAgICAgICAgY29uc3QgY2hhciogcHJvZmlsZXJQYXRoID0gZ2V0ZW52KCJKU0NfUFJPRklMRVJf
UEFUSCIpOwpAQCAtMjczLDcgKzI3Myw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlw
ZSBoZWFwVHlwZSkKIAogI2lmIEVOQUJMRShERkdfSklUKQogICAgIGlmIChjYW5Vc2VKSVQoKSkK
LSAgICAgICAgZGZnU3RhdGUgPSBhZG9wdFB0cihuZXcgREZHOjpMb25nTGl2ZWRTdGF0ZSgpKTsK
KyAgICAgICAgZGZnU3RhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPERGRzo6TG9uZ0xpdmVkU3RhdGU+
KCk7CiAjZW5kaWYKICAgICAKICAgICAvLyBJbml0aWFsaXplIHRoaXMgbGFzdCwgYXMgYSBmcmVl
IHdheSBvZiBhc3NlcnRpbmcgdGhhdCBWTSBpbml0aWFsaXphdGlvbiBpdHNlbGYKQEAgLTMwMyw4
ICszMDMsOCBAQCBWTTo6flZNKCkKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICAgICAKICAg
ICAvLyBDbGVhciB0aGlzIGZpcnN0IHRvIGVuc3VyZSB0aGF0IG5vYm9keSB0cmllcyB0byByZW1v
dmUgdGhlbXNlbHZlcyBmcm9tIGl0LgotICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlci5jbGVhcigp
OwotICAgIAorICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlciA9IG51bGxwdHI7CisKICAgICBBU1NF
UlQobV9hcGlMb2NrLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKICAgICBtX2FwaUxv
Y2stPndpbGxEZXN0cm95Vk0odGhpcyk7CiAgICAgaGVhcC5sYXN0Q2hhbmNlVG9GaW5hbGl6ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggYzExOGI5Yjg3ODBjMDFiNjM4YmRh
N2FiOWJjZTc1YTEwOTRhMGFhZC4uZjg4NDI4MjE3NjFmNmFkOGFiZWEwOThkMjhhYTc2YjA5NDJi
NmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0yMzUsNyArMjM1LDcgQEAg
cHVibGljOgogICAgIEhlYXAgaGVhcDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIE93blB0
cjxERkc6OkxvbmdMaXZlZFN0YXRlPiBkZmdTdGF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8REZH
OjpMb25nTGl2ZWRTdGF0ZT4gZGZnU3RhdGU7CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbEVkZ2VMb2c+IGNhbGxFZGdlTG9nOwpAQCAtMzI4LDEw
ICszMjgsMTAgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTb3VyY2VQ
cm92aWRlcj4sIFJlZlB0cjxTb3VyY2VQcm92aWRlckNhY2hlPj4gU291cmNlUHJvdmlkZXJDYWNo
ZU1hcDsKICAgICBTb3VyY2VQcm92aWRlckNhY2hlTWFwIHNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7
Ci0gICAgT3duUHRyPEtleXdvcmRzPiBrZXl3b3JkczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8S2V5
d29yZHM+IGtleXdvcmRzOwogICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlcjsKICNpZiBFTkFC
TEUoSklUKQotICAgIE93blB0cjxKSVRUaHVua3M+IGppdFN0dWJzOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxKSVRUaHVua3M+IGppdFN0dWJzOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRD
VElTdHViKFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKICAgICB7CiAgICAgICAgIHJldHVybiBq
aXRTdHVicy0+Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwpAQCAtNDU4LDcgKzQ1OCw3IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgY2FjaGVkRGF0ZVN0cmluZzsKICAgICBkb3VibGUgY2FjaGVkRGF0
ZVN0cmluZ1ZhbHVlOwogCi0gICAgT3duUHRyPFByb2ZpbGVyOjpEYXRhYmFzZT4gbV9wZXJCeXRl
Y29kZVByb2ZpbGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9maWxlcjo6RGF0YWJhc2U+IG1f
cGVyQnl0ZWNvZGVQcm9maWxlcjsKICAgICBSZWZQdHI8VHlwZWRBcnJheUNvbnRyb2xsZXI+IG1f
dHlwZWRBcnJheUNvbnRyb2xsZXI7CiAgICAgUmVnRXhwQ2FjaGUqIG1fcmVnRXhwQ2FjaGU7CiAg
ICAgQnVtcFBvaW50ZXJBbGxvY2F0b3IgbV9yZWdFeHBBbGxvY2F0b3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oCmluZGV4IDZiMGEzMDY4OTg0ZDgxN2Q2NDRmNDQz
NmU5ZmM3ZTAxNzA3Y2M4YjguLjBjNmQ2ODQzNTFkZDE3NDIwMWJhOTM5NWI4OGVjODNhNGVlOWEx
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgewogICAg
ICAgICBpZiAocGFyZW50KQotICAgICAgICAgICAgcGFyZW50LT5hZGRDaGlsZCh0aGlzKTsKKyAg
ICAgICAgICAgIHBhcmVudC0+YWRkQ2hpbGQoc3RkOjp1bmlxdWVfcHRyPENvZGVQcm9maWxlPih0
aGlzKSk7CiAgICAgfQogCiAgICAgdm9pZCBzYW1wbGUodm9pZCogcGMsIHZvaWQqKiBmcmFtZVBv
aW50ZXIpOwpAQCAtNTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3BhcmVu
dDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhZGRDaGlsZChDb2RlUHJvZmlsZSogY2hpbGQpCisg
ICAgdm9pZCBhZGRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8Q29kZVByb2ZpbGU+IGNoaWxkKQogICAg
IHsKLSAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoYWRvcHRQdHIoY2hpbGQpKTsKKyAgICAgICAg
bV9jaGlsZHJlbi5hcHBlbmQoV1RGOjptb3ZlKGNoaWxkKSk7CiAgICAgfQogCiBwcml2YXRlOgpA
QCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIENTdHJpbmcgbV9maWxlOwogICAgIHVuc2ln
bmVkIG1fbGluZU5vOwogICAgIENvZGVQcm9maWxlKiBtX3BhcmVudDsKLSAgICBWZWN0b3I8IE93
blB0cjxDb2RlUHJvZmlsZT4+IG1fY2hpbGRyZW47CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxDb2RlUHJvZmlsZT4+IG1fY2hpbGRyZW47CiAgICAgVGllcmVkTU1hcEFycmF5PENvZGVSZWNv
cmQ+IG1fc2FtcGxlczsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzX2NvZGVUeXBlTmFtZXNb
TnVtYmVyT2ZDb2RlVHlwZXNdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243181</attachid>
            <date>2014-12-11 23:27:44 -0800</date>
            <delta_ts>2014-12-12 05:34:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139532-20141212162827.patch</filename>
            <type>text/plain</type>
            <size>20932</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWMxMjBiNTE5NzFkMjhhZjY4MmQ4ZjU2NWUxZDVjMTYxYjQyYWM2Li44OTBkYzE5M2I1NDUxNjI0
N2IzOTZjNDc3ODcyZTdiZTE0MTYwYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNC0xMi0xMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgorCisgICAgICAgIEZpbmFsIGNsZWFuIHVwIE93blB0ciBpbiBKU0MgLSBydW50aW1l
LCBmdGwsIGFuZCB0b29sIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExh
bS4KKworICAgICAgICBGaW5hbCByZW1vdmUgT3duUHRyLCBQYXNzT3duUHRyIGluIHJ1bnRpbWUs
IGZ0bCwgYW5kIHRvb2xzIGRpcmVjdG9yaWVzIG9mIEpTQy4KKworICAgICAgICAqIGJ1aWx0aW5z
L0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgor
ICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2VuZXJhdGVGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVh
cC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6YXRTbG93KToK
KyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZnRsL0ZUTENvbXBp
bGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2NhdGVEYXRhU2VjdGlvbik6CisgICAg
ICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAg
IChqc2NtYWluKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFibGU6OmNs
ZWFyRGVsZXRlZE9mZnNldHMpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjphZGREZWxl
dGVkT2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZUlEVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpTdHJ1Y3R1
cmVJRFRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6cmVzaXplKToKKyAg
ICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAg
ICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmg6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAgICAgKEpT
Qzo6Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Q29kZVByb2ZpbGU6
OmFkZENoaWxkKToKKwogMjAxNC0xMi0xMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIGlPUyBTaW11bGF0b3IgcHJvZHVjdGlvbiBidWlsZCBmaXguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKaW5k
ZXggMWY0YjA4ZjQ1YmQxNzllNmEwOTU3MTU2NmYzNTM4YTZmNzFjMDY3Ny4uYjA1M2EwZWUzODcx
OWE4YmJkMDQyNDQ4ZjQ1ODdlZTYzNzQ1NGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaApAQCAtMjksNyArMjksNiBAQAog
I2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1
ZGUgIldlYWsuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgSlND
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGY5
Nzg0ODM2MTkzNzY2ZDFiODFkNjM0Mjc0MTUwYjE2MTM2N2Q3ZDYuLjI3NjdiZDI3ODc4MmY0MDEz
MzRjMGE4ZjIwMzk4ZWQyNjczYjA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKQEAgLTcwLDcgKzcwLDYgQEAKICNpbmNsdWRlICJXYXRjaHBvaW50Lmgi
CiAjaW5jbHVkZSA8d3RmL0JhZy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0b3Iu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2Rl
QmxvY2suY3BwCmluZGV4IDFhZWU4ZWIzYzk4M2U0NzQ0Yzg4YTg2NjlhOGRmMzc0MmFhYmFhMTUu
Ljc0MGEyNDQyNjVjYzg1MmJhM2E3YmNhMmExZWI3ZjQ1ODk3OGM0NGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcApAQCAt
NjIsNyArNjIsNyBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJhdGVG
dW5jdGlvbkNvZGVCbG9jayhWTSYgdm0sIFVubGlua2VkRnVuYwogICAgIGV4ZWN1dGFibGUtPnJl
Y29yZFBhcnNlKGZ1bmN0aW9uLT5mZWF0dXJlcygpLCBmdW5jdGlvbi0+aGFzQ2FwdHVyZWRWYXJp
YWJsZXMoKSk7CiAgICAgCiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogcmVzdWx0ID0g
VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlKCZ2bSwgRnVuY3Rpb25Db2RlLCBFeGVj
dXRhYmxlSW5mbyhmdW5jdGlvbi0+bmVlZHNBY3RpdmF0aW9uKCksIGZ1bmN0aW9uLT51c2VzRXZh
bCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCwg
ZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uKSk7Ci0gICAgT3duUHRyPEJ5
dGVjb2RlR2VuZXJhdG9yPiBnZW5lcmF0b3IoYWRvcHRQdHIobmV3IEJ5dGVjb2RlR2VuZXJhdG9y
KHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSkp
KTsKKyAgICBhdXRvIGdlbmVyYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlR2VuZXJhdG9y
Pih2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUp
KTsKICAgICBlcnJvciA9IGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKICAgICBpZiAoZXJyb3IubV90
eXBlICE9IFBhcnNlckVycm9yOjpFcnJvck5vbmUpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCmluZGV4IGRmYmJlYjE4
YzkzZGE3ZThkYTcxMDIxM2Q0YmM1MGIxZWRlY2M1NzMuLjAwMzdhN2E1NGNjZDQyYzBmNTY2Yjdh
OTExNzA0MGJhOWQ2MzQ3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBjb25zdCBBYnN0cmFjdEZpZWxkJiBJ
bmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGluZGV4KQogICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA+PSBtX3NtYWxsSW5kaWNlcy5zaXplKCkpOwogICAg
IAogICAgIGlmIChVTkxJS0VMWSghbV9sYXJnZUluZGljZXMpKQotICAgICAgICBtX2xhcmdlSW5k
aWNlcyA9IGFkb3B0UHRyKG5ldyBNYXBUeXBlKCkpOworICAgICAgICBtX2xhcmdlSW5kaWNlcyA9
IHN0ZDo6bWFrZV91bmlxdWU8TWFwVHlwZT4oKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBYnN0
cmFjdEZpZWxkPiYgZmllbGQgPSBtX2xhcmdlSW5kaWNlcy0+YWRkKGluZGV4LCBudWxscHRyKS5p
dGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFmaWVsZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKaW5kZXggMDczMWVlZGJkMTJjZDE3N2ZiMzVmM2Q0ZDAz
MWZlZTU4ZjQ3NjY1ZS4uZWIxNjNjMWRjNDQ4NmE1ZDk4MjA3YTgzOTM4YjI3OGNjODg3MmU4YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCkBAIC0xODMsNyArMTgyLDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIHR5cGVkZWYg
SGFzaE1hcDxwdHJkaWZmX3QsIHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdEZpZWxkPiwgV1RGOjpJ
bnRIYXNoPHB0cmRpZmZfdD4sIFdpdGhvdXRaZXJvT3JPbmVIYXNoVHJhaXRzPiBNYXBUeXBlOwog
ICAgIAotICAgIE93blB0cjxNYXBUeXBlPiBtX2xhcmdlSW5kaWNlczsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWFwVHlwZT4gbV9sYXJnZUluZGljZXM7CiAgICAgVmVjdG9yPENTdHJpbmcsIDE2PiBt
X2xhcmdlSW5kZXhOYW1lczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ29tcGlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBp
bGUuY3BwCmluZGV4IDhiMjhjOWEwY2YzYzc2YmZiZjVjZWRkYjkwZGE1ZGEwYzI3ZDBlNzQuLmRj
Njk5NDMzZjU2MDdkMmMyOGRhMzdlYzhlNmQ5MDJlNDU4YWQ2MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApAQCAtMzIyLDggKzMyMiw4IEBAIHN0YXRpYyB2b2lk
IGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3Rh
dGUuZmluYWxpemVyLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGRp
ZFNlZVVud2luZEluZm8pOwogICAgICAgICAKLSAgICAgICAgT3duUHRyPExpbmtCdWZmZXI+IGxp
bmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKLSAgICAgICAgICAgIHZtLCBleGl0
VGh1bmtHZW5lcmF0b3IsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOwor
ICAgICAgICBhdXRvIGxpbmtCdWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExpbmtCdWZmZXI+KAor
ICAgICAgICAgICAgdm0sIGV4aXRUaHVua0dlbmVyYXRvciwgY29kZUJsb2NrLCBKSVRDb21waWxh
dGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN0YXRl
LmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkgPT0gc3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXpl
KCkpOwogICAgICAgICAKQEAgLTM1OSw3ICszNTksNyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlv
bkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIHN0YXRlLmZpbmFsaXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXIgPSBsaW5rQnVmZmVy
LnJlbGVhc2UoKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1bmtzTGlua0J1ZmZl
ciA9IFdURjo6bW92ZShsaW5rQnVmZmVyKTsKICAgICB9CiAKICAgICBpZiAoIXN0YXRlLmdldEJ5
SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0ZS5jaGVj
a0lucy5pc0VtcHR5KCkpIHsKQEAgLTQ4Myw4ICs0ODMsNyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5j
dGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgIGV4Y2VwdGlvblRhcmdldC5saW5rKCZzbG93
UGF0aEpJVCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4Y2VwdGlvbkp1bXAgPSBz
bG93UGF0aEpJVC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNp
ZGVDb2RlTGlua0J1ZmZlciA9IGFkb3B0UHRyKAotICAgICAgICAgICAgbmV3IExpbmtCdWZmZXIo
dm0sIHNsb3dQYXRoSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsK
KyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPExpbmtCdWZmZXI+KHZtLCBzbG93UGF0aEpJVCwgY29kZUJsb2NrLCBKSVRDb21waWxh
dGlvbk11c3RTdWNjZWVkKTsKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtC
dWZmZXItPmxpbmsoCiAgICAgICAgICAgICBleGNlcHRpb25KdW1wLCBzdGF0ZS5maW5hbGl6ZXIt
PmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBvaW50KCkpOwogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCmluZGV4IDRkZmZkYWE3
OTA4MWEyOGU4ZmU0OWI0YjMzMzE5YTc3YjFhZmEzNzYuLmMwZGY1NzlhNTk0MDc5NjViOWNkNDgy
YzZlZmYzYjEzNGVjMzVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRG
aW5hbGl6ZXIuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBmaW5hbGl6ZSgp
IG92ZXJyaWRlOwogICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogCi0gICAg
T3duUHRyPExpbmtCdWZmZXI+IGV4aXRUaHVua3NMaW5rQnVmZmVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TGlua0J1ZmZlcj4gZW50cnlwb2ludExpbmtCdWZmZXI7Ci0gICAgT3duUHRyPExpbmtCdWZm
ZXI+IHNpZGVDb2RlTGlua0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4g
c2lkZUNvZGVMaW5rQnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiBoYW5k
bGVFeGNlcHRpb25zTGlua0J1ZmZlcjsKICAgICBWZWN0b3I8U2xvd1BhdGhDYWxsPiBzbG93UGF0
aENhbGxzOyAvLyBDYWxscyBpbnNpZGUgdGhlIHNpZGUgY29kZS4KICAgICBWZWN0b3I8T1NSRXhp
dENvbXBpbGF0aW9uSW5mbz4gb3NyRXhpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMzljZGNm
NGViNTA2OThkMzhjYTYyNTdkNzAxNmFmOWZlZTUzYWNmYy4uNTA2YmQwY2I2NWFjNDkzYTRjY2Ni
MTEyOTIzYjdhZDk0YjEyZGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE0NTEsNyArMTQ1
MSw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgSlNMb2Nr
SG9sZGVyIGxvY2tlcih2bSk7CiAKICAgICAgICAgaWYgKG9wdGlvbnMubV9wcm9maWxlICYmICF2
bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyKQotICAgICAgICAgICAgdm0tPm1fcGVyQnl0ZWNvZGVQ
cm9maWxlciA9IGFkb3B0UHRyKG5ldyBQcm9maWxlcjo6RGF0YWJhc2UoKnZtKSk7CisgICAgICAg
ICAgICB2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9maWxl
cjo6RGF0YWJhc2U+KCp2bSk7CiAgICAgCiAgICAgICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gR2xvYmFsT2JqZWN0OjpjcmVhdGUoKnZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSgqdm0sIGpzTnVsbCgpKSwgb3B0aW9ucy5tX2FyZ3VtZW50cyk7CiAgICAgICAgIGJvb2wg
c3VjY2VzcyA9IHJ1bldpdGhTY3JpcHRzKGdsb2JhbE9iamVjdCwgb3B0aW9ucy5tX3NjcmlwdHMs
IG9wdGlvbnMubV9kdW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTGV4ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAppbmRleCAz
ZmRkNjYxNzVjOGIwNGE3MGEzMTAzYjY2ZjA2NGVhMTc5OTBjNThhLi44MWI0MzM0ZDg0OWQ4M2U3
NWZhZGFmZWY1NDIwODQxNmE4ZDE2ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5oCkBAIC00NCw3ICs0NCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBtX2tl
eXdvcmRUYWJsZS5lbnRyeShpZGVudCk7CiAgICAgfQotICAgIAorCisgICAgZXhwbGljaXQgS2V5
d29yZHMoVk0mKTsKKwogICAgIH5LZXl3b3JkcygpCiAgICAgewogICAgICAgICBtX2tleXdvcmRU
YWJsZS5kZWxldGVUYWJsZSgpOwpAQCAtNTMsOCArNTUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBWTTsKICAgICAKLSAgICBleHBsaWNpdCBLZXl3b3JkcyhWTSYpOwot
ICAgIAogICAgIFZNJiBtX3ZtOwogICAgIGNvbnN0IEhhc2hUYWJsZSBtX2tleXdvcmRUYWJsZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1h
cEhhc2hUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBI
YXNoVGFibGUuaAppbmRleCBjYWJlNTU0YWMyNWY5NjljZjYzYTY5ZjdiMGJlZjU0NDEwNzg0Y2Rk
Li5kNzMzNGMwYWVkYzBmZWE1NWVjZDE3NDNjZjRlOTI4MTA0NWI3NjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKQEAg
LTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBsLmg+CiAKQEAgLTI0Myw3ICsy
NDIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkKiBtX2luZGV4OwogICAgIHVuc2lnbmVkIG1f
a2V5Q291bnQ7CiAgICAgdW5zaWduZWQgbV9kZWxldGVkQ291bnQ7Ci0gICAgT3duUHRyPCBWZWN0
b3I8UHJvcGVydHlPZmZzZXQ+PiBtX2RlbGV0ZWRPZmZzZXRzOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8UHJvcGVydHlPZmZzZXQ+PiBtX2RlbGV0ZWRPZmZzZXRzOwogCiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIE1pbmltdW1UYWJsZVNpemUgPSAxNjsKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgRW1wdHlFbnRyeUluZGV4ID0gMDsKQEAgLTQyMSw3ICs0MjAsNyBAQCBpbmxpbmUg
dW5zaWduZWQgUHJvcGVydHlUYWJsZTo6cHJvcGVydHlTdG9yYWdlU2l6ZSgpIGNvbnN0CiAKIGlu
bGluZSB2b2lkIFByb3BlcnR5VGFibGU6OmNsZWFyRGVsZXRlZE9mZnNldHMoKQogewotICAgIG1f
ZGVsZXRlZE9mZnNldHMuY2xlYXIoKTsKKyAgICBtX2RlbGV0ZWRPZmZzZXRzID0gbnVsbHB0cjsK
IH0KIAogaW5saW5lIGJvb2wgUHJvcGVydHlUYWJsZTo6aGFzRGVsZXRlZE9mZnNldCgpCkBAIC00
MzksNyArNDM4LDcgQEAgaW5saW5lIFByb3BlcnR5T2Zmc2V0IFByb3BlcnR5VGFibGU6OmdldERl
bGV0ZWRPZmZzZXQoKQogaW5saW5lIHZvaWQgUHJvcGVydHlUYWJsZTo6YWRkRGVsZXRlZE9mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgaWYgKCFtX2RlbGV0ZWRPZmZzZXRzKQot
ICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxQcm9wZXJ0eU9m
ZnNldD4pOworICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0
b3I8UHJvcGVydHlPZmZzZXQ+PigpOwogICAgIG1fZGVsZXRlZE9mZnNldHMtPmFwcGVuZChvZmZz
ZXQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFi
bGUuY3BwCmluZGV4IDU3MGU1Zjk1OTIwZmU2N2FjODRjYzM4ZmFhZmZjODczZWFmYzNkZTEuLjc0
NDc0YzZkOTE1ZjNkYWQ1YWI5ZGNkMjM3ZTk4YjBjMmU5ZGYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCkBAIC04OCw3ICs4OCw3IEBA
IFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCBjb25zdCBQcm9wZXJ0eVRhYmxl
JiBvdGhlcikKICAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KICAgICBW
ZWN0b3I8UHJvcGVydHlPZmZzZXQ+KiBvdGhlckRlbGV0ZWRPZmZzZXRzID0gb3RoZXIubV9kZWxl
dGVkT2Zmc2V0cy5nZXQoKTsKICAgICBpZiAob3RoZXJEZWxldGVkT2Zmc2V0cykKLSAgICAgICAg
bV9kZWxldGVkT2Zmc2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KCpv
dGhlckRlbGV0ZWRPZmZzZXRzKSk7CisgICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4+KCpvdGhlckRlbGV0ZWRPZmZzZXRzKTsK
IH0KIAogUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShWTSYgdm0sIHVuc2lnbmVkIGluaXRp
YWxDYXBhY2l0eSwgY29uc3QgUHJvcGVydHlUYWJsZSYgb3RoZXIpCkBAIC0xMTIsNyArMTEyLDcg
QEAgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShWTSYgdm0sIHVuc2lnbmVkIGluaXRpYWxD
YXBhY2l0eSwgY29uc3QgUHJvcGVydHlUYWIKICAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZz
ZXRzIHZlY3Rvci4KICAgICBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KiBvdGhlckRlbGV0ZWRPZmZz
ZXRzID0gb3RoZXIubV9kZWxldGVkT2Zmc2V0cy5nZXQoKTsKICAgICBpZiAob3RoZXJEZWxldGVk
T2Zmc2V0cykKLSAgICAgICAgbV9kZWxldGVkT2Zmc2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8
UHJvcGVydHlPZmZzZXQ+KCpvdGhlckRlbGV0ZWRPZmZzZXRzKSk7CisgICAgICAgIG1fZGVsZXRl
ZE9mZnNldHMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4+KCpvdGhl
ckRlbGV0ZWRPZmZzZXRzKTsKIH0KIAogdm9pZCBQcm9wZXJ0eVRhYmxlOjpkZXN0cm95KEpTQ2Vs
bCogY2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3Qu
Y3BwCmluZGV4IDVmNGU3NmU0YzgwZmQyZmMzNTRmMzM4ZjMwMGMwODVmNTNlMjNlYTYuLjRkOWQw
YjI3ZTRkMGM4YzkxZjlmZWI0NWExZDU0ZTU5NWQzM2Q1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2lu
Y2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5
LmgiCiAjaW5jbHVkZSAiUmVnRXhwUHJvdG90eXBlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJp
bmdzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAK
aW5kZXggMWRmOWY2M2M5MjExYzNkNDcxMGYwYmM0MTNiM2IwMTUwNjU3N2IwMS4uNDNiMjk1OGNj
ODJmNjVlOGRlYmY2ZjAzY2ZiMGJkNDZjMDZlMDJiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAppbmRleCA1N2FjZDI5ZmU0
Y2Y3ZDQ0ZTA2NjgxNDAxOTIzOTA3MjNiYTlmZjU1Li44YWE4OWIwNjZlNjYzMzhkYWFlMDUzYTQ4
OThmMzNmMWFiMTAxNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcApAQCAtMjksMTMgKzI5LDEyIEBACiAjaW5jbHVkZSA8bGlt
aXRzLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBTdHJ1
Y3R1cmVJRFRhYmxlOjpTdHJ1Y3R1cmVJRFRhYmxlKCkKICAgICA6IG1fZmlyc3RGcmVlT2Zmc2V0
KDApCi0gICAgLCBtX3RhYmxlKGFkb3B0UHRyKG5ldyBTdHJ1Y3R1cmVPck9mZnNldFtzX2luaXRp
YWxTaXplXSkpCisgICAgLCBtX3RhYmxlKHN0ZDo6bWFrZV91bmlxdWU8U3RydWN0dXJlT3JPZmZz
ZXRbXT4oc19pbml0aWFsU2l6ZSkpCiAgICAgLCBtX3NpemUoMCkKICAgICAsIG1fY2FwYWNpdHko
c19pbml0aWFsU2l6ZSkKIHsKQEAgLTQ3LDcgKzQ2LDcgQEAgU3RydWN0dXJlSURUYWJsZTo6U3Ry
dWN0dXJlSURUYWJsZSgpCiB2b2lkIFN0cnVjdHVyZUlEVGFibGU6OnJlc2l6ZShzaXplX3QgbmV3
Q2FwYWNpdHkpCiB7CiAgICAgLy8gQ3JlYXRlIHRoZSBuZXcgdGFibGUuCi0gICAgT3duUHRyPFN0
cnVjdHVyZU9yT2Zmc2V0PiBuZXdUYWJsZSA9IGFkb3B0UHRyKG5ldyBTdHJ1Y3R1cmVPck9mZnNl
dFtuZXdDYXBhY2l0eV0pOworICAgIGF1dG8gbmV3VGFibGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0
cnVjdHVyZU9yT2Zmc2V0W10+KG5ld0NhcGFjaXR5KTsKIAogICAgIC8vIENvcHkgdGhlIGNvbnRl
bnRzIG9mIHRoZSBvbGQgdGFibGUgdG8gdGhlIG5ldyB0YWJsZS4KICAgICBtZW1jcHkobmV3VGFi
bGUuZ2V0KCksIHRhYmxlKCksIG1fY2FwYWNpdHkgKiBzaXplb2YoU3RydWN0dXJlT3JPZmZzZXQp
KTsKQEAgLTU5LDcgKzU4LDcgQEAgdm9pZCBTdHJ1Y3R1cmVJRFRhYmxlOjpyZXNpemUoc2l6ZV90
IG5ld0NhcGFjaXR5KQogICAgIHN3YXAobV90YWJsZSwgbmV3VGFibGUpOwogCiAgICAgLy8gUHV0
IHRoZSBvbGQgdGFibGUgKG5vdyBsYWJlbGVkIGFzIG5ldykgaW50byB0aGUgbGlzdCBvZiBvbGQg
dGFibGVzLgotICAgIG1fb2xkVGFibGVzLmFwcGVuZChuZXdUYWJsZS5yZWxlYXNlKCkpOworICAg
IG1fb2xkVGFibGVzLmFwcGVuZChXVEY6Om1vdmUobmV3VGFibGUpKTsKIAogICAgIC8vIFVwZGF0
ZSB0aGUgY2FwYWNpdHkuCiAgICAgbV9jYXBhY2l0eSA9IG5ld0NhcGFjaXR5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oCmluZGV4IGNmYWMz
YWQ4NTRjYzE4YTU2MDU5MTFhYjRmYWVlYjg2NTQ4N2M5M2IuLjYzMDMzM2YwYzU3MWFkYTE1NWI5
ODRmMGRmNTA0YTdmMjJmMzc1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgU3RydWN0
dXJlSURUYWJsZV9oCiAKICNpbmNsdWRlICJVbnVzZWRQb2ludGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBA
IC02NywxMCArNjYsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNfaW5pdGlhbFNpemUgPSAyNTY7CiAKLSAgICBWZWN0b3I8T3duUHRyPFN0cnVjdHVyZU9yT2Zm
c2V0Pj4gbV9vbGRUYWJsZXM7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTdHJ1Y3R1cmVP
ck9mZnNldFtdPj4gbV9vbGRUYWJsZXM7CiAKICAgICB1aW50MzJfdCBtX2ZpcnN0RnJlZU9mZnNl
dDsKLSAgICBPd25QdHI8U3RydWN0dXJlT3JPZmZzZXQ+IG1fdGFibGU7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFN0cnVjdHVyZU9yT2Zmc2V0W10+IG1fdGFibGU7CiAKICAgICBzaXplX3QgbV9zaXpl
OwogICAgIHNpemVfdCBtX2NhcGFjaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaAppbmRleCAxMzBlZmRhMWVm
NTFhYjY1NTMyNDhhNThmZjc5N2YzMzczYmRiMDVhLi4yM2M2Y2EzMGRmYTM4ZTQwMmI5OTU2OGE2
MzAxZjUzN2U4MjA1OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaApAQCAtMjksNyArMjksNiBAQAogI2lu
Y2x1ZGUgIkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIldlYWtHQ01hcC5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoRnVuY3Rpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYmEwZTBiNGE3NWVjNGZkNzc3MDAzODcxMjk3
Y2Y1ZjdlZTMxODQ2MC4uN2E4ODM0NDYwNzgxODVhMTllODZiNmVjOTA1NWU5ZTU3MzQ0NDhmMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIFZN
OjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fYXRvbWljU3Ry
aW5nVGFibGUodm1UeXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5n
VGFibGUoKSA6IG5ldyBBdG9taWNTdHJpbmdUYWJsZSkKICAgICAsIHByb3BlcnR5TmFtZXMobnVs
bHB0cikKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCi0gICAgLCBr
ZXl3b3JkcyhhZG9wdFB0cihuZXcgS2V5d29yZHMoKnRoaXMpKSkKKyAgICAsIGtleXdvcmRzKHN0
ZDo6bWFrZV91bmlxdWU8S2V5d29yZHM+KCp0aGlzKSkKICAgICAsIGludGVycHJldGVyKDApCiAg
ICAgLCBqc0FycmF5Q2xhc3NJbmZvKEpTQXJyYXk6OmluZm8oKSkKICAgICAsIGpzRmluYWxPYmpl
Y3RDbGFzc0luZm8oSlNGaW5hbE9iamVjdDo6aW5mbygpKQpAQCAtMjQxLDcgKzI0MSw3IEBAIFZN
OjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICB3dGZUaHJlYWREYXRh
KCkuc2V0Q3VycmVudEF0b21pY1N0cmluZ1RhYmxlKGV4aXN0aW5nRW50cnlBdG9taWNTdHJpbmdU
YWJsZSk7CiAKICNpZiBFTkFCTEUoSklUKQotICAgIGppdFN0dWJzID0gYWRvcHRQdHIobmV3IEpJ
VFRodW5rcygpKTsKKyAgICBqaXRTdHVicyA9IHN0ZDo6bWFrZV91bmlxdWU8SklUVGh1bmtzPigp
OwogICAgIGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcz4oKTsKICNlbmRpZgogICAgIGFyaXR5Q2hlY2tEYXRhID0g
c3RkOjptYWtlX3VuaXF1ZTxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPigpOwpAQCAt
MjYxLDcgKzI2MSw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkK
ICAgICBMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAogICAgIGlm
IChPcHRpb25zOjplbmFibGVQcm9maWxlcigpKSB7Ci0gICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9m
aWxlciA9IGFkb3B0UHRyKG5ldyBQcm9maWxlcjo6RGF0YWJhc2UoKnRoaXMpKTsKKyAgICAgICAg
bV9wZXJCeXRlY29kZVByb2ZpbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9maWxlcjo6RGF0YWJh
c2U+KCp0aGlzKTsKIAogICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBwYXRoT3V0OwogICAgICAg
ICBjb25zdCBjaGFyKiBwcm9maWxlclBhdGggPSBnZXRlbnYoIkpTQ19QUk9GSUxFUl9QQVRIIik7
CkBAIC0yNzMsNyArMjczLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBU
eXBlKQogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgaWYgKGNhblVzZUpJVCgpKQotICAgICAg
ICBkZmdTdGF0ZSA9IGFkb3B0UHRyKG5ldyBERkc6OkxvbmdMaXZlZFN0YXRlKCkpOworICAgICAg
ICBkZmdTdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8REZHOjpMb25nTGl2ZWRTdGF0ZT4oKTsKICNl
bmRpZgogICAgIAogICAgIC8vIEluaXRpYWxpemUgdGhpcyBsYXN0LCBhcyBhIGZyZWUgd2F5IG9m
IGFzc2VydGluZyB0aGF0IFZNIGluaXRpYWxpemF0aW9uIGl0c2VsZgpAQCAtMzAzLDggKzMwMyw4
IEBAIFZNOjp+Vk0oKQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogICAgIAogICAgIC8vIENs
ZWFyIHRoaXMgZmlyc3QgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IHRyaWVzIHRvIHJlbW92ZSB0aGVt
c2VsdmVzIGZyb20gaXQuCi0gICAgbV9wZXJCeXRlY29kZVByb2ZpbGVyLmNsZWFyKCk7Ci0gICAg
CisgICAgbV9wZXJCeXRlY29kZVByb2ZpbGVyID0gbnVsbHB0cjsKKwogICAgIEFTU0VSVChtX2Fw
aUxvY2stPmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkpOwogICAgIG1fYXBpTG9jay0+d2ls
bERlc3Ryb3lWTSh0aGlzKTsKICAgICBoZWFwLmxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCBjMTE4YjliODc4MGMwMWI2MzhiZGE3YWI5YmNl
NzVhMTA5NGEwYWFkLi5mODg0MjgyMTc2MWY2YWQ4YWJlYTA5OGQyOGFhNzZiMDk0MmI2ZTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTIzNSw3ICsyMzUsNyBAQCBwdWJsaWM6
CiAgICAgSGVhcCBoZWFwOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgT3duUHRyPERGRzo6
TG9uZ0xpdmVkU3RhdGU+IGRmZ1N0YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxERkc6OkxvbmdM
aXZlZFN0YXRlPiBkZmdTdGF0ZTsKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYWxsRWRnZUxvZz4gY2FsbEVkZ2VMb2c7CkBAIC0zMjgsMTAgKzMyOCwx
MCBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNvdXJjZVByb3ZpZGVy
PiwgUmVmUHRyPFNvdXJjZVByb3ZpZGVyQ2FjaGU+PiBTb3VyY2VQcm92aWRlckNhY2hlTWFwOwog
ICAgIFNvdXJjZVByb3ZpZGVyQ2FjaGVNYXAgc291cmNlUHJvdmlkZXJDYWNoZU1hcDsKLSAgICBP
d25QdHI8S2V5d29yZHM+IGtleXdvcmRzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxLZXl3b3Jkcz4g
a2V5d29yZHM7CiAgICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyOwogI2lmIEVOQUJMRShKSVQp
Ci0gICAgT3duUHRyPEpJVFRodW5rcz4gaml0U3R1YnM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpJ
VFRodW5rcz4gaml0U3R1YnM7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGdldENUSVN0dWIo
VGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQogICAgIHsKICAgICAgICAgcmV0dXJuIGppdFN0dWJz
LT5jdGlTdHViKHRoaXMsIGdlbmVyYXRvcik7CkBAIC00NTgsNyArNDU4LDcgQEAgcHVibGljOgog
ICAgIFN0cmluZyBjYWNoZWREYXRlU3RyaW5nOwogICAgIGRvdWJsZSBjYWNoZWREYXRlU3RyaW5n
VmFsdWU7CiAKLSAgICBPd25QdHI8UHJvZmlsZXI6OkRhdGFiYXNlPiBtX3BlckJ5dGVjb2RlUHJv
ZmlsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2ZpbGVyOjpEYXRhYmFzZT4gbV9wZXJCeXRl
Y29kZVByb2ZpbGVyOwogICAgIFJlZlB0cjxUeXBlZEFycmF5Q29udHJvbGxlcj4gbV90eXBlZEFy
cmF5Q29udHJvbGxlcjsKICAgICBSZWdFeHBDYWNoZSogbV9yZWdFeHBDYWNoZTsKICAgICBCdW1w
UG9pbnRlckFsbG9jYXRvciBtX3JlZ0V4cEFsbG9jYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0NvZGVQcm9maWxlLmgKaW5kZXggNmIwYTMwNjg5ODRkODE3ZDY0NGY0NDM2ZTlmYzdl
MDE3MDdjYzhiOC4uMGM2ZDY4NDM1MWRkMTc0MjAxYmE5Mzk1Yjg4ZWM4M2E0ZWU5YTFkNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmgKQEAgLTQxLDcgKzQxLDcg
QEAgcHVibGljOgogICAgICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICB7CiAgICAgICAgIGlm
IChwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPmFkZENoaWxkKHRoaXMpOworICAgICAgICAg
ICAgcGFyZW50LT5hZGRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8Q29kZVByb2ZpbGU+KHRoaXMpKTsK
ICAgICB9CiAKICAgICB2b2lkIHNhbXBsZSh2b2lkKiBwYywgdm9pZCoqIGZyYW1lUG9pbnRlcik7
CkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcGFyZW50OwogICAg
IH0KICAgICAKLSAgICB2b2lkIGFkZENoaWxkKENvZGVQcm9maWxlKiBjaGlsZCkKKyAgICB2b2lk
IGFkZENoaWxkKHN0ZDo6dW5pcXVlX3B0cjxDb2RlUHJvZmlsZT4gY2hpbGQpCiAgICAgewotICAg
ICAgICBtX2NoaWxkcmVuLmFwcGVuZChhZG9wdFB0cihjaGlsZCkpOworICAgICAgICBtX2NoaWxk
cmVuLmFwcGVuZChXVEY6Om1vdmUoY2hpbGQpKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC04Miw3
ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX2ZpbGU7CiAgICAgdW5zaWduZWQgbV9s
aW5lTm87CiAgICAgQ29kZVByb2ZpbGUqIG1fcGFyZW50OwotICAgIFZlY3RvcjwgT3duUHRyPENv
ZGVQcm9maWxlPj4gbV9jaGlsZHJlbjsKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENvZGVQ
cm9maWxlPj4gbV9jaGlsZHJlbjsKICAgICBUaWVyZWRNTWFwQXJyYXk8Q29kZVJlY29yZD4gbV9z
YW1wbGVzOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNfY29kZVR5cGVOYW1lc1tOdW1iZXJP
ZkNvZGVUeXBlc107Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>