<?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>110461</bug_id>
          
          <creation_ts>2013-02-21 05:51:05 -0800</creation_ts>
          <short_desc>Web Inspector: [Protocol] Generate JS enum definitions.</short_desc>
          <delta_ts>2013-02-27 23:52:22 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugene Klyuchnikov">eustas</reporter>
          <assigned_to name="Eugene Klyuchnikov">eustas</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838359</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-21 05:51:05 -0800</bug_when>
    <thetext>In protocol enums are defined in 3 ways:

1) As a type, like Page.ResourceType, currently 3 occurrences;
2) As type member, like Runtime.RemoteObject.type, 18 occurrences;
3) Directly in command parameters, like Page.getScriptExecutionStatus.type, 5 occurrences.

Generating corresponding type annotations would help to compiler to point errors like this:

this.responseReceived(requestId, frameId, loaderId, time, &quot;Other&quot; /* actually in should be &quot;other&quot; */, redirectResponse);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838416</commentid>
    <comment_count>1</comment_count>
      <attachid>189527</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-21 07:43:53 -0800</bug_when>
    <thetext>Created attachment 189527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838443</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-21 08:23:21 -0800</bug_when>
    <thetext>This is exiting!
Could you plz also attach diffs of the generated files as a patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839238</commentid>
    <comment_count>3</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-21 22:21:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This is exiting!
&gt; Could you plz also attach diffs of the generated files as a patch?

Diff for protocol-externs.js: http://diffchecker.com/1l1aEUqu
Diff for InspectorBackendCommands.js: http://diffchecker.com/67s9Jkv5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839323</commentid>
    <comment_count>4</comment_count>
      <attachid>189527</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-22 00:25:03 -0800</bug_when>
    <thetext>Comment on attachment 189527
Patch

You should produce CamelCase enum literals per WebKit code guidelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839347</commentid>
    <comment_count>5</comment_count>
      <attachid>189710</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-22 01:02:44 -0800</bug_when>
    <thetext>Created attachment 189710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839349</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-22 01:06:04 -0800</bug_when>
    <thetext>Could you attach the diff in the generated files as a patch to this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839350</commentid>
    <comment_count>7</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-22 01:06:30 -0800</bug_when>
    <thetext>Updated literal names. New diffs:

  protocol-externs.js: http://diffchecker.com/p0799b5q

  InspectorBackendCommands.js: http://www.diffchecker.com/69982Uz9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839353</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-22 01:07:54 -0800</bug_when>
    <thetext>Could you attach the diff in the generated files as a patch to this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839365</commentid>
    <comment_count>9</comment_count>
      <attachid>189713</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-22 01:29:34 -0800</bug_when>
    <thetext>Created attachment 189713
Diff of generated files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839447</commentid>
    <comment_count>10</comment_count>
      <attachid>189713</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-02-22 03:57:59 -0800</bug_when>
    <thetext>Comment on attachment 189713
Diff of generated files.

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

&gt; new/InspectorBackendCommands.js:91
&gt; +InspectorBackend.registerEnum(&quot;Console.ConsoleMessageSource&quot;, {Html: &quot;html&quot;, Wml: &quot;wml&quot;, Xml: &quot;xml&quot;, Javascript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleApi: &quot;console-api&quot;, Other: &quot;other&quot;});

You should special case acronyms to make them all CAPS. Html =&gt; HTML, ConsoleApi =&gt; ConsoleAPI, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839561</commentid>
    <comment_count>11</comment_count>
      <attachid>189710</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-22 07:27:03 -0800</bug_when>
    <thetext>Comment on attachment 189710
Patch

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

&gt; Source/WebCore/inspector/front-end/InspectorBackend.js:85
&gt; +        var domainAndMethod = type.split(&quot;.&quot;);

You need to call this from loadFromJSONIfNeeded as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839567</commentid>
    <comment_count>12</comment_count>
      <attachid>189710</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-22 07:52:32 -0800</bug_when>
    <thetext>Comment on attachment 189710
Patch

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

&gt; Source/WebCore/inspector/front-end/InspectorBackend.js:90
&gt; +        this._initialized = true;

Is this correct? seems suspicious to have this line both in registerCommand and registerEnum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841975</commentid>
    <comment_count>13</comment_count>
      <attachid>190278</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-26 07:24:42 -0800</bug_when>
    <thetext>Created attachment 190278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841976</commentid>
    <comment_count>14</comment_count>
      <attachid>189710</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-26 07:27:10 -0800</bug_when>
    <thetext>Comment on attachment 189710
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/InspectorBackend.js:85
&gt;&gt; +        var domainAndMethod = type.split(&quot;.&quot;);
&gt; 
&gt; You need to call this from loadFromJSONIfNeeded as well.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorBackend.js:90
&gt;&gt; +        this._initialized = true;
&gt; 
&gt; Is this correct? seems suspicious to have this line both in registerCommand and registerEnum

As I see, this marker is used do avoid recursion/repetitive loading. So, all 3 methods should mark instance as initialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841977</commentid>
    <comment_count>15</comment_count>
      <attachid>189713</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-26 07:27:53 -0800</bug_when>
    <thetext>Comment on attachment 189713
Diff of generated files.

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

&gt;&gt; new/InspectorBackendCommands.js:91
&gt;&gt; +InspectorBackend.registerEnum(&quot;Console.ConsoleMessageSource&quot;, {Html: &quot;html&quot;, Wml: &quot;wml&quot;, Xml: &quot;xml&quot;, Javascript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleApi: &quot;console-api&quot;, Other: &quot;other&quot;});
&gt; 
&gt; You should special case acronyms to make them all CAPS. Html =&gt; HTML, ConsoleApi =&gt; ConsoleAPI, etc.

Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841980</commentid>
    <comment_count>16</comment_count>
      <attachid>190280</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-26 07:31:55 -0800</bug_when>
    <thetext>Created attachment 190280
Difference in generated files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843801</commentid>
    <comment_count>17</comment_count>
      <attachid>190278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 23:52:17 -0800</bug_when>
    <thetext>Comment on attachment 190278
Patch

Clearing flags on attachment: 190278

Committed r144265: &lt;http://trac.webkit.org/changeset/144265&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843803</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 23:52:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189527</attachid>
            <date>2013-02-21 07:43:53 -0800</date>
            <delta_ts>2013-02-22 01:02:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110461-20130221194013.patch</filename>
            <type>text/plain</type>
            <size>10303</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI3M2UzMTAyNzU0NjUw
NjEyM2VkNzVkY2Y3NWI3MmYyYTQzNGJiOS4uMDBjM2E2M2ZhZjNlOWZlN2M5ZDhmM2ZjZjlhMmFj
NDYzODFjYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtQcm90b2NvbF0gR2VuYXJhdGUgSlMgZW51bSBkZWZpbml0aW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ2MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRpbmcgY29ycmVz
cG9uZGluZyB0eXBlIGFubm90YXRpb25zCisgICAgICAgIHdvdWxkIGhlbHAgdG8gY29tcGlsZXIg
dG8gcG9pbnQgZXJyb3JzLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucHk6IEdlbmVyYXRlICJyZWdpc3RlckVudW0iIHJlY29yZHMuCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOiBTaGFkb3cgY29tcGlsZXIgd2FybmluZy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanM6IEFkZGVk
ICJyZWdpc3RlckVudW0iLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01h
bmFnZXIuanM6IFVzZSBlbnVtIGluc3RlYWQgb2YgbGl0ZXJhbC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZ2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weTogR2VuZXJhdGUgZW51bSB0eXBlZGVmcy4K
KwogMjAxMy0wMi0yMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IExvY2FsL3Nlc3Npb24gc3RvcmFnZSB0cmVlIGl0ZW1z
IGluIHRoZSBSZXNvdXJjZXMgcGFuZWwgYWZ0ZXIgcGFnZSByZWZyZXNoIGFyZSBub3Qgc2hvd24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cHkKaW5kZXggNjI5ZmEwMzkwZWM4MTM1MGU5ODAzNTQ4MDkwNDQxZmRjZDVmNGU0YS4uMGI4MzBm
YzkzNDJlZDZiMjY3OTgyN2JhNmY4OWUwNDJiMTA5MDU1MyAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTMyLDYgKzMyLDcg
QEAgaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIGltcG9ydCBzdHJpbmcKIGltcG9ydCBvcHRw
YXJzZQoraW1wb3J0IHJlCiB0cnk6CiAgICAgaW1wb3J0IGpzb24KIGV4Y2VwdCBJbXBvcnRFcnJv
cjoKQEAgLTk3LDYgKzk4LDE1IEBAIGRlZiBkYXNoX3RvX2NhbWVsY2FzZSh3b3JkKToKICAgICBy
ZXR1cm4gJycuam9pbih4LmNhcGl0YWxpemUoKSBvciAnLScgZm9yIHggaW4gd29yZC5zcGxpdCgn
LScpKQogCiAKK2RlZiBjYW1lbF9jYXNlX3RvX2pzX2NvbnN0YW50KG5hbWUpOgorICAgIHJlZmlu
ZWQgPSByZS5zdWIocicoXHcpKFtBLVpdW2Etel0pJywgbGFtYmRhIHBhdDogIiVzXyVzIiAlIChw
YXQuZ3JvdXAoMSksIHBhdC5ncm91cCgyKSksIG5hbWUpCisgICAgcmV0dXJuIHJlZmluZWQucmVw
bGFjZSgnLScsICdfJykudXBwZXIoKQorCisKK2RlZiB0b190aXRsZV9jYXNlKG5hbWUpOgorICAg
IHJldHVybiBuYW1lWzoxXS51cHBlcigpICsgbmFtZVsxOl0KKworCiBjbGFzcyBDYXBpdGFsaXpl
cjoKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGxvd2VyX2NhbWVsX2Nhc2VfdG9fdXBwZXIo
c3RyKToKQEAgLTI3NjAsNiArMjc3MCwxOCBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgICAg
ICBpZiBub3QgZG9tYWluX2ZpeGVzLnNraXBfanNfYmluZDoKICAgICAgICAgICAgICAgICBHZW5l
cmF0b3IuYmFja2VuZF9qc19kb21haW5faW5pdGlhbGl6ZXJfbGlzdC5hcHBlbmQoIkluc3BlY3Rv
ckJhY2tlbmQucmVnaXN0ZXIlc0Rpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
RG9tYWluRGlzcGF0Y2hlci5iaW5kKEluc3BlY3RvckJhY2tlbmQsIFwiJXNcIik7XG4iICUgKGRv
bWFpbl9uYW1lLCBkb21haW5fbmFtZSkpCiAKKyAgICAgICAgICAgIGlmICJ0eXBlcyIgaW4ganNv
bl9kb21haW46CisgICAgICAgICAgICAgICAgZm9yIGpzb25fdHlwZSBpbiBqc29uX2RvbWFpblsi
dHlwZXMiXToKKyAgICAgICAgICAgICAgICAgICAgaWYgInR5cGUiIGluIGpzb25fdHlwZSBhbmQg
anNvbl90eXBlWyJ0eXBlIl0gPT0gInN0cmluZyIgYW5kICJlbnVtIiBpbiBqc29uX3R5cGU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbnVtX25hbWUgPSAiJXMuJXMiICUgKGRvbWFpbl9uYW1l
LCBqc29uX3R5cGVbImlkIl0pCisgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0b3IucHJv
Y2Vzc19lbnVtKGpzb25fdHlwZSwgZW51bV9uYW1lKQorICAgICAgICAgICAgICAgICAgICBlbGlm
IGpzb25fdHlwZVsidHlwZSJdID09ICJvYmplY3QiOgorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgInByb3BlcnRpZXMiIGluIGpzb25fdHlwZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IganNvbl9wcm9wZXJ0eSBpbiBqc29uX3R5cGVbInByb3BlcnRpZXMiXToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgInR5cGUiIGluIGpzb25fcHJvcGVydHkgYW5kIGpz
b25fcHJvcGVydHlbInR5cGUiXSA9PSAic3RyaW5nIiBhbmQgImVudW0iIGluIGpzb25fcHJvcGVy
dHk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtX25hbWUgPSAiJXMu
JXMlcyIgJSAoZG9tYWluX25hbWUsIGpzb25fdHlwZVsiaWQiXSwgdG9fdGl0bGVfY2FzZShqc29u
X3Byb3BlcnR5WyJuYW1lIl0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2VuZXJhdG9yLnByb2Nlc3NfZW51bShqc29uX3Byb3BlcnR5LCBlbnVtX25hbWUpCisKICAgICAg
ICAgICAgIGlmICJldmVudHMiIGluIGpzb25fZG9tYWluOgogICAgICAgICAgICAgICAgIGZvciBq
c29uX2V2ZW50IGluIGpzb25fZG9tYWluWyJldmVudHMiXToKICAgICAgICAgICAgICAgICAgICAg
R2VuZXJhdG9yLnByb2Nlc3NfZXZlbnQoanNvbl9ldmVudCwgZG9tYWluX25hbWUsIGZyb250ZW5k
X21ldGhvZF9kZWNsYXJhdGlvbl9saW5lcykKQEAgLTI3OTQsNiArMjgxNiwxNSBAQCBjbGFzcyBH
ZW5lcmF0b3I6CiAgICAgICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9qc19kb21haW5faW5pdGlh
bGl6ZXJfbGlzdC5hcHBlbmQoIlxuIikKIAogICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcHJv
Y2Vzc19lbnVtKGpzb25fZW51bSwgZW51bV9uYW1lKToKKyAgICAgICAgZW51bV9tZW1iZXJzID0g
W10KKyAgICAgICAgZm9yIG1lbWJlciBpbiBqc29uX2VudW1bImVudW0iXToKKyAgICAgICAgICAg
IGVudW1fbWVtYmVycy5hcHBlbmQoIiVzOiBcIiVzXCIiICUgKGNhbWVsX2Nhc2VfdG9fanNfY29u
c3RhbnQobWVtYmVyKSwgbWVtYmVyKSkKKworICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9qc19k
b21haW5faW5pdGlhbGl6ZXJfbGlzdC5hcHBlbmQoIkluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJF
bnVtKFwiJXNcIiwgeyVzfSk7XG4iICUgKAorICAgICAgICAgICAgZW51bV9uYW1lLCAiLCAiLmpv
aW4oZW51bV9tZW1iZXJzKSkpCisKKyAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIHByb2Nlc3Nf
ZXZlbnQoanNvbl9ldmVudCwgZG9tYWluX25hbWUsIGZyb250ZW5kX21ldGhvZF9kZWNsYXJhdGlv
bl9saW5lcyk6CiAgICAgICAgIGV2ZW50X25hbWUgPSBqc29uX2V2ZW50WyJuYW1lIl0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4
IDcwMDA5NjdmNWVmZDYwNjFjMjg2ODUzMDVkZDQ1Y2ZkY2U1NDA3NmQuLmEzOGY3NzY1NWU3MmUz
MTQxNjczYjBmYjljNzE1MDE5Mjg5NWVkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEwODksNyArMTA4OSw3IEBAIEluamVj
dGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5Ll9jcmVhdGVTY29wZUpzb24gPSBmdW5jdGlvbihzY29w
ZVR5cGVDb2RlLCBzY29wZU9iCiAKICAgICByZXR1cm4gewogICAgICAgICBvYmplY3Q6IGluamVj
dGVkU2NyaXB0Ll93cmFwT2JqZWN0KHNjb3BlT2JqZWN0LCBncm91cElkKSwKLSAgICAgICAgdHlw
ZTogc2NvcGVUeXBlTmFtZXNbc2NvcGVUeXBlQ29kZV0KKyAgICAgICAgdHlwZTogLyoqIEB0eXBl
IHtEZWJ1Z2dlckFnZW50LlNjb3BlVHlwZX0gKi8gKHNjb3BlVHlwZU5hbWVzW3Njb3BlVHlwZUNv
ZGVdKQogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5qcwppbmRleCBjMjcyMmIzNGQ1ZTgyYzI2YTYxYzVk
N2ViNGJiYTIxYTE1MGRkNWVjLi5jMThkNjBmZGE1ODVmZTFkZjY3MzEwN2FiODQ2MWFlNmUzNjY5
MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3Bl
Y3RvckJhY2tlbmQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9J
bnNwZWN0b3JCYWNrZW5kLmpzCkBAIC02MCwyMCArNjAsMzYgQEAgSW5zcGVjdG9yQmFja2VuZENs
YXNzLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrSWQ7CiAgICAgfSwKIAot
ICAgIHJlZ2lzdGVyQ29tbWFuZDogZnVuY3Rpb24obWV0aG9kLCBzaWduYXR1cmUsIHJlcGx5QXJn
cykKKyAgICBfZ2V0QWdlbnQ6IGZ1bmN0aW9uKGRvbWFpbikKICAgICB7Ci0gICAgICAgIHZhciBk
b21haW5BbmRNZXRob2QgPSBtZXRob2Quc3BsaXQoIi4iKTsKLSAgICAgICAgdmFyIGFnZW50TmFt
ZSA9IGRvbWFpbkFuZE1ldGhvZFswXSArICJBZ2VudCI7CisgICAgICAgIHZhciBhZ2VudE5hbWUg
PSBkb21haW4gKyAiQWdlbnQiOwogICAgICAgICBpZiAoIXdpbmRvd1thZ2VudE5hbWVdKQogICAg
ICAgICAgICAgd2luZG93W2FnZW50TmFtZV0gPSB7fTsKKyAgICAgICAgcmV0dXJuIHdpbmRvd1th
Z2VudE5hbWVdOworICAgIH0sCisKKyAgICByZWdpc3RlckNvbW1hbmQ6IGZ1bmN0aW9uKG1ldGhv
ZCwgc2lnbmF0dXJlLCByZXBseUFyZ3MpCisgICAgeworICAgICAgICB2YXIgZG9tYWluQW5kTWV0
aG9kID0gbWV0aG9kLnNwbGl0KCIuIik7CisgICAgICAgIHZhciBhZ2VudCA9IHRoaXMuX2dldEFn
ZW50KGRvbWFpbkFuZE1ldGhvZFswXSk7CiAKLSAgICAgICAgd2luZG93W2FnZW50TmFtZV1bZG9t
YWluQW5kTWV0aG9kWzFdXSA9IHRoaXMuX3NlbmRNZXNzYWdlVG9CYWNrZW5kLmJpbmQodGhpcywg
bWV0aG9kLCBzaWduYXR1cmUpOwotICAgICAgICB3aW5kb3dbYWdlbnROYW1lXVtkb21haW5BbmRN
ZXRob2RbMV1dWyJpbnZva2UiXSA9IHRoaXMuX2ludm9rZS5iaW5kKHRoaXMsIG1ldGhvZCwgc2ln
bmF0dXJlKTsKKyAgICAgICAgYWdlbnRbZG9tYWluQW5kTWV0aG9kWzFdXSA9IHRoaXMuX3NlbmRN
ZXNzYWdlVG9CYWNrZW5kLmJpbmQodGhpcywgbWV0aG9kLCBzaWduYXR1cmUpOworICAgICAgICBh
Z2VudFtkb21haW5BbmRNZXRob2RbMV1dWyJpbnZva2UiXSA9IHRoaXMuX2ludm9rZS5iaW5kKHRo
aXMsIG1ldGhvZCwgc2lnbmF0dXJlKTsKICAgICAgICAgdGhpcy5fcmVwbHlBcmdzW21ldGhvZF0g
PSByZXBseUFyZ3M7CiAKICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIH0s
CiAKKyAgICByZWdpc3RlckVudW06IGZ1bmN0aW9uKHR5cGUsIHZhbHVlcykKKyAgICB7CisgICAg
ICAgIHZhciBkb21haW5BbmRNZXRob2QgPSB0eXBlLnNwbGl0KCIuIik7CisgICAgICAgIHZhciBh
Z2VudCA9IHRoaXMuX2dldEFnZW50KGRvbWFpbkFuZE1ldGhvZFswXSk7CisKKyAgICAgICAgYWdl
bnRbZG9tYWluQW5kTWV0aG9kWzFdXSA9IHZhbHVlczsKKworICAgICAgICB0aGlzLl9pbml0aWFs
aXplZCA9IHRydWU7CisgICAgfSwKKwogICAgIHJlZ2lzdGVyRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50
TmFtZSwgcGFyYW1zKQogICAgIHsKICAgICAgICAgdGhpcy5fZXZlbnRBcmdzW2V2ZW50TmFtZV0g
PSBwYXJhbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrTWFuYWdlci5qcwppbmRleCA1ZjM1NzZhN2EwOWNhNTE1ZTU5MDZlNDI2MTFiNmY3ZjI3
MjlhMDM3Li45OWU4Zjc0OWI0M2E4NWM2Yzg4MjYxZWJmMjUwOWJkNmFhYzM1MzY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIu
anMKQEAgLTI2Myw3ICsyNjMsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJv
dG90eXBlID0gewogICAgICAgICAgICAgLy8gRklYTUU6IG1vdmUgdGhpcyBjaGVjayB0byB0aGUg
YmFja2VuZC4KICAgICAgICAgICAgIGlmICghcmVkaXJlY3RSZXNwb25zZSkKICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB0aGlzLnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElk
LCBmcmFtZUlkLCBsb2FkZXJJZCwgdGltZSwgIk90aGVyIiwgcmVkaXJlY3RSZXNwb25zZSk7Cisg
ICAgICAgICAgICB0aGlzLnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCBmcmFtZUlkLCBsb2Fk
ZXJJZCwgdGltZSwgUGFnZUFnZW50LlJlc291cmNlVHlwZS5PVEhFUiwgcmVkaXJlY3RSZXNwb25z
ZSk7CiAgICAgICAgICAgICBuZXR3b3JrUmVxdWVzdCA9IHRoaXMuX2FwcGVuZFJlZGlyZWN0KHJl
cXVlc3RJZCwgdGltZSwgcmVxdWVzdC51cmwpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IG5ldHdvcmtSZXF1ZXN0ID0gdGhpcy5fY3JlYXRlTmV0d29ya1JlcXVlc3QocmVxdWVzdElkLCBm
cmFtZUlkLCBsb2FkZXJJZCwgcmVxdWVzdC51cmwsIGRvY3VtZW50VVJMLCBpbml0aWF0b3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlX3Byb3RvY29sX2V4
dGVybnMucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGVfcHJvdG9jb2xfZXh0
ZXJucy5weQppbmRleCA4NjAwZDE2YjE4MTVhYjU4YmUzMDdlYjdmMDNmYmEwMjY4Y2E3ODg5Li4w
NzQ4MjcxMTUwYzk1NDI5NTFjMDZjNGE1MTQwNzQ4NmY1ZDdlMDdjIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weQorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weQpAQCAt
MjcsNiArMjcsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IHJl
CisKIHR5cGVfdHJhaXRzID0gewogICAgICJhbnkiOiAiKiIsCiAgICAgInN0cmluZyI6ICJzdHJp
bmciLApAQCAtNDYsNiArNDgsMjIgQEAgZGVmIGZ1bGxfcXVhbGlmaWVkX3R5cGVfaWQoZG9tYWlu
X25hbWUsIHR5cGVfaWQpOgogICAgIHJldHVybiB0eXBlX2lkCiAKIAorZGVmIGNhbWVsX2Nhc2Vf
dG9fanNfY29uc3RhbnQobmFtZSk6CisgICAgcmVmaW5lZCA9IHJlLnN1YihyJyhcdykoW0EtWl1b
YS16XSknLCBsYW1iZGEgcGF0OiAiJXNfJXMiICUgKHBhdC5ncm91cCgxKSwgcGF0Lmdyb3VwKDIp
KSwgbmFtZSkKKyAgICByZXR1cm4gcmVmaW5lZC5yZXBsYWNlKCctJywgJ18nKS51cHBlcigpCisK
KworZGVmIHRvX3RpdGxlX2Nhc2UobmFtZSk6CisgICAgcmV0dXJuIG5hbWVbOjFdLnVwcGVyKCkg
KyBuYW1lWzE6XQorCisKK2RlZiBnZW5lcmF0ZV9lbnVtKG5hbWUsIGpzb24pOgorICAgIGVudW1f
bWVtYmVycyA9IFtdCisgICAgZm9yIG1lbWJlciBpbiBqc29uWyJlbnVtIl06CisgICAgICAgIGVu
dW1fbWVtYmVycy5hcHBlbmQoIiAgICAlczogXCIlc1wiIiAlIChjYW1lbF9jYXNlX3RvX2pzX2Nv
bnN0YW50KG1lbWJlciksIG1lbWJlcikpCisgICAgcmV0dXJuICJcbi8qKiBAZW51bSB7c3RyaW5n
fSAqL1xuJXMgPSB7XG4lc1xufTtcbiIgJSAobmFtZSwgKCIsXG4iLmpvaW4oZW51bV9tZW1iZXJz
KSkpCisKKwogZGVmIHBhcmFtX3R5cGUoZG9tYWluX25hbWUsIHBhcmFtKToKICAgICBpZiAidHlw
ZSIgaW4gcGFyYW06CiAgICAgICAgIGlmIHBhcmFtWyJ0eXBlIl0gPT0gImFycmF5IjoKQEAgLTk3
LDExICsxMTUsMTggQEAgUHJvdG9jb2wuRXJyb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3VmZml4ID0gIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIm9wdGlvbmFs
IiBpbiBwcm9wZXJ0eSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9
ICJ8dW5kZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5h
cHBlbmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwgcGFyYW1fdHlwZShkb21haW5f
bmFtZSwgcHJvcGVydHkpLCBzdWZmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICJlbnVtIiBpbiBwcm9wZXJ0eToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51
bV9uYW1lID0gIiVzQWdlbnQuJXMlcyIgJSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0sIHRvX3Rp
dGxlX2Nhc2UocHJvcGVydHlbIm5hbWUiXSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dF9maWxlLndyaXRlKGdlbmVyYXRlX2VudW0oZW51bV9uYW1lLCBwcm9wZXJ0eSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5hcHBlbmQoIiVz
OiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwgZW51bV9uYW1lLCBzdWZmaXgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGVkZWZfYXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwg
cGFyYW1fdHlwZShkb21haW5fbmFtZSwgcHJvcGVydHkpLCBzdWZmaXgpKQogICAgICAgICAgICAg
ICAgICAgICBpZiAodHlwZWRlZl9hcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dF9maWxlLndyaXRlKCJcbi8qKiBAdHlwZWRlZiB7eyVzfXxudWxsfSAqL1xuJXNBZ2VudC4lcztc
biIgJSAoIiwgIi5qb2luKHR5cGVkZWZfYXJncyksIGRvbWFpbl9uYW1lLCB0eXBlWyJpZCJdKSkK
ICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dF9maWxlLndyaXRlKCJcbi8qKiBAdHlwZWRlZiB7T2JqZWN0fSAqL1xuJXNBZ2VudC4lcztcbiIg
JSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0pKQorICAgICAgICAgICAgICAgIGVsaWYgdHlwZVsi
dHlwZSJdID09ICJzdHJpbmciIGFuZCAiZW51bSIgaW4gdHlwZToKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0X2ZpbGUud3JpdGUoZ2VuZXJhdGVfZW51bSgiJXNBZ2VudC4lcyIgJSAoZG9tYWlu
X25hbWUsIHR5cGVbImlkIl0pLCB0eXBlKSkKICAgICAgICAgICAgICAgICBlbGlmIHR5cGVbInR5
cGUiXSA9PSAiYXJyYXkiOgogICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSAiIgogICAgICAg
ICAgICAgICAgICAgICBpZiAoIm9wdGlvbmFsIiBpbiBwcm9wZXJ0eSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189710</attachid>
            <date>2013-02-22 01:02:44 -0800</date>
            <delta_ts>2013-02-26 07:27:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110461-20130222125902.patch</filename>
            <type>text/plain</type>
            <size>10147</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE1NjhmZTIxMTBjODFi
