<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://pkp.sfu.ca/bugzilla/bugzilla.dtd">

<bugzilla version="4.2.5+"
          urlbase="http://pkp.sfu.ca/bugzilla/"
          
          maintainer="pkp-hosted@sfu.ca"
>

    <bug>
          <bug_id>4474</bug_id>
          
          <creation_ts>2009-06-24 17:03:00 -0700</creation_ts>
          <short_desc>put static pages and custom block manager plugins into CVS</short_desc>
          <delta_ts>2009-10-22 11:09:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>OCS</product>
          <component>General</component>
          <version>2.3</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Mac OS X 10.3</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Juan Pablo Alperin">juan</reporter>
          <assigned_to name="Ryan Yeske">rcyeske</assigned_to>
          <cc>alec</cc>
    
    <cc>pkp-support</cc>
    
    <cc>rcyeske</cc>
          
          

      

      

      

          <long_desc isprivate="0">
            <commentid>15505</commentid>
            <who name="Juan Pablo Alperin">juan</who>
            <bug_when>2009-06-24 17:03:14 -0700</bug_when>
            <thetext>Perhaps even into the core, although this might require more abstraction work.  If not, just putting both into CVS and officially supporting them would be good.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>15855</commentid>
            <who name="Juan Pablo Alperin">juan</who>
            <bug_when>2009-07-22 12:29:06 -0700</bug_when>
            <thetext>static pages put into both OCS/OJS.  Custom Block manager into OJS.  

Work done on OJS 2.3.

Still need to do customBlockManager port for OCS.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>15866</commentid>
            <who name="Juan Pablo Alperin">juan</who>
            <bug_when>2009-07-22 18:12:13 -0700</bug_when>
            <thetext>moving to OCS to clear off plate from OJS 2.3 release</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17126</commentid>
              <attachid>2536</attachid>
            <who name="Ryan Yeske">rcyeske</who>
            <bug_when>2009-10-17 00:21:52 -0700</bug_when>
            <thetext>Created attachment 2536
port of custom block manager plugin from ojs to ocs

I ported this plugin over from ojs2 following the pattern I found in the static pages plugin port.  Aside from substituting journalId with conferenceId, there is an additional &apos;schedConfId&apos; added to the {get,set,delete}Setting calls (it is 0 in all cases, is this correct?).

Enabling, disabling the plugin, along with adding, editing and deleting block plugins is tested and works the same way as in ojs.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17127</commentid>
              <attachid>2537</attachid>
            <who name="Ryan Yeske">rcyeske</who>
            <bug_when>2009-10-17 00:26:36 -0700</bug_when>
            <thetext>Created attachment 2537
unified diff

Replaced context diff with unified diff</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17145</commentid>
            <who name="Alec Smecher">alec</who>
            <bug_when>2009-10-19 19:01:57 -0700</bug_when>
            <thetext>Looks good to me, Ryan; go ahead and commit and close.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17151</commentid>
            <who name="Ryan Yeske">rcyeske</who>
            <bug_when>2009-10-22 11:09:19 -0700</bug_when>
            <thetext>Commit</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2536</attachid>
            <date>2009-10-17 00:21:00 -0700</date>
            <delta_ts>2009-10-17 00:26:36 -0700</delta_ts>
            <desc>port of custom block manager plugin from ojs to ocs</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>22231</size>
            <attacher>rcyeske</attacher>
            
              <data encoding="base64">ZGlmZiAtY3Igb2pzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL0N1c3RvbUJs
