From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7894033024166707301==" MIME-Version: 1.0 From: We We Subject: Re: [SPDK] SPDK Blobstore support object store? Date: Fri, 01 Sep 2017 00:03:38 +0800 Message-ID: In-Reply-To: FA6C2217B01E9D48A581BB486602101439936929@shsmsx102.ccr.corp.intel.com List-ID: To: spdk@lists.01.org --===============7894033024166707301== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi all, Thank you for your answers. I have submitted the proposal about the blobkv (blobstore object) design (= https://github.com/spdk/spdk/pull/188/files?short_path=3D420ca87#diff-420c= a87f40f0f8170bb68bc5c742b6dc ), please visit = it. Regards, Helloway > =E5=9C=A8 2017=E5=B9=B48=E6=9C=8831=E6=97=A5=EF=BC=8C=E4=B8=8B=E5=8D=888:= 16=EF=BC=8CYang, Ziye =E5=86=99=E9=81=93=EF=BC=9A > = > Hi, > = > Currently, SPDK can be integrated with Ceph in the following two ways: > = > 1 SPDK has rbd bdev, thus you can have SPDK iSCSI target which us= es the exported rbd device by Ceph. > 2 SPDK can be integrated into bluestore in Ceph, the code is NVMED= EVICE.CC/h, located in src/os/bluestore/ folder. However SPDK is not enabl= ed in Ceph. You need to build with WITH_SPDK=3Don option. And these days, w= e are doing some work to make SPDK can be compiled default in Ceph. > = > Also in SPDK for object store support, we do not have a detailed plan no= w. > = > Best Regards, > Ziye Yang > =C2=A0 <> > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of We We > Sent: Monday, August 28, 2017 9:17 PM > To: spdk(a)lists.01.org > Subject: [SPDK] SPDK Blobstore support object store? > = > Hi=EF=BC=8C > In the source code of SPDk (https://github.com/spdk/spdk/tree/master/lib = ), we can find spdk /lib /bd= ev / module that means = SPDk is able to be in favor of block store and accelerate ceph block store.= However, I don not see anything about object store. Does SPDK support obje= ct store? Is there any plan to do with object store? > = > = > Could someone can give me the answer? > = > Regards, > Helloway > = > = > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk --===============7894033024166707301== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD1nYjIzMTIiPjwvaGVhZD48Ym9keSBzdHlsZT0id29yZC13cmFwOiBicmVh ay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0 ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyIg Y2xhc3M9IiI+SGkgYWxsLDwvc3Bhbj48ZGl2IGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6IDE0cHg7IiBjbGFzcz0iIj5UaGFuayB5b3UgZm9yIHlvdXIgYW5zd2Vycy48L3NwYW4+PC9k aXY+PGRpdiBjbGFzcz0iIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyIgY2xhc3M9IiI+ SSBoYXZlIHN1Ym1pdHRlZCB0aGUgcHJvcG9zYWwgYWJvdXQgJm5ic3A7dGhlIGI8L3NwYW4+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgZm9udC1m YW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgJ1NlZ29lIFVJJywgSGVsdmV0aWNhLCBB cmlhbCwgc2Fucy1zZXJpZiwgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywg J1NlZ29lIFVJIFN5bWJvbCc7IG9ycGhhbnM6IDI7IHdpZG93czogMjsgYmFja2dyb3VuZC1jb2xv cjogcmdiKDI1NSwgMjU1LCAyNTUpOyIgY2xhc3M9IiI+bG9ia3YgKGJsb2JzdG9yZSBvYmplY3Qp IGRlc2lnbiZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyIgY2xhc3M9 IiI+KCZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3Bkay9zcGRrL3B1 bGwvMTg4L2ZpbGVzP3Nob3J0X3BhdGg9NDIwY2E4NyNkaWZmLTQyMGNhODdmNDBmMGY4MTcwYmI2 OGJjNWM3NDJiNmRjIiBjbGFzcz0iIj5odHRwczovL2dpdGh1Yi5jb20vc3Bkay9zcGRrL3B1bGwv MTg4L2ZpbGVzP3Nob3J0X3BhdGg9NDIwY2E4NyNkaWZmLTQyMGNhODdmNDBmMGY4MTcwYmI2OGJj NWM3NDJiNmRjPC9hPiZuYnNwOzxzcGFuIHN0eWxlPSJmb250LXNpemU6IDE0cHg7IiBjbGFzcz0i Ij4pLCBwbGVhc2UgdmlzaXQgaXQuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPlJlZ2FyZHMsPGJyIGNsYXNzPSIiPkhlbGxvd2F5PC9kaXY+PGRpdiBjbGFzcz0iIj48YnIg Y2xhc3M9IiI+PC9kaXY+PGRpdiBjbGFzcz0iIj48ZGl2IGNsYXNzPSIiPjxkaXY+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+PGRpdiBjbGFzcz0iIj7U2iAyMDE3xOo41MIzMcjVo6zP ws7nODoxNqOsWWFuZywgWml5ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnppeWUueWFuZ0BpbnRlbC5j b20iIGNsYXNzPSIiPnppeWUueWFuZ0BpbnRlbC5jb208L2E+Jmd0OyDQtLXAo7o8L2Rpdj48YnIg Y2xhc3M9IkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjxkaXYgY2xhc3M9IiI+PGRpdiBjbGFz cz0iV29yZFNlY3Rpb24xIiBzdHlsZT0icGFnZTogV29yZFNlY3Rpb24xOyBmb250LWZhbWlseTog SGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJp YW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5v cm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3Jt OiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10 ZXh0LXN0cm9rZS13aWR0aDogMHB4OyI+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAw MXB0OyBmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7 IGNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyIgY2xhc3M9IiI+SGksPG86cCBjbGFzcz0iIj48L286 cD48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250 LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGNvbG9yOiBy Z2IoMzEsIDczLCAxMjUpOyIgY2xhc3M9IiI+PG86cCBjbGFzcz0iIj4mbmJzcDs8L286cD48L3Nw YW4+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6 IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZTogMTBwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGNvbG9yOiByZ2IoMzEs IDczLCAxMjUpOyIgY2xhc3M9IiI+Q3VycmVudGx5LCBTUERLIGNhbiBiZSBpbnRlZ3JhdGVkIHdp dGggQ2VwaCBpbiB0aGUgZm9sbG93aW5nIHR3byB3YXlzOjxvOnAgY2xhc3M9IiI+PC9vOnA+PC9z cGFuPjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXpl OiAxMnB0OyBmb250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDMx LCA3MywgMTI1KTsiIGNsYXNzPSIiPjxvOnAgY2xhc3M9IiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv ZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdCAwLjVpbjsgZm9udC1zaXpl OiAxMnB0OyBmb250LWZhbWlseTogy87M5TsgdGV4dC1pbmRlbnQ6IC0wLjI1aW47IiBjbGFzcz0i Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fu cy1zZXJpZjsgY29sb3I6IHJnYigzMSwgNzMsIDEyNSk7IiBjbGFzcz0iIj48c3BhbiBjbGFzcz0i Ij4xPHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v cm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiA3cHQ7IGxpbmUtaGVpZ2h0OiBu b3JtYWw7IGZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsiIGNsYXNzPSIiPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt c3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgY29sb3I6IHJn YigzMSwgNzMsIDEyNSk7IiBjbGFzcz0iIj5TUERLIGhhcyZuYnNwOyByYmQgYmRldiwmbmJzcDsg dGh1cyB5b3UgY2FuIGhhdmUgU1BESyBpU0NTSSB0YXJnZXQgd2hpY2ggdXNlcyB0aGUgZXhwb3J0 ZWQgcmJkIGRldmljZSBieSBDZXBoLjxvOnAgY2xhc3M9IiI+PC9vOnA+PC9zcGFuPjwvZGl2Pjxk aXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdCAwLjVpbjsgZm9udC1zaXplOiAxMnB0 OyBmb250LWZhbWlseTogy87M5TsgdGV4dC1pbmRlbnQ6IC0wLjI1aW47IiBjbGFzcz0iIj48c3Bh biBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJp ZjsgY29sb3I6IHJnYigzMSwgNzMsIDEyNSk7IiBjbGFzcz0iIj48c3BhbiBjbGFzcz0iIj4yPHNw YW4gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg Zm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiA3cHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7 IGZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsiIGNsYXNzPSIiPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui PiZuYnNwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl OiAxMHB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigzMSwg NzMsIDEyNSk7IiBjbGFzcz0iIj5TUERLICZuYnNwO2NhbiBiZSBpbnRlZ3JhdGVkIGludG8gYmx1 ZXN0b3JlIGluIENlcGgsIHRoZSBjb2RlIGlzIE5WTUVERVZJQ0UuQ0MvaCwgbG9jYXRlZCBpbiBz cmMvb3MvYmx1ZXN0b3JlLyBmb2xkZXIuIEhvd2V2ZXImbmJzcDsgU1BESyBpcyBub3QgZW5hYmxl ZCBpbiBDZXBoLiBZb3UgbmVlZCB0byBidWlsZCB3aXRoIFdJVEhfU1BESz1vbiBvcHRpb24uIEFu ZCB0aGVzZSBkYXlzLCB3ZSBhcmUgZG9pbmcgc29tZSB3b3JrIHRvIG1ha2UgU1BESyBjYW4gYmUg Y29tcGlsZWQgZGVmYXVsdCBpbiBDZXBoLjxvOnAgY2xhc3M9IiI+PC9vOnA+PC9zcGFuPjwvZGl2 PjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXplOiAxMnB0OyBm b250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7 IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDMxLCA3MywgMTI1 KTsiIGNsYXNzPSIiPjxvOnAgY2xhc3M9IiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYg c3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXplOiAxMnB0OyBmb250LWZh bWlseTogy87M5TsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQt ZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDMxLCA3MywgMTI1KTsiIGNs YXNzPSIiPkFsc28gaW4gU1BESyBmb3Igb2JqZWN0IHN0b3JlIHN1cHBvcnQsICZuYnNwO3dlIGRv IG5vdCBoYXZlIGEgZGV0YWlsZWQgcGxhbiBub3cuPG86cCBjbGFzcz0iIj48L286cD48L3NwYW4+ PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6IDEy cHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog MTBwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGNvbG9yOiByZ2IoMzEsIDcz LCAxMjUpOyIgY2xhc3M9IiI+PG86cCBjbGFzcz0iIj4mbmJzcDs8L286cD48L3NwYW4+PC9kaXY+ PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZv bnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsg Zm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGNvbG9yOiByZ2IoMzEsIDczLCAxMjUp OyIgY2xhc3M9IiI+QmVzdCBSZWdhcmRzLDxvOnAgY2xhc3M9IiI+PC9vOnA+PC9zcGFuPjwvZGl2 PjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXplOiAxMnB0OyBm b250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7 IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDMxLCA3MywgMTI1 KTsiIGNsYXNzPSIiPlppeWUgWWFuZzxvOnAgY2xhc3M9IiI+PC9vOnA+PC9zcGFuPjwvZGl2Pjxk aXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXplOiAxMnB0OyBmb250 LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxhIG5hbWU9Il9NYWlsRW5kQ29tcG9zZSIgY2xhc3M9 IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNh bnMtc2VyaWY7IGNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyIgY2xhc3M9IiI+PG86cCBjbGFzcz0i Ij4mbmJzcDs8L286cD48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiI+PGRpdiBzdHlsZT0i Ym9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmU7IGJvcmRlci10b3Atd2lkdGg6IDFwdDsgYm9y ZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBwYWRkaW5nOiAzcHQgMGluIDBpbjsi IGNsYXNzPSIiPjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXpl OiAxMnB0OyBmb250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxiIGNsYXNzPSIiPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIg Y2xhc3M9IiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDExcHQ7IGZv bnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgY2xhc3M9IiI+PHNwYW4gY2xhc3M9IkFw cGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPlNQREsgWzxhIGhyZWY9Im1haWx0bzpz cGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBjbGFzcz0iIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxp c3RzLjAxLm9yZzwvYT5dPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7 PC9zcGFuPjxiIGNsYXNzPSIiPk9uIEJlaGFsZiBPZjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0 ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+V2UgV2U8YnIgY2xhc3M9IiI+PGIgY2xhc3M9IiI+ U2VudDo8L2I+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu Pk1vbmRheSwgQXVndXN0IDI4LCAyMDE3IDk6MTcgUE08YnIgY2xhc3M9IiI+PGIgY2xhc3M9IiI+ VG86PC9iPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48 YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciIGNsYXNzPSIiPnNwZGtAbGlzdHMuMDEu b3JnPC9hPjxiciBjbGFzcz0iIj48YiBjbGFzcz0iIj5TdWJqZWN0OjwvYj48c3BhbiBjbGFzcz0i QXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+W1NQREtdIFNQREsgQmxvYnN0b3Jl IHN1cHBvcnQgb2JqZWN0IHN0b3JlPzxvOnAgY2xhc3M9IiI+PC9vOnA+PC9zcGFuPjwvZGl2Pjwv ZGl2PjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFwdDsgZm9udC1zaXpl OiAxMnB0OyBmb250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxvOnAgY2xhc3M9IiI+Jm5ic3A7 PC9vOnA+PC9kaXY+PGRpdiBjbGFzcz0iIj48ZGl2IHN0eWxlPSJtYXJnaW46IDBpbiAwaW4gMC4w MDAxcHQ7IGZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IMvOzOU7IiBjbGFzcz0iIj48c3Bh biBzdHlsZT0iZm9udC1zaXplOiAxMC41cHQ7IGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBzYW5z LXNlcmlmOyBjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsg YmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDog aW5pdGlhbCBpbml0aWFsOyIgY2xhc3M9IiI+SGk8L3NwYW4+PHNwYW4gbGFuZz0iWkgtQ04iIHN0 eWxlPSJmb250LXNpemU6IDEwLjVwdDsgY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgYmFja2dyb3Vu ZC1jb2xvcjogd2hpdGU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFj a2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiIGNsYXNzPSIiPqOsPC9zcGFuPjxvOnAg Y2xhc3M9IiI+PC9vOnA+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAu MDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZTogMTAuNXB0OyBmb250LWZhbWlseTogJ1NlZ29lIFVJJywgc2Fu cy1zZXJpZjsgY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7 IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 IGluaXRpYWwgaW5pdGlhbDsiIGNsYXNzPSIiPkluIHRoZSBzb3VyY2UgY29kZSBvZiBTUERrICg8 L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZGsvc3Bkay90cmVlL21hc3Rlci9s aWIiIHN0eWxlPSJjb2xvcjogcHVycGxlOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiIGNs YXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwLjVwdDsgZm9udC1mYW1pbHk6ICdTZWdv ZSBVSScsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kLXBv c2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRp YWw7IiBjbGFzcz0iIj5odHRwczovL2dpdGh1Yi5jb20vc3Bkay9zcGRrL3RyZWUvbWFzdGVyL2xp Yjwvc3Bhbj48L2E+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTAuNXB0OyBmb250LWZhbWlseTog J1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgYmFja2dyb3Vu ZC1jb2xvcjogd2hpdGU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFj a2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiIGNsYXNzPSIiPiksIHdlIGNhbiBmaW5k Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3NwZGsiIHN0eWxl PSJjb2xvcjogcHVycGxlOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiIGNsYXNzPSIiPjxi IGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogJ1NlZ29lIFVJJywgc2Fucy1zZXJp ZjsgY29sb3I6IHJnYigzLCAxMDIsIDIxNCk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiIGNsYXNz PSIiPnNwZGs8L3NwYW4+PC9iPjwvYT48c3BhbiBjbGFzcz0ic2VwYXJhdG9yIj48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7IGNvbG9yOiByZ2IoODgsIDk2 LCAxMDUpOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5p dGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyIgY2xhc3M9 IiI+Lzwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZGsvc3Bkay90 cmVlL21hc3Rlci9saWIiIHN0eWxlPSJjb2xvcjogcHVycGxlOyB0ZXh0LWRlY29yYXRpb246IHVu ZGVybGluZTsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogJ1NlZ29lIFVJJywg c2Fucy1zZXJpZjsgY29sb3I6IHJnYigzLCAxMDIsIDIxNCk7IHRleHQtZGVjb3JhdGlvbjogbm9u ZTsiIGNsYXNzPSIiPmxpYjwvc3Bhbj48L2E+PHNwYW4gY2xhc3M9InNlcGFyYXRvciI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDg4 LCA5NiwgMTA1KTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJhY2tncm91bmQtcG9zaXRpb246 IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiIGNs YXNzPSIiPi88L3NwYW4+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3Nw ZGsvdHJlZS9tYXN0ZXIvbGliL2JkZXYiIHN0eWxlPSJjb2xvcjogcHVycGxlOyB0ZXh0LWRlY29y YXRpb246IHVuZGVybGluZTsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogJ1Nl Z29lIFVJJywgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigzLCAxMDIsIDIxNCk7IHRleHQtZGVjb3Jh dGlvbjogbm9uZTsiIGNsYXNzPSIiPmJkZXY8L3NwYW4+PC9hPjxzcGFuIGNsYXNzPSJzZXBhcmF0 b3IiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgY29s b3I6IHJnYig4OCwgOTYsIDEwNSk7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5k LXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGlu aXRpYWw7IiBjbGFzcz0iIj4vIG1vZHVsZSB0aGF0IG1lYW5zJm5ic3A7PC9zcGFuPjwvc3Bhbj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMC41cHQ7IGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBz YW5zLXNlcmlmOyBjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0 ZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVh dDogaW5pdGlhbCBpbml0aWFsOyIgY2xhc3M9IiI+Jm5ic3A7U1BEayBpcyBhYmxlIHRvIGJlIGlu IGZhdm9yIG9mIGJsb2NrIHN0b3JlIGFuZCBhY2NlbGVyYXRlIGNlcGggYmxvY2sgc3RvcmUuIEhv d2V2ZXIsIEkgZG9uIG5vdCBzZWUgYW55dGhpbmcgYWJvdXQgb2JqZWN0IHN0b3JlLiBEb2VzIFNQ REsgc3VwcG9ydCBvYmplY3Qgc3RvcmU/IElzIHRoZXJlIGFueSBwbGFuIHRvIGRvIHdpdGggb2Jq ZWN0IHN0b3JlPzwvc3Bhbj48bzpwIGNsYXNzPSIiPjwvbzpwPjwvZGl2PjxkaXYgY2xhc3M9IiI+ PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZv bnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTAuNXB0 OyBmb250LWZhbWlseTogJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigzNiwgNDEs IDQ2KTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiIGNsYXNzPSIi PjxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+PC9zcGFuPjxvOnAgY2xhc3M9IiI+PC9vOnA+PC9k aXY+PC9kaXY+PGRpdiBjbGFzcz0iIj48ZGl2IHN0eWxlPSJtYXJnaW46IDBpbiAwaW4gMC4wMDAx cHQ7IGZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IMvOzOU7IiBjbGFzcz0iIj48c3BhbiBz dHlsZT0iZm9udC1zaXplOiAxMC41cHQ7IGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBzYW5zLXNl cmlmOyBjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYmFj a2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5p dGlhbCBpbml0aWFsOyIgY2xhc3M9IiI+Q291bGQgc29tZW9uZSBjYW4gZ2l2ZSBtZSB0aGUgYW5z d2VyPzwvc3Bhbj48bzpwIGNsYXNzPSIiPjwvbzpwPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiI+ PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZv bnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PG86cCBjbGFzcz0iIj4mbmJzcDs8L286cD48L2Rp dj48L2Rpdj48ZGl2IGNsYXNzPSIiPjxkaXYgc3R5bGU9Im1hcmdpbjogMGluIDBpbiAwLjAwMDFw dDsgZm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogy87M5TsiIGNsYXNzPSIiPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6IDEwLjVwdDsgZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIHNhbnMtc2Vy aWY7IGNvbG9yOiByZ2IoMzYsIDQxLCA0Nik7IiBjbGFzcz0iIj5SZWdhcmRzLDwvc3Bhbj48bzpw IGNsYXNzPSIiPjwvbzpwPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiI+PGRpdiBzdHlsZT0ibWFy Z2luOiAwaW4gMGluIDAuMDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszl OyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTAuNXB0OyBmb250LWZhbWlseTog J1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsiIGNsYXNzPSIi PkhlbGxvd2F5PC9zcGFuPjxvOnAgY2xhc3M9IiI+PC9vOnA+PC9kaXY+PC9kaXY+PGRpdiBjbGFz cz0iIj48ZGl2IHN0eWxlPSJtYXJnaW46IDBpbiAwaW4gMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTJw dDsgZm9udC1mYW1pbHk6IMvOzOU7IiBjbGFzcz0iIj48bzpwIGNsYXNzPSIiPiZuYnNwOzwvbzpw PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiI+PGRpdiBzdHlsZT0ibWFyZ2luOiAwaW4gMGluIDAu MDAwMXB0OyBmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiDLzszlOyIgY2xhc3M9IiI+PG86 cCBjbGFzcz0iIj4mbmJzcDs8L286cD48L2Rpdj48L2Rpdj48L2Rpdj48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7 IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1z cGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0 LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7 IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlu bGluZSAhaW1wb3J0YW50OyIgY2xhc3M9IiI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX188L3NwYW4+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNh OyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6 IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4 dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3 aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9r ZS13aWR0aDogMHB4OyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRp Y2E7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0 ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7 IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ry b2tlLXdpZHRoOiAwcHg7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsi IGNsYXNzPSIiPlNQREsgbWFpbGluZyBsaXN0PC9zcGFuPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6 IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBu b3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9y bTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQt dGV4dC1zdHJva2Utd2lkdGg6IDBweDsiIGNsYXNzPSIiPjxhIGhyZWY9Im1haWx0bzpTUERLQGxp c3RzLjAxLm9yZyIgc3R5bGU9ImNvbG9yOiBwdXJwbGU7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJs aW5lOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6 IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsg bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7 IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9y bWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc2l6ZS1h ZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsiIGNsYXNzPSIiPlNQ REtAbGlzdHMuMDEub3JnPC9hPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9u dC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3Jt YWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxp Z246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUt c3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lk dGg6IDBweDsiIGNsYXNzPSIiPjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vc3BkayIgc3R5bGU9ImNvbG9yOiBwdXJwbGU7IHRleHQtZGVjb3JhdGlvbjogdW5k ZXJsaW5lOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5 bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1h bDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3Rh cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog bm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc2l6 ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsiIGNsYXNzPSIi Pmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3BkazwvYT48L2Rpdj48L2Js b2NrcXVvdGU+PC9kaXY+PGJyIGNsYXNzPSIiPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ --===============7894033024166707301==--