ZDM5Y2FlZmY5YTllZDY5NzBhZTIwMGM3NC4uY2VlYTg4MDAzMmFiM2ZlYjJlNzJiMjJhZWI1Yzgy
MTRkZWVlNzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtQcm90b2NvbF0gR2VuYXJhdGUgSlMgZW51bSBkZWZpbml0aW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ2MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRpbmcgY29ycmVz
cG9uZGluZyB0eXBlIGFubm90YXRpb25zCisgICAgICAgIHdvdWxkIGhlbHAgdG8gY29tcGlsZXIg
dG8gcG9pbnQgZXJyb3JzLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucHk6IEdlbmVyYXRlICJyZWdpc3RlckVudW0iIHJlY29yZHMuCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOiBTaGFkb3cgY29tcGlsZXIgd2FybmluZy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanM6IEFkZGVk
ICJyZWdpc3RlckVudW0iLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01h
bmFnZXIuanM6IFVzZSBlbnVtIGluc3RlYWQgb2YgbGl0ZXJhbC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZ2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weTogR2VuZXJhdGUgZW51bSB0eXBlZGVmcy4K
KwogMjAxMy0wMi0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSBmYXN0bG9nMigpIHRvIFdURi9NYXRoRXh0cmFzLmggc28gaXQgY2FuIGJlIHVzZWQg
ZnJvbSBtdWx0aXBsZSBwcm9qZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggYTQwYTU3NTczYWE1YTRmZGZiNGI0ZDUw
ZjVmYzA5NmE2ODQ4NzcxZS4uYzc2NmJlODA2ZDhmZDE2ZGZjNGQ1MDA0YTI0YjA3YjIyM2Y3MTEw
MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucHkKQEAgLTMyLDYgKzMyLDcgQEAgaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIGlt
cG9ydCBzdHJpbmcKIGltcG9ydCBvcHRwYXJzZQoraW1wb3J0IHJlCiB0cnk6CiAgICAgaW1wb3J0
IGpzb24KIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTk5LDYgKzEwMCwxNSBAQCBkZWYgZGFzaF90
b19jYW1lbGNhc2Uod29yZCk6CiAgICAgcmV0dXJuICcnLmpvaW4oeC5jYXBpdGFsaXplKCkgb3Ig
Jy0nIGZvciB4IGluIHdvcmQuc3BsaXQoJy0nKSkKIAogCitkZWYgZml4X2NhbWVsX2Nhc2UobmFt
ZSk6CisgICAgcmVmaW5lZCA9IHJlLnN1YihyJy0oXHcpJywgbGFtYmRhIHBhdDogcGF0Lmdyb3Vw
KDEpLnVwcGVyKCksIG5hbWUpCisgICAgcmV0dXJuIHRvX3RpdGxlX2Nhc2UocmVmaW5lZCkKKwor
CitkZWYgdG9fdGl0bGVfY2FzZShuYW1lKToKKyAgICByZXR1cm4gbmFtZVs6MV0udXBwZXIoKSAr
IG5hbWVbMTpdCisKKwogY2xhc3MgQ2FwaXRhbGl6ZXI6CiAgICAgQHN0YXRpY21ldGhvZAogICAg
IGRlZiBsb3dlcl9jYW1lbF9jYXNlX3RvX3VwcGVyKHN0cik6CkBAIC0xODYxLDYgKzE4NzEsMTgg
QEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAgaWYgbm90IGRvbWFpbl9maXhlcy5za2lw
X2pzX2JpbmQ6CiAgICAgICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfanNfZG9tYWluX2lu
aXRpYWxpemVyX2xpc3QuYXBwZW5kKCJJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyJXNEaXNwYXRj
aGVyID0gSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNw
ZWN0b3JCYWNrZW5kLCBcIiVzXCIpO1xuIiAlIChkb21haW5fbmFtZSwgZG9tYWluX25hbWUpKQog
CisgICAgICAgICAgICBpZiAidHlwZXMiIGluIGpzb25fZG9tYWluOgorICAgICAgICAgICAgICAg
IGZvciBqc29uX3R5cGUgaW4ganNvbl9kb21haW5bInR5cGVzIl06CisgICAgICAgICAgICAgICAg
ICAgIGlmICJ0eXBlIiBpbiBqc29uX3R5cGUgYW5kIGpzb25fdHlwZVsidHlwZSJdID09ICJzdHJp
bmciIGFuZCAiZW51bSIgaW4ganNvbl90eXBlOgorICAgICAgICAgICAgICAgICAgICAgICAgZW51
bV9uYW1lID0gIiVzLiVzIiAlIChkb21haW5fbmFtZSwganNvbl90eXBlWyJpZCJdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgR2VuZXJhdG9yLnByb2Nlc3NfZW51bShqc29uX3R5cGUsIGVudW1f
bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBqc29uX3R5cGVbInR5cGUiXSA9PSAib2Jq
ZWN0IjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICJwcm9wZXJ0aWVzIiBpbiBqc29uX3R5
cGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGpzb25fcHJvcGVydHkgaW4ganNv
bl90eXBlWyJwcm9wZXJ0aWVzIl06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICJ0eXBlIiBpbiBqc29uX3Byb3BlcnR5IGFuZCBqc29uX3Byb3BlcnR5WyJ0eXBlIl0gPT0gInN0
cmluZyIgYW5kICJlbnVtIiBpbiBqc29uX3Byb3BlcnR5OgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW51bV9uYW1lID0gIiVzLiVzJXMiICUgKGRvbWFpbl9uYW1lLCBqc29u
X3R5cGVbImlkIl0sIHRvX3RpdGxlX2Nhc2UoanNvbl9wcm9wZXJ0eVsibmFtZSJdKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvci5wcm9jZXNzX2VudW0oanNv
bl9wcm9wZXJ0eSwgZW51bV9uYW1lKQorCiAgICAgICAgICAgICBpZiAiZXZlbnRzIiBpbiBqc29u
X2RvbWFpbjoKICAgICAgICAgICAgICAgICBmb3IganNvbl9ldmVudCBpbiBqc29uX2RvbWFpblsi
ZXZlbnRzIl06CiAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvci5wcm9jZXNzX2V2ZW50KGpz
b25fZXZlbnQsIGRvbWFpbl9uYW1lLCBmcm9udGVuZF9tZXRob2RfZGVjbGFyYXRpb25fbGluZXMp
CkBAIC0xODk1LDYgKzE5MTcsMTUgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAgR2Vu
ZXJhdG9yLmJhY2tlbmRfanNfZG9tYWluX2luaXRpYWxpemVyX2xpc3QuYXBwZW5kKCJcbiIpCiAK
ICAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHByb2Nlc3NfZW51bShqc29uX2VudW0sIGVudW1f
bmFtZSk6CisgICAgICAgIGVudW1fbWVtYmVycyA9IFtdCisgICAgICAgIGZvciBtZW1iZXIgaW4g
anNvbl9lbnVtWyJlbnVtIl06CisgICAgICAgICAgICBlbnVtX21lbWJlcnMuYXBwZW5kKCIlczog
XCIlc1wiIiAlIChmaXhfY2FtZWxfY2FzZShtZW1iZXIpLCBtZW1iZXIpKQorCisgICAgICAgIEdl
bmVyYXRvci5iYWNrZW5kX2pzX2RvbWFpbl9pbml0aWFsaXplcl9saXN0LmFwcGVuZCgiSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlckVudW0oXCIlc1wiLCB7JXN9KTtcbiIgJSAoCisgICAgICAgICAg
ICBlbnVtX25hbWUsICIsICIuam9pbihlbnVtX21lbWJlcnMpKSkKKworICAgIEBzdGF0aWNtZXRo
b2QKICAgICBkZWYgcHJvY2Vzc19ldmVudChqc29uX2V2ZW50LCBkb21haW5fbmFtZSwgZnJvbnRl
bmRfbWV0aG9kX2RlY2xhcmF0aW9uX2xpbmVzKToKICAgICAgICAgZXZlbnRfbmFtZSA9IGpzb25f
ZXZlbnRbIm5hbWUiXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRTb3VyY2UuanMKaW5kZXggNzAwMDk2N2Y1ZWZkNjA2MWMyODY4NTMwNWRkNDVjZmRjZTU0
MDc2ZC4uYTM4Zjc3NjU1ZTcyZTMxNDE2NzNiMGZiOWM3MTUwMTkyODk1ZWQ0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMTA4
OSw3ICsxMDg5LDcgQEAgSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0ZVNjb3Bl
SnNvbiA9IGZ1bmN0aW9uKHNjb3BlVHlwZUNvZGUsIHNjb3BlT2IKIAogICAgIHJldHVybiB7CiAg
ICAgICAgIG9iamVjdDogaW5qZWN0ZWRTY3JpcHQuX3dyYXBPYmplY3Qoc2NvcGVPYmplY3QsIGdy
b3VwSWQpLAotICAgICAgICB0eXBlOiBzY29wZVR5cGVOYW1lc1tzY29wZVR5cGVDb2RlXQorICAg
ICAgICB0eXBlOiAvKiogQHR5cGUge0RlYnVnZ2VyQWdlbnQuU2NvcGVUeXBlfSAqLyAoc2NvcGVU
eXBlTmFtZXNbc2NvcGVUeXBlQ29kZV0pCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kLmpzCmluZGV4IGMy
NzIyYjM0ZDVlODJjMjZhNjFjNWQ3ZWI0YmJhMjFhMTUwZGQ1ZWMuLmMxOGQ2MGZkYTU4NWZlMWRm
NjczMTA3YWI4NDYxYWU2ZTM2NjkyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanMKQEAgLTYwLDIwICs2MCwzNiBA
QCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gY2Fs
bGJhY2tJZDsKICAgICB9LAogCi0gICAgcmVnaXN0ZXJDb21tYW5kOiBmdW5jdGlvbihtZXRob2Qs
IHNpZ25hdHVyZSwgcmVwbHlBcmdzKQorICAgIF9nZXRBZ2VudDogZnVuY3Rpb24oZG9tYWluKQog
ICAgIHsKLSAgICAgICAgdmFyIGRvbWFpbkFuZE1ldGhvZCA9IG1ldGhvZC5zcGxpdCgiLiIpOwot
ICAgICAgICB2YXIgYWdlbnROYW1lID0gZG9tYWluQW5kTWV0aG9kWzBdICsgIkFnZW50IjsKKyAg
ICAgICAgdmFyIGFnZW50TmFtZSA9IGRvbWFpbiArICJBZ2VudCI7CiAgICAgICAgIGlmICghd2lu
ZG93W2FnZW50TmFtZV0pCiAgICAgICAgICAgICB3aW5kb3dbYWdlbnROYW1lXSA9IHt9OworICAg
ICAgICByZXR1cm4gd2luZG93W2FnZW50TmFtZV07CisgICAgfSwKKworICAgIHJlZ2lzdGVyQ29t
bWFuZDogZnVuY3Rpb24obWV0aG9kLCBzaWduYXR1cmUsIHJlcGx5QXJncykKKyAgICB7CisgICAg
ICAgIHZhciBkb21haW5BbmRNZXRob2QgPSBtZXRob2Quc3BsaXQoIi4iKTsKKyAgICAgICAgdmFy
IGFnZW50ID0gdGhpcy5fZ2V0QWdlbnQoZG9tYWluQW5kTWV0aG9kWzBdKTsKIAotICAgICAgICB3
aW5kb3dbYWdlbnROYW1lXVtkb21haW5BbmRNZXRob2RbMV1dID0gdGhpcy5fc2VuZE1lc3NhZ2VU
b0JhY2tlbmQuYmluZCh0aGlzLCBtZXRob2QsIHNpZ25hdHVyZSk7Ci0gICAgICAgIHdpbmRvd1th
Z2VudE5hbWVdW2RvbWFpbkFuZE1ldGhvZFsxXV1bImludm9rZSJdID0gdGhpcy5faW52b2tlLmJp
bmQodGhpcywgbWV0aG9kLCBzaWduYXR1cmUpOworICAgICAgICBhZ2VudFtkb21haW5BbmRNZXRo
b2RbMV1dID0gdGhpcy5fc2VuZE1lc3NhZ2VUb0JhY2tlbmQuYmluZCh0aGlzLCBtZXRob2QsIHNp
Z25hdHVyZSk7CisgICAgICAgIGFnZW50W2RvbWFpbkFuZE1ldGhvZFsxXV1bImludm9rZSJdID0g
dGhpcy5faW52b2tlLmJpbmQodGhpcywgbWV0aG9kLCBzaWduYXR1cmUpOwogICAgICAgICB0aGlz
Ll9yZXBseUFyZ3NbbWV0aG9kXSA9IHJlcGx5QXJnczsKIAogICAgICAgICB0aGlzLl9pbml0aWFs
aXplZCA9IHRydWU7CiAgICAgfSwKIAorICAgIHJlZ2lzdGVyRW51bTogZnVuY3Rpb24odHlwZSwg
dmFsdWVzKQorICAgIHsKKyAgICAgICAgdmFyIGRvbWFpbkFuZE1ldGhvZCA9IHR5cGUuc3BsaXQo
Ii4iKTsKKyAgICAgICAgdmFyIGFnZW50ID0gdGhpcy5fZ2V0QWdlbnQoZG9tYWluQW5kTWV0aG9k
WzBdKTsKKworICAgICAgICBhZ2VudFtkb21haW5BbmRNZXRob2RbMV1dID0gdmFsdWVzOworCisg
ICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgcmVnaXN0ZXJF
dmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBwYXJhbXMpCiAgICAgewogICAgICAgICB0aGlzLl9l
dmVudEFyZ3NbZXZlbnROYW1lXSA9IHBhcmFtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IDVmMzU3NmE3YTA5Y2E1
MTVlNTkwNmU0MjYxMWI2ZjdmMjcyOWEwMzcuLjhlZGExODZmNjA5MDQ3Y2E2NTgzMWJlOGMzOTY0
NTNhNTVjNWRlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtMjYzLDcgKzI2Myw3IEBAIFdlYkluc3BlY3Rvci5O
ZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogbW92
ZSB0aGlzIGNoZWNrIHRvIHRoZSBiYWNrZW5kLgogICAgICAgICAgICAgaWYgKCFyZWRpcmVjdFJl
c3BvbnNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMucmVzcG9u
c2VSZWNlaXZlZChyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCB0aW1lLCAiT3RoZXIiLCBy
ZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgICAgIHRoaXMucmVzcG9uc2VSZWNlaXZlZChyZXF1
ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCB0aW1lLCBQYWdlQWdlbnQuUmVzb3VyY2VUeXBlLk90
aGVyLCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICAgICAgICAgIG5ldHdvcmtSZXF1ZXN0ID0gdGhp
cy5fYXBwZW5kUmVkaXJlY3QocmVxdWVzdElkLCB0aW1lLCByZXF1ZXN0LnVybCk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgbmV0d29ya1JlcXVlc3QgPSB0aGlzLl9jcmVhdGVOZXR3b3Jr
UmVxdWVzdChyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCByZXF1ZXN0LnVybCwgZG9jdW1l
bnRVUkwsIGluaXRpYXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Z2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9n
ZW5lcmF0ZV9wcm90b2NvbF9leHRlcm5zLnB5CmluZGV4IDg2MDBkMTZiMTgxNWFiNThiZTMwN2Vi
N2YwM2ZiYTAyNjhjYTc4ODkuLmIwODQyYTY4M2JiYjQxZjg4YTk4ZTg5NzNkMTU2ZWIxYjc5YTJk
NTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZV9wcm90b2Nv
bF9leHRlcm5zLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZV9wcm90
b2NvbF9leHRlcm5zLnB5CkBAIC0yNyw2ICsyNyw4IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCitpbXBvcnQgcmUKKwogdHlwZV90cmFpdHMgPSB7CiAgICAgImFueSI6ICIqIiwK
ICAgICAic3RyaW5nIjogInN0cmluZyIsCkBAIC00Niw2ICs0OCwyMiBAQCBkZWYgZnVsbF9xdWFs
aWZpZWRfdHlwZV9pZChkb21haW5fbmFtZSwgdHlwZV9pZCk6CiAgICAgcmV0dXJuIHR5cGVfaWQK
IAogCitkZWYgZml4X2NhbWVsX2Nhc2UobmFtZSk6CisgICAgcmVmaW5lZCA9IHJlLnN1YihyJy0o
XHcpJywgbGFtYmRhIHBhdDogcGF0Lmdyb3VwKDEpLnVwcGVyKCksIG5hbWUpCisgICAgcmV0dXJu
IHRvX3RpdGxlX2Nhc2UocmVmaW5lZCkKKworCitkZWYgdG9fdGl0bGVfY2FzZShuYW1lKToKKyAg
ICByZXR1cm4gbmFtZVs6MV0udXBwZXIoKSArIG5hbWVbMTpdCisKKworZGVmIGdlbmVyYXRlX2Vu
dW0obmFtZSwganNvbik6CisgICAgZW51bV9tZW1iZXJzID0gW10KKyAgICBmb3IgbWVtYmVyIGlu
IGpzb25bImVudW0iXToKKyAgICAgICAgZW51bV9tZW1iZXJzLmFwcGVuZCgiICAgICVzOiBcIiVz
XCIiICUgKGZpeF9jYW1lbF9jYXNlKG1lbWJlciksIG1lbWJlcikpCisgICAgcmV0dXJuICJcbi8q
KiBAZW51bSB7c3RyaW5nfSAqL1xuJXMgPSB7XG4lc1xufTtcbiIgJSAobmFtZSwgKCIsXG4iLmpv
aW4oZW51bV9tZW1iZXJzKSkpCisKKwogZGVmIHBhcmFtX3R5cGUoZG9tYWluX25hbWUsIHBhcmFt
KToKICAgICBpZiAidHlwZSIgaW4gcGFyYW06CiAgICAgICAgIGlmIHBhcmFtWyJ0eXBlIl0gPT0g
ImFycmF5IjoKQEAgLTk3LDExICsxMTUsMTggQEAgUHJvdG9jb2wuRXJyb3I7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3VmZml4ID0gIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIm9wdGlvbmFsIiBpbiBwcm9wZXJ0eSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1ZmZpeCA9ICJ8dW5kZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGVkZWZfYXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwgcGFy
YW1fdHlwZShkb21haW5fbmFtZSwgcHJvcGVydHkpLCBzdWZmaXgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICJlbnVtIiBpbiBwcm9wZXJ0eToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW51bV9uYW1lID0gIiVzQWdlbnQuJXMlcyIgJSAoZG9tYWluX25hbWUsIHR5
cGVbImlkIl0sIHRvX3RpdGxlX2Nhc2UocHJvcGVydHlbIm5hbWUiXSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKGdlbmVyYXRlX2VudW0oZW51bV9u
YW1lLCBwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkZWZf
YXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwgZW51bV9uYW1lLCBz
dWZmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAocHJv
cGVydHlbIm5hbWUiXSwgcGFyYW1fdHlwZShkb21haW5fbmFtZSwgcHJvcGVydHkpLCBzdWZmaXgp
KQogICAgICAgICAgICAgICAgICAgICBpZiAodHlwZWRlZl9hcmdzKToKICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKCJcbi8qKiBAdHlwZWRlZiB7eyVzfXxudWxsfSAq
L1xuJXNBZ2VudC4lcztcbiIgJSAoIiwgIi5qb2luKHR5cGVkZWZfYXJncyksIGRvbWFpbl9uYW1l
LCB0eXBlWyJpZCJdKSkKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKCJcbi8qKiBAdHlwZWRlZiB7T2JqZWN0fSAqL1xu
JXNBZ2VudC4lcztcbiIgJSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0pKQorICAgICAgICAgICAg
ICAgIGVsaWYgdHlwZVsidHlwZSJdID09ICJzdHJpbmciIGFuZCAiZW51bSIgaW4gdHlwZToKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoZ2VuZXJhdGVfZW51bSgiJXNBZ2Vu
dC4lcyIgJSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0pLCB0eXBlKSkKICAgICAgICAgICAgICAg
ICBlbGlmIHR5cGVbInR5cGUiXSA9PSAiYXJyYXkiOgogICAgICAgICAgICAgICAgICAgICBzdWZm
aXggPSAiIgogICAgICAgICAgICAgICAgICAgICBpZiAoIm9wdGlvbmFsIiBpbiBwcm9wZXJ0eSk6
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189713</attachid>
            <date>2013-02-22 01:29:34 -0800</date>
            <delta_ts>2013-02-26 07:27:53 -0800</delta_ts>
            <desc>Diff of generated files.</desc>
            <filename>generated.patch</filename>
            <type>text/plain</type>
            <size>20548</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL29sZC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgYi9uZXcvSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzCmluZGV4IGZiZWI5ODAuLjQzNDliNTAgMTAwNjQ0Ci0tLSBh