b2NrRWRpdEZvcm0uaW5jLnBocCBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFn
ZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCioqKiBvanMyL3BsdWdpbnMvZ2VuZXJpYy9j
dXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCTIwMDktMTAtMDEg
MTM6MDE6MDEuMDAwMDAwMDAwIC0wNzAwCi0tLSBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21C
bG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCTIwMDktMTAtMTYgMTk6MDM6
MjcuMDAwMDAwMDAwIC0wNzAwCioqKioqKioqKioqKioqKgoqKiogOSwyMyAqKioqCiAgICogQHBh
Y2thZ2UgcGx1Z2lucy5nZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlcgogICAqIEBjbGFzcyBDdXN0
b21CbG9ja0VkaXRGb3JtCiAgICoKISAgKiBGb3JtIGZvciBqb3VybmFsIG1hbmFnZXJzIHRvIGNy
ZWF0ZSBhbmQgbW9kaWZ5IHNpZGViYXIgYmxvY2tzCiAgICogCiAgICovCiAgCiAgaW1wb3J0KCdm
b3JtLkZvcm0nKTsKICAKICBjbGFzcyBDdXN0b21CbG9ja0VkaXRGb3JtIGV4dGVuZHMgRm9ybSB7
CiEgCS8qKiBAdmFyICRqb3VybmFsSWQgaW50ICovCiEgCXZhciAkam91cm5hbElkOwogIAogIAkv
KiogQHZhciAkcGx1Z2luIG9iamVjdCAqLwogIAl2YXIgJHBsdWdpbjsKLS0tIDksMjMgLS0tLQog
ICAqIEBwYWNrYWdlIHBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIKICAgKiBAY2xh
c3MgQ3VzdG9tQmxvY2tFZGl0Rm9ybQogICAqCiEgICogRm9ybSBmb3IgY29uZmVyZW5jZSBtYW5h
Z2VycyB0byBjcmVhdGUgYW5kIG1vZGlmeSBzaWRlYmFyIGJsb2NrcwogICAqIAogICAqLwogIAog
IGltcG9ydCgnZm9ybS5Gb3JtJyk7CiAgCiAgY2xhc3MgQ3VzdG9tQmxvY2tFZGl0Rm9ybSBleHRl
bmRzIEZvcm0gewohIAkvKiogQHZhciAkY29uZmVyZW5jZUlkIGludCAqLwohIAl2YXIgJGNvbmZl
cmVuY2VJZDsKICAKICAJLyoqIEB2YXIgJHBsdWdpbiBvYmplY3QgKi8KICAJdmFyICRwbHVnaW47
CioqKioqKioqKioqKioqKgoqKiogMjcsMzkgKioqKgogIAogIAkvKioKICAJICogQ29uc3RydWN0
b3IKISAJICogQHBhcmFtICRqb3VybmFsSWQgaW50CiAgCSAqLwohIAlmdW5jdGlvbiBDdXN0b21C
bG9ja0VkaXRGb3JtKCYkcGx1Z2luLCAkam91cm5hbElkKSB7CiAgCiAgCQlwYXJlbnQ6OkZvcm0o
JHBsdWdpbi0+Z2V0VGVtcGxhdGVQYXRoKCkgLiAnZWRpdEN1c3RvbUJsb2NrRm9ybS50cGwnKTsK
ICAKISAJCSR0aGlzLT5qb3VybmFsSWQgPSAkam91cm5hbElkOwogIAkJJHRoaXMtPnBsdWdpbiA9
JiAkcGx1Z2luOwogIAogIAkJJHRoaXMtPmFkZENoZWNrKG5ldyBGb3JtVmFsaWRhdG9yUG9zdCgk
dGhpcykpOwotLS0gMjcsMzkgLS0tLQogIAogIAkvKioKICAJICogQ29uc3RydWN0b3IKISAJICog
QHBhcmFtICRjb25mZXJlbmNlSWQgaW50CiAgCSAqLwohIAlmdW5jdGlvbiBDdXN0b21CbG9ja0Vk
aXRGb3JtKCYkcGx1Z2luLCAkY29uZmVyZW5jZUlkKSB7CiAgCiAgCQlwYXJlbnQ6OkZvcm0oJHBs
dWdpbi0+Z2V0VGVtcGxhdGVQYXRoKCkgLiAnZWRpdEN1c3RvbUJsb2NrRm9ybS50cGwnKTsKICAK
ISAJCSR0aGlzLT5jb25mZXJlbmNlSWQgPSAkY29uZmVyZW5jZUlkOwogIAkJJHRoaXMtPnBsdWdp
biA9JiAkcGx1Z2luOwogIAogIAkJJHRoaXMtPmFkZENoZWNrKG5ldyBGb3JtVmFsaWRhdG9yUG9z
dCgkdGhpcykpOwoqKioqKioqKioqKioqKioKKioqIDQ1LDcwICoqKioKICAJICogSW5pdGlhbGl6
ZSBmb3JtIGRhdGEgZnJvbSBjdXJyZW50IGdyb3VwIGdyb3VwLgogIAkgKi8KICAJZnVuY3Rpb24g
aW5pdERhdGEoKSB7CiEgCQkkam91cm5hbElkID0gJHRoaXMtPmpvdXJuYWxJZDsKICAJCSRwbHVn
aW4gPSYgJHRoaXMtPnBsdWdpbjsKICAKICAJCS8vIGFkZCB0aGUgdGlueSBNQ0Ugc2NyaXB0IAog
IAkJJHRoaXMtPmFkZFRpbnlNQ0UoKTsKISAJCSR0aGlzLT5zZXREYXRhKCdibG9ja0NvbnRlbnQn
LCAkcGx1Z2luLT5nZXRTZXR0aW5nKCRqb3VybmFsSWQsICdibG9ja0NvbnRlbnQnKSk7CiAgCX0K
ICAKICAJLyoqCiAgCSAqIEFkZCB0aGUgdGlueU1DRSBzY3JpcHQgZm9yIGVkaXRpbmcgc2lkZWJh
ciBibG9ja3Mgd2l0aCBhIFdZU0lXWUcgZWRpdG9yCiAgCSAqLwogIAlmdW5jdGlvbiBhZGRUaW55
TUNFKCkgewohIAkJJGpvdXJuYWxJZCA9ICR0aGlzLT5qb3VybmFsSWQ7CiAgCQkkcGx1Z2luID0m
ICR0aGlzLT5wbHVnaW47CiAgCQkkdGVtcGxhdGVNZ3IgPSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRN
YW5hZ2VyKCk7CiAgCiAgCQkvLyBFbmFibGUgVGlueU1DRSB3aXRoIHNwZWNpZmljIHBhcmFtcwog
IAkJJGFkZGl0aW9uYWxIZWFkRGF0YSA9ICR0ZW1wbGF0ZU1nci0+Z2V0X3RlbXBsYXRlX3ZhcnMo
J2FkZGl0aW9uYWxIZWFkRGF0YScpOwogIAohIAkJaW1wb3J0KCdmaWxlLkpvdXJuYWxGaWxlTWFu
YWdlcicpOwogIAkJJHB1YmxpY0ZpbGVNYW5hZ2VyID0gbmV3IFB1YmxpY0ZpbGVNYW5hZ2VyKCk7
CiAgCQkkdGlueU1DRV9zY3JpcHQgPSAnCiAgCQk8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy5SZXF1ZXN0OjpnZXRCYXNlVXJsKCkuJy8n
LlRJTllNQ0VfSlNfUEFUSC4nL3RpbnlfbWNlLmpzIj48L3NjcmlwdD4KLS0tIDQ1LDcwIC0tLS0K
ICAJICogSW5pdGlhbGl6ZSBmb3JtIGRhdGEgZnJvbSBjdXJyZW50IGdyb3VwIGdyb3VwLgogIAkg
Ki8KICAJZnVuY3Rpb24gaW5pdERhdGEoKSB7CiEgCQkkY29uZmVyZW5jZUlkID0gJHRoaXMtPmNv
bmZlcmVuY2VJZDsKICAJCSRwbHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKICAKICAJCS8vIGFkZCB0
aGUgdGlueSBNQ0Ugc2NyaXB0IAogIAkJJHRoaXMtPmFkZFRpbnlNQ0UoKTsKISAJCSR0aGlzLT5z
ZXREYXRhKCdibG9ja0NvbnRlbnQnLCAkcGx1Z2luLT5nZXRTZXR0aW5nKCRjb25mZXJlbmNlSWQs
IDAsICdibG9ja0NvbnRlbnQnKSk7CiAgCX0KICAKICAJLyoqCiAgCSAqIEFkZCB0aGUgdGlueU1D
RSBzY3JpcHQgZm9yIGVkaXRpbmcgc2lkZWJhciBibG9ja3Mgd2l0aCBhIFdZU0lXWUcgZWRpdG9y
CiAgCSAqLwogIAlmdW5jdGlvbiBhZGRUaW55TUNFKCkgewohIAkJJGNvbmZlcmVuY2VJZCA9ICR0
aGlzLT5jb25mZXJlbmNlSWQ7CiAgCQkkcGx1Z2luID0mICR0aGlzLT5wbHVnaW47CiAgCQkkdGVt
cGxhdGVNZ3IgPSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CiAgCiAgCQkvLyBFbmFi
bGUgVGlueU1DRSB3aXRoIHNwZWNpZmljIHBhcmFtcwogIAkJJGFkZGl0aW9uYWxIZWFkRGF0YSA9
ICR0ZW1wbGF0ZU1nci0+Z2V0X3RlbXBsYXRlX3ZhcnMoJ2FkZGl0aW9uYWxIZWFkRGF0YScpOwog
IAohIAkJaW1wb3J0KCdmaWxlLkNvbmZlcmVuY2VGaWxlTWFuYWdlcicpOwogIAkJJHB1YmxpY0Zp
bGVNYW5hZ2VyID0gbmV3IFB1YmxpY0ZpbGVNYW5hZ2VyKCk7CiAgCQkkdGlueU1DRV9zY3JpcHQg
PSAnCiAgCQk8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iJy5SZXF1ZXN0OjpnZXRCYXNlVXJsKCkuJy8nLlRJTllNQ0VfSlNfUEFUSC4nL3Rp
bnlfbWNlLmpzIj48L3NjcmlwdD4KKioqKioqKioqKioqKioqCioqKiA4MCw4NiAqKioqCiAgCQkJ
dGhlbWVfYWR2YW5jZWRfdG9vbGJhcl9hbGlnbiA6ICJsZWZ0IiwKICAJCQljb250ZW50X2NzcyA6
ICInIC4gUmVxdWVzdDo6Z2V0QmFzZVVybCgpIC4gJy9zdHlsZXMvY29tbW9uLmNzcyIsIAogIAkJ
CXJlbGF0aXZlX3VybHMgOiBmYWxzZSwgCQkKISAJCQlkb2N1bWVudF9iYXNlX3VybCA6ICInLiBS
ZXF1ZXN0OjpnZXRCYXNlVXJsKCkgLicvJy4kcHVibGljRmlsZU1hbmFnZXItPmdldEpvdXJuYWxG
aWxlc1BhdGgoJGpvdXJuYWxJZCkgLicvIiwgCiAgCQkJZXh0ZW5kZWRfdmFsaWRfZWxlbWVudHMg
OiAic3BhblsqXSwgZGl2WypdIgogIAkJCX0pOwogIAkJPC9zY3JpcHQ+JzsKLS0tIDgwLDg2IC0t
LS0KICAJCQl0aGVtZV9hZHZhbmNlZF90b29sYmFyX2FsaWduIDogImxlZnQiLAogIAkJCWNvbnRl
bnRfY3NzIDogIicgLiBSZXF1ZXN0OjpnZXRCYXNlVXJsKCkgLiAnL3N0eWxlcy9jb21tb24uY3Nz
IiwgCiAgCQkJcmVsYXRpdmVfdXJscyA6IGZhbHNlLCAJCQohIAkJCWRvY3VtZW50X2Jhc2VfdXJs
IDogIicuIFJlcXVlc3Q6OmdldEJhc2VVcmwoKSAuJy8nLiRwdWJsaWNGaWxlTWFuYWdlci0+Z2V0
Q29uZmVyZW5jZUZpbGVzUGF0aCgkY29uZmVyZW5jZUlkKSAuJy8iLCAKICAJCQlleHRlbmRlZF92
YWxpZF9lbGVtZW50cyA6ICJzcGFuWypdLCBkaXZbKl0iCiAgCQkJfSk7CiAgCQk8L3NjcmlwdD4n
OwoqKioqKioqKioqKioqKioKKioqIDEwMSwxMDggKioqKgogIAkgKi8JIAogIAlmdW5jdGlvbiBz
YXZlKCkgewogIAkJJHBsdWdpbiA9JiAkdGhpcy0+cGx1Z2luOwohIAkJJGpvdXJuYWxJZCA9ICR0
aGlzLT5qb3VybmFsSWQ7CiEgCQkkcGx1Z2luLT51cGRhdGVTZXR0aW5nKCRqb3VybmFsSWQsICdi
bG9ja0NvbnRlbnQnLCAkdGhpcy0+Z2V0RGF0YSgnYmxvY2tDb250ZW50JykpOwkJCiAgCX0KICAK
ICB9Ci0tLSAxMDEsMTA4IC0tLS0KICAJICovCSAKICAJZnVuY3Rpb24gc2F2ZSgpIHsKICAJCSRw
bHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKISAJCSRjb25mZXJlbmNlSWQgPSAkdGhpcy0+Y29uZmVy
ZW5jZUlkOwohIAkJJHBsdWdpbi0+dXBkYXRlU2V0dGluZygkY29uZmVyZW5jZUlkLCAwLCAnYmxv
Y2tDb250ZW50JywgJHRoaXMtPmdldERhdGEoJ2Jsb2NrQ29udGVudCcpKTsJCQogIAl9CiAgCiAg
fQpkaWZmIC1jciBvanMyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvQ3VzdG9t
QmxvY2tNYW5hZ2VyUGx1Z2luLmluYy5waHAgb2NzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxv
Y2tNYW5hZ2VyL0N1c3RvbUJsb2NrTWFuYWdlclBsdWdpbi5pbmMucGhwCioqKiBvanMyL3BsdWdp
bnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tNYW5hZ2VyUGx1Z2luLmlu
Yy5waHAJMjAwOS0xMC0wMSAxMzowMTowMi4wMDAwMDAwMDAgLTA3MDAKLS0tIG9jczIvcGx1Z2lu
cy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9DdXN0b21CbG9ja01hbmFnZXJQbHVnaW4uaW5j
LnBocAkyMDA5LTEwLTE2IDE5OjAzOjI2LjAwMDAwMDAwMCAtMDcwMAoqKioqKioqKioqKioqKioK
KioqIDU0LDYzICoqKioKICAJCQljYXNlICdibG9ja3MnOgogIAkJCQkkdGhpcy0+aW1wb3J0KCdD
dXN0b21CbG9ja1BsdWdpbicpOwogIAkJCQkKISAJCQkJJGpvdXJuYWwgPSYgUmVxdWVzdDo6Z2V0
Sm91cm5hbCgpOwohIAkJCQlpZiAoICEkam91cm5hbCApIHJldHVybiBmYWxzZTsKICAJCQkJCiEg
CQkJCSRibG9ja3MgPSAkdGhpcy0+Z2V0U2V0dGluZygkam91cm5hbC0+Z2V0Sm91cm5hbElkKCks
ICdibG9ja3MnKTsKICAJCQkJaWYgKCAhaXNfYXJyYXkoJGJsb2NrcykgKSBicmVhazsKICAJCQkJ
JGk9IDA7CiAgCQkJCWZvcmVhY2ggKCAkYmxvY2tzIGFzICRibG9jayApIHsKLS0tIDU0LDYzIC0t
LS0KICAJCQljYXNlICdibG9ja3MnOgogIAkJCQkkdGhpcy0+aW1wb3J0KCdDdXN0b21CbG9ja1Bs
dWdpbicpOwogIAkJCQkKISAJCQkJJGNvbmZlcmVuY2UgPSYgUmVxdWVzdDo6Z2V0Q29uZmVyZW5j
ZSgpOwohIAkJCQlpZiAoICEkY29uZmVyZW5jZSApIHJldHVybiBmYWxzZTsKICAJCQkJCiEgCQkJ
CSRibG9ja3MgPSAkdGhpcy0+Z2V0U2V0dGluZygkY29uZmVyZW5jZS0+Z2V0Q29uZmVyZW5jZUlk
KCksIDAsICdibG9ja3MnKTsKICAJCQkJaWYgKCAhaXNfYXJyYXkoJGJsb2NrcykgKSBicmVhazsK
ICAJCQkJJGk9IDA7CiAgCQkJCWZvcmVhY2ggKCAkYmxvY2tzIGFzICRibG9jayApIHsKKioqKioq
KioqKioqKioqCioqKiA4NCwxMDQgKioqKgogIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3Qg
dGhpcyBwbHVnaW4gaXMgZW5hYmxlZC4KICAJICovCiAgCWZ1bmN0aW9uIGdldEVuYWJsZWQoKSB7
CiEgCQkkam91cm5hbCA9JiBSZXF1ZXN0OjpnZXRKb3VybmFsKCk7CiEgCQlpZiAoISRqb3VybmFs
KSByZXR1cm4gZmFsc2U7CiEgCQlyZXR1cm4gJHRoaXMtPmdldFNldHRpbmcoJGpvdXJuYWwtPmdl
dEpvdXJuYWxJZCgpLCAnZW5hYmxlZCcpOwogIAl9CiAgCiAgCS8qKgogIAkgKiBTZXQgdGhlIGVu
YWJsZWQvZGlzYWJsZWQgc3RhdGUgb2YgdGhpcyBwbHVnaW4KICAJICovCiAgCWZ1bmN0aW9uIHNl
dEVuYWJsZWQoJGVuYWJsZWQpIHsKISAJCSRqb3VybmFsID0mIFJlcXVlc3Q6OmdldEpvdXJuYWwo
KTsKISAJCWlmICgkam91cm5hbCkgewohIAkJCSR0aGlzLT51cGRhdGVTZXR0aW5nKCRqb3VybmFs
LT5nZXRKb3VybmFsSWQoKSwgJ2VuYWJsZWQnLCAkZW5hYmxlZCA/IHRydWUgOiBmYWxzZSk7CiEg
CQkJcmV0dXJuIHRydWU7CiEgCQl9CiEgCQlyZXR1cm4gZmFsc2U7CiAgCX0KICAKICAJLyoqCi0t
LSA4NCwxMDEgLS0tLQogIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhpcyBwbHVnaW4g
aXMgZW5hYmxlZC4KICAJICovCiAgCWZ1bmN0aW9uIGdldEVuYWJsZWQoKSB7CiEgCQkkY29uZmVy
ZW5jZSA9JiBSZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CiEgIAkJJGNvbmZlcmVuY2VJZCA9ICRj
b25mZXJlbmNlPyRjb25mZXJlbmNlLT5nZXRDb25mZXJlbmNlSWQoKTowOwohIAkJcmV0dXJuICR0
aGlzLT5nZXRTZXR0aW5nKCRjb25mZXJlbmNlSWQsIDAsICdlbmFibGVkJyk7CiAgCX0KICAKICAJ
LyoqCiAgCSAqIFNldCB0aGUgZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZSBvZiB0aGlzIHBsdWdpbgog
IAkgKi8KICAJZnVuY3Rpb24gc2V0RW5hYmxlZCgkZW5hYmxlZCkgewohICAJCSRjb25mZXJlbmNl
ID0mIFJlcXVlc3Q6OmdldENvbmZlcmVuY2UoKTsKISAgCQkkY29uZmVyZW5jZUlkID0gJGNvbmZl
cmVuY2U/JGNvbmZlcmVuY2UtPmdldENvbmZlcmVuY2VJZCgpOjA7CiEgIAkJJHRoaXMtPnVwZGF0
ZVNldHRpbmcoJGNvbmZlcmVuY2VJZCwgMCwgJ2VuYWJsZWQnLCAkZW5hYmxlZCk7CiAgCX0KICAK
ICAJLyoqCioqKioqKioqKioqKioqKgoqKiogMTM1LDE1MCAqKioqCiAgCiAgCQkkcGFnZUNydW1i
cyA9IGFycmF5KAogIAkJCWFycmF5KAohIAkJCQlSZXF1ZXN0Ojp1cmwobnVsbCwgJ3VzZXInKSwK
ICAJCQkJJ25hdmlnYXRpb24udXNlcicKICAJCQkpLAogIAkJCWFycmF5KAohIAkJCQlSZXF1ZXN0
Ojp1cmwobnVsbCwgJ21hbmFnZXInKSwKICAJCQkJJ3VzZXIucm9sZS5tYW5hZ2VyJwogIAkJCSkK
ICAJCSk7CiAgCQkKISAJCSRqb3VybmFsID0mIFJlcXVlc3Q6OmdldEpvdXJuYWwoKTsKICAJCQog
IAkJc3dpdGNoICgkdmVyYikgewogIAkJCWNhc2UgJ2VuYWJsZSc6Ci0tLSAxMzIsMTQ3IC0tLS0K
ICAKICAJCSRwYWdlQ3J1bWJzID0gYXJyYXkoCiAgCQkJYXJyYXkoCiEgCQkJCVJlcXVlc3Q6OnVy
bChudWxsLCBudWxsLCAndXNlcicpLAogIAkJCQknbmF2aWdhdGlvbi51c2VyJwogIAkJCSksCiAg
CQkJYXJyYXkoCiEgCQkJCVJlcXVlc3Q6OnVybChudWxsLCBudWxsLCAnbWFuYWdlcicpLAogIAkJ
CQkndXNlci5yb2xlLm1hbmFnZXInCiAgCQkJKQogIAkJKTsKICAJCQohIAkJJGNvbmZlcmVuY2Ug
PSYgUmVxdWVzdDo6Z2V0Q29uZmVyZW5jZSgpOwogIAkJCiAgCQlzd2l0Y2ggKCR2ZXJiKSB7CiAg
CQkJY2FzZSAnZW5hYmxlJzoKKioqKioqKioqKioqKioqCioqKiAxNTUsMTY4ICoqKioKICAJCQkJ
YnJlYWs7CiAgCQkJY2FzZSAnc2V0dGluZ3MnOgogIAkJCQkkcGFnZUNydW1ic1tdID0gYXJyYXko
CiEgCQkJCQlSZXF1ZXN0Ojp1cmwobnVsbCwgJ21hbmFnZXInLCAncGx1Z2lucycpLAogIAkJCQkJ
TG9jYWxlOjp0cmFuc2xhdGUoJ21hbmFnZXIucGx1Z2lucycpLAogIAkJCQkJdHJ1ZQogIAkJCQkp
OwogIAkJCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbigncGFnZUhpZXJhcmNoeScsICRwYWdlQ3J1bWJz
KTsKICAKICAJCQkJJHRoaXMtPmltcG9ydCgnU2V0dGluZ3NGb3JtJyk7CiEgCQkJCSRmb3JtID0g
bmV3IFNldHRpbmdzRm9ybSgkdGhpcywgJGpvdXJuYWwtPmdldEpvdXJuYWxJZCgpKTsKICAJCQkJ
JGZvcm0tPnJlYWRJbnB1dERhdGEoKTsKICAJCQkJCiAgCQkJCWlmIChSZXF1ZXN0OjpnZXRVc2Vy
VmFyKCdhZGRCbG9jaycpKSB7Ci0tLSAxNTIsMTY1IC0tLS0KICAJCQkJYnJlYWs7CiAgCQkJY2Fz
ZSAnc2V0dGluZ3MnOgogIAkJCQkkcGFnZUNydW1ic1tdID0gYXJyYXkoCiEgCQkJCQlSZXF1ZXN0
Ojp1cmwobnVsbCwgbnVsbCwgJ21hbmFnZXInLCAncGx1Z2lucycpLAogIAkJCQkJTG9jYWxlOjp0
cmFuc2xhdGUoJ21hbmFnZXIucGx1Z2lucycpLAogIAkJCQkJdHJ1ZQogIAkJCQkpOwogIAkJCQkk
dGVtcGxhdGVNZ3ItPmFzc2lnbigncGFnZUhpZXJhcmNoeScsICRwYWdlQ3J1bWJzKTsKICAKICAJ
CQkJJHRoaXMtPmltcG9ydCgnU2V0dGluZ3NGb3JtJyk7CiEgCQkJCSRmb3JtID0gbmV3IFNldHRp
bmdzRm9ybSgkdGhpcywgJGNvbmZlcmVuY2UtPmdldENvbmZlcmVuY2VJZCgpKTsKICAJCQkJJGZv
cm0tPnJlYWRJbnB1dERhdGEoKTsKICAJCQkJCiAgCQkJCWlmIChSZXF1ZXN0OjpnZXRVc2VyVmFy
KCdhZGRCbG9jaycpKSB7CioqKioqKioqKioqKioqKgoqKiogMTcyLDE3OCAqKioqCiAgCQkJCQkk
YmxvY2tzID0gJGZvcm0tPmdldERhdGEoJ2Jsb2NrcycpOwogIAkJCQkJYXJyYXlfcHVzaCgkYmxv
Y2tzLCAnJyk7CiAgCQkJCQkkZm9ybS0+X2RhdGFbJ2Jsb2NrcyddID0gJGJsb2NrczsKLSAKICAJ
CQkJfSBlbHNlIGlmICgoJGRlbEJsb2NrID0gUmVxdWVzdDo6Z2V0VXNlclZhcignZGVsQmxvY2sn
KSkgJiYgY291bnQoJGRlbEJsb2NrKSA9PSAxKSB7CiAgCQkJCQkvLyBEZWxldGUgYW4gYmxvY2sK
ICAJCQkJCSRlZGl0RGF0YSA9IHRydWU7Ci0tLSAxNjksMTc0IC0tLS0KKioqKioqKioqKioqKioq
CioqKiAxODYsMTkyICoqKioKICAJCQkJCX0KICAJCQkJCWFycmF5X3NwbGljZSgkYmxvY2tzLCAk
ZGVsQmxvY2ssIDEpOwogIAkJCQkJJGZvcm0tPl9kYXRhWydibG9ja3MnXSA9ICRibG9ja3M7Ci0g
CiAgCQkJCX0gZWxzZSBpZiAoIFJlcXVlc3Q6OmdldFVzZXJWYXIoJ3NhdmUnKSApIHsKICAJCQkJ
CSRlZGl0RGF0YSA9IHRydWU7CiAgCQkJCQkkZm9ybS0+ZXhlY3V0ZSgpOwotLS0gMTgyLDE4NyAt
LS0tCmRpZmYgLWNyIG9qczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9DdXN0
b21CbG9ja1BsdWdpbi5pbmMucGhwIG9jczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFu
YWdlci9DdXN0b21CbG9ja1BsdWdpbi5pbmMucGhwCioqKiBvanMyL3BsdWdpbnMvZ2VuZXJpYy9j
dXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tQbHVnaW4uaW5jLnBocAkyMDA5LTEwLTAxIDEz
OjAxOjAyLjAwMDAwMDAwMCAtMDcwMAotLS0gb2NzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxv
Y2tNYW5hZ2VyL0N1c3RvbUJsb2NrUGx1Z2luLmluYy5waHAJMjAwOS0xMC0xNiAxOToxMjoyNi4w
MDAwMDAwMDAgLTA3MDAKKioqKioqKioqKioqKioqCioqKiA5NywxMDYgKioqKgogIAkJCSkKICAJ
CSk7CiAgCQkKISAJCSRqb3VybmFsID0mIFJlcXVlc3Q6OmdldEpvdXJuYWwoKTsKICAKICAJCSR0
aGlzLT5pbXBvcnQoJ0N1c3RvbUJsb2NrRWRpdEZvcm0nKTsKISAJCSRmb3JtID0gbmV3IEN1c3Rv
bUJsb2NrRWRpdEZvcm0oJHRoaXMsICRqb3VybmFsLT5nZXRKb3VybmFsSWQoKSk7CiAgCQkKICAJ
CXN3aXRjaCAoJHZlcmIpIHsKICAJCQljYXNlICdlbmFibGUnOgotLS0gOTcsMTA2IC0tLS0KICAJ
CQkpCiAgCQkpOwogIAkJCiEgCQkkY29uZmVyZW5jZSA9JiBSZXF1ZXN0OjpnZXRDb25mZXJlbmNl
KCk7CiAgCiAgCQkkdGhpcy0+aW1wb3J0KCdDdXN0b21CbG9ja0VkaXRGb3JtJyk7CiEgCQkkZm9y
bSA9IG5ldyBDdXN0b21CbG9ja0VkaXRGb3JtKCR0aGlzLCAkY29uZmVyZW5jZS0+Z2V0Q29uZmVy
ZW5jZUlkKCkpOwogIAkJCiAgCQlzd2l0Y2ggKCR2ZXJiKSB7CiAgCQkJY2FzZSAnZW5hYmxlJzoK
KioqKioqKioqKioqKioqCioqKiAxMTEsMTE3ICoqKioKICAJCQkJYnJlYWs7CiAgCQkJY2FzZSAn
ZWRpdCc6CiAgCQkJCSRwYWdlQ3J1bWJzW10gPSBhcnJheSgKISAJCQkJCVJlcXVlc3Q6OnVybChu
dWxsLCAnbWFuYWdlcicsICdwbHVnaW5zJyksCiAgCQkJCQlMb2NhbGU6OnRyYW5zbGF0ZSgnbWFu
YWdlci5wbHVnaW5zJyksCiAgCQkJCQl0cnVlCiAgCQkJCSk7Ci0tLSAxMTEsMTE3IC0tLS0KICAJ
CQkJYnJlYWs7CiAgCQkJY2FzZSAnZWRpdCc6CiAgCQkJCSRwYWdlQ3J1bWJzW10gPSBhcnJheSgK
ISAgICAgICAgICAgUmVxdWVzdDo6dXJsKG51bGwsIG51bGwsICdtYW5hZ2VyJywgJ3BsdWdpbnMn
KSwKICAJCQkJCUxvY2FsZTo6dHJhbnNsYXRlKCdtYW5hZ2VyLnBsdWdpbnMnKSwKICAJCQkJCXRy
dWUKICAJCQkJKTsKKioqKioqKioqKioqKioqCioqKiAxMzEsMTM3ICoqKioKICAJCQkJCQkncGFn
ZVRpdGxlVHJhbnNsYXRlZCcgPT4gJHRoaXMtPmdldERpc3BsYXlOYW1lKCksCiAgCQkJCQkJJ3Bh
Z2VIaWVyYXJjaHknID0+ICRwYWdlQ3J1bWJzLCAKICAJCQkJCQknbWVzc2FnZScgPT4gJ3BsdWdp
bnMuZ2VuZXJpYy5jdXN0b21CbG9jay5zYXZlZCcsCiEgCQkJCQkJJ2JhY2tMaW5rJyA9PiBSZXF1
ZXN0Ojp1cmwobnVsbCwgJ21hbmFnZXInLCAncGx1Z2lucycpLAogIAkJCQkJCSdiYWNrTGlua0xh
YmVsJyA9PiAnY29tbW9uLmNvbnRpbnVlJwogIAkJCQkJKSk7CiAgCQkJCQkkdGVtcGxhdGVNZ3It
PmRpc3BsYXkoJ2NvbW1vbi9tZXNzYWdlLnRwbCcpOwotLS0gMTMxLDEzNyAtLS0tCiAgCQkJCQkJ
J3BhZ2VUaXRsZVRyYW5zbGF0ZWQnID0+ICR0aGlzLT5nZXREaXNwbGF5TmFtZSgpLAogIAkJCQkJ
CSdwYWdlSGllcmFyY2h5JyA9PiAkcGFnZUNydW1icywgCiAgCQkJCQkJJ21lc3NhZ2UnID0+ICdw
bHVnaW5zLmdlbmVyaWMuY3VzdG9tQmxvY2suc2F2ZWQnLAohIAkJCQkJCSdiYWNrTGluaycgPT4g
UmVxdWVzdDo6dXJsKG51bGwsIG51bGwsICdtYW5hZ2VyJywgJ3BsdWdpbnMnKSwKICAJCQkJCQkn
YmFja0xpbmtMYWJlbCcgPT4gJ2NvbW1vbi5jb250aW51ZScKICAJCQkJCSkpOwogIAkJCQkJJHRl
bXBsYXRlTWdyLT5kaXNwbGF5KCdjb21tb24vbWVzc2FnZS50cGwnKTsKKioqKioqKioqKioqKioq
CioqKiAxNTIsMTYxICoqKioKICAJICogQHJldHVybiBzdHJpbmcKICAJICovCiAgCWZ1bmN0aW9u
IGdldENvbnRlbnRzKCYkdGVtcGxhdGVNZ3IpIHsKISAJCSRqb3VybmFsID0mIFJlcXVlc3Q6Omdl
dEpvdXJuYWwoKTsKISAJCWlmICghJGpvdXJuYWwpIHJldHVybiAnJzsKICAKISAJCSR0ZW1wbGF0
ZU1nci0+YXNzaWduKCdjdXN0b21CbG9ja0NvbnRlbnQnLCAkdGhpcy0+Z2V0U2V0dGluZygkam91
cm5hbC0+Z2V0Sm91cm5hbElkKCksICdibG9ja0NvbnRlbnQnKSk7CiAgCQlyZXR1cm4gcGFyZW50
OjpnZXRDb250ZW50cygkdGVtcGxhdGVNZ3IpOwogIAogIAl9Ci0tLSAxNTIsMTYxIC0tLS0KICAJ
ICogQHJldHVybiBzdHJpbmcKICAJICovCiAgCWZ1bmN0aW9uIGdldENvbnRlbnRzKCYkdGVtcGxh
dGVNZ3IpIHsKISAJCSRjb25mZXJlbmNlID0mIFJlcXVlc3Q6OmdldENvbmZlcmVuY2UoKTsKISAJ
CWlmICghJGNvbmZlcmVuY2UpIHJldHVybiAnJzsKICAKISAJCSR0ZW1wbGF0ZU1nci0+YXNzaWdu
KCdjdXN0b21CbG9ja0NvbnRlbnQnLCAkdGhpcy0+Z2V0U2V0dGluZygkY29uZmVyZW5jZS0+Z2V0
Q29uZmVyZW5jZUlkKCksIDAsICdibG9ja0NvbnRlbnQnKSk7CiAgCQlyZXR1cm4gcGFyZW50Ojpn
ZXRDb250ZW50cygkdGVtcGxhdGVNZ3IpOwogIAogIAl9ClPDs2xvIGVuIG9qczIvcGx1Z2lucy9n
ZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci86IENWUwpkaWZmIC1jciBvanMyL3BsdWdpbnMvZ2Vu
ZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvbG9jYWxlL2VuX1VTL2xvY2FsZS54bWwgb2NzMi9wbHVn
aW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL2xvY2FsZS9lbl9VUy9sb2NhbGUueG1sCioq
KiBvanMyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvbG9jYWxlL2VuX1VTL2xv
Y2FsZS54bWwJMjAwOS0xMC0xNiAxOToyMjoxNy4wMDAwMDAwMDAgLTA3MDAKLS0tIG9jczIvcGx1
Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9sb2NhbGUvZW5fVVMvbG9jYWxlLnhtbAky
MDA5LTEwLTE2IDE5OjIxOjE0LjAwMDAwMDAwMCAtMDcwMAoqKioqKioqKioqKioqKioKKioqIDE1
LDIxICoqKioKICA8bG9jYWxlIG5hbWU9ImVuX1VTIiBmdWxsX25hbWU9IlUuUy4gRW5nbGlzaCI+
CiAgCTxtZXNzYWdlIGtleT0icGx1Z2lucy5nZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5kaXNw
bGF5TmFtZSI+Q3VzdG9tIEJsb2NrIE1hbmFnZXI8L21lc3NhZ2U+CiAgCTxtZXNzYWdlIGtleT0i
cGx1Z2lucy5nZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5kZXNjcmlwdGlvbiI+VGhpcyBwbHVn
aW4gbGV0cyB5b3UgY3JlYXRlIGFkZGl0aW9uIHNpZGViYXIgYmxvY2tzLiAgT25jZSB0aGV5IGFy
ZSBjcmVhdGVkLCB5b3UgY2FuIGVkaXQgdGhlaXIgY29udGVudCBhbmQgcmVhcnJhbmdlIHRoZW0g
d2l0aGluIHRoZSBzaWRlYmFycy48L21lc3NhZ2U+CQohIAk8bWVzc2FnZSBrZXk9InBsdWdpbi5n
ZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5pbnRyb2R1Y3Rpb24iPjwhW0NEQVRBW1lvdSBjYW4g
dXNlIHRoaXMgcGx1Z2luIHRvIGFkZCBvciBkZWxldGUgY3VzdG9tIGJsb2NrIHBsdWdpbnMuICBZ
b3UgY2FuIHRoZW4gZWRpdCB0aGUgY29udGVudCB0aHJvdWdoIHRoZSA8YSBocmVmPSJ7JHN5c3Rl
bVBsdWdpbnNVcmx9Ij5TeXN0ZW0gUGx1Z2luczwvYT4gcGFnZSAoaW4gdGhlIEJsb2NrcyBQbHVn
aW4gc2VjdGlvbikuICBUbyBwbGFjZSB5b3VyIHBsdWdpbiBpbiB0aGUgZGVzaXJlZCBsb2NhdGlv
biBpbiB0aGUgc2lkZWJhciwgZ28gdG8gPGEgaHJlZj0ieyRzZXR1cFN0ZXA1Nn0iPlNldHVwIHN0
ZXAgNS42PC9hPl1dPjwvbWVzc2FnZT4KICAJPG1lc3NhZ2Uga2V5PSJwbHVnaW5zLmdlbmVyaWMu
Y3VzdG9tQmxvY2tNYW5hZ2VyLnNldHRpbmdzIj5TZXR0aW5nczwvbWVzc2FnZT4KICAJPG1lc3Nh
Z2Uga2V5PSJwbHVnaW5zLmdlbmVyaWMuY3VzdG9tQmxvY2tNYW5hZ2VyLmRlc2NyaXB0aW9uIj5U
aGlzIFBsdWdpbiBsZXRzIHlvdSBtYW5hZ2UgY3VzdG9tIHNpZGViYXIgYmxvY2tzLiAgWW91IGNh
biBlZGl0IHRoZSBibG9ja3MgaW4gdGhlIHNldHRpbmdzIG9mIGVhY2ggcGx1Z2luIHRoYXQgeW91
IGNyZWF0ZSBoZXJlLjwvbWVzc2FnZT4KICAJPG1lc3NhZ2Uga2V5PSJwbHVnaW5zLmdlbmVyaWMu
Y3VzdG9tQmxvY2tNYW5hZ2VyLmJsb2NrTmFtZSI+QmxvY2sgTmFtZTwvbWVzc2FnZT4JCi0tLSAx
NSwyMSAtLS0tCiAgPGxvY2FsZSBuYW1lPSJlbl9VUyIgZnVsbF9uYW1lPSJVLlMuIEVuZ2xpc2gi
PgogIAk8bWVzc2FnZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIuZGlz
cGxheU5hbWUiPkN1c3RvbSBCbG9jayBNYW5hZ2VyPC9tZXNzYWdlPgogIAk8bWVzc2FnZSBrZXk9
InBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIuZGVzY3JpcHRpb24iPlRoaXMgcGx1
Z2luIGxldHMgeW91IGNyZWF0ZSBhZGRpdGlvbiBzaWRlYmFyIGJsb2Nrcy4gIE9uY2UgdGhleSBh
cmUgY3JlYXRlZCwgeW91IGNhbiBlZGl0IHRoZWlyIGNvbnRlbnQgYW5kIHJlYXJyYW5nZSB0aGVt
IHdpdGhpbiB0aGUgc2lkZWJhcnMuPC9tZXNzYWdlPgkKISAJPG1lc3NhZ2Uga2V5PSJwbHVnaW4u
Z2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIuaW50cm9kdWN0aW9uIj48IVtDREFUQVtZb3UgY2Fu
IHVzZSB0aGlzIHBsdWdpbiB0byBhZGQgb3IgZGVsZXRlIGN1c3RvbSBibG9jayBwbHVnaW5zLiAg
WW91IGNhbiB0aGVuIGVkaXQgdGhlIGNvbnRlbnQgdGhyb3VnaCB0aGUgPGEgaHJlZj0ieyRzeXN0
ZW1QbHVnaW5zVXJsfSI+U3lzdGVtIFBsdWdpbnM8L2E+IHBhZ2UgKGluIHRoZSBCbG9ja3MgUGx1
Z2luIHNlY3Rpb24pLiAgVG8gcGxhY2UgeW91ciBwbHVnaW4gaW4gdGhlIGRlc2lyZWQgbG9jYXRp
b24gaW4gdGhlIHNpZGViYXIsIGdvIHRvIDxhIGhyZWY9Inskc2V0dXBTdGVwNH0iPlNldCB1cCBz
dGVwIDQ8L2E+XV0+PC9tZXNzYWdlPgogIAk8bWVzc2FnZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5j
dXN0b21CbG9ja01hbmFnZXIuc2V0dGluZ3MiPlNldHRpbmdzPC9tZXNzYWdlPgogIAk8bWVzc2Fn
ZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIuZGVzY3JpcHRpb24iPlRo
aXMgUGx1Z2luIGxldHMgeW91IG1hbmFnZSBjdXN0b20gc2lkZWJhciBibG9ja3MuICBZb3UgY2Fu
IGVkaXQgdGhlIGJsb2NrcyBpbiB0aGUgc2V0dGluZ3Mgb2YgZWFjaCBwbHVnaW4gdGhhdCB5b3Ug
Y3JlYXRlIGhlcmUuPC9tZXNzYWdlPgogIAk8bWVzc2FnZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5j
dXN0b21CbG9ja01hbmFnZXIuYmxvY2tOYW1lIj5CbG9jayBOYW1lPC9tZXNzYWdlPgkKZGlmZiAt
Y3Igb2pzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL1JFQURNRSBvY3MyL3Bs
dWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvUkVBRE1FCioqKiBvanMyL3BsdWdpbnMv
Z2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvUkVBRE1FCTIwMDktMDctMjIgMTE6MDY6MzYuMDAw
MDAwMDAwIC0wNzAwCi0tLSBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIv
UkVBRE1FCTIwMDktMTAtMTYgMTk6MTk6MjEuMDAwMDAwMDAwIC0wNzAwCioqKioqKioqKioqKioq
KgoqKiogMSwxMiAqKioqCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KISA9PT0g
T0pTIEN1c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbgogID09PSBWZXJzaW9uOiAxLjAKICA9PT0g
QXV0aG9yOiBKdWFuIFBhYmxvIEFscGVyaW4gPHBrcEBhbHBlcmluLmNhPgogID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CiAgCiAgQWJvdXQKICAtLS0tLQohIFRoaXMgcGx1Z2luIGlz
IGludGVuZGVkIHRvIGVuYWJsZSB1c2VycyB0byBjcmVhdGUgY3VzdG9taXphYmxlIEhUTUwgYmxv
Y2tzIGZvciB0aGUgc2lkZWJhcnMuICBUaGUgcGx1Z2luIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdp
dGggU3RlcCA1IG9mIHRoZSBKb3VybmFsIFNldHVwLgogIAogIExpY2Vuc2UKICAtLS0tLS0tCi0t
LSAxLDE0IC0tLS0KICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQohID09PSBPQ1Mg
Q3VzdG9tIEJsb2NrIE1hbmFnZXIgUGx1Z2luCiAgPT09IFZlcnNpb246IDEuMAogID09PSBBdXRo
b3I6IEp1YW4gUGFibG8gQWxwZXJpbiA8cGtwQGFscGVyaW4uY2E+CiAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KICAKICBBYm91dAogIC0tLS0tCiEgVGhpcyBwbHVnaW4gaXMgaW50
ZW5kZWQgdG8gZW5hYmxlIHVzZXJzIHRvIGNyZWF0ZSBjdXN0b21pemFibGUgSFRNTCBibG9ja3Mg
Zm9yIHRoZSBzaWRlYmFycy4gIFRoZSBwbHVnaW4gd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCBT
dGVwIDQgb2YgdGhlIENvbmZlcmVuY2UgU2V0dXAuCiEgCiEgVGhpcyBwbHVnaW4gd2FzIHBvcnRl
ZCBmcm9tIHRoZSBPSlMgMi4zIEN1c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbi4KICAKICBMaWNl
bnNlCiAgLS0tLS0tLQoqKioqKioqKioqKioqKioKKioqIDE0LDMzICoqKioKICAKICBTeXN0ZW0g
UmVxdWlyZW1lbnRzCiAgLS0tLS0tLS0tLS0tLS0tLS0tLQohIFNhbWUgcmVxdWlyZW1lbnRzIGFz
IHRoZSBPSlMgMi4yIGNvcmUuCiAgCiEgSW5zdGFsbGF0aW9uCiAgLS0tLS0tLS0tLS0tCiAgVG8g
aW5zdGFsbCB0aGUgcGx1Z2luOgohICAtIGNvcHkgdGhlIHBsdWdpbiB0YXIuZ3ogZmlsZSB0byB5
b3VyIE9KUy9wbHVnaW5zL2dlbmVyaWMgZGlyZWN0b3J5CiAgIC0gdG8gdW56aXAgdGhlIHBsdWdp
biBpbnNpZGUgdGhlIHBsdWdpbnMvZ2VuZXJpYyBkaXJlY3Rvcnk6CiAgICAgICQgdGFyIHh2emYg
Y3VzdG9tQmxvY2tNYW5hZ2VyLTEuMC50YXIuZ3ogCiEgIC0gZW5hYmxlIHRoZSBwbHVnaW4gYnkg
Z29pbmcgdG86ICBIb21lID4gVXNlciA+IEpvdXJuYWwgTWFuYWdlbWVudCA+IFBsdWdpbiBNYW5h
Z2VtZW50ID4gR2VuZXJpYyBQbHVnaW5zIGFuZCBzZWxlY3RpbmcgIkVOQUJMRSIgdW5kZXIgIkN1
c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbiIKICAKICBDb25maWd1cmF0aW9uCiAgLS0tLS0tLS0t
LS0tCiEgVGhlIFBsdWdpbiBtYW5hZ2VtZW50IGludGVyZmFjZSBjYW4gYmUgZm91bmQgYXQgSG9t
ZSAtPiBVc2VyIC0+IEpvdXJuYWwgTWFuYWdlbWVudCA+IFBsdWdpbiBNYW5hZ2VtZW50ID4gR2Vu
ZXJpYyBQbHVnaW5zLiAgT25jZSB0aGUgcGx1Z2luIGlzIGVuYWJsZWQsIGJsb2NrcyBjYW4gYmUg
YWRkZWQgYW5kIGRlbGV0ZWQgdGhyb3VnaCB0aGlzIGludGVyZmFjZS4gIEJsb2NrcyB3aGljaCBh
cmUgY3JlYXRlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHdpbGwgc3Vic2VxdWVudGx5IGFwcGVh
ciBhcyB0aGVpciBvd24gQmxvY2sgUGx1Z2luIChmb3VuZCB1bmRlciBQbHVnaW4gTWFuYWdlbWVu
dCA+IEJsb2NrIFBsdWdpbnMpIGFuZCB0aGVpciBjb250ZW50IGNhbiBiZSBlZGl0ZWQgYnkgY2xp
Y2tpbmcgb24gdGhlICJFRElUIiBsaW5rIHVuZGVybmVhdGggdGhlIG5hbWUuCiEgTk9URTogVGhl
IHBsdWdpbiB3aWxsIE5PVCBhcHBlYXIgaW4gdGhlIHNpZGViYXIgdW50aWwgYSBzaWRlYmFyIGxv
Y2F0aW9uIGhhcyBiZWUgY2hvc2VuIHRocm91Z2ggSm91cm5hbCBNYW5hZ2VyIC0+IFNldHVwIC0+
IDUuIFRoZSBMb29rIChTcGVjaWZpY2FsbHksIHVuZGVyIEpvdXJuYWwgTGF5b3V0LCBzdGVwIDUu
NikuCiAgCiAgCiAgQ29udGFjdC9TdXBwb3J0Ci0tLSAxNiwzNSAtLS0tCiAgCiAgU3lzdGVtIFJl
cXVpcmVtZW50cwogIC0tLS0tLS0tLS0tLS0tLS0tLS0KISA/Pz8gU2FtZSByZXF1aXJlbWVudHMg
YXMgdGhlIE9DUyAyLjMgY29yZS4KICAKISA/Pz8gSW5zdGFsbGF0aW9uCiAgLS0tLS0tLS0tLS0t
CiAgVG8gaW5zdGFsbCB0aGUgcGx1Z2luOgohICAtIGNvcHkgdGhlIHBsdWdpbiB0YXIuZ3ogZmls
ZSB0byB5b3VyIE9DUy9wbHVnaW5zL2dlbmVyaWMgZGlyZWN0b3J5CiAgIC0gdG8gdW56aXAgdGhl
IHBsdWdpbiBpbnNpZGUgdGhlIHBsdWdpbnMvZ2VuZXJpYyBkaXJlY3Rvcnk6CiAgICAgICQgdGFy
IHh2emYgY3VzdG9tQmxvY2tNYW5hZ2VyLTEuMC50YXIuZ3ogCiEgIC0gZW5hYmxlIHRoZSBwbHVn
aW4gYnkgZ29pbmcgdG86ICBIb21lID4gVXNlciA+IENvbmZlcmVuY2UgTWFuYWdlbWVudCA+IFN5
c3RlbSBQbHVnaW5zID4gR2VuZXJpYyBQbHVnaW5zIGFuZCBzZWxlY3RpbmcgIkVOQUJMRSIgdW5k
ZXIgIkN1c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbiIKICAKICBDb25maWd1cmF0aW9uCiAgLS0t
LS0tLS0tLS0tCiEgVGhlIFBsdWdpbiBtYW5hZ2VtZW50IGludGVyZmFjZSBjYW4gYmUgZm91bmQg
YXQgSG9tZSAtPiBVc2VyIC0+IENvbmZlcmVuY2UgTWFuYWdlbWVudCA+IFN5c3RlbSBQbHVnaW5z
ID4gR2VuZXJpYyBQbHVnaW5zLiAgT25jZSB0aGUgcGx1Z2luIGlzIGVuYWJsZWQsIGJsb2NrcyBj
YW4gYmUgYWRkZWQgYW5kIGRlbGV0ZWQgdGhyb3VnaCB0aGlzIGludGVyZmFjZS4gIEJsb2NrcyB3
aGljaCBhcmUgY3JlYXRlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHdpbGwgc3Vic2VxdWVudGx5
IGFwcGVhciBhcyB0aGVpciBvd24gQmxvY2sgUGx1Z2luIChmb3VuZCB1bmRlciBQbHVnaW4gTWFu
YWdlbWVudCA+IEJsb2NrIFBsdWdpbnMpIGFuZCB0aGVpciBjb250ZW50IGNhbiBiZSBlZGl0ZWQg
YnkgY2xpY2tpbmcgb24gdGhlICJFRElUIiBsaW5rIHVuZGVybmVhdGggdGhlIG5hbWUuCiEgTk9U
RTogVGhlIHBsdWdpbiB3aWxsIE5PVCBhcHBlYXIgaW4gdGhlIHNpZGViYXIgdW50aWwgYSBzaWRl
YmFyIGxvY2F0aW9uIGhhcyBiZWVuIGNob3NlbiB0aHJvdWdoIENvbmZlcmVuY2UgTWFuYWdlciAt
PiBDb25mZXJlbmNlIFNpdGUgTWFuYWdlbWVudCAtPiA0LiBDb25mZXJlbmNlIFN0eWxlLgogIAog
IAogIENvbnRhY3QvU3VwcG9ydApkaWZmIC1jciBvanMyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21C
bG9ja01hbmFnZXIvU2V0dGluZ3NGb3JtLmluYy5waHAgb2NzMi9wbHVnaW5zL2dlbmVyaWMvY3Vz
dG9tQmxvY2tNYW5hZ2VyL1NldHRpbmdzRm9ybS5pbmMucGhwCioqKiBvanMyL3BsdWdpbnMvZ2Vu
ZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvU2V0dGluZ3NGb3JtLmluYy5waHAJMjAwOS0wOC0xOCAx
NjowNDoxOC4wMDAwMDAwMDAgLTA3MDAKLS0tIG9jczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJs
b2NrTWFuYWdlci9TZXR0aW5nc0Zvcm0uaW5jLnBocAkyMDA5LTEwLTE3IDAwOjExOjE1LjAwMDAw
MDAwMCAtMDcwMAoqKioqKioqKioqKioqKioKKioqIDcsMjEgKioqKgogICAqCiAgICogQGNsYXNz
IFNldHRpbmdzRm9ybQogICAqCiEgICogQGJyaWVmIEZvcm0gZm9yIGpvdXJuYWwgbWFuYWdlcnMg
dG8gYWRkIG9yIGRlbGV0ZSBzaWRlYmFyIGJsb2NrcwogICAqCiAgICovCiAgCiAgaW1wb3J0KCdm
b3JtLkZvcm0nKTsKICAKICBjbGFzcyBTZXR0aW5nc0Zvcm0gZXh0ZW5kcyBGb3JtIHsKISAJLyoq
IEB2YXIgJGpvdXJuYWxJZCBpbnQgKi8KISAJdmFyICRqb3VybmFsSWQ7CiAgCiAgCS8qKiBAdmFy
ICRwbHVnaW4gb2JqZWN0ICovCiAgCXZhciAkcGx1Z2luOwotLS0gNywyMSAtLS0tCiAgICoKICAg
KiBAY2xhc3MgU2V0dGluZ3NGb3JtCiAgICoKISAgKiBAYnJpZWYgRm9ybSBmb3IgY29uZmVyZW5j
ZSBtYW5hZ2VycyB0byBhZGQgb3IgZGVsZXRlIHNpZGViYXIgYmxvY2tzCiAgICoKICAgKi8KICAK
ICBpbXBvcnQoJ2Zvcm0uRm9ybScpOwogIAogIGNsYXNzIFNldHRpbmdzRm9ybSBleHRlbmRzIEZv
cm0gewohIAkvKiogQHZhciAkY29uZmVyZW5jZUlkIGludCAqLwohIAl2YXIgJGNvbmZlcmVuY2VJ
ZDsKICAKICAJLyoqIEB2YXIgJHBsdWdpbiBvYmplY3QgKi8KICAJdmFyICRwbHVnaW47CioqKioq
KioqKioqKioqKgoqKiogMjUsMzcgKioqKgogIAogIAkvKioKICAJICogQ29uc3RydWN0b3IKISAJ
ICogQHBhcmFtICRqb3VybmFsSWQgaW50CiAgCSAqLwohIAlmdW5jdGlvbiBTZXR0aW5nc0Zvcm0o
JiRwbHVnaW4sICRqb3VybmFsSWQpIHsKICAKICAJCXBhcmVudDo6Rm9ybSgkcGx1Z2luLT5nZXRU
ZW1wbGF0ZVBhdGgoKSAuICdzZXR0aW5nc0Zvcm0udHBsJyk7CiAgCiEgCQkkdGhpcy0+am91cm5h
bElkID0gJGpvdXJuYWxJZDsKICAJCSR0aGlzLT5wbHVnaW4gPSYgJHBsdWdpbjsKICAKICAJfQot
LS0gMjUsMzcgLS0tLQogIAogIAkvKioKICAJICogQ29uc3RydWN0b3IKISAJICogQHBhcmFtICRj
b25mZXJlbmNlSWQgaW50CiAgCSAqLwohIAlmdW5jdGlvbiBTZXR0aW5nc0Zvcm0oJiRwbHVnaW4s
ICRjb25mZXJlbmNlSWQpIHsKICAKICAJCXBhcmVudDo6Rm9ybSgkcGx1Z2luLT5nZXRUZW1wbGF0
ZVBhdGgoKSAuICdzZXR0aW5nc0Zvcm0udHBsJyk7CiAgCiEgCQkkdGhpcy0+Y29uZmVyZW5jZUlk
ID0gJGNvbmZlcmVuY2VJZDsKICAJCSR0aGlzLT5wbHVnaW4gPSYgJHBsdWdpbjsKICAKICAJfQoq
KioqKioqKioqKioqKioKKioqIDQwLDUxICoqKioKICAJICogSW5pdGlhbGl6ZSBmb3JtIGRhdGEg
ZnJvbSAgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byB0aGUgZm9ybQogIAkgKi8KICAJZnVuY3Rpb24g
aW5pdERhdGEoKSB7CiEgCQkkam91cm5hbElkID0gJHRoaXMtPmpvdXJuYWxJZDsKICAJCSRwbHVn
aW4gPSYgJHRoaXMtPnBsdWdpbjsKICAKICAJCSR0ZW1wbGF0ZU1nciA9JiBUZW1wbGF0ZU1hbmFn
ZXI6OmdldE1hbmFnZXIoKTsKICAKISAJCSRibG9ja3MgPSAkcGx1Z2luLT5nZXRTZXR0aW5nKCRq
b3VybmFsSWQsICdibG9ja3MnKTsKICAKICAJCWlmICggIWlzX2FycmF5KCRibG9ja3MpICkgewog
IAkJCSR0aGlzLT5zZXREYXRhKCdibG9ja3MnLCBhcnJheSgpKTsKLS0tIDQwLDUxIC0tLS0KICAJ
ICogSW5pdGlhbGl6ZSBmb3JtIGRhdGEgZnJvbSAgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byB0aGUg
Zm9ybQogIAkgKi8KICAJZnVuY3Rpb24gaW5pdERhdGEoKSB7CiEgCQkkY29uZmVyZW5jZUlkID0g
JHRoaXMtPmNvbmZlcmVuY2VJZDsKICAJCSRwbHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKICAKICAJ
CSR0ZW1wbGF0ZU1nciA9JiBUZW1wbGF0ZU1hbmFnZXI6OmdldE1hbmFnZXIoKTsKICAKISAJCSRi
bG9ja3MgPSAkcGx1Z2luLT5nZXRTZXR0aW5nKCRjb25mZXJlbmNlSWQsIDAsICdibG9ja3MnKTsK
ICAKICAJCWlmICggIWlzX2FycmF5KCRibG9ja3MpICkgewogIAkJCSR0aGlzLT5zZXREYXRhKCdi
bG9ja3MnLCBhcnJheSgpKTsKKioqKioqKioqKioqKioqCioqKiA3MSw4NiAqKioqCiAgCSAqLwog
IAlmdW5jdGlvbiBleGVjdXRlKCkgewogIAkJJHBsdWdpbiA9JiAkdGhpcy0+cGx1Z2luOwohIAkJ
JGpvdXJuYWxJZCA9ICR0aGlzLT5qb3VybmFsSWQ7CiAgCiAgCQkkcGx1Z2luU2V0dGluZ3NEQU8g
PSYgREFPUmVnaXN0cnk6OmdldERBTygnUGx1Z2luU2V0dGluZ3NEQU8nKTsKICAKICAJCSRkZWxl
dGVkQmxvY2tzID0gZXhwbG9kZSgnOicsJHRoaXMtPmdldERhdGEoJ2RlbGV0ZWRCbG9ja3MnKSk7
CiAgCQlmb3JlYWNoICgkZGVsZXRlZEJsb2NrcyBhcyAkZGVsZXRlZEJsb2NrKSB7CiEgCQkJJHBs
dWdpblNldHRpbmdzREFPLT5kZWxldGVTZXR0aW5nKCRqb3VybmFsSWQsICRkZWxldGVkQmxvY2su
J0N1c3RvbUJsb2NrUGx1Z2luJywgJ2VuYWJsZWQnKTsKISAJCQkkcGx1Z2luU2V0dGluZ3NEQU8t
PmRlbGV0ZVNldHRpbmcoJGpvdXJuYWxJZCwgJGRlbGV0ZWRCbG9jay4nQ3VzdG9tQmxvY2tQbHVn
aW4nLCAnc2VxJyk7CiEgCQkJJHBsdWdpblNldHRpbmdzREFPLT5kZWxldGVTZXR0aW5nKCRqb3Vy
bmFsSWQsICRkZWxldGVkQmxvY2suJ0N1c3RvbUJsb2NrUGx1Z2luJywgJ2NvbnRleHQnKTsKISAJ
CQkkcGx1Z2luU2V0dGluZ3NEQU8tPmRlbGV0ZVNldHRpbmcoJGpvdXJuYWxJZCwgJGRlbGV0ZWRC
bG9jay4nQ3VzdG9tQmxvY2tQbHVnaW4nLCAnYmxvY2tDb250ZW50Jyk7CiAgCQl9CiAgCiAgCQkv
L3NvcnQgdGhlIGJsb2NrcyBpbiBhbHBoYWJldGljYWwgb3JkZXIKLS0tIDcxLDg2IC0tLS0KICAJ
ICovCiAgCWZ1bmN0aW9uIGV4ZWN1dGUoKSB7CiAgCQkkcGx1Z2luID0mICR0aGlzLT5wbHVnaW47
CiEgCQkkY29uZmVyZW5jZUlkID0gJHRoaXMtPmNvbmZlcmVuY2VJZDsKICAKICAJCSRwbHVnaW5T
ZXR0aW5nc0RBTyA9JiBEQU9SZWdpc3RyeTo6Z2V0REFPKCdQbHVnaW5TZXR0aW5nc0RBTycpOwog
IAogIAkJJGRlbGV0ZWRCbG9ja3MgPSBleHBsb2RlKCc6JywkdGhpcy0+Z2V0RGF0YSgnZGVsZXRl
ZEJsb2NrcycpKTsKICAJCWZvcmVhY2ggKCRkZWxldGVkQmxvY2tzIGFzICRkZWxldGVkQmxvY2sp
IHsKISAJCQkkcGx1Z2luU2V0dGluZ3NEQU8tPmRlbGV0ZVNldHRpbmcoJGNvbmZlcmVuY2VJZCwg
MCwgJGRlbGV0ZWRCbG9jay4nQ3VzdG9tQmxvY2tQbHVnaW4nLCAnZW5hYmxlZCcpOwohIAkJCSRw
bHVnaW5TZXR0aW5nc0RBTy0+ZGVsZXRlU2V0dGluZygkY29uZmVyZW5jZUlkLCAwLCAkZGVsZXRl
ZEJsb2NrLidDdXN0b21CbG9ja1BsdWdpbicsICdzZXEnKTsKISAJCQkkcGx1Z2luU2V0dGluZ3NE
QU8tPmRlbGV0ZVNldHRpbmcoJGNvbmZlcmVuY2VJZCwgMCwgJGRlbGV0ZWRCbG9jay4nQ3VzdG9t
QmxvY2tQbHVnaW4nLCAnY29udGV4dCcpOwohIAkJCSRwbHVnaW5TZXR0aW5nc0RBTy0+ZGVsZXRl
U2V0dGluZygkY29uZmVyZW5jZUlkLCAwLCAkZGVsZXRlZEJsb2NrLidDdXN0b21CbG9ja1BsdWdp
bicsICdibG9ja0NvbnRlbnQnKTsKICAJCX0KICAKICAJCS8vc29ydCB0aGUgYmxvY2tzIGluIGFs
cGhhYmV0aWNhbCBvcmRlcgoqKioqKioqKioqKioqKioKKioqIDk1LDEwMSAqKioqCiAgCQl9CiAg
CiAgCQkvLyBVcGRhdGUgYmxvY2tzCiEgCQkkcGx1Z2luLT51cGRhdGVTZXR0aW5nKCRqb3VybmFs
SWQsICdibG9ja3MnLCAkYmxvY2tzKTsKICAJCSR0aGlzLT5zZXREYXRhKCdibG9ja3MnLCRibG9j
a3MpOwogIAl9CiAgfQotLS0gOTUsMTAxIC0tLS0KICAJCX0KICAKICAJCS8vIFVwZGF0ZSBibG9j
a3MKISAJCSRwbHVnaW4tPnVwZGF0ZVNldHRpbmcoJGNvbmZlcmVuY2VJZCwgMCwgJ2Jsb2Nrcycs
ICRibG9ja3MpOwogIAkJJHRoaXMtPnNldERhdGEoJ2Jsb2NrcycsJGJsb2Nrcyk7CiAgCX0KICB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2537</attachid>
            <date>2009-10-17 00:26:00 -0700</date>
            <delta_ts>2009-10-17 00:26:36 -0700</delta_ts>
            <desc>unified diff</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>16217</size>
            <attacher>rcyeske</attacher>
            
              <data encoding="base64">ZGlmZiAtdXIgb2pzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL0N1c3RvbUJs