L29sZC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKysrIGIvbmV3L0luc3BlY3RvckJhY2tl
bmRDb21tYW5kcy5qcwpAQCAtMjEsNiArMjEsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
Q29tbWFuZCgiTWVtb3J5LmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24iLCBbeyJuYW1lIgog
CiAvLyBQYWdlLgogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclBhZ2VEaXNwYXRjaGVyID0gSW5z
cGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JCYWNr
ZW5kLCAiUGFnZSIpOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlBhZ2UuUmVzb3Vy
Y2VUeXBlIiwge0RvY3VtZW50OiAiRG9jdW1lbnQiLCBTdHlsZXNoZWV0OiAiU3R5bGVzaGVldCIs
IEltYWdlOiAiSW1hZ2UiLCBGb250OiAiRm9udCIsIFNjcmlwdDogIlNjcmlwdCIsIFhIUjogIlhI
UiIsIFdlYlNvY2tldDogIldlYlNvY2tldCIsIE90aGVyOiAiT3RoZXIifSk7CiBJbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyRXZlbnQoIlBhZ2UuZG9tQ29udGVudEV2ZW50RmlyZWQiLCBbInRpbWVz
dGFtcCJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiUGFnZS5sb2FkRXZlbnRG
aXJlZCIsIFsidGltZXN0YW1wIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJQ
YWdlLmZyYW1lTmF2aWdhdGVkIiwgWyJmcmFtZSJdKTsKQEAgLTcxLDYgKzcyLDEwIEBAIEluc3Bl
Y3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJQYWdlLmhhbmRsZUphdmFTY3JpcHREaWFsb2ci
LCBbeyJuYW1lIjogImFjY2VwCiAKIC8vIFJ1bnRpbWUuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyUnVudGltZURpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlz
cGF0Y2hlci5iaW5kKEluc3BlY3RvckJhY2tlbmQsICJSdW50aW1lIik7CitJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRW51bSgiUnVudGltZS5SZW1vdGVPYmplY3RUeXBlIiwge09iamVjdDogIm9i
amVjdCIsIEZ1bmN0aW9uOiAiZnVuY3Rpb24iLCBVbmRlZmluZWQ6ICJ1bmRlZmluZWQiLCBTdHJp
bmc6ICJzdHJpbmciLCBOdW1iZXI6ICJudW1iZXIiLCBCb29sZWFuOiAiYm9vbGVhbiJ9KTsKK0lu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJSdW50aW1lLlJlbW90ZU9iamVjdFN1YnR5cGUi
LCB7QXJyYXk6ICJhcnJheSIsIE51bGw6ICJudWxsIiwgTm9kZTogIm5vZGUiLCBSZWdleHA6ICJy
ZWdleHAiLCBEYXRlOiAiZGF0ZSJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJS
dW50aW1lLlByb3BlcnR5UHJldmlld1R5cGUiLCB7T2JqZWN0OiAib2JqZWN0IiwgRnVuY3Rpb246
ICJmdW5jdGlvbiIsIFVuZGVmaW5lZDogInVuZGVmaW5lZCIsIFN0cmluZzogInN0cmluZyIsIE51
bWJlcjogIm51bWJlciIsIEJvb2xlYW46ICJib29sZWFuIn0pOworSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckVudW0oIlJ1bnRpbWUuUHJvcGVydHlQcmV2aWV3U3VidHlwZSIsIHtBcnJheTogImFy
cmF5IiwgTnVsbDogIm51bGwiLCBOb2RlOiAibm9kZSIsIFJlZ2V4cDogInJlZ2V4cCIsIERhdGU6
ICJkYXRlIn0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJSdW50aW1lLmV4ZWN1
dGlvbkNvbnRleHRDcmVhdGVkIiwgWyJjb250ZXh0Il0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckNvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCBbeyJuYW1lIjogImV4cHJlc3Npb24iLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJvYmplY3RHcm91
cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWV9LCB7
Im5hbWUiOiAiZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiY29udGV4dElkIiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJyZXR1cm5CeVZhbHVlIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZ2VuZXJhdGVQ
cmV2aWV3IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWV9XSwgWyJyZXN1bHQi
LCAid2FzVGhyb3duIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIlJ1bnRp
bWUuY2FsbEZ1bmN0aW9uT24iLCBbeyJuYW1lIjogIm9iamVjdElkIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiZnVuY3Rpb25EZWNsYXJhdGlvbiIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogImFyZ3VtZW50cyIs
ICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZG9Ob3RQYXVz
ZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25h
bCI6IHRydWV9LCB7Im5hbWUiOiAicmV0dXJuQnlWYWx1ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAi
b3B0aW9uYWwiOiB0cnVlfSwgeyJuYW1lIjogImdlbmVyYXRlUHJldmlldyIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlfV0sIFsicmVzdWx0IiwgIndhc1Rocm93biJdKTsKQEAg
LTgzLDYgKzg4LDkgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIlJ1bnRpbWUu
ZGlzYWJsZSIsIFtdLCBbXSk7CiAKIC8vIENvbnNvbGUuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyQ29uc29sZURpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlz
cGF0Y2hlci5iaW5kKEluc3BlY3RvckJhY2tlbmQsICJDb25zb2xlIik7CitJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRW51bSgiQ29uc29sZS5Db25zb2xlTWVzc2FnZVNvdXJjZSIsIHtIdG1sOiAi
aHRtbCIsIFdtbDogIndtbCIsIFhtbDogInhtbCIsIEphdmFzY3JpcHQ6ICJqYXZhc2NyaXB0Iiwg
TmV0d29yazogIm5ldHdvcmsiLCBDb25zb2xlQXBpOiAiY29uc29sZS1hcGkiLCBPdGhlcjogIm90
aGVyIn0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkNvbnNvbGUuQ29uc29sZU1l
c3NhZ2VMZXZlbCIsIHtUaXA6ICJ0aXAiLCBMb2c6ICJsb2ciLCBXYXJuaW5nOiAid2FybmluZyIs
IEVycm9yOiAiZXJyb3IiLCBEZWJ1ZzogImRlYnVnIn0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckVudW0oIkNvbnNvbGUuQ29uc29sZU1lc3NhZ2VUeXBlIiwge0xvZzogImxvZyIsIERpcjog
ImRpciIsIERpcnhtbDogImRpcnhtbCIsIFRhYmxlOiAidGFibGUiLCBUcmFjZTogInRyYWNlIiwg
Q2xlYXI6ICJjbGVhciIsIFN0YXJ0R3JvdXA6ICJzdGFydEdyb3VwIiwgU3RhcnRHcm91cENvbGxh
cHNlZDogInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCBFbmRHcm91cDogImVuZEdyb3VwIiwgQXNzZXJ0
OiAiYXNzZXJ0IiwgVGltaW5nOiAidGltaW5nIiwgUHJvZmlsZTogInByb2ZpbGUiLCBQcm9maWxl
RW5kOiAicHJvZmlsZUVuZCJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiQ29u
c29sZS5tZXNzYWdlQWRkZWQiLCBbIm1lc3NhZ2UiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyRXZlbnQoIkNvbnNvbGUubWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCIsIFsiY291bnQiXSk7
CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkNvbnNvbGUubWVzc2FnZXNDbGVhcmVk
IiwgW10pOwpAQCAtOTUsNiArMTAzLDcgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1h
bmQoIkNvbnNvbGUuYWRkSW5zcGVjdGVkSGVhcE9iamVjdCIsIFt7Im5hbWUiOiAiaGUKIAogLy8g
TmV0d29yay4KIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJOZXR3b3JrRGlzcGF0Y2hlciA9IElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5EaXNwYXRjaGVyLmJpbmQoSW5zcGVjdG9yQmFj
a2VuZCwgIk5ldHdvcmsiKTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJOZXR3b3Jr
LkluaXRpYXRvclR5cGUiLCB7UGFyc2VyOiAicGFyc2VyIiwgU2NyaXB0OiAic2NyaXB0IiwgT3Ro
ZXI6ICJvdGhlciJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiTmV0d29yay5y
ZXF1ZXN0V2lsbEJlU2VudCIsIFsicmVxdWVzdElkIiwgImZyYW1lSWQiLCAibG9hZGVySWQiLCAi
ZG9jdW1lbnRVUkwiLCAicmVxdWVzdCIsICJ0aW1lc3RhbXAiLCAiaW5pdGlhdG9yIiwgInJlZGly
ZWN0UmVzcG9uc2UiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIk5ldHdvcmsu
cmVxdWVzdFNlcnZlZEZyb21DYWNoZSIsIFsicmVxdWVzdElkIl0pOwogSW5zcGVjdG9yQmFja2Vu
ZC5yZWdpc3RlckV2ZW50KCJOZXR3b3JrLnJlc3BvbnNlUmVjZWl2ZWQiLCBbInJlcXVlc3RJZCIs
ICJmcmFtZUlkIiwgImxvYWRlcklkIiwgInRpbWVzdGFtcCIsICJ0eXBlIiwgInJlc3BvbnNlIl0p
OwpAQCAtMTMxLDYgKzE0MCw4IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJE
YXRhYmFzZS5leGVjdXRlU1FMIiwgW3sibmFtZSI6ICJkYXRhYmFzZUlkIiwKIAogLy8gSW5kZXhl
ZERCLgogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckluZGV4ZWREQkRpc3BhdGNoZXIgPSBJbnNw
ZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlci5iaW5kKEluc3BlY3RvckJhY2tl
bmQsICJJbmRleGVkREIiKTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJJbmRleGVk
REIuS2V5VHlwZSIsIHtOdW1iZXI6ICJudW1iZXIiLCBTdHJpbmc6ICJzdHJpbmciLCBEYXRlOiAi
ZGF0ZSIsIEFycmF5OiAiYXJyYXkifSk7CitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgi
SW5kZXhlZERCLktleVBhdGhUeXBlIiwge051bGw6ICJudWxsIiwgU3RyaW5nOiAic3RyaW5nIiwg
QXJyYXk6ICJhcnJheSJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJJbmRl
eGVkREIuZW5hYmxlIiwgW10sIFtdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5k
KCJJbmRleGVkREIuZGlzYWJsZSIsIFtdLCBbXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
Q29tbWFuZCgiSW5kZXhlZERCLnJlcXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWUiLCBbeyJuYW1l
IjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInNl
Y3VyaXR5T3JpZ2luV2l0aERhdGFiYXNlTmFtZXMiXSk7CkBAIC0yMTUsNiArMjI2LDEwIEBAIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJET00uc2V0RmlsZUlucHV0RmlsZXMiLCBb
eyJuYW1lIjogIm5vZGVJZCIsICJ0CiAKIC8vIENTUy4KIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDU1NEaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNo
ZXIuYmluZChJbnNwZWN0b3JCYWNrZW5kLCAiQ1NTIik7CitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyRW51bSgiQ1NTLlN0eWxlU2hlZXRPcmlnaW4iLCB7VXNlcjogInVzZXIiLCBVc2VyQWdlbnQ6
ICJ1c2VyLWFnZW50IiwgSW5zcGVjdG9yOiAiaW5zcGVjdG9yIiwgUmVndWxhcjogInJlZ3VsYXIi
fSk7CitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiQ1NTLkNTU1Byb3BlcnR5U3RhdHVz
Iiwge0FjdGl2ZTogImFjdGl2ZSIsIEluYWN0aXZlOiAiaW5hY3RpdmUiLCBEaXNhYmxlZDogImRp
c2FibGVkIiwgU3R5bGU6ICJzdHlsZSJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVt
KCJDU1MuQ1NTTWVkaWFTb3VyY2UiLCB7TWVkaWFSdWxlOiAibWVkaWFSdWxlIiwgSW1wb3J0UnVs
ZTogImltcG9ydFJ1bGUiLCBMaW5rZWRTaGVldDogImxpbmtlZFNoZWV0IiwgSW5saW5lU2hlZXQ6
ICJpbmxpbmVTaGVldCJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJDU1MuUmVn
aW9uUmVnaW9uT3ZlcnNldCIsIHtPdmVyc2V0OiAib3ZlcnNldCIsIEZpdDogImZpdCIsIEVtcHR5
OiAiZW1wdHkifSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkNTUy5tZWRpYVF1
ZXJ5UmVzdWx0Q2hhbmdlZCIsIFtdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgi
Q1NTLnN0eWxlU2hlZXRDaGFuZ2VkIiwgWyJzdHlsZVNoZWV0SWQiXSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRXZlbnQoIkNTUy5uYW1lZEZsb3dDcmVhdGVkIiwgWyJuYW1lZEZsb3ciXSk7
CkBAIC0yNTEsNiArMjY2LDcgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIlRp
bWVsaW5lLmNhbk1vbml0b3JNYWluVGhyZWFkIiwgW10sIFsicmVzdWx0Il0KIAogLy8gRGVidWdn
ZXIuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRGVidWdnZXJEaXNwYXRjaGVyID0gSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JCYWNrZW5k
LCAiRGVidWdnZXIiKTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJEZWJ1Z2dlci5T
Y29wZVR5cGUiLCB7R2xvYmFsOiAiZ2xvYmFsIiwgTG9jYWw6ICJsb2NhbCIsIFdpdGg6ICJ3aXRo
IiwgQ2xvc3VyZTogImNsb3N1cmUiLCBDYXRjaDogImNhdGNoIn0pOwogSW5zcGVjdG9yQmFja2Vu
ZC5yZWdpc3RlckV2ZW50KCJEZWJ1Z2dlci5nbG9iYWxPYmplY3RDbGVhcmVkIiwgW10pOwogSW5z
cGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiLCBbInNj
cmlwdElkIiwgInVybCIsICJzdGFydExpbmUiLCAic3RhcnRDb2x1bW4iLCAiZW5kTGluZSIsICJl
bmRDb2x1bW4iLCAiaXNDb250ZW50U2NyaXB0IiwgInNvdXJjZU1hcFVSTCIsICJoYXNTb3VyY2VV
UkwiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkRlYnVnZ2VyLnNjcmlwdEZh
aWxlZFRvUGFyc2UiLCBbInVybCIsICJzY3JpcHRTb3VyY2UiLCAic3RhcnRMaW5lIiwgImVycm9y
TGluZSIsICJlcnJvck1lc3NhZ2UiXSk7CkBAIC0yODUsNiArMzAxLDcgQEAgSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLnNldE92ZXJsYXlNZXNzYWdlIiwgW3sibmFt
ZSI6ICJtZXNzYWcKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5z
ZXRWYXJpYWJsZVZhbHVlIiwgW3sibmFtZSI6ICJzY29wZU51bWJlciIsICJ0eXBlIjogIm51bWJl
ciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInZhcmlhYmxlTmFtZSIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogIm5ld1ZhbHVlIiwgInR5cGUi
OiAib2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiY2FsbEZyYW1lSWQiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlfSwgeyJuYW1lIjogImZ1bmN0aW9uT2Jq
ZWN0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlfV0sIFtdKTsKIAogLy8g
RE9NRGVidWdnZXIuCitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiRE9NRGVidWdnZXIu
RE9NQnJlYWtwb2ludFR5cGUiLCB7U3VidHJlZU1vZGlmaWVkOiAic3VidHJlZS1tb2RpZmllZCIs
IEF0dHJpYnV0ZU1vZGlmaWVkOiAiYXR0cmlidXRlLW1vZGlmaWVkIiwgTm9kZVJlbW92ZWQ6ICJu
b2RlLXJlbW92ZWQifSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRE9NRGVi
dWdnZXIuc2V0RE9NQnJlYWtwb2ludCIsIFt7Im5hbWUiOiAibm9kZUlkIiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFtdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJD
b21tYW5kKCJET01EZWJ1Z2dlci5yZW1vdmVET01CcmVha3BvaW50IiwgW3sibmFtZSI6ICJub2Rl
SWQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0eXBl
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10pOwogSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRPTURlYnVnZ2VyLnNldEV2ZW50TGlzdGVuZXJCcmVh
a3BvaW50IiwgW3sibmFtZSI6ICJldmVudE5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiBmYWxzZX1dLCBbXSk7CkBAIC0yOTYsNiArMzEzLDcgQEAgSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckNvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZVhIUkJyZWFrcG9pbnQiLCBbeyJuYW1l
IjogInUKIAogLy8gUHJvZmlsZXIuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUHJvZmlsZXJE
aXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmlu
ZChJbnNwZWN0b3JCYWNrZW5kLCAiUHJvZmlsZXIiKTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJFbnVtKCJQcm9maWxlci5Qcm9maWxlSGVhZGVyVHlwZUlkIiwge0NQVTogIkNQVSIsIENTUzog
IkNTUyIsIEhFQVA6ICJIRUFQIn0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJQ
cm9maWxlci5hZGRQcm9maWxlSGVhZGVyIiwgWyJoZWFkZXIiXSk7CiBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyRXZlbnQoIlByb2ZpbGVyLmFkZEhlYXBTbmFwc2hvdENodW5rIiwgWyJ1aWQiLCAi
Y2h1bmsiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIlByb2ZpbGVyLmZpbmlz
aEhlYXBTbmFwc2hvdCIsIFsidWlkIl0pOwpkaWZmIC0tZ2l0IGEvb2xkL3Byb3RvY29sLWV4dGVy
bnMuanMgYi9uZXcvcHJvdG9jb2wtZXh0ZXJucy5qcwppbmRleCAzY2YwMGJlLi44YjEyMDAxIDEw
MDY0NAotLS0gYS9vbGQvcHJvdG9jb2wtZXh0ZXJucy5qcworKysgYi9uZXcvcHJvdG9jb2wtZXh0
ZXJucy5qcwpAQCAtODAsOCArODAsMTcgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rlck1lbW9y
eURpc3BhdGNoZXIgPSBmdW5jdGlvbihkaXNwYXRjaGVyKSB7fQogCiB2YXIgUGFnZUFnZW50ID0g
e307CiAKLS8qKiBAdHlwZWRlZiB7c3RyaW5nfSAqLwotUGFnZUFnZW50LlJlc291cmNlVHlwZTsK
Ky8qKiBAZW51bSB7c3RyaW5nfSAqLworUGFnZUFnZW50LlJlc291cmNlVHlwZSA9IHsKKyAgICBE
b2N1bWVudDogIkRvY3VtZW50IiwKKyAgICBTdHlsZXNoZWV0OiAiU3R5bGVzaGVldCIsCisgICAg
SW1hZ2U6ICJJbWFnZSIsCisgICAgRm9udDogIkZvbnQiLAorICAgIFNjcmlwdDogIlNjcmlwdCIs
CisgICAgWEhSOiAiWEhSIiwKKyAgICBXZWJTb2NrZXQ6ICJXZWJTb2NrZXQiLAorICAgIE90aGVy
OiAiT3RoZXIiCit9OwogCiAvKiogQHR5cGVkZWYge3tpZDooc3RyaW5nKSwgcGFyZW50SWQ6KHN0
cmluZ3x1bmRlZmluZWQpLCBsb2FkZXJJZDooTmV0d29ya0FnZW50LkxvYWRlcklkKSwgbmFtZToo
c3RyaW5nfHVuZGVmaW5lZCksIHVybDooc3RyaW5nKSwgc2VjdXJpdHlPcmlnaW46KHN0cmluZ3x1
bmRlZmluZWQpLCBtaW1lVHlwZTooc3RyaW5nKX18bnVsbH0gKi8KIFBhZ2VBZ2VudC5GcmFtZTsK
QEAgLTQ0NywxMyArNDU2LDUxIEBAIHZhciBSdW50aW1lQWdlbnQgPSB7fTsKIC8qKiBAdHlwZWRl
ZiB7c3RyaW5nfSAqLwogUnVudGltZUFnZW50LlJlbW90ZU9iamVjdElkOwogCi0vKiogQHR5cGVk
ZWYge3t0eXBlOihzdHJpbmcpLCBzdWJ0eXBlOihzdHJpbmd8dW5kZWZpbmVkKSwgY2xhc3NOYW1l
OihzdHJpbmd8dW5kZWZpbmVkKSwgdmFsdWU6KCp8dW5kZWZpbmVkKSwgZGVzY3JpcHRpb246KHN0
cmluZ3x1bmRlZmluZWQpLCBvYmplY3RJZDooUnVudGltZUFnZW50LlJlbW90ZU9iamVjdElkfHVu
ZGVmaW5lZCksIHByZXZpZXc6KFJ1bnRpbWVBZ2VudC5PYmplY3RQcmV2aWV3fHVuZGVmaW5lZCl9
fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8KK1J1bnRpbWVBZ2VudC5SZW1vdGVPYmpl
Y3RUeXBlID0geworICAgIE9iamVjdDogIm9iamVjdCIsCisgICAgRnVuY3Rpb246ICJmdW5jdGlv
biIsCisgICAgVW5kZWZpbmVkOiAidW5kZWZpbmVkIiwKKyAgICBTdHJpbmc6ICJzdHJpbmciLAor
ICAgIE51bWJlcjogIm51bWJlciIsCisgICAgQm9vbGVhbjogImJvb2xlYW4iCit9OworCisvKiog
QGVudW0ge3N0cmluZ30gKi8KK1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RTdWJ0eXBlID0gewor
ICAgIEFycmF5OiAiYXJyYXkiLAorICAgIE51bGw6ICJudWxsIiwKKyAgICBOb2RlOiAibm9kZSIs
CisgICAgUmVnZXhwOiAicmVnZXhwIiwKKyAgICBEYXRlOiAiZGF0ZSIKK307CisKKy8qKiBAdHlw
ZWRlZiB7e3R5cGU6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RUeXBlKSwgc3VidHlwZTooUnVu
dGltZUFnZW50LlJlbW90ZU9iamVjdFN1YnR5cGV8dW5kZWZpbmVkKSwgY2xhc3NOYW1lOihzdHJp
bmd8dW5kZWZpbmVkKSwgdmFsdWU6KCp8dW5kZWZpbmVkKSwgZGVzY3JpcHRpb246KHN0cmluZ3x1
bmRlZmluZWQpLCBvYmplY3RJZDooUnVudGltZUFnZW50LlJlbW90ZU9iamVjdElkfHVuZGVmaW5l
ZCksIHByZXZpZXc6KFJ1bnRpbWVBZ2VudC5PYmplY3RQcmV2aWV3fHVuZGVmaW5lZCl9fG51bGx9
ICovCiBSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0OwogCiAvKiogQHR5cGVkZWYge3tsb3NzbGVz
czooYm9vbGVhbiksIG92ZXJmbG93Oihib29sZWFuKSwgcHJvcGVydGllczooQXJyYXkuPFJ1bnRp
bWVBZ2VudC5Qcm9wZXJ0eVByZXZpZXc+KX18bnVsbH0gKi8KIFJ1bnRpbWVBZ2VudC5PYmplY3RQ
cmV2aWV3OwogCi0vKiogQHR5cGVkZWYge3tuYW1lOihzdHJpbmcpLCB0eXBlOihzdHJpbmcpLCB2
YWx1ZTooc3RyaW5nfHVuZGVmaW5lZCksIHZhbHVlUHJldmlldzooUnVudGltZUFnZW50Lk9iamVj
dFByZXZpZXd8dW5kZWZpbmVkKSwgc3VidHlwZTooc3RyaW5nfHVuZGVmaW5lZCl9fG51bGx9ICov
CisvKiogQGVudW0ge3N0cmluZ30gKi8KK1J1bnRpbWVBZ2VudC5Qcm9wZXJ0eVByZXZpZXdUeXBl
ID0geworICAgIE9iamVjdDogIm9iamVjdCIsCisgICAgRnVuY3Rpb246ICJmdW5jdGlvbiIsCisg
ICAgVW5kZWZpbmVkOiAidW5kZWZpbmVkIiwKKyAgICBTdHJpbmc6ICJzdHJpbmciLAorICAgIE51
bWJlcjogIm51bWJlciIsCisgICAgQm9vbGVhbjogImJvb2xlYW4iCit9OworCisvKiogQGVudW0g
e3N0cmluZ30gKi8KK1J1bnRpbWVBZ2VudC5Qcm9wZXJ0eVByZXZpZXdTdWJ0eXBlID0geworICAg
IEFycmF5OiAiYXJyYXkiLAorICAgIE51bGw6ICJudWxsIiwKKyAgICBOb2RlOiAibm9kZSIsCisg
ICAgUmVnZXhwOiAicmVnZXhwIiwKKyAgICBEYXRlOiAiZGF0ZSIKK307CisKKy8qKiBAdHlwZWRl
ZiB7e25hbWU6KHN0cmluZyksIHR5cGU6KFJ1bnRpbWVBZ2VudC5Qcm9wZXJ0eVByZXZpZXdUeXBl
KSwgdmFsdWU6KHN0cmluZ3x1bmRlZmluZWQpLCB2YWx1ZVByZXZpZXc6KFJ1bnRpbWVBZ2VudC5P
YmplY3RQcmV2aWV3fHVuZGVmaW5lZCksIHN1YnR5cGU6KFJ1bnRpbWVBZ2VudC5Qcm9wZXJ0eVBy
ZXZpZXdTdWJ0eXBlfHVuZGVmaW5lZCl9fG51bGx9ICovCiBSdW50aW1lQWdlbnQuUHJvcGVydHlQ
cmV2aWV3OwogCiAvKiogQHR5cGVkZWYge3tuYW1lOihzdHJpbmcpLCB2YWx1ZTooUnVudGltZUFn
ZW50LlJlbW90ZU9iamVjdHx1bmRlZmluZWQpLCB3cml0YWJsZTooYm9vbGVhbnx1bmRlZmluZWQp
LCBnZXQ6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R8dW5kZWZpbmVkKSwgc2V0OihSdW50aW1l
QWdlbnQuUmVtb3RlT2JqZWN0fHVuZGVmaW5lZCksIGNvbmZpZ3VyYWJsZTooYm9vbGVhbiksIGVu
dW1lcmFibGU6KGJvb2xlYW4pLCB3YXNUaHJvd246KGJvb2xlYW58dW5kZWZpbmVkKSwgaXNPd246
KGJvb2xlYW58dW5kZWZpbmVkKX18bnVsbH0gKi8KQEAgLTU1OCw3ICs2MDUsNDQgQEAgSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlclJ1bnRpbWVEaXNwYXRjaGVyID0gZnVuY3Rpb24oZGlzcGF0Y2hl
cikge30KIAogdmFyIENvbnNvbGVBZ2VudCA9IHt9OwogCi0vKiogQHR5cGVkZWYge3tzb3VyY2U6
KHN0cmluZyksIGxldmVsOihzdHJpbmcpLCB0ZXh0OihzdHJpbmcpLCB0eXBlOihzdHJpbmd8dW5k
ZWZpbmVkKSwgdXJsOihzdHJpbmd8dW5kZWZpbmVkKSwgbGluZToobnVtYmVyfHVuZGVmaW5lZCks
IHJlcGVhdENvdW50OihudW1iZXJ8dW5kZWZpbmVkKSwgcGFyYW1ldGVyczooQXJyYXkuPFJ1bnRp
bWVBZ2VudC5SZW1vdGVPYmplY3Q+fHVuZGVmaW5lZCksIHN0YWNrVHJhY2U6KENvbnNvbGVBZ2Vu
dC5TdGFja1RyYWNlfHVuZGVmaW5lZCksIG5ldHdvcmtSZXF1ZXN0SWQ6KE5ldHdvcmtBZ2VudC5S
ZXF1ZXN0SWR8dW5kZWZpbmVkKX18bnVsbH0gKi8KKy8qKiBAZW51bSB7c3RyaW5nfSAqLworQ29u
c29sZUFnZW50LkNvbnNvbGVNZXNzYWdlU291cmNlID0geworICAgIEh0bWw6ICJodG1sIiwKKyAg
ICBXbWw6ICJ3bWwiLAorICAgIFhtbDogInhtbCIsCisgICAgSmF2YXNjcmlwdDogImphdmFzY3Jp
cHQiLAorICAgIE5ldHdvcms6ICJuZXR3b3JrIiwKKyAgICBDb25zb2xlQXBpOiAiY29uc29sZS1h
cGkiLAorICAgIE90aGVyOiAib3RoZXIiCit9OworCisvKiogQGVudW0ge3N0cmluZ30gKi8KK0Nv
bnNvbGVBZ2VudC5Db25zb2xlTWVzc2FnZUxldmVsID0geworICAgIFRpcDogInRpcCIsCisgICAg
TG9nOiAibG9nIiwKKyAgICBXYXJuaW5nOiAid2FybmluZyIsCisgICAgRXJyb3I6ICJlcnJvciIs
CisgICAgRGVidWc6ICJkZWJ1ZyIKK307CisKKy8qKiBAZW51bSB7c3RyaW5nfSAqLworQ29uc29s
ZUFnZW50LkNvbnNvbGVNZXNzYWdlVHlwZSA9IHsKKyAgICBMb2c6ICJsb2ciLAorICAgIERpcjog
ImRpciIsCisgICAgRGlyeG1sOiAiZGlyeG1sIiwKKyAgICBUYWJsZTogInRhYmxlIiwKKyAgICBU
cmFjZTogInRyYWNlIiwKKyAgICBDbGVhcjogImNsZWFyIiwKKyAgICBTdGFydEdyb3VwOiAic3Rh
cnRHcm91cCIsCisgICAgU3RhcnRHcm91cENvbGxhcHNlZDogInN0YXJ0R3JvdXBDb2xsYXBzZWQi
LAorICAgIEVuZEdyb3VwOiAiZW5kR3JvdXAiLAorICAgIEFzc2VydDogImFzc2VydCIsCisgICAg
VGltaW5nOiAidGltaW5nIiwKKyAgICBQcm9maWxlOiAicHJvZmlsZSIsCisgICAgUHJvZmlsZUVu
ZDogInByb2ZpbGVFbmQiCit9OworCisvKiogQHR5cGVkZWYge3tzb3VyY2U6KENvbnNvbGVBZ2Vu
dC5Db25zb2xlTWVzc2FnZVNvdXJjZSksIGxldmVsOihDb25zb2xlQWdlbnQuQ29uc29sZU1lc3Nh
Z2VMZXZlbCksIHRleHQ6KHN0cmluZyksIHR5cGU6KENvbnNvbGVBZ2VudC5Db25zb2xlTWVzc2Fn
ZVR5cGV8dW5kZWZpbmVkKSwgdXJsOihzdHJpbmd8dW5kZWZpbmVkKSwgbGluZToobnVtYmVyfHVu
ZGVmaW5lZCksIHJlcGVhdENvdW50OihudW1iZXJ8dW5kZWZpbmVkKSwgcGFyYW1ldGVyczooQXJy
YXkuPFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3Q+fHVuZGVmaW5lZCksIHN0YWNrVHJhY2U6KENv
bnNvbGVBZ2VudC5TdGFja1RyYWNlfHVuZGVmaW5lZCksIG5ldHdvcmtSZXF1ZXN0SWQ6KE5ldHdv
cmtBZ2VudC5SZXF1ZXN0SWR8dW5kZWZpbmVkKX18bnVsbH0gKi8KIENvbnNvbGVBZ2VudC5Db25z
b2xlTWVzc2FnZTsKIAogLyoqIEB0eXBlZGVmIHt7ZnVuY3Rpb25OYW1lOihzdHJpbmcpLCB1cmw6
KHN0cmluZyksIGxpbmVOdW1iZXI6KG51bWJlciksIGNvbHVtbk51bWJlcjoobnVtYmVyKX18bnVs
bH0gKi8KQEAgLTY2Nyw3ICs3NTEsMTQgQEAgTmV0d29ya0FnZW50LldlYlNvY2tldEZyYW1lOwog
LyoqIEB0eXBlZGVmIHt7dXJsOihzdHJpbmcpLCB0eXBlOihQYWdlQWdlbnQuUmVzb3VyY2VUeXBl
KSwgcmVzcG9uc2U6KE5ldHdvcmtBZ2VudC5SZXNwb25zZXx1bmRlZmluZWQpLCBib2R5U2l6ZToo
bnVtYmVyKX18bnVsbH0gKi8KIE5ldHdvcmtBZ2VudC5DYWNoZWRSZXNvdXJjZTsKIAotLyoqIEB0
eXBlZGVmIHt7dHlwZTooc3RyaW5nKSwgc3RhY2tUcmFjZTooQ29uc29sZUFnZW50LlN0YWNrVHJh
Y2V8dW5kZWZpbmVkKSwgdXJsOihzdHJpbmd8dW5kZWZpbmVkKSwgbGluZU51bWJlcjoobnVtYmVy
fHVuZGVmaW5lZCl9fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8KK05ldHdvcmtBZ2Vu
dC5Jbml0aWF0b3JUeXBlID0geworICAgIFBhcnNlcjogInBhcnNlciIsCisgICAgU2NyaXB0OiAi
c2NyaXB0IiwKKyAgICBPdGhlcjogIm90aGVyIgorfTsKKworLyoqIEB0eXBlZGVmIHt7dHlwZToo
TmV0d29ya0FnZW50LkluaXRpYXRvclR5cGUpLCBzdGFja1RyYWNlOihDb25zb2xlQWdlbnQuU3Rh
Y2tUcmFjZXx1bmRlZmluZWQpLCB1cmw6KHN0cmluZ3x1bmRlZmluZWQpLCBsaW5lTnVtYmVyOihu
dW1iZXJ8dW5kZWZpbmVkKX18bnVsbH0gKi8KIE5ldHdvcmtBZ2VudC5Jbml0aWF0b3I7CiAKIC8q
KgpAQCAtOTIxLDcgKzEwMTIsMTUgQEAgSW5kZXhlZERCQWdlbnQuT2JqZWN0U3RvcmU7CiAvKiog
QHR5cGVkZWYge3tuYW1lOihzdHJpbmcpLCBrZXlQYXRoOihJbmRleGVkREJBZ2VudC5LZXlQYXRo
KSwgdW5pcXVlOihib29sZWFuKSwgbXVsdGlFbnRyeTooYm9vbGVhbil9fG51bGx9ICovCiBJbmRl
eGVkREJBZ2VudC5PYmplY3RTdG9yZUluZGV4OwogCi0vKiogQHR5cGVkZWYge3t0eXBlOihzdHJp
bmcpLCBudW1iZXI6KG51bWJlcnx1bmRlZmluZWQpLCBzdHJpbmc6KHN0cmluZ3x1bmRlZmluZWQp
LCBkYXRlOihudW1iZXJ8dW5kZWZpbmVkKSwgYXJyYXk6KEFycmF5LjxJbmRleGVkREJBZ2VudC5L
ZXk+fHVuZGVmaW5lZCl9fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8KK0luZGV4ZWRE
QkFnZW50LktleVR5cGUgPSB7CisgICAgTnVtYmVyOiAibnVtYmVyIiwKKyAgICBTdHJpbmc6ICJz
dHJpbmciLAorICAgIERhdGU6ICJkYXRlIiwKKyAgICBBcnJheTogImFycmF5IgorfTsKKworLyoq
IEB0eXBlZGVmIHt7dHlwZTooSW5kZXhlZERCQWdlbnQuS2V5VHlwZSksIG51bWJlcjoobnVtYmVy
fHVuZGVmaW5lZCksIHN0cmluZzooc3RyaW5nfHVuZGVmaW5lZCksIGRhdGU6KG51bWJlcnx1bmRl
ZmluZWQpLCBhcnJheTooQXJyYXkuPEluZGV4ZWREQkFnZW50LktleT58dW5kZWZpbmVkKX18bnVs
bH0gKi8KIEluZGV4ZWREQkFnZW50LktleTsKIAogLyoqIEB0eXBlZGVmIHt7bG93ZXI6KEluZGV4
ZWREQkFnZW50LktleXx1bmRlZmluZWQpLCB1cHBlcjooSW5kZXhlZERCQWdlbnQuS2V5fHVuZGVm
aW5lZCksIGxvd2VyT3BlbjooYm9vbGVhbiksIHVwcGVyT3BlbjooYm9vbGVhbil9fG51bGx9ICov
CkBAIC05MzAsNyArMTAyOSwxNCBAQCBJbmRleGVkREJBZ2VudC5LZXlSYW5nZTsKIC8qKiBAdHlw
ZWRlZiB7e2tleTooUnVudGltZUFnZW50LlJlbW90ZU9iamVjdCksIHByaW1hcnlLZXk6KFJ1bnRp
bWVBZ2VudC5SZW1vdGVPYmplY3QpLCB2YWx1ZTooUnVudGltZUFnZW50LlJlbW90ZU9iamVjdCl9
fG51bGx9ICovCiBJbmRleGVkREJBZ2VudC5EYXRhRW50cnk7CiAKLS8qKiBAdHlwZWRlZiB7e3R5
cGU6KHN0cmluZyksIHN0cmluZzooc3RyaW5nfHVuZGVmaW5lZCksIGFycmF5OihBcnJheS48c3Ry
aW5nPnx1bmRlZmluZWQpfXxudWxsfSAqLworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitJbmRleGVk
REJBZ2VudC5LZXlQYXRoVHlwZSA9IHsKKyAgICBOdWxsOiAibnVsbCIsCisgICAgU3RyaW5nOiAi
c3RyaW5nIiwKKyAgICBBcnJheTogImFycmF5IgorfTsKKworLyoqIEB0eXBlZGVmIHt7dHlwZToo
SW5kZXhlZERCQWdlbnQuS2V5UGF0aFR5cGUpLCBzdHJpbmc6KHN0cmluZ3x1bmRlZmluZWQpLCBh
cnJheTooQXJyYXkuPHN0cmluZz58dW5kZWZpbmVkKX18bnVsbH0gKi8KIEluZGV4ZWREQkFnZW50
LktleVBhdGg7CiAKIC8qKgpAQCAtMTU1NSw4ICsxNjYxLDEzIEBAIENTU0FnZW50LlN0eWxlU2hl
ZXRJZDsKIC8qKiBAdHlwZWRlZiB7e3N0eWxlU2hlZXRJZDooQ1NTQWdlbnQuU3R5bGVTaGVldElk
KSwgb3JkaW5hbDoobnVtYmVyKX18bnVsbH0gKi8KIENTU0FnZW50LkNTU1N0eWxlSWQ7CiAKLS8q
KiBAdHlwZWRlZiB7c3RyaW5nfSAqLwotQ1NTQWdlbnQuU3R5bGVTaGVldE9yaWdpbjsKKy8qKiBA
ZW51bSB7c3RyaW5nfSAqLworQ1NTQWdlbnQuU3R5bGVTaGVldE9yaWdpbiA9IHsKKyAgICBVc2Vy
OiAidXNlciIsCisgICAgVXNlckFnZW50OiAidXNlci1hZ2VudCIsCisgICAgSW5zcGVjdG9yOiAi
aW5zcGVjdG9yIiwKKyAgICBSZWd1bGFyOiAicmVndWxhciIKK307CiAKIC8qKiBAdHlwZWRlZiB7
e3N0eWxlU2hlZXRJZDooQ1NTQWdlbnQuU3R5bGVTaGVldElkKSwgb3JkaW5hbDoobnVtYmVyKX18
bnVsbH0gKi8KIENTU0FnZW50LkNTU1J1bGVJZDsKQEAgLTE2MDAsMTAgKzE3MTEsMjYgQEAgQ1NT
QWdlbnQuQ1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5OwogLyoqIEB0eXBlZGVmIHt7c3R5bGVJZDoo
Q1NTQWdlbnQuQ1NTU3R5bGVJZHx1bmRlZmluZWQpLCBjc3NQcm9wZXJ0aWVzOihBcnJheS48Q1NT
QWdlbnQuQ1NTUHJvcGVydHk+KSwgc2hvcnRoYW5kRW50cmllczooQXJyYXkuPENTU0FnZW50LlNo
b3J0aGFuZEVudHJ5PiksIGNzc1RleHQ6KHN0cmluZ3x1bmRlZmluZWQpLCByYW5nZTooQ1NTQWdl
bnQuU291cmNlUmFuZ2V8dW5kZWZpbmVkKSwgd2lkdGg6KHN0cmluZ3x1bmRlZmluZWQpLCBoZWln
aHQ6KHN0cmluZ3x1bmRlZmluZWQpfXxudWxsfSAqLwogQ1NTQWdlbnQuQ1NTU3R5bGU7CiAKLS8q
KiBAdHlwZWRlZiB7e25hbWU6KHN0cmluZyksIHZhbHVlOihzdHJpbmcpLCBwcmlvcml0eTooc3Ry
aW5nfHVuZGVmaW5lZCksIGltcGxpY2l0Oihib29sZWFufHVuZGVmaW5lZCksIHRleHQ6KHN0cmlu
Z3x1bmRlZmluZWQpLCBwYXJzZWRPazooYm9vbGVhbnx1bmRlZmluZWQpLCBzdGF0dXM6KHN0cmlu
Z3x1bmRlZmluZWQpLCByYW5nZTooQ1NTQWdlbnQuU291cmNlUmFuZ2V8dW5kZWZpbmVkKX18bnVs
bH0gKi8KKy8qKiBAZW51bSB7c3RyaW5nfSAqLworQ1NTQWdlbnQuQ1NTUHJvcGVydHlTdGF0dXMg
PSB7CisgICAgQWN0aXZlOiAiYWN0aXZlIiwKKyAgICBJbmFjdGl2ZTogImluYWN0aXZlIiwKKyAg
ICBEaXNhYmxlZDogImRpc2FibGVkIiwKKyAgICBTdHlsZTogInN0eWxlIgorfTsKKworLyoqIEB0
eXBlZGVmIHt7bmFtZTooc3RyaW5nKSwgdmFsdWU6KHN0cmluZyksIHByaW9yaXR5OihzdHJpbmd8
dW5kZWZpbmVkKSwgaW1wbGljaXQ6KGJvb2xlYW58dW5kZWZpbmVkKSwgdGV4dDooc3RyaW5nfHVu
ZGVmaW5lZCksIHBhcnNlZE9rOihib29sZWFufHVuZGVmaW5lZCksIHN0YXR1czooQ1NTQWdlbnQu
Q1NTUHJvcGVydHlTdGF0dXN8dW5kZWZpbmVkKSwgcmFuZ2U6KENTU0FnZW50LlNvdXJjZVJhbmdl
fHVuZGVmaW5lZCl9fG51bGx9ICovCiBDU1NBZ2VudC5DU1NQcm9wZXJ0eTsKIAotLyoqIEB0eXBl
ZGVmIHt7dGV4dDooc3RyaW5nKSwgc291cmNlOihzdHJpbmcpLCBzb3VyY2VVUkw6KHN0cmluZ3x1
bmRlZmluZWQpLCBzb3VyY2VMaW5lOihudW1iZXJ8dW5kZWZpbmVkKX18bnVsbH0gKi8KKy8qKiBA
ZW51bSB7c3RyaW5nfSAqLworQ1NTQWdlbnQuQ1NTTWVkaWFTb3VyY2UgPSB7CisgICAgTWVkaWFS
dWxlOiAibWVkaWFSdWxlIiwKKyAgICBJbXBvcnRSdWxlOiAiaW1wb3J0UnVsZSIsCisgICAgTGlu
a2VkU2hlZXQ6ICJsaW5rZWRTaGVldCIsCisgICAgSW5saW5lU2hlZXQ6ICJpbmxpbmVTaGVldCIK
K307CisKKy8qKiBAdHlwZWRlZiB7e3RleHQ6KHN0cmluZyksIHNvdXJjZTooQ1NTQWdlbnQuQ1NT
TWVkaWFTb3VyY2UpLCBzb3VyY2VVUkw6KHN0cmluZ3x1bmRlZmluZWQpLCBzb3VyY2VMaW5lOihu
dW1iZXJ8dW5kZWZpbmVkKX18bnVsbH0gKi8KIENTU0FnZW50LkNTU01lZGlhOwogCiAvKiogQHR5
cGVkZWYge3tzZWxlY3Rvcjooc3RyaW5nKSwgdXJsOihzdHJpbmcpLCBsaW5lTnVtYmVyOihudW1i
ZXIpLCB0aW1lOihudW1iZXIpLCBoaXRDb3VudDoobnVtYmVyKSwgbWF0Y2hDb3VudDoobnVtYmVy
KX18bnVsbH0gKi8KQEAgLTE2MTIsNyArMTczOSwxNCBAQCBDU1NBZ2VudC5TZWxlY3RvclByb2Zp
bGVFbnRyeTsKIC8qKiBAdHlwZWRlZiB7e3RvdGFsVGltZToobnVtYmVyKSwgZGF0YTooQXJyYXku
PENTU0FnZW50LlNlbGVjdG9yUHJvZmlsZUVudHJ5Pil9fG51bGx9ICovCiBDU1NBZ2VudC5TZWxl
Y3RvclByb2ZpbGU7CiAKLS8qKiBAdHlwZWRlZiB7e3JlZ2lvbk92ZXJzZXQ6KHN0cmluZyksIG5v
ZGVJZDooRE9NQWdlbnQuTm9kZUlkKX18bnVsbH0gKi8KKy8qKiBAZW51bSB7c3RyaW5nfSAqLwor
Q1NTQWdlbnQuUmVnaW9uUmVnaW9uT3ZlcnNldCA9IHsKKyAgICBPdmVyc2V0OiAib3ZlcnNldCIs
CisgICAgRml0OiAiZml0IiwKKyAgICBFbXB0eTogImVtcHR5IgorfTsKKworLyoqIEB0eXBlZGVm
IHt7cmVnaW9uT3ZlcnNldDooQ1NTQWdlbnQuUmVnaW9uUmVnaW9uT3ZlcnNldCksIG5vZGVJZDoo
RE9NQWdlbnQuTm9kZUlkKX18bnVsbH0gKi8KIENTU0FnZW50LlJlZ2lvbjsKIAogLyoqIEB0eXBl
ZGVmIHt7ZG9jdW1lbnROb2RlSWQ6KERPTUFnZW50Lk5vZGVJZCksIG5hbWU6KHN0cmluZyksIG92
ZXJzZXQ6KGJvb2xlYW4pLCBjb250ZW50OihBcnJheS48RE9NQWdlbnQuTm9kZUlkPiksIHJlZ2lv
bnM6KEFycmF5LjxDU1NBZ2VudC5SZWdpb24+KX18bnVsbH0gKi8KQEAgLTE4NzUsNyArMjAwOSwx
NiBAQCBEZWJ1Z2dlckFnZW50LkZ1bmN0aW9uRGV0YWlsczsKIC8qKiBAdHlwZWRlZiB7e2NhbGxG
cmFtZUlkOihEZWJ1Z2dlckFnZW50LkNhbGxGcmFtZUlkKSwgZnVuY3Rpb25OYW1lOihzdHJpbmcp
LCBsb2NhdGlvbjooRGVidWdnZXJBZ2VudC5Mb2NhdGlvbiksIHNjb3BlQ2hhaW46KEFycmF5LjxE
ZWJ1Z2dlckFnZW50LlNjb3BlPiksIHRoaXM6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3QpfXxu
dWxsfSAqLwogRGVidWdnZXJBZ2VudC5DYWxsRnJhbWU7CiAKLS8qKiBAdHlwZWRlZiB7e3R5cGU6
KHN0cmluZyksIG9iamVjdDooUnVudGltZUFnZW50LlJlbW90ZU9iamVjdCl9fG51bGx9ICovCisv
KiogQGVudW0ge3N0cmluZ30gKi8KK0RlYnVnZ2VyQWdlbnQuU2NvcGVUeXBlID0geworICAgIEds
b2JhbDogImdsb2JhbCIsCisgICAgTG9jYWw6ICJsb2NhbCIsCisgICAgV2l0aDogIndpdGgiLAor
ICAgIENsb3N1cmU6ICJjbG9zdXJlIiwKKyAgICBDYXRjaDogImNhdGNoIgorfTsKKworLyoqIEB0
eXBlZGVmIHt7dHlwZTooRGVidWdnZXJBZ2VudC5TY29wZVR5cGUpLCBvYmplY3Q6KFJ1bnRpbWVB
Z2VudC5SZW1vdGVPYmplY3QpfXxudWxsfSAqLwogRGVidWdnZXJBZ2VudC5TY29wZTsKIAogLyoq
CkBAIC0yMTQzLDggKzIyODYsMTIgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRlYnVnZ2Vy
RGlzcGF0Y2hlciA9IGZ1bmN0aW9uKGRpc3BhdGNoZXIpIHt9CiAKIHZhciBET01EZWJ1Z2dlckFn
ZW50ID0ge307CiAKLS8qKiBAdHlwZWRlZiB7c3RyaW5nfSAqLwotRE9NRGVidWdnZXJBZ2VudC5E
T01CcmVha3BvaW50VHlwZTsKKy8qKiBAZW51bSB7c3RyaW5nfSAqLworRE9NRGVidWdnZXJBZ2Vu
dC5ET01CcmVha3BvaW50VHlwZSA9IHsKKyAgICBTdWJ0cmVlTW9kaWZpZWQ6ICJzdWJ0cmVlLW1v
ZGlmaWVkIiwKKyAgICBBdHRyaWJ1dGVNb2RpZmllZDogImF0dHJpYnV0ZS1tb2RpZmllZCIsCisg
ICAgTm9kZVJlbW92ZWQ6ICJub2RlLXJlbW92ZWQiCit9OwogCiAvKioKICAqIEBwYXJhbSB7RE9N
QWdlbnQuTm9kZUlkfSBub2RlSWQKQEAgLTIyMjIsNyArMjM2OSwxNCBAQCBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRE9NRGVidWdnZXJEaXNwYXRjaGVyID0gZnVuY3Rpb24oZGlzcGF0Y2hlcikg
e30KIAogdmFyIFByb2ZpbGVyQWdlbnQgPSB7fTsKIAotLyoqIEB0eXBlZGVmIHt7dHlwZUlkOihz
dHJpbmcpLCB0aXRsZTooc3RyaW5nKSwgdWlkOihudW1iZXIpLCBtYXhKU09iamVjdElkOihudW1i
ZXJ8dW5kZWZpbmVkKX18bnVsbH0gKi8KKy8qKiBAZW51bSB7c3RyaW5nfSAqLworUHJvZmlsZXJB
Z2VudC5Qcm9maWxlSGVhZGVyVHlwZUlkID0geworICAgIENQVTogIkNQVSIsCisgICAgQ1NTOiAi
Q1NTIiwKKyAgICBIRUFQOiAiSEVBUCIKK307CisKKy8qKiBAdHlwZWRlZiB7e3R5cGVJZDooUHJv
ZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyVHlwZUlkKSwgdGl0bGU6KHN0cmluZyksIHVpZDoobnVt
YmVyKSwgbWF4SlNPYmplY3RJZDoobnVtYmVyfHVuZGVmaW5lZCl9fG51bGx9ICovCiBQcm9maWxl
ckFnZW50LlByb2ZpbGVIZWFkZXI7CiAKIC8qKiBAdHlwZWRlZiB7e2Z1bmN0aW9uTmFtZTooc3Ry
aW5nKSwgdXJsOihzdHJpbmcpLCBsaW5lTnVtYmVyOihudW1iZXIpLCB0b3RhbFRpbWU6KG51bWJl
ciksIHNlbGZUaW1lOihudW1iZXIpLCBudW1iZXJPZkNhbGxzOihudW1iZXIpLCB2aXNpYmxlOihi
b29sZWFuKSwgY2FsbFVJRDoobnVtYmVyKSwgY2hpbGRyZW46KEFycmF5LjxQcm9maWxlckFnZW50
LkNQVVByb2ZpbGVOb2RlPil9fG51bGx9ICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190278</attachid>
            <date>2013-02-26 07:24:42 -0800</date>
            <delta_ts>2013-02-27 23:52:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110461-20130226192056.patch</filename>
            <type>text/plain</type>
            <size>12904</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAzOWE0ZTZkMGM3MTBi
NGIxNjI1YjFlNDZkOGFhYTJlMTdjMmU4My4uM2YzYzliMjFhMDVhMTM4MDI2YWE0MDc3ZDY1YTEz
ZjU5Nzc3NTdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtQcm90b2NvbF0gR2VuYXJhdGUgSlMgZW51bSBkZWZpbml0aW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ2MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRpbmcgY29ycmVz
cG9uZGluZyB0eXBlIGFubm90YXRpb25zCisgICAgICAgIHdvdWxkIGhlbHAgdG8gY29tcGlsZXIg
dG8gcG9pbnQgZXJyb3JzLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucHk6IEdlbmVyYXRlICJyZWdpc3RlckVudW0iIHJlY29yZHMuCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOiBTaGFkb3cgY29tcGlsZXIgd2FybmluZy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanM6CisgICAg
ICAgIEFkZGVkICJyZWdpc3RlckVudW0iLiBBZGRlZCAicmVnaXN0ZXJFbnVtIiBnZW5lcmF0aW9u
LgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanM6IFVzZSBl
bnVtIGluc3RlYWQgb2YgbGl0ZXJhbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZ2VuZXJhdGVfcHJv
dG9jb2xfZXh0ZXJucy5weTogR2VuZXJhdGUgZW51bSB0eXBlZGVmcy4KKwogMjAxMy0wMi0yNiAg
S2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBSZW5h
bWUgQmF0Y2hlZENhbGxiYWNrIHRvIEJhdGNoZWRNZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggYTQwYTU3NTczYWE1
YTRmZGZiNGI0ZDUwZjVmYzA5NmE2ODQ4NzcxZS4uMDQ5ZTA5OTBmZjAwMWVhOTczOTk1MzNjZGUx
ODQ2YWQ0NTZlM2M5NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTMyLDYgKzMyLDcgQEAgaW1wb3J0IG9zLnBhdGgKIGlt
cG9ydCBzeXMKIGltcG9ydCBzdHJpbmcKIGltcG9ydCBvcHRwYXJzZQoraW1wb3J0IHJlCiB0cnk6
CiAgICAgaW1wb3J0IGpzb24KIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTk5LDYgKzEwMCwxNiBA
QCBkZWYgZGFzaF90b19jYW1lbGNhc2Uod29yZCk6CiAgICAgcmV0dXJuICcnLmpvaW4oeC5jYXBp
dGFsaXplKCkgb3IgJy0nIGZvciB4IGluIHdvcmQuc3BsaXQoJy0nKSkKIAogCitkZWYgZml4X2Nh
bWVsX2Nhc2UobmFtZSk6CisgICAgcmVmaW5lZCA9IHJlLnN1YihyJy0oXHcpJywgbGFtYmRhIHBh
dDogcGF0Lmdyb3VwKDEpLnVwcGVyKCksIG5hbWUpCisgICAgcmVmaW5lZCA9IHRvX3RpdGxlX2Nh
c2UocmVmaW5lZCkKKyAgICByZXR1cm4gcmUuc3ViKHInKD9pKUhUTUx8WE1MfFdNTHxBUEknLCBs
YW1iZGEgcGF0OiBwYXQuZ3JvdXAoMCkudXBwZXIoKSwgcmVmaW5lZCkKKworCitkZWYgdG9fdGl0
bGVfY2FzZShuYW1lKToKKyAgICByZXR1cm4gbmFtZVs6MV0udXBwZXIoKSArIG5hbWVbMTpdCisK
KwogY2xhc3MgQ2FwaXRhbGl6ZXI6CiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBsb3dlcl9j
YW1lbF9jYXNlX3RvX3VwcGVyKHN0cik6CkBAIC0xODYxLDYgKzE4NzIsMTggQEAgY2xhc3MgR2Vu
ZXJhdG9yOgogICAgICAgICAgICAgaWYgbm90IGRvbWFpbl9maXhlcy5za2lwX2pzX2JpbmQ6CiAg
ICAgICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfanNfZG9tYWluX2luaXRpYWxpemVyX2xp
c3QuYXBwZW5kKCJJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyJXNEaXNwYXRjaGVyID0gSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JCYWNrZW5k
LCBcIiVzXCIpO1xuIiAlIChkb21haW5fbmFtZSwgZG9tYWluX25hbWUpKQogCisgICAgICAgICAg
ICBpZiAidHlwZXMiIGluIGpzb25fZG9tYWluOgorICAgICAgICAgICAgICAgIGZvciBqc29uX3R5
cGUgaW4ganNvbl9kb21haW5bInR5cGVzIl06CisgICAgICAgICAgICAgICAgICAgIGlmICJ0eXBl
IiBpbiBqc29uX3R5cGUgYW5kIGpzb25fdHlwZVsidHlwZSJdID09ICJzdHJpbmciIGFuZCAiZW51
bSIgaW4ganNvbl90eXBlOgorICAgICAgICAgICAgICAgICAgICAgICAgZW51bV9uYW1lID0gIiVz
LiVzIiAlIChkb21haW5fbmFtZSwganNvbl90eXBlWyJpZCJdKQorICAgICAgICAgICAgICAgICAg
ICAgICAgR2VuZXJhdG9yLnByb2Nlc3NfZW51bShqc29uX3R5cGUsIGVudW1fbmFtZSkKKyAgICAg
ICAgICAgICAgICAgICAgZWxpZiBqc29uX3R5cGVbInR5cGUiXSA9PSAib2JqZWN0IjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICJwcm9wZXJ0aWVzIiBpbiBqc29uX3R5cGU6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIGpzb25fcHJvcGVydHkgaW4ganNvbl90eXBlWyJwcm9w
ZXJ0aWVzIl06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBq
c29uX3Byb3BlcnR5IGFuZCBqc29uX3Byb3BlcnR5WyJ0eXBlIl0gPT0gInN0cmluZyIgYW5kICJl
bnVtIiBpbiBqc29uX3Byb3BlcnR5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bV9uYW1lID0gIiVzLiVzJXMiICUgKGRvbWFpbl9uYW1lLCBqc29uX3R5cGVbImlkIl0s
IHRvX3RpdGxlX2Nhc2UoanNvbl9wcm9wZXJ0eVsibmFtZSJdKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvci5wcm9jZXNzX2VudW0oanNvbl9wcm9wZXJ0eSwg
ZW51bV9uYW1lKQorCiAgICAgICAgICAgICBpZiAiZXZlbnRzIiBpbiBqc29uX2RvbWFpbjoKICAg
ICAgICAgICAgICAgICBmb3IganNvbl9ldmVudCBpbiBqc29uX2RvbWFpblsiZXZlbnRzIl06CiAg
ICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvci5wcm9jZXNzX2V2ZW50KGpzb25fZXZlbnQsIGRv
bWFpbl9uYW1lLCBmcm9udGVuZF9tZXRob2RfZGVjbGFyYXRpb25fbGluZXMpCkBAIC0xODk1LDYg
KzE5MTgsMTUgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tl
bmRfanNfZG9tYWluX2luaXRpYWxpemVyX2xpc3QuYXBwZW5kKCJcbiIpCiAKICAgICBAc3RhdGlj
bWV0aG9kCisgICAgZGVmIHByb2Nlc3NfZW51bShqc29uX2VudW0sIGVudW1fbmFtZSk6CisgICAg
ICAgIGVudW1fbWVtYmVycyA9IFtdCisgICAgICAgIGZvciBtZW1iZXIgaW4ganNvbl9lbnVtWyJl
bnVtIl06CisgICAgICAgICAgICBlbnVtX21lbWJlcnMuYXBwZW5kKCIlczogXCIlc1wiIiAlIChm
aXhfY2FtZWxfY2FzZShtZW1iZXIpLCBtZW1iZXIpKQorCisgICAgICAgIEdlbmVyYXRvci5iYWNr
ZW5kX2pzX2RvbWFpbl9pbml0aWFsaXplcl9saXN0LmFwcGVuZCgiSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckVudW0oXCIlc1wiLCB7JXN9KTtcbiIgJSAoCisgICAgICAgICAgICBlbnVtX25hbWUs
ICIsICIuam9pbihlbnVtX21lbWJlcnMpKSkKKworICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYg
cHJvY2Vzc19ldmVudChqc29uX2V2ZW50LCBkb21haW5fbmFtZSwgZnJvbnRlbmRfbWV0aG9kX2Rl
Y2xhcmF0aW9uX2xpbmVzKToKICAgICAgICAgZXZlbnRfbmFtZSA9IGpzb25fZXZlbnRbIm5hbWUi
XQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRT
b3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMKaW5kZXggNzAwMDk2N2Y1ZWZkNjA2MWMyODY4NTMwNWRkNDVjZmRjZTU0MDc2ZC4uYTM4Zjc3
NjU1ZTcyZTMxNDE2NzNiMGZiOWM3MTUwMTkyODk1ZWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMTA4OSw3ICsxMDg5LDcg
QEAgSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0ZVNjb3BlSnNvbiA9IGZ1bmN0
aW9uKHNjb3BlVHlwZUNvZGUsIHNjb3BlT2IKIAogICAgIHJldHVybiB7CiAgICAgICAgIG9iamVj
dDogaW5qZWN0ZWRTY3JpcHQuX3dyYXBPYmplY3Qoc2NvcGVPYmplY3QsIGdyb3VwSWQpLAotICAg
ICAgICB0eXBlOiBzY29wZVR5cGVOYW1lc1tzY29wZVR5cGVDb2RlXQorICAgICAgICB0eXBlOiAv
KiogQHR5cGUge0RlYnVnZ2VyQWdlbnQuU2NvcGVUeXBlfSAqLyAoc2NvcGVUeXBlTmFtZXNbc2Nv
cGVUeXBlQ29kZV0pCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kLmpzCmluZGV4IGMyNzIyYjM0ZDVlODJj
MjZhNjFjNWQ3ZWI0YmJhMjFhMTUwZGQ1ZWMuLjg2ZDZjMTVlM2VjMTU1ZWI2ZmJlNzJhYjEwNTlh
MGQ3ODBmYTQ1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSW5zcGVjdG9yQmFja2VuZC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanMKQEAgLTYwLDIwICs2MCwzNiBAQCBJbnNwZWN0b3JC
YWNrZW5kQ2xhc3MucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gY2FsbGJhY2tJZDsKICAg
ICB9LAogCi0gICAgcmVnaXN0ZXJDb21tYW5kOiBmdW5jdGlvbihtZXRob2QsIHNpZ25hdHVyZSwg
cmVwbHlBcmdzKQorICAgIF9nZXRBZ2VudDogZnVuY3Rpb24oZG9tYWluKQogICAgIHsKLSAgICAg
ICAgdmFyIGRvbWFpbkFuZE1ldGhvZCA9IG1ldGhvZC5zcGxpdCgiLiIpOwotICAgICAgICB2YXIg
YWdlbnROYW1lID0gZG9tYWluQW5kTWV0aG9kWzBdICsgIkFnZW50IjsKKyAgICAgICAgdmFyIGFn
ZW50TmFtZSA9IGRvbWFpbiArICJBZ2VudCI7CiAgICAgICAgIGlmICghd2luZG93W2FnZW50TmFt
ZV0pCiAgICAgICAgICAgICB3aW5kb3dbYWdlbnROYW1lXSA9IHt9OworICAgICAgICByZXR1cm4g
d2luZG93W2FnZW50TmFtZV07CisgICAgfSwKIAotICAgICAgICB3aW5kb3dbYWdlbnROYW1lXVtk
b21haW5BbmRNZXRob2RbMV1dID0gdGhpcy5fc2VuZE1lc3NhZ2VUb0JhY2tlbmQuYmluZCh0aGlz
LCBtZXRob2QsIHNpZ25hdHVyZSk7Ci0gICAgICAgIHdpbmRvd1thZ2VudE5hbWVdW2RvbWFpbkFu
ZE1ldGhvZFsxXV1bImludm9rZSJdID0gdGhpcy5faW52b2tlLmJpbmQodGhpcywgbWV0aG9kLCBz
aWduYXR1cmUpOworICAgIHJlZ2lzdGVyQ29tbWFuZDogZnVuY3Rpb24obWV0aG9kLCBzaWduYXR1
cmUsIHJlcGx5QXJncykKKyAgICB7CisgICAgICAgIHZhciBkb21haW5BbmRNZXRob2QgPSBtZXRo
b2Quc3BsaXQoIi4iKTsKKyAgICAgICAgdmFyIGFnZW50ID0gdGhpcy5fZ2V0QWdlbnQoZG9tYWlu
QW5kTWV0aG9kWzBdKTsKKworICAgICAgICBhZ2VudFtkb21haW5BbmRNZXRob2RbMV1dID0gdGhp
cy5fc2VuZE1lc3NhZ2VUb0JhY2tlbmQuYmluZCh0aGlzLCBtZXRob2QsIHNpZ25hdHVyZSk7Cisg
ICAgICAgIGFnZW50W2RvbWFpbkFuZE1ldGhvZFsxXV1bImludm9rZSJdID0gdGhpcy5faW52b2tl
LmJpbmQodGhpcywgbWV0aG9kLCBzaWduYXR1cmUpOwogICAgICAgICB0aGlzLl9yZXBseUFyZ3Nb
bWV0aG9kXSA9IHJlcGx5QXJnczsKIAogICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7
CiAgICAgfSwKIAorICAgIHJlZ2lzdGVyRW51bTogZnVuY3Rpb24odHlwZSwgdmFsdWVzKQorICAg
IHsKKyAgICAgICAgdmFyIGRvbWFpbkFuZE1ldGhvZCA9IHR5cGUuc3BsaXQoIi4iKTsKKyAgICAg
ICAgdmFyIGFnZW50ID0gdGhpcy5fZ2V0QWdlbnQoZG9tYWluQW5kTWV0aG9kWzBdKTsKKworICAg
ICAgICBhZ2VudFtkb21haW5BbmRNZXRob2RbMV1dID0gdmFsdWVzOworCisgICAgICAgIHRoaXMu
X2luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgcmVnaXN0ZXJFdmVudDogZnVuY3Rp
b24oZXZlbnROYW1lLCBwYXJhbXMpCiAgICAgewogICAgICAgICB0aGlzLl9ldmVudEFyZ3NbZXZl
bnROYW1lXSA9IHBhcmFtczsKQEAgLTI3NywxMSArMjkzLDQyIEBAIEluc3BlY3RvckJhY2tlbmRD
bGFzcy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmF3VHlwZXNbZG9tYWluLmRvbWFp
biArICIuIiArIHR5cGUuaWRdID0ganNUeXBlc1t0eXBlLnR5cGVdIHx8IHR5cGUudHlwZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRvVXBwZXJDYXNlKGdy
b3VwSW5kZXgsIGdyb3VwMCwgZ3JvdXAxKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
W2dyb3VwMCwgZ3JvdXAxXVtncm91cEluZGV4XS50b1VwcGVyQ2FzZSgpOworICAgICAgICB9Cisg
ICAgICAgIGZ1bmN0aW9uIGdlbmVyYXRlRW51bShlbnVtTmFtZSwgaXRlbXMpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBtZW1iZXJzID0gW10KKyAgICAgICAgICAgIGZvciAodmFyIG0gPSAw
OyBtIDwgaXRlbXMubGVuZ3RoOyArK20pIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBp
dGVtc1ttXTsKKyAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHZhbHVlLnJlcGxhY2UoLy0oXHcp
L2csIHRvVXBwZXJDYXNlLmJpbmQobnVsbCwgMSkpLnRvVGl0bGVDYXNlKCk7CisgICAgICAgICAg
ICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgvSFRNTHxYTUx8V01MfEFQSS9pZywgdG9VcHBlckNh
c2UuYmluZChudWxsLCAwKSk7CisgICAgICAgICAgICAgICAgbWVtYmVycy5wdXNoKG5hbWUgKyAi
OiBcIiIgKyB2YWx1ZSArIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
Ikluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKFwiIiArIGVudW1OYW1lICsgInNcIiwgeyIg
KyBtZW1iZXJzLmpvaW4oIiwgIikgKyAifSk7XG4iOworICAgICAgICB9CiAgICAgCiAgICAgICAg
IHZhciByZXN1bHQgPSBbXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb21haW5zLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgZG9tYWluID0gZG9tYWluc1tpXTsKIAorICAg
ICAgICAgICAgdmFyIHR5cGVzID0gZG9tYWluWyJ0eXBlcyJdIHx8IFtdOworICAgICAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCB0eXBlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAg
IHZhciB0eXBlID0gdHlwZXNbal07CisgICAgICAgICAgICAgICAgaWYgKCh0eXBlWyJ0eXBlIl0g
PT09ICJzdHJpbmciKSAmJiB0eXBlWyJlbnVtIl0pCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5wdXNoKGdlbmVyYXRlRW51bShkb21haW4uZG9tYWluICsgIi4iICsgdHlwZS5pZCwgdHlwZVsi
ZW51bSJdKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZVsidHlwZSJdID09PSAib2Jq
ZWN0IikgeworICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHR5cGVbInByb3Bl
cnRpZXMiXSB8fCBbXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBw
cm9wZXJ0aWVzLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJv
cGVydHkgPSBwcm9wZXJ0aWVzW2tdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9w
ZXJ0eVsidHlwZSJdID09PSAic3RyaW5nIikgJiYgcHJvcGVydHlbImVudW0iXSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChnZW5lcmF0ZUVudW0oZG9tYWluLmRvbWFp
biArICIuIiArIHR5cGUuaWQgKyBwcm9wZXJ0eVsibmFtZSJdLnRvVGl0bGVDYXNlKCksIHByb3Bl
cnR5WyJlbnVtIl0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgdmFyIGNvbW1hbmRzID0gZG9tYWluWyJjb21t
YW5kcyJdIHx8IFtdOyAgICAKICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29tbWFu
ZHMubGVuZ3RoOyArK2opIHsKICAgICAgICAgICAgICAgICB2YXIgY29tbWFuZCA9IGNvbW1hbmRz
W2pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a01hbmFnZXIuanMKaW5kZXggNWYzNTc2YTdhMDljYTUxNWU1OTA2ZTQyNjExYjZmN2YyNzI5YTAz
Ny4uOGVkYTE4NmY2MDkwNDdjYTY1ODMxYmU4YzM5NjQ1M2E1NWM1ZGUzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBA
IC0yNjMsNyArMjYzLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgY2hlY2sgdG8gdGhlIGJhY2tl
bmQuCiAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgdGhpcy5yZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgZnJh
bWVJZCwgbG9hZGVySWQsIHRpbWUsICJPdGhlciIsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAg
ICAgICAgdGhpcy5yZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQs
IHRpbWUsIFBhZ2VBZ2VudC5SZXNvdXJjZVR5cGUuT3RoZXIsIHJlZGlyZWN0UmVzcG9uc2UpOwog
ICAgICAgICAgICAgbmV0d29ya1JlcXVlc3QgPSB0aGlzLl9hcHBlbmRSZWRpcmVjdChyZXF1ZXN0
SWQsIHRpbWUsIHJlcXVlc3QudXJsKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBuZXR3
b3JrUmVxdWVzdCA9IHRoaXMuX2NyZWF0ZU5ldHdvcmtSZXF1ZXN0KHJlcXVlc3RJZCwgZnJhbWVJ
ZCwgbG9hZGVySWQsIHJlcXVlc3QudXJsLCBkb2N1bWVudFVSTCwgaW5pdGlhdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggZTlj
YTQ3YTQ2ZmQ0NDFmNzJjNTBmODljMWIxMzRkM2UzZmJiYmM1Ny4uODRjMzhmN2ZlZjJlN2Q1OTE0
OWYxNDgyNmJiY2MzNTdlZWM1ZDQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTEzOCw2ICsxMzgsMTEgQEAgU3RyaW5nLnByb3Rv
dHlwZS50cmltVVJMID0gZnVuY3Rpb24oYmFzZVVSTERvbWFpbikKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitTdHJpbmcucHJvdG90eXBlLnRvVGl0bGVDYXNlID0gZnVuY3Rpb24oKQoreworICAg
IHJldHVybiB0aGlzLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgdGhpcy5zdWJzdHJp
bmcoMSk7Cit9CisKIC8qKgogICogQHBhcmFtIHtzdHJpbmd9IG90aGVyCiAgKiBAcmV0dXJuIHtu
dW1iZXJ9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGVfcHJv
dG9jb2xfZXh0ZXJucy5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZV9wcm90
b2NvbF9leHRlcm5zLnB5CmluZGV4IDg2MDBkMTZiMTgxNWFiNThiZTMwN2ViN2YwM2ZiYTAyNjhj
YTc4ODkuLmJlZWFmNTQ4MGFlMGZkNTBhNjliMWQ4Nzk5ZWE4YmZkY2E2OTliODAgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZV9wcm90b2NvbF9leHRlcm5zLnB5
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZV9wcm90b2NvbF9leHRlcm5z
LnB5CkBAIC0yNyw2ICsyNyw4IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitp
bXBvcnQgcmUKKwogdHlwZV90cmFpdHMgPSB7CiAgICAgImFueSI6ICIqIiwKICAgICAic3RyaW5n
IjogInN0cmluZyIsCkBAIC00Niw2ICs0OCwyMyBAQCBkZWYgZnVsbF9xdWFsaWZpZWRfdHlwZV9p
ZChkb21haW5fbmFtZSwgdHlwZV9pZCk6CiAgICAgcmV0dXJuIHR5cGVfaWQKIAogCitkZWYgZml4
X2NhbWVsX2Nhc2UobmFtZSk6CisgICAgcmVmaW5lZCA9IHJlLnN1YihyJy0oXHcpJywgbGFtYmRh
IHBhdDogcGF0Lmdyb3VwKDEpLnVwcGVyKCksIG5hbWUpCisgICAgcmVmaW5lZCA9IHRvX3RpdGxl
X2Nhc2UocmVmaW5lZCkKKyAgICByZXR1cm4gcmUuc3ViKHInKD9pKUhUTUx8WE1MfFdNTHxBUEkn
LCBsYW1iZGEgcGF0OiBwYXQuZ3JvdXAoMCkudXBwZXIoKSwgcmVmaW5lZCkKKworCitkZWYgdG9f
dGl0bGVfY2FzZShuYW1lKToKKyAgICByZXR1cm4gbmFtZVs6MV0udXBwZXIoKSArIG5hbWVbMTpd
CisKKworZGVmIGdlbmVyYXRlX2VudW0obmFtZSwganNvbik6CisgICAgZW51bV9tZW1iZXJzID0g
W10KKyAgICBmb3IgbWVtYmVyIGluIGpzb25bImVudW0iXToKKyAgICAgICAgZW51bV9tZW1iZXJz
LmFwcGVuZCgiICAgICVzOiBcIiVzXCIiICUgKGZpeF9jYW1lbF9jYXNlKG1lbWJlciksIG1lbWJl
cikpCisgICAgcmV0dXJuICJcbi8qKiBAZW51bSB7c3RyaW5nfSAqL1xuJXMgPSB7XG4lc1xufTtc
biIgJSAobmFtZSwgKCIsXG4iLmpvaW4oZW51bV9tZW1iZXJzKSkpCisKKwogZGVmIHBhcmFtX3R5
cGUoZG9tYWluX25hbWUsIHBhcmFtKToKICAgICBpZiAidHlwZSIgaW4gcGFyYW06CiAgICAgICAg
IGlmIHBhcmFtWyJ0eXBlIl0gPT0gImFycmF5IjoKQEAgLTk3LDExICsxMTYsMTggQEAgUHJvdG9j
b2wuRXJyb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4ID0gIiIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIm9wdGlvbmFsIiBpbiBwcm9wZXJ0eSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9ICJ8dW5kZWZpbmVkIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAo
cHJvcGVydHlbIm5hbWUiXSwgcGFyYW1fdHlwZShkb21haW5fbmFtZSwgcHJvcGVydHkpLCBzdWZm
aXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJlbnVtIiBpbiBwcm9wZXJ0eToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bV9uYW1lID0gIiVzQWdlbnQuJXMl
cyIgJSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0sIHRvX3RpdGxlX2Nhc2UocHJvcGVydHlbIm5h
bWUiXSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRl
KGdlbmVyYXRlX2VudW0oZW51bV9uYW1lLCBwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5hcHBlbmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlb
Im5hbWUiXSwgZW51bV9uYW1lLCBzdWZmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkZWZfYXJncy5hcHBl
bmQoIiVzOiglcyVzKSIgJSAocHJvcGVydHlbIm5hbWUiXSwgcGFyYW1fdHlwZShkb21haW5fbmFt
ZSwgcHJvcGVydHkpLCBzdWZmaXgpKQogICAgICAgICAgICAgICAgICAgICBpZiAodHlwZWRlZl9h
cmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKCJcbi8qKiBA
dHlwZWRlZiB7eyVzfXxudWxsfSAqL1xuJXNBZ2VudC4lcztcbiIgJSAoIiwgIi5qb2luKHR5cGVk
ZWZfYXJncyksIGRvbWFpbl9uYW1lLCB0eXBlWyJpZCJdKSkKICAgICAgICAgICAgICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKCJcbi8qKiBA
dHlwZWRlZiB7T2JqZWN0fSAqL1xuJXNBZ2VudC4lcztcbiIgJSAoZG9tYWluX25hbWUsIHR5cGVb
ImlkIl0pKQorICAgICAgICAgICAgICAgIGVsaWYgdHlwZVsidHlwZSJdID09ICJzdHJpbmciIGFu
ZCAiZW51bSIgaW4gdHlwZToKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUo
Z2VuZXJhdGVfZW51bSgiJXNBZ2VudC4lcyIgJSAoZG9tYWluX25hbWUsIHR5cGVbImlkIl0pLCB0
eXBlKSkKICAgICAgICAgICAgICAgICBlbGlmIHR5cGVbInR5cGUiXSA9PSAiYXJyYXkiOgogICAg
ICAgICAgICAgICAgICAgICBzdWZmaXggPSAiIgogICAgICAgICAgICAgICAgICAgICBpZiAoIm9w
dGlvbmFsIiBpbiBwcm9wZXJ0eSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190280</attachid>
            <date>2013-02-26 07:31:55 -0800</date>
            <delta_ts>2013-02-26 07:34:08 -0800</delta_ts>
            <desc>Difference in generated files.</desc>
            <filename>gen.diff</filename>
            <type>text/plain</type>
            <size>20780</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ldXN0YXMvb2xkL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcyBiL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ldXN0YXMvbmV3L0luc3Bl