b2NrRWRpdEZvcm0uaW5jLnBocCBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFn
ZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCi0tLSBvanMyL3BsdWdpbnMvZ2VuZXJpYy9j
dXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCTIwMDktMTAtMDEg
MTM6MDE6MDEuMDAwMDAwMDAwIC0wNzAwCisrKyBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21C
bG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tFZGl0Rm9ybS5pbmMucGhwCTIwMDktMTAtMTYgMTk6MDM6
MjcuMDAwMDAwMDAwIC0wNzAwCkBAIC05LDE1ICs5LDE1IEBACiAgKiBAcGFja2FnZSBwbHVnaW5z
LmdlbmVyaWMuY3VzdG9tQmxvY2tNYW5hZ2VyCiAgKiBAY2xhc3MgQ3VzdG9tQmxvY2tFZGl0Rm9y
bQogICoKLSAqIEZvcm0gZm9yIGpvdXJuYWwgbWFuYWdlcnMgdG8gY3JlYXRlIGFuZCBtb2RpZnkg
c2lkZWJhciBibG9ja3MKKyAqIEZvcm0gZm9yIGNvbmZlcmVuY2UgbWFuYWdlcnMgdG8gY3JlYXRl
IGFuZCBtb2RpZnkgc2lkZWJhciBibG9ja3MKICAqIAogICovCiAKIGltcG9ydCgnZm9ybS5Gb3Jt
Jyk7CiAKIGNsYXNzIEN1c3RvbUJsb2NrRWRpdEZvcm0gZXh0ZW5kcyBGb3JtIHsKLQkvKiogQHZh
ciAkam91cm5hbElkIGludCAqLwotCXZhciAkam91cm5hbElkOworCS8qKiBAdmFyICRjb25mZXJl
bmNlSWQgaW50ICovCisJdmFyICRjb25mZXJlbmNlSWQ7CiAKIAkvKiogQHZhciAkcGx1Z2luIG9i
amVjdCAqLwogCXZhciAkcGx1Z2luOwpAQCAtMjcsMTMgKzI3LDEzIEBACiAKIAkvKioKIAkgKiBD
b25zdHJ1Y3RvcgotCSAqIEBwYXJhbSAkam91cm5hbElkIGludAorCSAqIEBwYXJhbSAkY29uZmVy
ZW5jZUlkIGludAogCSAqLwotCWZ1bmN0aW9uIEN1c3RvbUJsb2NrRWRpdEZvcm0oJiRwbHVnaW4s
ICRqb3VybmFsSWQpIHsKKwlmdW5jdGlvbiBDdXN0b21CbG9ja0VkaXRGb3JtKCYkcGx1Z2luLCAk
Y29uZmVyZW5jZUlkKSB7CiAKIAkJcGFyZW50OjpGb3JtKCRwbHVnaW4tPmdldFRlbXBsYXRlUGF0
aCgpIC4gJ2VkaXRDdXN0b21CbG9ja0Zvcm0udHBsJyk7CiAKLQkJJHRoaXMtPmpvdXJuYWxJZCA9
ICRqb3VybmFsSWQ7CisJCSR0aGlzLT5jb25mZXJlbmNlSWQgPSAkY29uZmVyZW5jZUlkOwogCQkk
dGhpcy0+cGx1Z2luID0mICRwbHVnaW47CiAKIAkJJHRoaXMtPmFkZENoZWNrKG5ldyBGb3JtVmFs
aWRhdG9yUG9zdCgkdGhpcykpOwpAQCAtNDUsMjYgKzQ1LDI2IEBACiAJICogSW5pdGlhbGl6ZSBm
b3JtIGRhdGEgZnJvbSBjdXJyZW50IGdyb3VwIGdyb3VwLgogCSAqLwogCWZ1bmN0aW9uIGluaXRE
YXRhKCkgewotCQkkam91cm5hbElkID0gJHRoaXMtPmpvdXJuYWxJZDsKKwkJJGNvbmZlcmVuY2VJ
ZCA9ICR0aGlzLT5jb25mZXJlbmNlSWQ7CiAJCSRwbHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKIAog
CQkvLyBhZGQgdGhlIHRpbnkgTUNFIHNjcmlwdCAKIAkJJHRoaXMtPmFkZFRpbnlNQ0UoKTsKLQkJ
JHRoaXMtPnNldERhdGEoJ2Jsb2NrQ29udGVudCcsICRwbHVnaW4tPmdldFNldHRpbmcoJGpvdXJu
YWxJZCwgJ2Jsb2NrQ29udGVudCcpKTsKKwkJJHRoaXMtPnNldERhdGEoJ2Jsb2NrQ29udGVudCcs
ICRwbHVnaW4tPmdldFNldHRpbmcoJGNvbmZlcmVuY2VJZCwgMCwgJ2Jsb2NrQ29udGVudCcpKTsK
IAl9CiAKIAkvKioKIAkgKiBBZGQgdGhlIHRpbnlNQ0Ugc2NyaXB0IGZvciBlZGl0aW5nIHNpZGVi
YXIgYmxvY2tzIHdpdGggYSBXWVNJV1lHIGVkaXRvcgogCSAqLwogCWZ1bmN0aW9uIGFkZFRpbnlN
Q0UoKSB7Ci0JCSRqb3VybmFsSWQgPSAkdGhpcy0+am91cm5hbElkOworCQkkY29uZmVyZW5jZUlk
ID0gJHRoaXMtPmNvbmZlcmVuY2VJZDsKIAkJJHBsdWdpbiA9JiAkdGhpcy0+cGx1Z2luOwogCQkk
dGVtcGxhdGVNZ3IgPSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CiAKIAkJLy8gRW5h
YmxlIFRpbnlNQ0Ugd2l0aCBzcGVjaWZpYyBwYXJhbXMKIAkJJGFkZGl0aW9uYWxIZWFkRGF0YSA9
ICR0ZW1wbGF0ZU1nci0+Z2V0X3RlbXBsYXRlX3ZhcnMoJ2FkZGl0aW9uYWxIZWFkRGF0YScpOwog
Ci0JCWltcG9ydCgnZmlsZS5Kb3VybmFsRmlsZU1hbmFnZXInKTsKKwkJaW1wb3J0KCdmaWxlLkNv
bmZlcmVuY2VGaWxlTWFuYWdlcicpOwogCQkkcHVibGljRmlsZU1hbmFnZXIgPSBuZXcgUHVibGlj
RmlsZU1hbmFnZXIoKTsKIAkJJHRpbnlNQ0Vfc2NyaXB0ID0gJwogCQk8c2NyaXB0IGxhbmd1YWdl
PSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy5SZXF1ZXN0OjpnZXRC
YXNlVXJsKCkuJy8nLlRJTllNQ0VfSlNfUEFUSC4nL3RpbnlfbWNlLmpzIj48L3NjcmlwdD4KQEAg
LTgwLDcgKzgwLDcgQEAKIAkJCXRoZW1lX2FkdmFuY2VkX3Rvb2xiYXJfYWxpZ24gOiAibGVmdCIs
CiAJCQljb250ZW50X2NzcyA6ICInIC4gUmVxdWVzdDo6Z2V0QmFzZVVybCgpIC4gJy9zdHlsZXMv
Y29tbW9uLmNzcyIsIAogCQkJcmVsYXRpdmVfdXJscyA6IGZhbHNlLCAJCQotCQkJZG9jdW1lbnRf
YmFzZV91cmwgOiAiJy4gUmVxdWVzdDo6Z2V0QmFzZVVybCgpIC4nLycuJHB1YmxpY0ZpbGVNYW5h
Z2VyLT5nZXRKb3VybmFsRmlsZXNQYXRoKCRqb3VybmFsSWQpIC4nLyIsIAorCQkJZG9jdW1lbnRf
YmFzZV91cmwgOiAiJy4gUmVxdWVzdDo6Z2V0QmFzZVVybCgpIC4nLycuJHB1YmxpY0ZpbGVNYW5h
Z2VyLT5nZXRDb25mZXJlbmNlRmlsZXNQYXRoKCRjb25mZXJlbmNlSWQpIC4nLyIsIAogCQkJZXh0
ZW5kZWRfdmFsaWRfZWxlbWVudHMgOiAic3BhblsqXSwgZGl2WypdIgogCQkJfSk7CiAJCTwvc2Ny
aXB0Pic7CkBAIC0xMDEsOCArMTAxLDggQEAKIAkgKi8JIAogCWZ1bmN0aW9uIHNhdmUoKSB7CiAJ
CSRwbHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKLQkJJGpvdXJuYWxJZCA9ICR0aGlzLT5qb3VybmFs
SWQ7Ci0JCSRwbHVnaW4tPnVwZGF0ZVNldHRpbmcoJGpvdXJuYWxJZCwgJ2Jsb2NrQ29udGVudCcs
ICR0aGlzLT5nZXREYXRhKCdibG9ja0NvbnRlbnQnKSk7CQkKKwkJJGNvbmZlcmVuY2VJZCA9ICR0
aGlzLT5jb25mZXJlbmNlSWQ7CisJCSRwbHVnaW4tPnVwZGF0ZVNldHRpbmcoJGNvbmZlcmVuY2VJ
ZCwgMCwgJ2Jsb2NrQ29udGVudCcsICR0aGlzLT5nZXREYXRhKCdibG9ja0NvbnRlbnQnKSk7CQkK
IAl9CiAKIH0KZGlmZiAtdXIgb2pzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2Vy
L0N1c3RvbUJsb2NrTWFuYWdlclBsdWdpbi5pbmMucGhwIG9jczIvcGx1Z2lucy9nZW5lcmljL2N1
c3RvbUJsb2NrTWFuYWdlci9DdXN0b21CbG9ja01hbmFnZXJQbHVnaW4uaW5jLnBocAotLS0gb2pz
Mi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL0N1c3RvbUJsb2NrTWFuYWdlclBs
dWdpbi5pbmMucGhwCTIwMDktMTAtMDEgMTM6MDE6MDIuMDAwMDAwMDAwIC0wNzAwCisrKyBvY3My
L3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tNYW5hZ2VyUGx1
Z2luLmluYy5waHAJMjAwOS0xMC0xNiAxOTowMzoyNi4wMDAwMDAwMDAgLTA3MDAKQEAgLTU0LDEw
ICs1NCwxMCBAQAogCQkJY2FzZSAnYmxvY2tzJzoKIAkJCQkkdGhpcy0+aW1wb3J0KCdDdXN0b21C
bG9ja1BsdWdpbicpOwogCQkJCQotCQkJCSRqb3VybmFsID0mIFJlcXVlc3Q6OmdldEpvdXJuYWwo
KTsKLQkJCQlpZiAoICEkam91cm5hbCApIHJldHVybiBmYWxzZTsKKwkJCQkkY29uZmVyZW5jZSA9
JiBSZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CisJCQkJaWYgKCAhJGNvbmZlcmVuY2UgKSByZXR1
cm4gZmFsc2U7CiAJCQkJCi0JCQkJJGJsb2NrcyA9ICR0aGlzLT5nZXRTZXR0aW5nKCRqb3VybmFs
LT5nZXRKb3VybmFsSWQoKSwgJ2Jsb2NrcycpOworCQkJCSRibG9ja3MgPSAkdGhpcy0+Z2V0U2V0
dGluZygkY29uZmVyZW5jZS0+Z2V0Q29uZmVyZW5jZUlkKCksIDAsICdibG9ja3MnKTsKIAkJCQlp
ZiAoICFpc19hcnJheSgkYmxvY2tzKSApIGJyZWFrOwogCQkJCSRpPSAwOwogCQkJCWZvcmVhY2gg
KCAkYmxvY2tzIGFzICRibG9jayApIHsKQEAgLTg0LDIxICs4NCwxOCBAQAogCSAqIERldGVybWlu
ZSB3aGV0aGVyIG9yIG5vdCB0aGlzIHBsdWdpbiBpcyBlbmFibGVkLgogCSAqLwogCWZ1bmN0aW9u
IGdldEVuYWJsZWQoKSB7Ci0JCSRqb3VybmFsID0mIFJlcXVlc3Q6OmdldEpvdXJuYWwoKTsKLQkJ
aWYgKCEkam91cm5hbCkgcmV0dXJuIGZhbHNlOwotCQlyZXR1cm4gJHRoaXMtPmdldFNldHRpbmco
JGpvdXJuYWwtPmdldEpvdXJuYWxJZCgpLCAnZW5hYmxlZCcpOworCQkkY29uZmVyZW5jZSA9JiBS
ZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CisgCQkkY29uZmVyZW5jZUlkID0gJGNvbmZlcmVuY2U/
JGNvbmZlcmVuY2UtPmdldENvbmZlcmVuY2VJZCgpOjA7CisJCXJldHVybiAkdGhpcy0+Z2V0U2V0
dGluZygkY29uZmVyZW5jZUlkLCAwLCAnZW5hYmxlZCcpOwogCX0KIAogCS8qKgogCSAqIFNldCB0
aGUgZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZSBvZiB0aGlzIHBsdWdpbgogCSAqLwogCWZ1bmN0aW9u
IHNldEVuYWJsZWQoJGVuYWJsZWQpIHsKLQkJJGpvdXJuYWwgPSYgUmVxdWVzdDo6Z2V0Sm91cm5h
bCgpOwotCQlpZiAoJGpvdXJuYWwpIHsKLQkJCSR0aGlzLT51cGRhdGVTZXR0aW5nKCRqb3VybmFs
LT5nZXRKb3VybmFsSWQoKSwgJ2VuYWJsZWQnLCAkZW5hYmxlZCA/IHRydWUgOiBmYWxzZSk7Ci0J
CQlyZXR1cm4gdHJ1ZTsKLQkJfQotCQlyZXR1cm4gZmFsc2U7CisgCQkkY29uZmVyZW5jZSA9JiBS
ZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CisgCQkkY29uZmVyZW5jZUlkID0gJGNvbmZlcmVuY2U/
JGNvbmZlcmVuY2UtPmdldENvbmZlcmVuY2VJZCgpOjA7CisgCQkkdGhpcy0+dXBkYXRlU2V0dGlu
ZygkY29uZmVyZW5jZUlkLCAwLCAnZW5hYmxlZCcsICRlbmFibGVkKTsKIAl9CiAKIAkvKioKQEAg
LTEzNSwxNiArMTMyLDE2IEBACiAKIAkJJHBhZ2VDcnVtYnMgPSBhcnJheSgKIAkJCWFycmF5KAot
CQkJCVJlcXVlc3Q6OnVybChudWxsLCAndXNlcicpLAorCQkJCVJlcXVlc3Q6OnVybChudWxsLCBu
dWxsLCAndXNlcicpLAogCQkJCSduYXZpZ2F0aW9uLnVzZXInCiAJCQkpLAogCQkJYXJyYXkoCi0J
CQkJUmVxdWVzdDo6dXJsKG51bGwsICdtYW5hZ2VyJyksCisJCQkJUmVxdWVzdDo6dXJsKG51bGws
IG51bGwsICdtYW5hZ2VyJyksCiAJCQkJJ3VzZXIucm9sZS5tYW5hZ2VyJwogCQkJKQogCQkpOwog
CQkKLQkJJGpvdXJuYWwgPSYgUmVxdWVzdDo6Z2V0Sm91cm5hbCgpOworCQkkY29uZmVyZW5jZSA9
JiBSZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CiAJCQogCQlzd2l0Y2ggKCR2ZXJiKSB7CiAJCQlj
YXNlICdlbmFibGUnOgpAQCAtMTU1LDE0ICsxNTIsMTQgQEAKIAkJCQlicmVhazsKIAkJCWNhc2Ug
J3NldHRpbmdzJzoKIAkJCQkkcGFnZUNydW1ic1tdID0gYXJyYXkoCi0JCQkJCVJlcXVlc3Q6OnVy
bChudWxsLCAnbWFuYWdlcicsICdwbHVnaW5zJyksCisJCQkJCVJlcXVlc3Q6OnVybChudWxsLCBu
dWxsLCAnbWFuYWdlcicsICdwbHVnaW5zJyksCiAJCQkJCUxvY2FsZTo6dHJhbnNsYXRlKCdtYW5h
Z2VyLnBsdWdpbnMnKSwKIAkJCQkJdHJ1ZQogCQkJCSk7CiAJCQkJJHRlbXBsYXRlTWdyLT5hc3Np
Z24oJ3BhZ2VIaWVyYXJjaHknLCAkcGFnZUNydW1icyk7CiAKIAkJCQkkdGhpcy0+aW1wb3J0KCdT
ZXR0aW5nc0Zvcm0nKTsKLQkJCQkkZm9ybSA9IG5ldyBTZXR0aW5nc0Zvcm0oJHRoaXMsICRqb3Vy
bmFsLT5nZXRKb3VybmFsSWQoKSk7CisJCQkJJGZvcm0gPSBuZXcgU2V0dGluZ3NGb3JtKCR0aGlz
LCAkY29uZmVyZW5jZS0+Z2V0Q29uZmVyZW5jZUlkKCkpOwogCQkJCSRmb3JtLT5yZWFkSW5wdXRE
YXRhKCk7CiAJCQkJCiAJCQkJaWYgKFJlcXVlc3Q6OmdldFVzZXJWYXIoJ2FkZEJsb2NrJykpIHsK
QEAgLTE3Miw3ICsxNjksNiBAQAogCQkJCQkkYmxvY2tzID0gJGZvcm0tPmdldERhdGEoJ2Jsb2Nr
cycpOwogCQkJCQlhcnJheV9wdXNoKCRibG9ja3MsICcnKTsKIAkJCQkJJGZvcm0tPl9kYXRhWydi
bG9ja3MnXSA9ICRibG9ja3M7Ci0KIAkJCQl9IGVsc2UgaWYgKCgkZGVsQmxvY2sgPSBSZXF1ZXN0
OjpnZXRVc2VyVmFyKCdkZWxCbG9jaycpKSAmJiBjb3VudCgkZGVsQmxvY2spID09IDEpIHsKIAkJ
CQkJLy8gRGVsZXRlIGFuIGJsb2NrCiAJCQkJCSRlZGl0RGF0YSA9IHRydWU7CkBAIC0xODYsNyAr
MTgyLDYgQEAKIAkJCQkJfQogCQkJCQlhcnJheV9zcGxpY2UoJGJsb2NrcywgJGRlbEJsb2NrLCAx
KTsKIAkJCQkJJGZvcm0tPl9kYXRhWydibG9ja3MnXSA9ICRibG9ja3M7Ci0KIAkJCQl9IGVsc2Ug
aWYgKCBSZXF1ZXN0OjpnZXRVc2VyVmFyKCdzYXZlJykgKSB7CiAJCQkJCSRlZGl0RGF0YSA9IHRy
dWU7CiAJCQkJCSRmb3JtLT5leGVjdXRlKCk7CmRpZmYgLXVyIG9qczIvcGx1Z2lucy9nZW5lcmlj
L2N1c3RvbUJsb2NrTWFuYWdlci9DdXN0b21CbG9ja1BsdWdpbi5pbmMucGhwIG9jczIvcGx1Z2lu
cy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9DdXN0b21CbG9ja1BsdWdpbi5pbmMucGhwCi0t
LSBvanMyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvQ3VzdG9tQmxvY2tQbHVn
aW4uaW5jLnBocAkyMDA5LTEwLTAxIDEzOjAxOjAyLjAwMDAwMDAwMCAtMDcwMAorKysgb2NzMi9w
bHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL0N1c3RvbUJsb2NrUGx1Z2luLmluYy5w
aHAJMjAwOS0xMC0xNiAxOToxMjoyNi4wMDAwMDAwMDAgLTA3MDAKQEAgLTk3LDEwICs5NywxMCBA
QAogCQkJKQogCQkpOwogCQkKLQkJJGpvdXJuYWwgPSYgUmVxdWVzdDo6Z2V0Sm91cm5hbCgpOwor
CQkkY29uZmVyZW5jZSA9JiBSZXF1ZXN0OjpnZXRDb25mZXJlbmNlKCk7CiAKIAkJJHRoaXMtPmlt
cG9ydCgnQ3VzdG9tQmxvY2tFZGl0Rm9ybScpOwotCQkkZm9ybSA9IG5ldyBDdXN0b21CbG9ja0Vk
aXRGb3JtKCR0aGlzLCAkam91cm5hbC0+Z2V0Sm91cm5hbElkKCkpOworCQkkZm9ybSA9IG5ldyBD
dXN0b21CbG9ja0VkaXRGb3JtKCR0aGlzLCAkY29uZmVyZW5jZS0+Z2V0Q29uZmVyZW5jZUlkKCkp
OwogCQkKIAkJc3dpdGNoICgkdmVyYikgewogCQkJY2FzZSAnZW5hYmxlJzoKQEAgLTExMSw3ICsx
MTEsNyBAQAogCQkJCWJyZWFrOwogCQkJY2FzZSAnZWRpdCc6CiAJCQkJJHBhZ2VDcnVtYnNbXSA9
IGFycmF5KAotCQkJCQlSZXF1ZXN0Ojp1cmwobnVsbCwgJ21hbmFnZXInLCAncGx1Z2lucycpLAor
ICAgICAgICAgIFJlcXVlc3Q6OnVybChudWxsLCBudWxsLCAnbWFuYWdlcicsICdwbHVnaW5zJyks
CiAJCQkJCUxvY2FsZTo6dHJhbnNsYXRlKCdtYW5hZ2VyLnBsdWdpbnMnKSwKIAkJCQkJdHJ1ZQog
CQkJCSk7CkBAIC0xMzEsNyArMTMxLDcgQEAKIAkJCQkJCSdwYWdlVGl0bGVUcmFuc2xhdGVkJyA9
PiAkdGhpcy0+Z2V0RGlzcGxheU5hbWUoKSwKIAkJCQkJCSdwYWdlSGllcmFyY2h5JyA9PiAkcGFn
ZUNydW1icywgCiAJCQkJCQknbWVzc2FnZScgPT4gJ3BsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9j
ay5zYXZlZCcsCi0JCQkJCQknYmFja0xpbmsnID0+IFJlcXVlc3Q6OnVybChudWxsLCAnbWFuYWdl
cicsICdwbHVnaW5zJyksCisJCQkJCQknYmFja0xpbmsnID0+IFJlcXVlc3Q6OnVybChudWxsLCBu
dWxsLCAnbWFuYWdlcicsICdwbHVnaW5zJyksCiAJCQkJCQknYmFja0xpbmtMYWJlbCcgPT4gJ2Nv
bW1vbi5jb250aW51ZScKIAkJCQkJKSk7CiAJCQkJCSR0ZW1wbGF0ZU1nci0+ZGlzcGxheSgnY29t
bW9uL21lc3NhZ2UudHBsJyk7CkBAIC0xNTIsMTAgKzE1MiwxMCBAQAogCSAqIEByZXR1cm4gc3Ry
aW5nCiAJICovCiAJZnVuY3Rpb24gZ2V0Q29udGVudHMoJiR0ZW1wbGF0ZU1ncikgewotCQkkam91
cm5hbCA9JiBSZXF1ZXN0OjpnZXRKb3VybmFsKCk7Ci0JCWlmICghJGpvdXJuYWwpIHJldHVybiAn
JzsKKwkJJGNvbmZlcmVuY2UgPSYgUmVxdWVzdDo6Z2V0Q29uZmVyZW5jZSgpOworCQlpZiAoISRj
b25mZXJlbmNlKSByZXR1cm4gJyc7CiAKLQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2N1c3RvbUJs
b2NrQ29udGVudCcsICR0aGlzLT5nZXRTZXR0aW5nKCRqb3VybmFsLT5nZXRKb3VybmFsSWQoKSwg
J2Jsb2NrQ29udGVudCcpKTsKKwkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2N1c3RvbUJsb2NrQ29u
dGVudCcsICR0aGlzLT5nZXRTZXR0aW5nKCRjb25mZXJlbmNlLT5nZXRDb25mZXJlbmNlSWQoKSwg
MCwgJ2Jsb2NrQ29udGVudCcpKTsKIAkJcmV0dXJuIHBhcmVudDo6Z2V0Q29udGVudHMoJHRlbXBs
YXRlTWdyKTsKIAogCX0KU8OzbG8gZW4gb2pzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tN
YW5hZ2VyLzogQ1ZTCmRpZmYgLXVyIG9qczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFu
YWdlci9sb2NhbGUvZW5fVVMvbG9jYWxlLnhtbCBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21C
bG9ja01hbmFnZXIvbG9jYWxlL2VuX1VTL2xvY2FsZS54bWwKLS0tIG9qczIvcGx1Z2lucy9nZW5l
cmljL2N1c3RvbUJsb2NrTWFuYWdlci9sb2NhbGUvZW5fVVMvbG9jYWxlLnhtbAkyMDA5LTEwLTE2
IDE5OjIyOjE3LjAwMDAwMDAwMCAtMDcwMAorKysgb2NzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9t
QmxvY2tNYW5hZ2VyL2xvY2FsZS9lbl9VUy9sb2NhbGUueG1sCTIwMDktMTAtMTYgMTk6MjE6MTQu
MDAwMDAwMDAwIC0wNzAwCkBAIC0xNSw3ICsxNSw3IEBACiA8bG9jYWxlIG5hbWU9ImVuX1VTIiBm
dWxsX25hbWU9IlUuUy4gRW5nbGlzaCI+CiAJPG1lc3NhZ2Uga2V5PSJwbHVnaW5zLmdlbmVyaWMu
Y3VzdG9tQmxvY2tNYW5hZ2VyLmRpc3BsYXlOYW1lIj5DdXN0b20gQmxvY2sgTWFuYWdlcjwvbWVz
c2FnZT4KIAk8bWVzc2FnZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIu
ZGVzY3JpcHRpb24iPlRoaXMgcGx1Z2luIGxldHMgeW91IGNyZWF0ZSBhZGRpdGlvbiBzaWRlYmFy
IGJsb2Nrcy4gIE9uY2UgdGhleSBhcmUgY3JlYXRlZCwgeW91IGNhbiBlZGl0IHRoZWlyIGNvbnRl
bnQgYW5kIHJlYXJyYW5nZSB0aGVtIHdpdGhpbiB0aGUgc2lkZWJhcnMuPC9tZXNzYWdlPgkKLQk8
bWVzc2FnZSBrZXk9InBsdWdpbi5nZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5pbnRyb2R1Y3Rp
b24iPjwhW0NEQVRBW1lvdSBjYW4gdXNlIHRoaXMgcGx1Z2luIHRvIGFkZCBvciBkZWxldGUgY3Vz
dG9tIGJsb2NrIHBsdWdpbnMuICBZb3UgY2FuIHRoZW4gZWRpdCB0aGUgY29udGVudCB0aHJvdWdo
IHRoZSA8YSBocmVmPSJ7JHN5c3RlbVBsdWdpbnNVcmx9Ij5TeXN0ZW0gUGx1Z2luczwvYT4gcGFn
ZSAoaW4gdGhlIEJsb2NrcyBQbHVnaW4gc2VjdGlvbikuICBUbyBwbGFjZSB5b3VyIHBsdWdpbiBp
biB0aGUgZGVzaXJlZCBsb2NhdGlvbiBpbiB0aGUgc2lkZWJhciwgZ28gdG8gPGEgaHJlZj0ieyRz
ZXR1cFN0ZXA1Nn0iPlNldHVwIHN0ZXAgNS42PC9hPl1dPjwvbWVzc2FnZT4KKwk8bWVzc2FnZSBr
ZXk9InBsdWdpbi5nZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5pbnRyb2R1Y3Rpb24iPjwhW0NE
QVRBW1lvdSBjYW4gdXNlIHRoaXMgcGx1Z2luIHRvIGFkZCBvciBkZWxldGUgY3VzdG9tIGJsb2Nr
IHBsdWdpbnMuICBZb3UgY2FuIHRoZW4gZWRpdCB0aGUgY29udGVudCB0aHJvdWdoIHRoZSA8YSBo
cmVmPSJ7JHN5c3RlbVBsdWdpbnNVcmx9Ij5TeXN0ZW0gUGx1Z2luczwvYT4gcGFnZSAoaW4gdGhl
IEJsb2NrcyBQbHVnaW4gc2VjdGlvbikuICBUbyBwbGFjZSB5b3VyIHBsdWdpbiBpbiB0aGUgZGVz
aXJlZCBsb2NhdGlvbiBpbiB0aGUgc2lkZWJhciwgZ28gdG8gPGEgaHJlZj0ieyRzZXR1cFN0ZXA0
fSI+U2V0IHVwIHN0ZXAgNDwvYT5dXT48L21lc3NhZ2U+CiAJPG1lc3NhZ2Uga2V5PSJwbHVnaW5z
LmdlbmVyaWMuY3VzdG9tQmxvY2tNYW5hZ2VyLnNldHRpbmdzIj5TZXR0aW5nczwvbWVzc2FnZT4K
IAk8bWVzc2FnZSBrZXk9InBsdWdpbnMuZ2VuZXJpYy5jdXN0b21CbG9ja01hbmFnZXIuZGVzY3Jp
cHRpb24iPlRoaXMgUGx1Z2luIGxldHMgeW91IG1hbmFnZSBjdXN0b20gc2lkZWJhciBibG9ja3Mu
ICBZb3UgY2FuIGVkaXQgdGhlIGJsb2NrcyBpbiB0aGUgc2V0dGluZ3Mgb2YgZWFjaCBwbHVnaW4g
dGhhdCB5b3UgY3JlYXRlIGhlcmUuPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0icGx1Z2lucy5n
ZW5lcmljLmN1c3RvbUJsb2NrTWFuYWdlci5ibG9ja05hbWUiPkJsb2NrIE5hbWU8L21lc3NhZ2U+
CQpkaWZmIC11ciBvanMyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFnZXIvUkVBRE1F
IG9jczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9SRUFETUUKLS0tIG9qczIv
cGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9SRUFETUUJMjAwOS0wNy0yMiAxMTow
NjozNi4wMDAwMDAwMDAgLTA3MDAKKysrIG9jczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2Nr
TWFuYWdlci9SRUFETUUJMjAwOS0xMC0xNiAxOToxOToyMS4wMDAwMDAwMDAgLTA3MDAKQEAgLTEs
MTIgKzEsMTQgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09PT0gT0pTIEN1
c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbgorPT09IE9DUyBDdXN0b20gQmxvY2sgTWFuYWdlciBQ
bHVnaW4KID09PSBWZXJzaW9uOiAxLjAKID09PSBBdXRob3I6IEp1YW4gUGFibG8gQWxwZXJpbiA8
cGtwQGFscGVyaW4uY2E+CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiBBYm91
dAogLS0tLS0KLVRoaXMgcGx1Z2luIGlzIGludGVuZGVkIHRvIGVuYWJsZSB1c2VycyB0byBjcmVh
dGUgY3VzdG9taXphYmxlIEhUTUwgYmxvY2tzIGZvciB0aGUgc2lkZWJhcnMuICBUaGUgcGx1Z2lu
IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggU3RlcCA1IG9mIHRoZSBKb3VybmFsIFNldHVwLgor
VGhpcyBwbHVnaW4gaXMgaW50ZW5kZWQgdG8gZW5hYmxlIHVzZXJzIHRvIGNyZWF0ZSBjdXN0b21p
emFibGUgSFRNTCBibG9ja3MgZm9yIHRoZSBzaWRlYmFycy4gIFRoZSBwbHVnaW4gd29ya3MgaW4g
Y29uanVuY3Rpb24gd2l0aCBTdGVwIDQgb2YgdGhlIENvbmZlcmVuY2UgU2V0dXAuCisKK1RoaXMg
cGx1Z2luIHdhcyBwb3J0ZWQgZnJvbSB0aGUgT0pTIDIuMyBDdXN0b20gQmxvY2sgTWFuYWdlciBQ
bHVnaW4uCiAKIExpY2Vuc2UKIC0tLS0tLS0KQEAgLTE0LDIwICsxNiwyMCBAQAogCiBTeXN0ZW0g
UmVxdWlyZW1lbnRzCiAtLS0tLS0tLS0tLS0tLS0tLS0tCi1TYW1lIHJlcXVpcmVtZW50cyBhcyB0
aGUgT0pTIDIuMiBjb3JlLgorPz8/IFNhbWUgcmVxdWlyZW1lbnRzIGFzIHRoZSBPQ1MgMi4zIGNv
cmUuCiAKLUluc3RhbGxhdGlvbgorPz8/IEluc3RhbGxhdGlvbgogLS0tLS0tLS0tLS0tCiBUbyBp
bnN0YWxsIHRoZSBwbHVnaW46Ci0gLSBjb3B5IHRoZSBwbHVnaW4gdGFyLmd6IGZpbGUgdG8geW91
ciBPSlMvcGx1Z2lucy9nZW5lcmljIGRpcmVjdG9yeQorIC0gY29weSB0aGUgcGx1Z2luIHRhci5n
eiBmaWxlIHRvIHlvdXIgT0NTL3BsdWdpbnMvZ2VuZXJpYyBkaXJlY3RvcnkKICAtIHRvIHVuemlw
IHRoZSBwbHVnaW4gaW5zaWRlIHRoZSBwbHVnaW5zL2dlbmVyaWMgZGlyZWN0b3J5OgogICAgICQg
dGFyIHh2emYgY3VzdG9tQmxvY2tNYW5hZ2VyLTEuMC50YXIuZ3ogCi0gLSBlbmFibGUgdGhlIHBs
dWdpbiBieSBnb2luZyB0bzogIEhvbWUgPiBVc2VyID4gSm91cm5hbCBNYW5hZ2VtZW50ID4gUGx1
Z2luIE1hbmFnZW1lbnQgPiBHZW5lcmljIFBsdWdpbnMgYW5kIHNlbGVjdGluZyAiRU5BQkxFIiB1
bmRlciAiQ3VzdG9tIEJsb2NrIE1hbmFnZXIgUGx1Z2luIgorIC0gZW5hYmxlIHRoZSBwbHVnaW4g
YnkgZ29pbmcgdG86ICBIb21lID4gVXNlciA+IENvbmZlcmVuY2UgTWFuYWdlbWVudCA+IFN5c3Rl
bSBQbHVnaW5zID4gR2VuZXJpYyBQbHVnaW5zIGFuZCBzZWxlY3RpbmcgIkVOQUJMRSIgdW5kZXIg
IkN1c3RvbSBCbG9jayBNYW5hZ2VyIFBsdWdpbiIKIAogQ29uZmlndXJhdGlvbgogLS0tLS0tLS0t
LS0tCi1UaGUgUGx1Z2luIG1hbmFnZW1lbnQgaW50ZXJmYWNlIGNhbiBiZSBmb3VuZCBhdCBIb21l
IC0+IFVzZXIgLT4gSm91cm5hbCBNYW5hZ2VtZW50ID4gUGx1Z2luIE1hbmFnZW1lbnQgPiBHZW5l
cmljIFBsdWdpbnMuICBPbmNlIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCwgYmxvY2tzIGNhbiBiZSBh
ZGRlZCBhbmQgZGVsZXRlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlLiAgQmxvY2tzIHdoaWNoIGFy
ZSBjcmVhdGVkIHRocm91Z2ggdGhpcyBpbnRlcmZhY2Ugd2lsbCBzdWJzZXF1ZW50bHkgYXBwZWFy
IGFzIHRoZWlyIG93biBCbG9jayBQbHVnaW4gKGZvdW5kIHVuZGVyIFBsdWdpbiBNYW5hZ2VtZW50
ID4gQmxvY2sgUGx1Z2lucykgYW5kIHRoZWlyIGNvbnRlbnQgY2FuIGJlIGVkaXRlZCBieSBjbGlj
a2luZyBvbiB0aGUgIkVESVQiIGxpbmsgdW5kZXJuZWF0aCB0aGUgbmFtZS4KLU5PVEU6IFRoZSBw
bHVnaW4gd2lsbCBOT1QgYXBwZWFyIGluIHRoZSBzaWRlYmFyIHVudGlsIGEgc2lkZWJhciBsb2Nh
dGlvbiBoYXMgYmVlIGNob3NlbiB0aHJvdWdoIEpvdXJuYWwgTWFuYWdlciAtPiBTZXR1cCAtPiA1
LiBUaGUgTG9vayAoU3BlY2lmaWNhbGx5LCB1bmRlciBKb3VybmFsIExheW91dCwgc3RlcCA1LjYp
LgorVGhlIFBsdWdpbiBtYW5hZ2VtZW50IGludGVyZmFjZSBjYW4gYmUgZm91bmQgYXQgSG9tZSAt
PiBVc2VyIC0+IENvbmZlcmVuY2UgTWFuYWdlbWVudCA+IFN5c3RlbSBQbHVnaW5zID4gR2VuZXJp
YyBQbHVnaW5zLiAgT25jZSB0aGUgcGx1Z2luIGlzIGVuYWJsZWQsIGJsb2NrcyBjYW4gYmUgYWRk
ZWQgYW5kIGRlbGV0ZWQgdGhyb3VnaCB0aGlzIGludGVyZmFjZS4gIEJsb2NrcyB3aGljaCBhcmUg
Y3JlYXRlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHdpbGwgc3Vic2VxdWVudGx5IGFwcGVhciBh
cyB0aGVpciBvd24gQmxvY2sgUGx1Z2luIChmb3VuZCB1bmRlciBQbHVnaW4gTWFuYWdlbWVudCA+
IEJsb2NrIFBsdWdpbnMpIGFuZCB0aGVpciBjb250ZW50IGNhbiBiZSBlZGl0ZWQgYnkgY2xpY2tp
bmcgb24gdGhlICJFRElUIiBsaW5rIHVuZGVybmVhdGggdGhlIG5hbWUuCitOT1RFOiBUaGUgcGx1
Z2luIHdpbGwgTk9UIGFwcGVhciBpbiB0aGUgc2lkZWJhciB1bnRpbCBhIHNpZGViYXIgbG9jYXRp
b24gaGFzIGJlZW4gY2hvc2VuIHRocm91Z2ggQ29uZmVyZW5jZSBNYW5hZ2VyIC0+IENvbmZlcmVu
Y2UgU2l0ZSBNYW5hZ2VtZW50IC0+IDQuIENvbmZlcmVuY2UgU3R5bGUuCiAKIAogQ29udGFjdC9T
dXBwb3J0CmRpZmYgLXVyIG9qczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJsb2NrTWFuYWdlci9T
ZXR0aW5nc0Zvcm0uaW5jLnBocCBvY3MyL3BsdWdpbnMvZ2VuZXJpYy9jdXN0b21CbG9ja01hbmFn
ZXIvU2V0dGluZ3NGb3JtLmluYy5waHAKLS0tIG9qczIvcGx1Z2lucy9nZW5lcmljL2N1c3RvbUJs
b2NrTWFuYWdlci9TZXR0aW5nc0Zvcm0uaW5jLnBocAkyMDA5LTA4LTE4IDE2OjA0OjE4LjAwMDAw
MDAwMCAtMDcwMAorKysgb2NzMi9wbHVnaW5zL2dlbmVyaWMvY3VzdG9tQmxvY2tNYW5hZ2VyL1Nl
dHRpbmdzRm9ybS5pbmMucGhwCTIwMDktMTAtMTcgMDA6MTE6MTUuMDAwMDAwMDAwIC0wNzAwCkBA
IC03LDE1ICs3LDE1IEBACiAgKgogICogQGNsYXNzIFNldHRpbmdzRm9ybQogICoKLSAqIEBicmll
ZiBGb3JtIGZvciBqb3VybmFsIG1hbmFnZXJzIHRvIGFkZCBvciBkZWxldGUgc2lkZWJhciBibG9j
a3MKKyAqIEBicmllZiBGb3JtIGZvciBjb25mZXJlbmNlIG1hbmFnZXJzIHRvIGFkZCBvciBkZWxl
dGUgc2lkZWJhciBibG9ja3MKICAqCiAgKi8KIAogaW1wb3J0KCdmb3JtLkZvcm0nKTsKIAogY2xh
c3MgU2V0dGluZ3NGb3JtIGV4dGVuZHMgRm9ybSB7Ci0JLyoqIEB2YXIgJGpvdXJuYWxJZCBpbnQg
Ki8KLQl2YXIgJGpvdXJuYWxJZDsKKwkvKiogQHZhciAkY29uZmVyZW5jZUlkIGludCAqLworCXZh
ciAkY29uZmVyZW5jZUlkOwogCiAJLyoqIEB2YXIgJHBsdWdpbiBvYmplY3QgKi8KIAl2YXIgJHBs
dWdpbjsKQEAgLTI1LDEzICsyNSwxMyBAQAogCiAJLyoqCiAJICogQ29uc3RydWN0b3IKLQkgKiBA
cGFyYW0gJGpvdXJuYWxJZCBpbnQKKwkgKiBAcGFyYW0gJGNvbmZlcmVuY2VJZCBpbnQKIAkgKi8K
LQlmdW5jdGlvbiBTZXR0aW5nc0Zvcm0oJiRwbHVnaW4sICRqb3VybmFsSWQpIHsKKwlmdW5jdGlv
biBTZXR0aW5nc0Zvcm0oJiRwbHVnaW4sICRjb25mZXJlbmNlSWQpIHsKIAogCQlwYXJlbnQ6OkZv
cm0oJHBsdWdpbi0+Z2V0VGVtcGxhdGVQYXRoKCkgLiAnc2V0dGluZ3NGb3JtLnRwbCcpOwogCi0J
CSR0aGlzLT5qb3VybmFsSWQgPSAkam91cm5hbElkOworCQkkdGhpcy0+Y29uZmVyZW5jZUlkID0g
JGNvbmZlcmVuY2VJZDsKIAkJJHRoaXMtPnBsdWdpbiA9JiAkcGx1Z2luOwogCiAJfQpAQCAtNDAs
MTIgKzQwLDEyIEBACiAJICogSW5pdGlhbGl6ZSBmb3JtIGRhdGEgZnJvbSAgdGhlIHBsdWdpbiBz
ZXR0aW5ncyB0byB0aGUgZm9ybQogCSAqLwogCWZ1bmN0aW9uIGluaXREYXRhKCkgewotCQkkam91
cm5hbElkID0gJHRoaXMtPmpvdXJuYWxJZDsKKwkJJGNvbmZlcmVuY2VJZCA9ICR0aGlzLT5jb25m
ZXJlbmNlSWQ7CiAJCSRwbHVnaW4gPSYgJHRoaXMtPnBsdWdpbjsKIAogCQkkdGVtcGxhdGVNZ3Ig
PSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CiAKLQkJJGJsb2NrcyA9ICRwbHVnaW4t
PmdldFNldHRpbmcoJGpvdXJuYWxJZCwgJ2Jsb2NrcycpOworCQkkYmxvY2tzID0gJHBsdWdpbi0+
Z2V0U2V0dGluZygkY29uZmVyZW5jZUlkLCAwLCAnYmxvY2tzJyk7CiAKIAkJaWYgKCAhaXNfYXJy
YXkoJGJsb2NrcykgKSB7CiAJCQkkdGhpcy0+c2V0RGF0YSgnYmxvY2tzJywgYXJyYXkoKSk7CkBA
IC03MSwxNiArNzEsMTYgQEAKIAkgKi8KIAlmdW5jdGlvbiBleGVjdXRlKCkgewogCQkkcGx1Z2lu
ID0mICR0aGlzLT5wbHVnaW47Ci0JCSRqb3VybmFsSWQgPSAkdGhpcy0+am91cm5hbElkOworCQkk
Y29uZmVyZW5jZUlkID0gJHRoaXMtPmNvbmZlcmVuY2VJZDsKIAogCQkkcGx1Z2luU2V0dGluZ3NE
QU8gPSYgREFPUmVnaXN0cnk6OmdldERBTygnUGx1Z2luU2V0dGluZ3NEQU8nKTsKIAogCQkkZGVs
ZXRlZEJsb2NrcyA9IGV4cGxvZGUoJzonLCR0aGlzLT5nZXREYXRhKCdkZWxldGVkQmxvY2tzJykp
OwogCQlmb3JlYWNoICgkZGVsZXRlZEJsb2NrcyBhcyAkZGVsZXRlZEJsb2NrKSB7Ci0JCQkkcGx1
Z2luU2V0dGluZ3NEQU8tPmRlbGV0ZVNldHRpbmcoJGpvdXJuYWxJZCwgJGRlbGV0ZWRCbG9jay4n
Q3VzdG9tQmxvY2tQbHVnaW4nLCAnZW5hYmxlZCcpOwotCQkJJHBsdWdpblNldHRpbmdzREFPLT5k
ZWxldGVTZXR0aW5nKCRqb3VybmFsSWQsICRkZWxldGVkQmxvY2suJ0N1c3RvbUJsb2NrUGx1Z2lu
JywgJ3NlcScpOwotCQkJJHBsdWdpblNldHRpbmdzREFPLT5kZWxldGVTZXR0aW5nKCRqb3VybmFs
SWQsICRkZWxldGVkQmxvY2suJ0N1c3RvbUJsb2NrUGx1Z2luJywgJ2NvbnRleHQnKTsKLQkJCSRw
bHVnaW5TZXR0aW5nc0RBTy0+ZGVsZXRlU2V0dGluZygkam91cm5hbElkLCAkZGVsZXRlZEJsb2Nr
LidDdXN0b21CbG9ja1BsdWdpbicsICdibG9ja0NvbnRlbnQnKTsKKwkJCSRwbHVnaW5TZXR0aW5n
c0RBTy0+ZGVsZXRlU2V0dGluZygkY29uZmVyZW5jZUlkLCAwLCAkZGVsZXRlZEJsb2NrLidDdXN0
b21CbG9ja1BsdWdpbicsICdlbmFibGVkJyk7CisJCQkkcGx1Z2luU2V0dGluZ3NEQU8tPmRlbGV0
ZVNldHRpbmcoJGNvbmZlcmVuY2VJZCwgMCwgJGRlbGV0ZWRCbG9jay4nQ3VzdG9tQmxvY2tQbHVn
aW4nLCAnc2VxJyk7CisJCQkkcGx1Z2luU2V0dGluZ3NEQU8tPmRlbGV0ZVNldHRpbmcoJGNvbmZl
cmVuY2VJZCwgMCwgJGRlbGV0ZWRCbG9jay4nQ3VzdG9tQmxvY2tQbHVnaW4nLCAnY29udGV4dCcp
OworCQkJJHBsdWdpblNldHRpbmdzREFPLT5kZWxldGVTZXR0aW5nKCRjb25mZXJlbmNlSWQsIDAs
ICRkZWxldGVkQmxvY2suJ0N1c3RvbUJsb2NrUGx1Z2luJywgJ2Jsb2NrQ29udGVudCcpOwogCQl9
CiAKIAkJLy9zb3J0IHRoZSBibG9ja3MgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCkBAIC05NSw3ICs5
NSw3IEBACiAJCX0KIAogCQkvLyBVcGRhdGUgYmxvY2tzCi0JCSRwbHVnaW4tPnVwZGF0ZVNldHRp
bmcoJGpvdXJuYWxJZCwgJ2Jsb2NrcycsICRibG9ja3MpOworCQkkcGx1Z2luLT51cGRhdGVTZXR0
aW5nKCRjb25mZXJlbmNlSWQsIDAsICdibG9ja3MnLCAkYmxvY2tzKTsKIAkJJHRoaXMtPnNldERh
dGEoJ2Jsb2NrcycsJGJsb2Nrcyk7CiAJfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>