Y3RvckJhY2tlbmRDb21tYW5kcy5qcwppbmRleCBmYmViOTgwLi4zNDk4ZDdlIDEwMDY0NAotLS0g
YS91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvZXVzdGFzL29sZC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKKysrIGIvdXNyL2xvY2FsL2dvb2dsZS9ob21lL2V1c3Rhcy9uZXcvSW5zcGVjdG9yQmFj
a2VuZENvbW1hbmRzLmpzCkBAIC0yMSw2ICsyMSw3IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDb21tYW5kKCJNZW1vcnkuZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbiIsIFt7Im5hbWUi
CiAKIC8vIFBhZ2UuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUGFnZURpc3BhdGNoZXIgPSBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlci5iaW5kKEluc3BlY3RvckJh
Y2tlbmQsICJQYWdlIik7CitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiUGFnZS5SZXNv
dXJjZVR5cGUiLCB7RG9jdW1lbnQ6ICJEb2N1bWVudCIsIFN0eWxlc2hlZXQ6ICJTdHlsZXNoZWV0
IiwgSW1hZ2U6ICJJbWFnZSIsIEZvbnQ6ICJGb250IiwgU2NyaXB0OiAiU2NyaXB0IiwgWEhSOiAi
WEhSIiwgV2ViU29ja2V0OiAiV2ViU29ja2V0IiwgT3RoZXI6ICJPdGhlciJ9KTsKIEluc3BlY3Rv
ckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiUGFnZS5kb21Db250ZW50RXZlbnRGaXJlZCIsIFsidGlt
ZXN0YW1wIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJQYWdlLmxvYWRFdmVu
dEZpcmVkIiwgWyJ0aW1lc3RhbXAiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQo
IlBhZ2UuZnJhbWVOYXZpZ2F0ZWQiLCBbImZyYW1lIl0pOwpAQCAtNzEsNiArNzIsMTAgQEAgSW5z
cGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIlBhZ2UuaGFuZGxlSmF2YVNjcmlwdERpYWxv
ZyIsIFt7Im5hbWUiOiAiYWNjZXAKIAogLy8gUnVudGltZS4KIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJSdW50aW1lRGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5E
aXNwYXRjaGVyLmJpbmQoSW5zcGVjdG9yQmFja2VuZCwgIlJ1bnRpbWUiKTsKK0luc3BlY3RvckJh
Y2tlbmQucmVnaXN0ZXJFbnVtKCJSdW50aW1lLlJlbW90ZU9iamVjdFR5cGUiLCB7T2JqZWN0OiAi
b2JqZWN0IiwgRnVuY3Rpb246ICJmdW5jdGlvbiIsIFVuZGVmaW5lZDogInVuZGVmaW5lZCIsIFN0
cmluZzogInN0cmluZyIsIE51bWJlcjogIm51bWJlciIsIEJvb2xlYW46ICJib29sZWFuIn0pOwor
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlJ1bnRpbWUuUmVtb3RlT2JqZWN0U3VidHlw
ZSIsIHtBcnJheTogImFycmF5IiwgTnVsbDogIm51bGwiLCBOb2RlOiAibm9kZSIsIFJlZ2V4cDog
InJlZ2V4cCIsIERhdGU6ICJkYXRlIn0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0o
IlJ1bnRpbWUuUHJvcGVydHlQcmV2aWV3VHlwZSIsIHtPYmplY3Q6ICJvYmplY3QiLCBGdW5jdGlv
bjogImZ1bmN0aW9uIiwgVW5kZWZpbmVkOiAidW5kZWZpbmVkIiwgU3RyaW5nOiAic3RyaW5nIiwg
TnVtYmVyOiAibnVtYmVyIiwgQm9vbGVhbjogImJvb2xlYW4ifSk7CitJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyRW51bSgiUnVudGltZS5Qcm9wZXJ0eVByZXZpZXdTdWJ0eXBlIiwge0FycmF5OiAi
YXJyYXkiLCBOdWxsOiAibnVsbCIsIE5vZGU6ICJub2RlIiwgUmVnZXhwOiAicmVnZXhwIiwgRGF0
ZTogImRhdGUifSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIlJ1bnRpbWUuZXhl
Y3V0aW9uQ29udGV4dENyZWF0ZWQiLCBbImNvbnRleHQiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJl
Z2lzdGVyQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIFt7Im5hbWUiOiAiZXhwcmVzc2lvbiIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogIm9iamVjdEdy
b3VwIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJpbmNs
dWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX0s
IHsibmFtZSI6ICJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUiLCAidHlwZSI6
ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJjb250ZXh0SWQiLCAidHlw
ZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlfSwgeyJuYW1lIjogInJldHVybkJ5VmFsdWUi
LCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJnZW5lcmF0
ZVByZXZpZXciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX1dLCBbInJlc3Vs
dCIsICJ3YXNUaHJvd24iXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiUnVu
dGltZS5jYWxsRnVuY3Rpb25PbiIsIFt7Im5hbWUiOiAib2JqZWN0SWQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJmdW5jdGlvbkRlY2xhcmF0aW9uIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiYXJndW1lbnRz
IiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJkb05vdFBh
dXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJyZXR1cm5CeVZhbHVlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZ2VuZXJhdGVQcmV2aWV3IiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWV9XSwgWyJyZXN1bHQiLCAid2FzVGhyb3duIl0pOwpA
QCAtODMsNiArODgsOSBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiUnVudGlt
ZS5kaXNhYmxlIiwgW10sIFtdKTsKIAogLy8gQ29uc29sZS4KIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJDb25zb2xlRGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5E
aXNwYXRjaGVyLmJpbmQoSW5zcGVjdG9yQmFja2VuZCwgIkNvbnNvbGUiKTsKK0luc3BlY3RvckJh
Y2tlbmQucmVnaXN0ZXJFbnVtKCJDb25zb2xlLkNvbnNvbGVNZXNzYWdlU291cmNlIiwge0hUTUw6
ICJodG1sIiwgV01MOiAid21sIiwgWE1MOiAieG1sIiwgSmF2YXNjcmlwdDogImphdmFzY3JpcHQi
LCBOZXR3b3JrOiAibmV0d29yayIsIENvbnNvbGVBUEk6ICJjb25zb2xlLWFwaSIsIE90aGVyOiAi
b3RoZXIifSk7CitJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiQ29uc29sZS5Db25zb2xl
TWVzc2FnZUxldmVsIiwge1RpcDogInRpcCIsIExvZzogImxvZyIsIFdhcm5pbmc6ICJ3YXJuaW5n
IiwgRXJyb3I6ICJlcnJvciIsIERlYnVnOiAiZGVidWcifSk7CitJbnNwZWN0b3JCYWNrZW5kLnJl
Z2lzdGVyRW51bSgiQ29uc29sZS5Db25zb2xlTWVzc2FnZVR5cGUiLCB7TG9nOiAibG9nIiwgRGly
OiAiZGlyIiwgRGlyeG1sOiAiZGlyeG1sIiwgVGFibGU6ICJ0YWJsZSIsIFRyYWNlOiAidHJhY2Ui
LCBDbGVhcjogImNsZWFyIiwgU3RhcnRHcm91cDogInN0YXJ0R3JvdXAiLCBTdGFydEdyb3VwQ29s
bGFwc2VkOiAic3RhcnRHcm91cENvbGxhcHNlZCIsIEVuZEdyb3VwOiAiZW5kR3JvdXAiLCBBc3Nl
cnQ6ICJhc3NlcnQiLCBUaW1pbmc6ICJ0aW1pbmciLCBQcm9maWxlOiAicHJvZmlsZSIsIFByb2Zp
bGVFbmQ6ICJwcm9maWxlRW5kIn0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJD
b25zb2xlLm1lc3NhZ2VBZGRlZCIsIFsibWVzc2FnZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJFdmVudCgiQ29uc29sZS5tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkIiwgWyJjb3VudCJd
KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiQ29uc29sZS5tZXNzYWdlc0NsZWFy
ZWQiLCBbXSk7CkBAIC05NSw2ICsxMDMsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29t
bWFuZCgiQ29uc29sZS5hZGRJbnNwZWN0ZWRIZWFwT2JqZWN0IiwgW3sibmFtZSI6ICJoZQogCiAv
LyBOZXR3b3JrLgogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rlck5ldHdvcmtEaXNwYXRjaGVyID0g
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JC
YWNrZW5kLCAiTmV0d29yayIpOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIk5ldHdv
cmsuSW5pdGlhdG9yVHlwZSIsIHtQYXJzZXI6ICJwYXJzZXIiLCBTY3JpcHQ6ICJzY3JpcHQiLCBP
dGhlcjogIm90aGVyIn0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJOZXR3b3Jr
LnJlcXVlc3RXaWxsQmVTZW50IiwgWyJyZXF1ZXN0SWQiLCAiZnJhbWVJZCIsICJsb2FkZXJJZCIs
ICJkb2N1bWVudFVSTCIsICJyZXF1ZXN0IiwgInRpbWVzdGFtcCIsICJpbml0aWF0b3IiLCAicmVk
aXJlY3RSZXNwb25zZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiTmV0d29y
ay5yZXF1ZXN0U2VydmVkRnJvbUNhY2hlIiwgWyJyZXF1ZXN0SWQiXSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRXZlbnQoIk5ldHdvcmsucmVzcG9uc2VSZWNlaXZlZCIsIFsicmVxdWVzdElk
IiwgImZyYW1lSWQiLCAibG9hZGVySWQiLCAidGltZXN0YW1wIiwgInR5cGUiLCAicmVzcG9uc2Ui
XSk7CkBAIC0xMzEsNiArMTQwLDggQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQo
IkRhdGFiYXNlLmV4ZWN1dGVTUUwiLCBbeyJuYW1lIjogImRhdGFiYXNlSWQiLAogCiAvLyBJbmRl
eGVkREIuCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVySW5kZXhlZERCRGlzcGF0Y2hlciA9IElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5EaXNwYXRjaGVyLmJpbmQoSW5zcGVjdG9yQmFj
a2VuZCwgIkluZGV4ZWREQiIpOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkluZGV4
ZWREQi5LZXlUeXBlIiwge051bWJlcjogIm51bWJlciIsIFN0cmluZzogInN0cmluZyIsIERhdGU6
ICJkYXRlIiwgQXJyYXk6ICJhcnJheSJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVt
KCJJbmRleGVkREIuS2V5UGF0aFR5cGUiLCB7TnVsbDogIm51bGwiLCBTdHJpbmc6ICJzdHJpbmci
LCBBcnJheTogImFycmF5In0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIklu
ZGV4ZWREQi5lbmFibGUiLCBbXSwgW10pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1h
bmQoIkluZGV4ZWREQi5kaXNhYmxlIiwgW10sIFtdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDb21tYW5kKCJJbmRleGVkREIucmVxdWVzdERhdGFiYXNlTmFtZXNGb3JGcmFtZSIsIFt7Im5h
bWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsi
c2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lcyJdKTsKQEAgLTIxNSw2ICsyMjYsMTAgQEAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRPTS5zZXRGaWxlSW5wdXRGaWxlcyIs
IFt7Im5hbWUiOiAibm9kZUlkIiwgInQKIAogLy8gQ1NTLgogSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckNTU0Rpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0
Y2hlci5iaW5kKEluc3BlY3RvckJhY2tlbmQsICJDU1MiKTsKK0luc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJFbnVtKCJDU1MuU3R5bGVTaGVldE9yaWdpbiIsIHtVc2VyOiAidXNlciIsIFVzZXJBZ2Vu
dDogInVzZXItYWdlbnQiLCBJbnNwZWN0b3I6ICJpbnNwZWN0b3IiLCBSZWd1bGFyOiAicmVndWxh
ciJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJDU1MuQ1NTUHJvcGVydHlTdGF0
dXMiLCB7QWN0aXZlOiAiYWN0aXZlIiwgSW5hY3RpdmU6ICJpbmFjdGl2ZSIsIERpc2FibGVkOiAi
ZGlzYWJsZWQiLCBTdHlsZTogInN0eWxlIn0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVu
dW0oIkNTUy5DU1NNZWRpYVNvdXJjZSIsIHtNZWRpYVJ1bGU6ICJtZWRpYVJ1bGUiLCBJbXBvcnRS
dWxlOiAiaW1wb3J0UnVsZSIsIExpbmtlZFNoZWV0OiAibGlua2VkU2hlZXQiLCBJbmxpbmVTaGVl
dDogImlubGluZVNoZWV0In0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkNTUy5S
ZWdpb25SZWdpb25PdmVyc2V0Iiwge092ZXJzZXQ6ICJvdmVyc2V0IiwgRml0OiAiZml0IiwgRW1w
dHk6ICJlbXB0eSJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiQ1NTLm1lZGlh
UXVlcnlSZXN1bHRDaGFuZ2VkIiwgW10pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50
KCJDU1Muc3R5bGVTaGVldENoYW5nZWQiLCBbInN0eWxlU2hlZXRJZCJdKTsKIEluc3BlY3RvckJh
Y2tlbmQucmVnaXN0ZXJFdmVudCgiQ1NTLm5hbWVkRmxvd0NyZWF0ZWQiLCBbIm5hbWVkRmxvdyJd
KTsKQEAgLTI1MSw2ICsyNjYsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgi
VGltZWxpbmUuY2FuTW9uaXRvck1haW5UaHJlYWQiLCBbXSwgWyJyZXN1bHQiXQogCiAvLyBEZWJ1
Z2dlci4KIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEZWJ1Z2dlckRpc3BhdGNoZXIgPSBJbnNw
ZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlci5iaW5kKEluc3BlY3RvckJhY2tl
bmQsICJEZWJ1Z2dlciIpOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkRlYnVnZ2Vy
LlNjb3BlVHlwZSIsIHtHbG9iYWw6ICJnbG9iYWwiLCBMb2NhbDogImxvY2FsIiwgV2l0aDogIndp
dGgiLCBDbG9zdXJlOiAiY2xvc3VyZSIsIENhdGNoOiAiY2F0Y2gifSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRXZlbnQoIkRlYnVnZ2VyLmdsb2JhbE9iamVjdENsZWFyZWQiLCBbXSk7CiBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsIFsi
c2NyaXB0SWQiLCAidXJsIiwgInN0YXJ0TGluZSIsICJzdGFydENvbHVtbiIsICJlbmRMaW5lIiwg
ImVuZENvbHVtbiIsICJpc0NvbnRlbnRTY3JpcHQiLCAic291cmNlTWFwVVJMIiwgImhhc1NvdXJj
ZVVSTCJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiRGVidWdnZXIuc2NyaXB0
RmFpbGVkVG9QYXJzZSIsIFsidXJsIiwgInNjcmlwdFNvdXJjZSIsICJzdGFydExpbmUiLCAiZXJy
b3JMaW5lIiwgImVycm9yTWVzc2FnZSJdKTsKQEAgLTI4NSw2ICszMDEsNyBAQCBJbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIuc2V0T3ZlcmxheU1lc3NhZ2UiLCBbeyJu
YW1lIjogIm1lc3NhZwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2Vy
LnNldFZhcmlhYmxlVmFsdWUiLCBbeyJuYW1lIjogInNjb3BlTnVtYmVyIiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidmFyaWFibGVOYW1lIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAibmV3VmFsdWUiLCAidHlw
ZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJjYWxsRnJhbWVJZCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZnVuY3Rpb25P
YmplY3RJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9XSwgW10pOwogCiAv
LyBET01EZWJ1Z2dlci4KK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJET01EZWJ1Z2dl
ci5ET01CcmVha3BvaW50VHlwZSIsIHtTdWJ0cmVlTW9kaWZpZWQ6ICJzdWJ0cmVlLW1vZGlmaWVk
IiwgQXR0cmlidXRlTW9kaWZpZWQ6ICJhdHRyaWJ1dGUtbW9kaWZpZWQiLCBOb2RlUmVtb3ZlZDog
Im5vZGUtcmVtb3ZlZCJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJET01E
ZWJ1Z2dlci5zZXRET01CcmVha3BvaW50IiwgW3sibmFtZSI6ICJub2RlSWQiLCAidHlwZSI6ICJu
dW1iZXIiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rl
ckNvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZURPTUJyZWFrcG9pbnQiLCBbeyJuYW1lIjogIm5v
ZGVJZCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInR5
cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbXSk7CiBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRE9NRGVidWdnZXIuc2V0RXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnQiLCBbeyJuYW1lIjogImV2ZW50TmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IGZhbHNlfV0sIFtdKTsKQEAgLTI5Niw2ICszMTMsNyBAQCBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyQ29tbWFuZCgiRE9NRGVidWdnZXIucmVtb3ZlWEhSQnJlYWtwb2ludCIsIFt7Im5h
bWUiOiAidQogCiAvLyBQcm9maWxlci4KIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJQcm9maWxl
ckRpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlci5i
aW5kKEluc3BlY3RvckJhY2tlbmQsICJQcm9maWxlciIpOworSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckVudW0oIlByb2ZpbGVyLlByb2ZpbGVIZWFkZXJUeXBlSWQiLCB7Q1BVOiAiQ1BVIiwgQ1NT
OiAiQ1NTIiwgSEVBUDogIkhFQVAifSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQo
IlByb2ZpbGVyLmFkZFByb2ZpbGVIZWFkZXIiLCBbImhlYWRlciJdKTsKIEluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJFdmVudCgiUHJvZmlsZXIuYWRkSGVhcFNuYXBzaG90Q2h1bmsiLCBbInVpZCIs
ICJjaHVuayJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiUHJvZmlsZXIuZmlu
aXNoSGVhcFNuYXBzaG90IiwgWyJ1aWQiXSk7CmRpZmYgLS1naXQgYS91c3IvbG9jYWwvZ29vZ2xl
L2hvbWUvZXVzdGFzL29sZC9wcm90b2NvbC1leHRlcm5zLmpzIGIvdXNyL2xvY2FsL2dvb2dsZS9o
b21lL2V1c3Rhcy9uZXcvcHJvdG9jb2wtZXh0ZXJucy5qcwppbmRleCAzY2YwMGJlLi4yNjNjMGM4
IDEwMDY0NAotLS0gYS91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvZXVzdGFzL29sZC9wcm90b2NvbC1l
eHRlcm5zLmpzCisrKyBiL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ldXN0YXMvbmV3L3Byb3RvY29s
LWV4dGVybnMuanMKQEAgLTgwLDggKzgwLDE3IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJN
ZW1vcnlEaXNwYXRjaGVyID0gZnVuY3Rpb24oZGlzcGF0Y2hlcikge30KIAogdmFyIFBhZ2VBZ2Vu
dCA9IHt9OwogCi0vKiogQHR5cGVkZWYge3N0cmluZ30gKi8KLVBhZ2VBZ2VudC5SZXNvdXJjZVR5
cGU7CisvKiogQGVudW0ge3N0cmluZ30gKi8KK1BhZ2VBZ2VudC5SZXNvdXJjZVR5cGUgPSB7Cisg
ICAgRG9jdW1lbnQ6ICJEb2N1bWVudCIsCisgICAgU3R5bGVzaGVldDogIlN0eWxlc2hlZXQiLAor
ICAgIEltYWdlOiAiSW1hZ2UiLAorICAgIEZvbnQ6ICJGb250IiwKKyAgICBTY3JpcHQ6ICJTY3Jp
cHQiLAorICAgIFhIUjogIlhIUiIsCisgICAgV2ViU29ja2V0OiAiV2ViU29ja2V0IiwKKyAgICBP
dGhlcjogIk90aGVyIgorfTsKIAogLyoqIEB0eXBlZGVmIHt7aWQ6KHN0cmluZyksIHBhcmVudElk
OihzdHJpbmd8dW5kZWZpbmVkKSwgbG9hZGVySWQ6KE5ldHdvcmtBZ2VudC5Mb2FkZXJJZCksIG5h
bWU6KHN0cmluZ3x1bmRlZmluZWQpLCB1cmw6KHN0cmluZyksIHNlY3VyaXR5T3JpZ2luOihzdHJp
bmd8dW5kZWZpbmVkKSwgbWltZVR5cGU6KHN0cmluZyl9fG51bGx9ICovCiBQYWdlQWdlbnQuRnJh
bWU7CkBAIC00NDcsMTMgKzQ1Niw1MSBAQCB2YXIgUnVudGltZUFnZW50ID0ge307CiAvKiogQHR5
cGVkZWYge3N0cmluZ30gKi8KIFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RJZDsKIAotLyoqIEB0
eXBlZGVmIHt7dHlwZTooc3RyaW5nKSwgc3VidHlwZTooc3RyaW5nfHVuZGVmaW5lZCksIGNsYXNz
TmFtZTooc3RyaW5nfHVuZGVmaW5lZCksIHZhbHVlOigqfHVuZGVmaW5lZCksIGRlc2NyaXB0aW9u
OihzdHJpbmd8dW5kZWZpbmVkKSwgb2JqZWN0SWQ6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RJ
ZHx1bmRlZmluZWQpLCBwcmV2aWV3OihSdW50aW1lQWdlbnQuT2JqZWN0UHJldmlld3x1bmRlZmlu
ZWQpfXxudWxsfSAqLworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitSdW50aW1lQWdlbnQuUmVtb3Rl
T2JqZWN0VHlwZSA9IHsKKyAgICBPYmplY3Q6ICJvYmplY3QiLAorICAgIEZ1bmN0aW9uOiAiZnVu
Y3Rpb24iLAorICAgIFVuZGVmaW5lZDogInVuZGVmaW5lZCIsCisgICAgU3RyaW5nOiAic3RyaW5n
IiwKKyAgICBOdW1iZXI6ICJudW1iZXIiLAorICAgIEJvb2xlYW46ICJib29sZWFuIgorfTsKKwor
LyoqIEBlbnVtIHtzdHJpbmd9ICovCitSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0U3VidHlwZSA9
IHsKKyAgICBBcnJheTogImFycmF5IiwKKyAgICBOdWxsOiAibnVsbCIsCisgICAgTm9kZTogIm5v
ZGUiLAorICAgIFJlZ2V4cDogInJlZ2V4cCIsCisgICAgRGF0ZTogImRhdGUiCit9OworCisvKiog
QHR5cGVkZWYge3t0eXBlOihSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0VHlwZSksIHN1YnR5cGU6
KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RTdWJ0eXBlfHVuZGVmaW5lZCksIGNsYXNzTmFtZToo
c3RyaW5nfHVuZGVmaW5lZCksIHZhbHVlOigqfHVuZGVmaW5lZCksIGRlc2NyaXB0aW9uOihzdHJp
bmd8dW5kZWZpbmVkKSwgb2JqZWN0SWQ6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RJZHx1bmRl
ZmluZWQpLCBwcmV2aWV3OihSdW50aW1lQWdlbnQuT2JqZWN0UHJldmlld3x1bmRlZmluZWQpfXxu
dWxsfSAqLwogUnVudGltZUFnZW50LlJlbW90ZU9iamVjdDsKIAogLyoqIEB0eXBlZGVmIHt7bG9z
c2xlc3M6KGJvb2xlYW4pLCBvdmVyZmxvdzooYm9vbGVhbiksIHByb3BlcnRpZXM6KEFycmF5LjxS
dW50aW1lQWdlbnQuUHJvcGVydHlQcmV2aWV3Pil9fG51bGx9ICovCiBSdW50aW1lQWdlbnQuT2Jq
ZWN0UHJldmlldzsKIAotLyoqIEB0eXBlZGVmIHt7bmFtZTooc3RyaW5nKSwgdHlwZTooc3RyaW5n
KSwgdmFsdWU6KHN0cmluZ3x1bmRlZmluZWQpLCB2YWx1ZVByZXZpZXc6KFJ1bnRpbWVBZ2VudC5P
YmplY3RQcmV2aWV3fHVuZGVmaW5lZCksIHN1YnR5cGU6KHN0cmluZ3x1bmRlZmluZWQpfXxudWxs
fSAqLworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitSdW50aW1lQWdlbnQuUHJvcGVydHlQcmV2aWV3
VHlwZSA9IHsKKyAgICBPYmplY3Q6ICJvYmplY3QiLAorICAgIEZ1bmN0aW9uOiAiZnVuY3Rpb24i
LAorICAgIFVuZGVmaW5lZDogInVuZGVmaW5lZCIsCisgICAgU3RyaW5nOiAic3RyaW5nIiwKKyAg
ICBOdW1iZXI6ICJudW1iZXIiLAorICAgIEJvb2xlYW46ICJib29sZWFuIgorfTsKKworLyoqIEBl
bnVtIHtzdHJpbmd9ICovCitSdW50aW1lQWdlbnQuUHJvcGVydHlQcmV2aWV3U3VidHlwZSA9IHsK
KyAgICBBcnJheTogImFycmF5IiwKKyAgICBOdWxsOiAibnVsbCIsCisgICAgTm9kZTogIm5vZGUi
LAorICAgIFJlZ2V4cDogInJlZ2V4cCIsCisgICAgRGF0ZTogImRhdGUiCit9OworCisvKiogQHR5
cGVkZWYge3tuYW1lOihzdHJpbmcpLCB0eXBlOihSdW50aW1lQWdlbnQuUHJvcGVydHlQcmV2aWV3
VHlwZSksIHZhbHVlOihzdHJpbmd8dW5kZWZpbmVkKSwgdmFsdWVQcmV2aWV3OihSdW50aW1lQWdl
bnQuT2JqZWN0UHJldmlld3x1bmRlZmluZWQpLCBzdWJ0eXBlOihSdW50aW1lQWdlbnQuUHJvcGVy
dHlQcmV2aWV3U3VidHlwZXx1bmRlZmluZWQpfXxudWxsfSAqLwogUnVudGltZUFnZW50LlByb3Bl
cnR5UHJldmlldzsKIAogLyoqIEB0eXBlZGVmIHt7bmFtZTooc3RyaW5nKSwgdmFsdWU6KFJ1bnRp
bWVBZ2VudC5SZW1vdGVPYmplY3R8dW5kZWZpbmVkKSwgd3JpdGFibGU6KGJvb2xlYW58dW5kZWZp
bmVkKSwgZ2V0OihSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0fHVuZGVmaW5lZCksIHNldDooUnVu
dGltZUFnZW50LlJlbW90ZU9iamVjdHx1bmRlZmluZWQpLCBjb25maWd1cmFibGU6KGJvb2xlYW4p
LCBlbnVtZXJhYmxlOihib29sZWFuKSwgd2FzVGhyb3duOihib29sZWFufHVuZGVmaW5lZCksIGlz
T3duOihib29sZWFufHVuZGVmaW5lZCl9fG51bGx9ICovCkBAIC01NTgsNyArNjA1LDQ0IEBAIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJSdW50aW1lRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKGRpc3Bh
dGNoZXIpIHt9CiAKIHZhciBDb25zb2xlQWdlbnQgPSB7fTsKIAotLyoqIEB0eXBlZGVmIHt7c291
cmNlOihzdHJpbmcpLCBsZXZlbDooc3RyaW5nKSwgdGV4dDooc3RyaW5nKSwgdHlwZTooc3RyaW5n
fHVuZGVmaW5lZCksIHVybDooc3RyaW5nfHVuZGVmaW5lZCksIGxpbmU6KG51bWJlcnx1bmRlZmlu
ZWQpLCByZXBlYXRDb3VudDoobnVtYmVyfHVuZGVmaW5lZCksIHBhcmFtZXRlcnM6KEFycmF5LjxS
dW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0Pnx1bmRlZmluZWQpLCBzdGFja1RyYWNlOihDb25zb2xl
QWdlbnQuU3RhY2tUcmFjZXx1bmRlZmluZWQpLCBuZXR3b3JrUmVxdWVzdElkOihOZXR3b3JrQWdl
bnQuUmVxdWVzdElkfHVuZGVmaW5lZCl9fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8K
K0NvbnNvbGVBZ2VudC5Db25zb2xlTWVzc2FnZVNvdXJjZSA9IHsKKyAgICBIVE1MOiAiaHRtbCIs
CisgICAgV01MOiAid21sIiwKKyAgICBYTUw6ICJ4bWwiLAorICAgIEphdmFzY3JpcHQ6ICJqYXZh
c2NyaXB0IiwKKyAgICBOZXR3b3JrOiAibmV0d29yayIsCisgICAgQ29uc29sZUFQSTogImNvbnNv
bGUtYXBpIiwKKyAgICBPdGhlcjogIm90aGVyIgorfTsKKworLyoqIEBlbnVtIHtzdHJpbmd9ICov
CitDb25zb2xlQWdlbnQuQ29uc29sZU1lc3NhZ2VMZXZlbCA9IHsKKyAgICBUaXA6ICJ0aXAiLAor
ICAgIExvZzogImxvZyIsCisgICAgV2FybmluZzogIndhcm5pbmciLAorICAgIEVycm9yOiAiZXJy
b3IiLAorICAgIERlYnVnOiAiZGVidWciCit9OworCisvKiogQGVudW0ge3N0cmluZ30gKi8KK0Nv
bnNvbGVBZ2VudC5Db25zb2xlTWVzc2FnZVR5cGUgPSB7CisgICAgTG9nOiAibG9nIiwKKyAgICBE
aXI6ICJkaXIiLAorICAgIERpclhNTDogImRpcnhtbCIsCisgICAgVGFibGU6ICJ0YWJsZSIsCisg
ICAgVHJhY2U6ICJ0cmFjZSIsCisgICAgQ2xlYXI6ICJjbGVhciIsCisgICAgU3RhcnRHcm91cDog
InN0YXJ0R3JvdXAiLAorICAgIFN0YXJ0R3JvdXBDb2xsYXBzZWQ6ICJzdGFydEdyb3VwQ29sbGFw
c2VkIiwKKyAgICBFbmRHcm91cDogImVuZEdyb3VwIiwKKyAgICBBc3NlcnQ6ICJhc3NlcnQiLAor
ICAgIFRpbWluZzogInRpbWluZyIsCisgICAgUHJvZmlsZTogInByb2ZpbGUiLAorICAgIFByb2Zp
bGVFbmQ6ICJwcm9maWxlRW5kIgorfTsKKworLyoqIEB0eXBlZGVmIHt7c291cmNlOihDb25zb2xl
QWdlbnQuQ29uc29sZU1lc3NhZ2VTb3VyY2UpLCBsZXZlbDooQ29uc29sZUFnZW50LkNvbnNvbGVN
ZXNzYWdlTGV2ZWwpLCB0ZXh0OihzdHJpbmcpLCB0eXBlOihDb25zb2xlQWdlbnQuQ29uc29sZU1l
c3NhZ2VUeXBlfHVuZGVmaW5lZCksIHVybDooc3RyaW5nfHVuZGVmaW5lZCksIGxpbmU6KG51bWJl
cnx1bmRlZmluZWQpLCByZXBlYXRDb3VudDoobnVtYmVyfHVuZGVmaW5lZCksIHBhcmFtZXRlcnM6
KEFycmF5LjxSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0Pnx1bmRlZmluZWQpLCBzdGFja1RyYWNl
OihDb25zb2xlQWdlbnQuU3RhY2tUcmFjZXx1bmRlZmluZWQpLCBuZXR3b3JrUmVxdWVzdElkOihO
ZXR3b3JrQWdlbnQuUmVxdWVzdElkfHVuZGVmaW5lZCl9fG51bGx9ICovCiBDb25zb2xlQWdlbnQu
Q29uc29sZU1lc3NhZ2U7CiAKIC8qKiBAdHlwZWRlZiB7e2Z1bmN0aW9uTmFtZTooc3RyaW5nKSwg
dXJsOihzdHJpbmcpLCBsaW5lTnVtYmVyOihudW1iZXIpLCBjb2x1bW5OdW1iZXI6KG51bWJlcil9
fG51bGx9ICovCkBAIC02NjcsNyArNzUxLDE0IEBAIE5ldHdvcmtBZ2VudC5XZWJTb2NrZXRGcmFt
ZTsKIC8qKiBAdHlwZWRlZiB7e3VybDooc3RyaW5nKSwgdHlwZTooUGFnZUFnZW50LlJlc291cmNl
VHlwZSksIHJlc3BvbnNlOihOZXR3b3JrQWdlbnQuUmVzcG9uc2V8dW5kZWZpbmVkKSwgYm9keVNp
emU6KG51bWJlcil9fG51bGx9ICovCiBOZXR3b3JrQWdlbnQuQ2FjaGVkUmVzb3VyY2U7CiAKLS8q
KiBAdHlwZWRlZiB7e3R5cGU6KHN0cmluZyksIHN0YWNrVHJhY2U6KENvbnNvbGVBZ2VudC5TdGFj
a1RyYWNlfHVuZGVmaW5lZCksIHVybDooc3RyaW5nfHVuZGVmaW5lZCksIGxpbmVOdW1iZXI6KG51
bWJlcnx1bmRlZmluZWQpfXxudWxsfSAqLworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitOZXR3b3Jr
QWdlbnQuSW5pdGlhdG9yVHlwZSA9IHsKKyAgICBQYXJzZXI6ICJwYXJzZXIiLAorICAgIFNjcmlw
dDogInNjcmlwdCIsCisgICAgT3RoZXI6ICJvdGhlciIKK307CisKKy8qKiBAdHlwZWRlZiB7e3R5
cGU6KE5ldHdvcmtBZ2VudC5Jbml0aWF0b3JUeXBlKSwgc3RhY2tUcmFjZTooQ29uc29sZUFnZW50
LlN0YWNrVHJhY2V8dW5kZWZpbmVkKSwgdXJsOihzdHJpbmd8dW5kZWZpbmVkKSwgbGluZU51bWJl
cjoobnVtYmVyfHVuZGVmaW5lZCl9fG51bGx9ICovCiBOZXR3b3JrQWdlbnQuSW5pdGlhdG9yOwog
CiAvKioKQEAgLTkyMSw3ICsxMDEyLDE1IEBAIEluZGV4ZWREQkFnZW50Lk9iamVjdFN0b3JlOwog
LyoqIEB0eXBlZGVmIHt7bmFtZTooc3RyaW5nKSwga2V5UGF0aDooSW5kZXhlZERCQWdlbnQuS2V5
UGF0aCksIHVuaXF1ZTooYm9vbGVhbiksIG11bHRpRW50cnk6KGJvb2xlYW4pfXxudWxsfSAqLwog
SW5kZXhlZERCQWdlbnQuT2JqZWN0U3RvcmVJbmRleDsKIAotLyoqIEB0eXBlZGVmIHt7dHlwZToo
c3RyaW5nKSwgbnVtYmVyOihudW1iZXJ8dW5kZWZpbmVkKSwgc3RyaW5nOihzdHJpbmd8dW5kZWZp
bmVkKSwgZGF0ZToobnVtYmVyfHVuZGVmaW5lZCksIGFycmF5OihBcnJheS48SW5kZXhlZERCQWdl
bnQuS2V5Pnx1bmRlZmluZWQpfXxudWxsfSAqLworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitJbmRl
eGVkREJBZ2VudC5LZXlUeXBlID0geworICAgIE51bWJlcjogIm51bWJlciIsCisgICAgU3RyaW5n
OiAic3RyaW5nIiwKKyAgICBEYXRlOiAiZGF0ZSIsCisgICAgQXJyYXk6ICJhcnJheSIKK307CisK
Ky8qKiBAdHlwZWRlZiB7e3R5cGU6KEluZGV4ZWREQkFnZW50LktleVR5cGUpLCBudW1iZXI6KG51
bWJlcnx1bmRlZmluZWQpLCBzdHJpbmc6KHN0cmluZ3x1bmRlZmluZWQpLCBkYXRlOihudW1iZXJ8
dW5kZWZpbmVkKSwgYXJyYXk6KEFycmF5LjxJbmRleGVkREJBZ2VudC5LZXk+fHVuZGVmaW5lZCl9
fG51bGx9ICovCiBJbmRleGVkREJBZ2VudC5LZXk7CiAKIC8qKiBAdHlwZWRlZiB7e2xvd2VyOihJ
bmRleGVkREJBZ2VudC5LZXl8dW5kZWZpbmVkKSwgdXBwZXI6KEluZGV4ZWREQkFnZW50LktleXx1
bmRlZmluZWQpLCBsb3dlck9wZW46KGJvb2xlYW4pLCB1cHBlck9wZW46KGJvb2xlYW4pfXxudWxs
fSAqLwpAQCAtOTMwLDcgKzEwMjksMTQgQEAgSW5kZXhlZERCQWdlbnQuS2V5UmFuZ2U7CiAvKiog
QHR5cGVkZWYge3trZXk6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3QpLCBwcmltYXJ5S2V5OihS
dW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0KSwgdmFsdWU6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmpl
Y3QpfXxudWxsfSAqLwogSW5kZXhlZERCQWdlbnQuRGF0YUVudHJ5OwogCi0vKiogQHR5cGVkZWYg
e3t0eXBlOihzdHJpbmcpLCBzdHJpbmc6KHN0cmluZ3x1bmRlZmluZWQpLCBhcnJheTooQXJyYXku
PHN0cmluZz58dW5kZWZpbmVkKX18bnVsbH0gKi8KKy8qKiBAZW51bSB7c3RyaW5nfSAqLworSW5k
ZXhlZERCQWdlbnQuS2V5UGF0aFR5cGUgPSB7CisgICAgTnVsbDogIm51bGwiLAorICAgIFN0cmlu
ZzogInN0cmluZyIsCisgICAgQXJyYXk6ICJhcnJheSIKK307CisKKy8qKiBAdHlwZWRlZiB7e3R5
cGU6KEluZGV4ZWREQkFnZW50LktleVBhdGhUeXBlKSwgc3RyaW5nOihzdHJpbmd8dW5kZWZpbmVk
KSwgYXJyYXk6KEFycmF5LjxzdHJpbmc+fHVuZGVmaW5lZCl9fG51bGx9ICovCiBJbmRleGVkREJB
Z2VudC5LZXlQYXRoOwogCiAvKioKQEAgLTE1NTUsOCArMTY2MSwxMyBAQCBDU1NBZ2VudC5TdHls
ZVNoZWV0SWQ7CiAvKiogQHR5cGVkZWYge3tzdHlsZVNoZWV0SWQ6KENTU0FnZW50LlN0eWxlU2hl
ZXRJZCksIG9yZGluYWw6KG51bWJlcil9fG51bGx9ICovCiBDU1NBZ2VudC5DU1NTdHlsZUlkOwog
Ci0vKiogQHR5cGVkZWYge3N0cmluZ30gKi8KLUNTU0FnZW50LlN0eWxlU2hlZXRPcmlnaW47Cisv
KiogQGVudW0ge3N0cmluZ30gKi8KK0NTU0FnZW50LlN0eWxlU2hlZXRPcmlnaW4gPSB7CisgICAg
VXNlcjogInVzZXIiLAorICAgIFVzZXJBZ2VudDogInVzZXItYWdlbnQiLAorICAgIEluc3BlY3Rv
cjogImluc3BlY3RvciIsCisgICAgUmVndWxhcjogInJlZ3VsYXIiCit9OwogCiAvKiogQHR5cGVk
ZWYge3tzdHlsZVNoZWV0SWQ6KENTU0FnZW50LlN0eWxlU2hlZXRJZCksIG9yZGluYWw6KG51bWJl
cil9fG51bGx9ICovCiBDU1NBZ2VudC5DU1NSdWxlSWQ7CkBAIC0xNjAwLDEwICsxNzExLDI2IEBA
IENTU0FnZW50LkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eTsKIC8qKiBAdHlwZWRlZiB7e3N0eWxl
SWQ6KENTU0FnZW50LkNTU1N0eWxlSWR8dW5kZWZpbmVkKSwgY3NzUHJvcGVydGllczooQXJyYXku
PENTU0FnZW50LkNTU1Byb3BlcnR5PiksIHNob3J0aGFuZEVudHJpZXM6KEFycmF5LjxDU1NBZ2Vu
dC5TaG9ydGhhbmRFbnRyeT4pLCBjc3NUZXh0OihzdHJpbmd8dW5kZWZpbmVkKSwgcmFuZ2U6KENT
U0FnZW50LlNvdXJjZVJhbmdlfHVuZGVmaW5lZCksIHdpZHRoOihzdHJpbmd8dW5kZWZpbmVkKSwg
aGVpZ2h0OihzdHJpbmd8dW5kZWZpbmVkKX18bnVsbH0gKi8KIENTU0FnZW50LkNTU1N0eWxlOwog
Ci0vKiogQHR5cGVkZWYge3tuYW1lOihzdHJpbmcpLCB2YWx1ZTooc3RyaW5nKSwgcHJpb3JpdHk6
KHN0cmluZ3x1bmRlZmluZWQpLCBpbXBsaWNpdDooYm9vbGVhbnx1bmRlZmluZWQpLCB0ZXh0Oihz
dHJpbmd8dW5kZWZpbmVkKSwgcGFyc2VkT2s6KGJvb2xlYW58dW5kZWZpbmVkKSwgc3RhdHVzOihz
dHJpbmd8dW5kZWZpbmVkKSwgcmFuZ2U6KENTU0FnZW50LlNvdXJjZVJhbmdlfHVuZGVmaW5lZCl9
fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8KK0NTU0FnZW50LkNTU1Byb3BlcnR5U3Rh
dHVzID0geworICAgIEFjdGl2ZTogImFjdGl2ZSIsCisgICAgSW5hY3RpdmU6ICJpbmFjdGl2ZSIs
CisgICAgRGlzYWJsZWQ6ICJkaXNhYmxlZCIsCisgICAgU3R5bGU6ICJzdHlsZSIKK307CisKKy8q
KiBAdHlwZWRlZiB7e25hbWU6KHN0cmluZyksIHZhbHVlOihzdHJpbmcpLCBwcmlvcml0eTooc3Ry
aW5nfHVuZGVmaW5lZCksIGltcGxpY2l0Oihib29sZWFufHVuZGVmaW5lZCksIHRleHQ6KHN0cmlu
Z3x1bmRlZmluZWQpLCBwYXJzZWRPazooYm9vbGVhbnx1bmRlZmluZWQpLCBzdGF0dXM6KENTU0Fn
ZW50LkNTU1Byb3BlcnR5U3RhdHVzfHVuZGVmaW5lZCksIHJhbmdlOihDU1NBZ2VudC5Tb3VyY2VS
YW5nZXx1bmRlZmluZWQpfXxudWxsfSAqLwogQ1NTQWdlbnQuQ1NTUHJvcGVydHk7CiAKLS8qKiBA
dHlwZWRlZiB7e3RleHQ6KHN0cmluZyksIHNvdXJjZTooc3RyaW5nKSwgc291cmNlVVJMOihzdHJp
bmd8dW5kZWZpbmVkKSwgc291cmNlTGluZToobnVtYmVyfHVuZGVmaW5lZCl9fG51bGx9ICovCisv
KiogQGVudW0ge3N0cmluZ30gKi8KK0NTU0FnZW50LkNTU01lZGlhU291cmNlID0geworICAgIE1l
ZGlhUnVsZTogIm1lZGlhUnVsZSIsCisgICAgSW1wb3J0UnVsZTogImltcG9ydFJ1bGUiLAorICAg
IExpbmtlZFNoZWV0OiAibGlua2VkU2hlZXQiLAorICAgIElubGluZVNoZWV0OiAiaW5saW5lU2hl
ZXQiCit9OworCisvKiogQHR5cGVkZWYge3t0ZXh0OihzdHJpbmcpLCBzb3VyY2U6KENTU0FnZW50
LkNTU01lZGlhU291cmNlKSwgc291cmNlVVJMOihzdHJpbmd8dW5kZWZpbmVkKSwgc291cmNlTGlu
ZToobnVtYmVyfHVuZGVmaW5lZCl9fG51bGx9ICovCiBDU1NBZ2VudC5DU1NNZWRpYTsKIAogLyoq
IEB0eXBlZGVmIHt7c2VsZWN0b3I6KHN0cmluZyksIHVybDooc3RyaW5nKSwgbGluZU51bWJlcjoo
bnVtYmVyKSwgdGltZToobnVtYmVyKSwgaGl0Q291bnQ6KG51bWJlciksIG1hdGNoQ291bnQ6KG51
bWJlcil9fG51bGx9ICovCkBAIC0xNjEyLDcgKzE3MzksMTQgQEAgQ1NTQWdlbnQuU2VsZWN0b3JQ
cm9maWxlRW50cnk7CiAvKiogQHR5cGVkZWYge3t0b3RhbFRpbWU6KG51bWJlciksIGRhdGE6KEFy
cmF5LjxDU1NBZ2VudC5TZWxlY3RvclByb2ZpbGVFbnRyeT4pfXxudWxsfSAqLwogQ1NTQWdlbnQu
U2VsZWN0b3JQcm9maWxlOwogCi0vKiogQHR5cGVkZWYge3tyZWdpb25PdmVyc2V0OihzdHJpbmcp
LCBub2RlSWQ6KERPTUFnZW50Lk5vZGVJZCl9fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30g
Ki8KK0NTU0FnZW50LlJlZ2lvblJlZ2lvbk92ZXJzZXQgPSB7CisgICAgT3ZlcnNldDogIm92ZXJz
ZXQiLAorICAgIEZpdDogImZpdCIsCisgICAgRW1wdHk6ICJlbXB0eSIKK307CisKKy8qKiBAdHlw
ZWRlZiB7e3JlZ2lvbk92ZXJzZXQ6KENTU0FnZW50LlJlZ2lvblJlZ2lvbk92ZXJzZXQpLCBub2Rl
SWQ6KERPTUFnZW50Lk5vZGVJZCl9fG51bGx9ICovCiBDU1NBZ2VudC5SZWdpb247CiAKIC8qKiBA
dHlwZWRlZiB7e2RvY3VtZW50Tm9kZUlkOihET01BZ2VudC5Ob2RlSWQpLCBuYW1lOihzdHJpbmcp
LCBvdmVyc2V0Oihib29sZWFuKSwgY29udGVudDooQXJyYXkuPERPTUFnZW50Lk5vZGVJZD4pLCBy
ZWdpb25zOihBcnJheS48Q1NTQWdlbnQuUmVnaW9uPil9fG51bGx9ICovCkBAIC0xODc1LDcgKzIw
MDksMTYgQEAgRGVidWdnZXJBZ2VudC5GdW5jdGlvbkRldGFpbHM7CiAvKiogQHR5cGVkZWYge3tj
YWxsRnJhbWVJZDooRGVidWdnZXJBZ2VudC5DYWxsRnJhbWVJZCksIGZ1bmN0aW9uTmFtZTooc3Ry
aW5nKSwgbG9jYXRpb246KERlYnVnZ2VyQWdlbnQuTG9jYXRpb24pLCBzY29wZUNoYWluOihBcnJh
eS48RGVidWdnZXJBZ2VudC5TY29wZT4pLCB0aGlzOihSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0
KX18bnVsbH0gKi8KIERlYnVnZ2VyQWdlbnQuQ2FsbEZyYW1lOwogCi0vKiogQHR5cGVkZWYge3t0
eXBlOihzdHJpbmcpLCBvYmplY3Q6KFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3QpfXxudWxsfSAq
LworLyoqIEBlbnVtIHtzdHJpbmd9ICovCitEZWJ1Z2dlckFnZW50LlNjb3BlVHlwZSA9IHsKKyAg
ICBHbG9iYWw6ICJnbG9iYWwiLAorICAgIExvY2FsOiAibG9jYWwiLAorICAgIFdpdGg6ICJ3aXRo
IiwKKyAgICBDbG9zdXJlOiAiY2xvc3VyZSIsCisgICAgQ2F0Y2g6ICJjYXRjaCIKK307CisKKy8q
KiBAdHlwZWRlZiB7e3R5cGU6KERlYnVnZ2VyQWdlbnQuU2NvcGVUeXBlKSwgb2JqZWN0OihSdW50
aW1lQWdlbnQuUmVtb3RlT2JqZWN0KX18bnVsbH0gKi8KIERlYnVnZ2VyQWdlbnQuU2NvcGU7CiAK
IC8qKgpAQCAtMjE0Myw4ICsyMjg2LDEyIEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEZWJ1
Z2dlckRpc3BhdGNoZXIgPSBmdW5jdGlvbihkaXNwYXRjaGVyKSB7fQogCiB2YXIgRE9NRGVidWdn
ZXJBZ2VudCA9IHt9OwogCi0vKiogQHR5cGVkZWYge3N0cmluZ30gKi8KLURPTURlYnVnZ2VyQWdl
bnQuRE9NQnJlYWtwb2ludFR5cGU7CisvKiogQGVudW0ge3N0cmluZ30gKi8KK0RPTURlYnVnZ2Vy
QWdlbnQuRE9NQnJlYWtwb2ludFR5cGUgPSB7CisgICAgU3VidHJlZU1vZGlmaWVkOiAic3VidHJl
ZS1tb2RpZmllZCIsCisgICAgQXR0cmlidXRlTW9kaWZpZWQ6ICJhdHRyaWJ1dGUtbW9kaWZpZWQi
LAorICAgIE5vZGVSZW1vdmVkOiAibm9kZS1yZW1vdmVkIgorfTsKIAogLyoqCiAgKiBAcGFyYW0g
e0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCkBAIC0yMjIyLDcgKzIzNjksMTQgQEAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlckRPTURlYnVnZ2VyRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKGRpc3BhdGNo
ZXIpIHt9CiAKIHZhciBQcm9maWxlckFnZW50ID0ge307CiAKLS8qKiBAdHlwZWRlZiB7e3R5cGVJ
ZDooc3RyaW5nKSwgdGl0bGU6KHN0cmluZyksIHVpZDoobnVtYmVyKSwgbWF4SlNPYmplY3RJZDoo
bnVtYmVyfHVuZGVmaW5lZCl9fG51bGx9ICovCisvKiogQGVudW0ge3N0cmluZ30gKi8KK1Byb2Zp
bGVyQWdlbnQuUHJvZmlsZUhlYWRlclR5cGVJZCA9IHsKKyAgICBDUFU6ICJDUFUiLAorICAgIENT
UzogIkNTUyIsCisgICAgSEVBUDogIkhFQVAiCit9OworCisvKiogQHR5cGVkZWYge3t0eXBlSWQ6
KFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlclR5cGVJZCksIHRpdGxlOihzdHJpbmcpLCB1aWQ6
KG51bWJlciksIG1heEpTT2JqZWN0SWQ6KG51bWJlcnx1bmRlZmluZWQpfXxudWxsfSAqLwogUHJv
ZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyOwogCiAvKiogQHR5cGVkZWYge3tmdW5jdGlvbk5hbWU6
KHN0cmluZyksIHVybDooc3RyaW5nKSwgbGluZU51bWJlcjoobnVtYmVyKSwgdG90YWxUaW1lOihu
dW1iZXIpLCBzZWxmVGltZToobnVtYmVyKSwgbnVtYmVyT2ZDYWxsczoobnVtYmVyKSwgdmlzaWJs
ZTooYm9vbGVhbiksIGNhbGxVSUQ6KG51bWJlciksIGNoaWxkcmVuOihBcnJheS48UHJvZmlsZXJB
Z2VudC5DUFVQcm9maWxlTm9kZT4pfXxudWxsfSAqLwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>