diff --git a/article-img/architecture.svg b/article-img/architecture.svg new file mode 100644 index 0000000000..607cc3c18f --- /dev/null +++ b/article-img/architecture.svg @@ -0,0 +1,3 @@ + + +2014-04-15 00:37ZCanvas 1Layer 1HostContainer 1Container 2Container 3Container ...Docker Clientdocker pulldocker rundocker ...Docker IndexDocker Daemon diff --git a/article-img/ipv6_basic_host_config.gliffy b/article-img/ipv6_basic_host_config.gliffy new file mode 100644 index 0000000000..8d0450fc7c --- /dev/null +++ b/article-img/ipv6_basic_host_config.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":414,"height":127,"nodeIndex":173,"autoFit":true,"exportBorder":false,"gridOn":false,"snapToGrid":false,"drawingGuidesOn":false,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"viewportType":"default","fitBB":{"min":{"x":8.5,"y":0.5},"max":{"x":413.75,"y":126.5}},"objects":[{"x":6.5,"y":106.0,"rotation":0.0,"id":9,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":20,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":19.5,"y":9.0,"rotation":0.0,"id":7,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":31.5,"y":23.5,"rotation":0.0,"id":4,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":5,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Host2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":11.75,"y":0.5,"rotation":0.0,"id":60,"width":402.0,"height":126.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":146.5,"y":83.0,"rotation":0.0,"id":164,"width":249.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":44,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:1::/64 dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":146.5,"y":27.5,"rotation":0.0,"id":73,"width":249.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":35,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"#fff2cc","stroke":"#333333","strokeWidth":2,"dashStyle":"2.0,2.0","gradient":true,"shadow":true}},"lineStyles":{"global":{"stroke":"#d9d9d9"}},"textStyles":{"global":{"size":"12px","color":"#b7b7b7"}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v2.class","com.gliffy.libraries.uml.uml_v2.sequence","com.gliffy.libraries.uml.uml_v2.activity","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v3.containers_content","com.gliffy.libraries.ui.ui_v3.forms_controls","com.gliffy.libraries.images"],"autosaveDisabled":false},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/article-img/ipv6_basic_host_config.svg b/article-img/ipv6_basic_host_config.svg new file mode 100644 index 0000000000..0095b8bdc7 --- /dev/null +++ b/article-img/ipv6_basic_host_config.svg @@ -0,0 +1 @@ +Host2eth02001:db8::1/64docker0fe80::1/64ip -6routeadddefaultviafe80::1deveth0ip -6routeadd2001:db8:1::/64devdocker0 \ No newline at end of file diff --git a/article-img/ipv6_routed_network_example.gliffy b/article-img/ipv6_routed_network_example.gliffy new file mode 100644 index 0000000000..81ab0ed879 --- /dev/null +++ b/article-img/ipv6_routed_network_example.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":903,"height":598,"nodeIndex":174,"autoFit":true,"exportBorder":false,"gridOn":false,"snapToGrid":false,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"viewportType":"default","fitBB":{"min":{"x":-9.000680271168676,"y":-4.75},"max":{"x":756.0183424505415,"y":502.5}},"objects":[{"x":765.0,"y":250.0,"rotation":0.0,"id":169,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":47,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-12.982306425886122,0.0],[-41.25,0.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":663.0,"y":362.5,"rotation":270.0,"id":168,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":46,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

managed by Docker

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":747.0,"y":472.0,"rotation":0.0,"id":166,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":45,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":2,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[0.0,14.008510484195028],[0.0,-221.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":25.5,"y":254.0,"rotation":0.0,"id":162,"width":194.49999999999997,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":43,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:1:1::/64 \\

    dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":239.28932188134524,"y":150.0,"rotation":0.0,"id":32,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":8,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":4,"py":0.0,"px":0.2928932188134524}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":0,"py":1.0,"px":0.7071067811865476}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[196.5,47.5],[151.9213562373095,-37.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":195.0,"y":261.5,"rotation":0.0,"id":35,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":11,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":2,"py":0.9999999999999998,"px":0.29289321881345254}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":13,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[66.28932188134524,11.0],[-92.0,91.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":182.0,"y":272.5,"rotation":0.0,"id":34,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":10,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":2,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":15,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[100.0,0.0],[82.0,80.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":11.5,"y":464.0,"rotation":0.0,"id":53,"width":346.49999999999994,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":33,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":11.5,"y":323.5,"rotation":0.0,"id":56,"width":346.49999999999994,"height":163.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":5,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":245.0,"y":109.0,"rotation":0.0,"id":33,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":9,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":0,"py":0.9999999999999998,"px":0.29289321881345254}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":2,"py":0.0,"px":0.7071067811865476}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[104.78932188134524,3.999999999999986],[57.710678118654755,88.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":76.5,"y":141.5,"rotation":0.0,"id":31,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":7,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":4,"py":1.0,"px":0.7071067811865476}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":25,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[400.71067811865476,131.0],[560.0,211.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":37.5,"y":145.5,"rotation":0.0,"id":30,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":6,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":4,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":27,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[419.0,127.0],[431.0,207.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":296.0,"y":21.0,"rotation":0.0,"id":87,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":41,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":293.0,"y":120.0,"rotation":0.0,"id":83,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":40,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth1 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":433.5,"y":46.5,"rotation":0.0,"id":82,"width":291.0,"height":78.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":39,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

 

 

ip -6 route add 2001:db8:1::/48 via fe80::1:1 dev eth1

ip -6 route add 2001:db8:2::/48 via fe80::2:1 dev eth1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":320.5,"y":38.0,"rotation":0.0,"id":0,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":12,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#fff2cc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":1,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Router

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":369.0,"y":40.0,"rotation":0.0,"id":89,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":1,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":0,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#d9d9d9","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[1.5,-2.0],[1.5,-21.125],[1.5,-21.125],[1.5,-40.25]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":297.75,"y":10.5,"rotation":0.0,"id":80,"width":425.99999999999994,"height":133.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":0,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":528.5,"y":199.0,"rotation":0.0,"id":73,"width":195.25,"height":31.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":35,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 \\

    dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":793.0,"y":250.0,"rotation":0.0,"id":64,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":34,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":60,"py":0.6205673758865248,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,8.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-69.25,0.0],[-798.0006802711687,-3.410605131648481E-13]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":25.5,"y":201.0,"rotation":0.0,"id":47,"width":291.0,"height":31.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":31,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 \\

   dev eth0 

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":207.0,"y":281.0,"rotation":0.0,"id":11,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":21,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":220.0,"y":168.0,"rotation":0.0,"id":6,"width":150.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":18,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:1:0::1/64

        fe80::1:1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":232.0,"y":197.5,"rotation":0.0,"id":2,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":14,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":3,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Host1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":11.5,"y":162.5,"rotation":0.0,"id":59,"width":346.50000000000006,"height":141.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":3,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":384.75,"y":162.5,"rotation":0.0,"id":60,"width":339.0,"height":141.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":189.0,"y":336.0,"rotation":0.0,"id":74,"width":150.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":36,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:1:1::2/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":28.000000000000014,"y":336.0,"rotation":0.0,"id":19,"width":149.99999999999997,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":26,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:1:1::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":214.0,"y":353.0,"rotation":0.0,"id":15,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":24,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":16,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container1-2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":53.0,"y":353.0,"rotation":0.0,"id":13,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":22,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":14,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container1-1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":395.0,"y":336.0,"rotation":0.0,"id":77,"width":150.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":37,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:2:1::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":384.75,"y":323.5,"rotation":0.0,"id":58,"width":339.75,"height":163.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":4,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":384.75,"y":463.0,"rotation":0.0,"id":51,"width":339.75,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":32,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":418.5,"y":353.0,"rotation":0.0,"id":27,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":27,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":28,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container2-1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":563.0,"y":336.0,"rotation":0.0,"id":78,"width":150.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":38,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:2:1::2/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":586.5,"y":353.0,"rotation":0.0,"id":25,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":29,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":26,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container2-2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":259.0,"y":491.5,"rotation":0.0,"id":107,"width":223.00000000000003,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":42,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

containers' link-local addresses are not displayed

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":394.5,"y":168.0,"rotation":0.0,"id":7,"width":150.0,"height":31.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:2:0::1/64
        fe80::2:1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":381.5,"y":280.0,"rotation":0.0,"id":9,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":20,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":406.5,"y":197.5,"rotation":0.0,"id":4,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":5,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Host2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":528.5,"y":252.0,"rotation":0.0,"id":164,"width":194.49999999999997,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":44,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:2:1::/64 \\

    dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":766.0,"y":487.0,"rotation":0.0,"id":171,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":48,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-13.981657549458532,0.0],[-41.25,0.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"#fff2cc","stroke":"#333333","strokeWidth":2,"dashStyle":"2.0,2.0","gradient":true,"shadow":true}},"lineStyles":{"global":{"stroke":"#000000","strokeWidth":1}},"textStyles":{"global":{"size":"12px"}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v2.class","com.gliffy.libraries.uml.uml_v2.sequence","com.gliffy.libraries.uml.uml_v2.activity","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v3.containers_content","com.gliffy.libraries.ui.ui_v3.forms_controls","com.gliffy.libraries.images"],"autosaveDisabled":false},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/article-img/ipv6_routed_network_example.svg b/article-img/ipv6_routed_network_example.svg new file mode 100644 index 0000000000..da621433f3 --- /dev/null +++ b/article-img/ipv6_routed_network_example.svg @@ -0,0 +1 @@ +RouterHost1Host2eth02001:db8:1:0::1/64fe80::1:1/64eth02001:db8:2:0::1/64fe80::2:1/64docker0fe80::1/64docker0fe80::1/64Container1-1Container1-2eth02001:db8:1:1::1/64Container2-1Container2-2ip -6routeadddefaultviafe80::1 \deveth0ip-6routeadddefaultviafe80::1deveth0ip-6routeadddefaultviafe80::1deveth0ip -6routeadddefaultviafe80::1 \deveth0eth02001:db8:1:1::2/64eth02001:db8:2:1::1/64eth02001:db8:2:1::2/64ip -6routeadddefaultviafe80::1deveth0ip -6routeadd2001:db8:1::/48viafe80::1:1deveth1ip -6routeadd2001:db8:2::/48viafe80::2:1deveth1eth1fe80::1/64eth02001:db8::1/64containers'link-localaddressesarenotdisplayedip -6routeadd2001:db8:1:1::/64 \devdocker0ip -6routeadd2001:db8:2:1::/64 \devdocker0managedbyDocker \ No newline at end of file diff --git a/article-img/ipv6_slash64_subnet_config.gliffy b/article-img/ipv6_slash64_subnet_config.gliffy new file mode 100644 index 0000000000..6914fd074d --- /dev/null +++ b/article-img/ipv6_slash64_subnet_config.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":550,"height":341,"nodeIndex":88,"autoFit":true,"exportBorder":false,"gridOn":false,"snapToGrid":false,"drawingGuidesOn":false,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"viewportType":"default","fitBB":{"min":{"x":2.5,"y":2.5},"max":{"x":550,"y":341}},"objects":[{"x":10.5,"y":53.5,"rotation":0.0,"id":74,"width":150.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":26,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":37.0,"y":2.5,"rotation":0.0,"id":72,"width":100.0,"height":46.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":24,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#d9d9d9","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":73,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Router

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":89.5,"y":83.5,"rotation":0.0,"id":59,"width":150.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":17,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Routed Network:
2001:db8:23:42::/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":313.0,"y":314.0,"rotation":0.0,"id":39,"width":235.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":352.0,"y":185.5,"rotation":0.0,"id":36,"width":169.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":15,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:23:42:1::2/80

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":351.0,"y":49.5,"rotation":0.0,"id":29,"width":171.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":14,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:23:42:1::1/80

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":382.1250000000001,"y":202.5,"rotation":0.0,"id":30,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":12,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":31,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

container1-2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":382.0,"y":65.5,"rotation":0.0,"id":32,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":10,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":33,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

container1-1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":15.125000000000057,"y":264.0,"rotation":0.0,"id":20,"width":273.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":9,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

ip -6 route add 2001:db8:23:42:1::/80 dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":120.0,"y":178.5,"rotation":0.0,"id":21,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":8,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":13.0,"y":132.5,"rotation":0.0,"id":22,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":7,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:23:42::1/80

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":38.0,"y":149.0,"rotation":0.0,"id":23,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":5,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":24,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

host1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":-118.0,"y":123.0,"rotation":0.0,"id":44,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":4,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":23,"py":0.7071067811865475,"px":0.9999999999999998}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":30,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[255.99999999999997,79.03300858899107],[500.1250000000001,129.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":-138.0,"y":129.0,"rotation":0.0,"id":43,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":3,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":23,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":32,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[276.0,41.966991411008934],[520.0,-13.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":313.0,"y":40.0,"rotation":0.0,"id":34,"width":237.00000000000003,"height":301.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":87.0,"y":150.0,"rotation":0.0,"id":58,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":1,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":23,"py":0.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":72,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[1.0,-1.0],[0.0,-101.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":2.5,"y":118.50000000000001,"rotation":0.0,"id":25,"width":292.0,"height":178.99999999999997,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":0,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]}],"shapeStyles":{},"lineStyles":{"global":{"stroke":"#cccccc"}},"textStyles":{"global":{"bold":true,"italic":true}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v1.default","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v2.forms_components","com.gliffy.libraries.network.network_v3.home","com.gliffy.libraries.images"],"autosaveDisabled":false},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/article-img/ipv6_slash64_subnet_config.svg b/article-img/ipv6_slash64_subnet_config.svg new file mode 100644 index 0000000000..70b140e2dc --- /dev/null +++ b/article-img/ipv6_slash64_subnet_config.svg @@ -0,0 +1 @@ +host1eth02001:db8:23:42::1/80docker0fe80::1/64ip -6routeadddefaultviafe80::1deveth0ip-6routeadd2001:db8:23:42:1::/80devdocker0container1-1container1-2eth02001:db8:23:42:1::1/80eth02001:db8:23:42:1::2/80ip-6routeadddefaultviafe80::1deveth0RoutedNetwork:2001:db8:23:42::/64Routerfe80::1/64 \ No newline at end of file diff --git a/article-img/ipv6_switched_network_example.gliffy b/article-img/ipv6_switched_network_example.gliffy new file mode 100644 index 0000000000..75cbfcaadc --- /dev/null +++ b/article-img/ipv6_switched_network_example.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":893,"height":448,"nodeIndex":185,"autoFit":true,"exportBorder":false,"gridOn":false,"snapToGrid":false,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"viewportType":"default","fitBB":{"min":{"x":-17.000680271168676,"y":7},"max":{"x":892.767693574114,"y":447.5}},"objects":[{"x":17.5,"y":205.5,"rotation":0.0,"id":167,"width":238.5,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":38,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:1::/64 dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":231.28932188134524,"y":95.0,"rotation":0.0,"id":120,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":6,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":161,"py":0.0,"px":0.2928932188134524}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":131,"py":1.0,"px":0.7071067811865476}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[267.5,47.5],[217.9213562373095,-13.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":187.0,"y":206.5,"rotation":0.0,"id":121,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":9,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":140,"py":0.9999999999999998,"px":0.29289321881345254}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":148,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[130.28932188134524,11.0],[-79.0,91.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":174.0,"y":217.5,"rotation":0.0,"id":122,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":8,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":140,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":146,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[164.0,0.0],[120.0,81.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":33.50000000000003,"y":409.0,"rotation":0.0,"id":123,"width":346.49999999999994,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":31,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":3.5000000000000284,"y":268.5,"rotation":0.0,"id":124,"width":411.00000000000006,"height":163.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":3,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":237.0,"y":54.0,"rotation":0.0,"id":125,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":7,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":131,"py":0.9999999999999998,"px":0.29289321881345254}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":140,"py":0.0,"px":0.7071067811865476}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[170.78932188134524,27.999999999999986],[121.71067811865476,88.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":378.5,"y":7.0,"rotation":0.0,"id":131,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":10,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#e2e2e2","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":132,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Level 2 Switch

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":785.0,"y":195.0,"rotation":0.0,"id":136,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":32,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":143,"py":0.6187943262411347,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,8.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[78.75000000000011,-0.25],[-798.0006802711687,-3.410605131648481E-13]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":262.0,"y":224.0,"rotation":0.0,"id":138,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":278.0,"y":126.0,"rotation":0.0,"id":139,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:0::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":288.0,"y":142.5,"rotation":0.0,"id":140,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":12,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":141,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Host1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":3.4999999999999716,"y":107.5,"rotation":0.0,"id":142,"width":411.0,"height":141.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":1,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":221.0,"y":283.0,"rotation":0.0,"id":144,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":34,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:1::2/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":34.000000000000014,"y":283.0,"rotation":0.0,"id":145,"width":149.99999999999997,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":24,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:1::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":244.0,"y":299.0,"rotation":0.0,"id":146,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":22,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":147,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container1-2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":58.0,"y":298.0,"rotation":0.0,"id":148,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":20,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":149,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container1-1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":317.0,"y":436.5,"rotation":0.0,"id":158,"width":223.00000000000003,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":37,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

containers' link-local addresses are not displayed

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":17.5,"y":148.0,"rotation":0.0,"id":137,"width":291.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":29,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:0::/64 dev eth0

ip -6 route add 2001:db8:2::/64 via 2001:db8:0::2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":901.7500000000001,"y":195.0,"rotation":0.0,"id":172,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":43,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-12.982306425886122,0.0],[-41.25,0.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":670.0,"y":284.0,"rotation":0.0,"id":155,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":36,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:2::2/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":479.0,"y":284.0,"rotation":0.0,"id":150,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":35,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:2::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":488.75,"y":408.0,"rotation":0.0,"id":152,"width":339.75,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":30,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add default via fe80::1 dev eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":694.5,"y":298.0,"rotation":0.0,"id":156,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":27,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":157,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container2-2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":501.5,"y":298.0,"rotation":0.0,"id":153,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.square","order":25,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#ead1dc","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":154,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Container2-1

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":444.5,"y":223.0,"rotation":0.0,"id":160,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":18,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker0 fe80::1/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":460.5,"y":128.0,"rotation":0.0,"id":159,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":17,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

eth0 2001:db8:0::2/64

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":469.5,"y":142.5,"rotation":0.0,"id":161,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":14,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#a4c2f4","gradient":true,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":162,"width":96.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Host2

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":139.5,"y":86.5,"rotation":0.0,"id":126,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":5,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":161,"py":1.0,"px":0.7071067811865476}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":156,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[400.71067811865476,131.0],[605.0,211.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":100.5,"y":90.5,"rotation":0.0,"id":127,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":4,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":161,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":153,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#cccccc","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[419.0,127.0],[451.0,207.5]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":447.75,"y":268.5,"rotation":0.0,"id":151,"width":416.0000000000001,"height":163.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":447.75,"y":107.5,"rotation":0.0,"id":143,"width":416.0000000000001,"height":141.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":0,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":"2,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":795.7500000000001,"y":307.5,"rotation":270.0,"id":173,"width":150.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":41,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

managed by Docker

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":879.7500000000001,"y":417.0,"rotation":0.0,"id":174,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":40,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":2,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[0.0,14.008510484195028],[0.0,-221.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":898.7500000000001,"y":432.0,"rotation":0.0,"id":171,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":42,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-13.981657549458532,0.0],[-41.25,0.0]],"lockSegments":{},"ortho":false}},"linkMap":[],"children":[]},{"x":582.5,"y":151.0,"rotation":0.0,"id":135,"width":285.25000000000017,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":33,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:0::/64 dev eth0

ip -6 route add 2001:db8:1::/64 via 2001:db8:0::1 

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":583.0,"y":204.0,"rotation":0.0,"id":168,"width":272.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":39,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ip -6 route add 2001:db8:2::/64 dev docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"#e2e2e2","stroke":"#333333","strokeWidth":2,"dashStyle":"2.0,2.0","gradient":true,"shadow":true}},"lineStyles":{"global":{"stroke":"#000000","strokeWidth":1,"dashStyle":"8.0,8.0"}},"textStyles":{}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v2.class","com.gliffy.libraries.uml.uml_v2.sequence","com.gliffy.libraries.uml.uml_v2.activity","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v3.containers_content","com.gliffy.libraries.ui.ui_v3.forms_controls","com.gliffy.libraries.images"],"autosaveDisabled":false},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/article-img/ipv6_switched_network_example.svg b/article-img/ipv6_switched_network_example.svg new file mode 100644 index 0000000000..4cbf709b13 --- /dev/null +++ b/article-img/ipv6_switched_network_example.svg @@ -0,0 +1 @@ +Level2SwitchHost1Host2eth02001:db8:0::1/64eth02001:db8:0::2/64docker0fe80::1/64docker0fe80::1/64Container1-1Container1-2eth02001:db8:1::1/64Container2-1Container2-2ip -6routeadd2001:db8:0::/64deveth0ip -6routeadd2001:db8:2::/64via2001:db8:0::2ip-6routeadddefaultviafe80::1deveth0ip-6routeadddefaultviafe80::1deveth0ip -6routeadd2001:db8:0::/64deveth0ip -6routeadd2001:db8:1::/64via2001:db8:0::1eth02001:db8:1::2/64eth02001:db8:2::1/64eth02001:db8:2::2/64containers'link-localaddressesarenotdisplayedip -6routeadd2001:db8:1::/64devdocker0ip -6routeadd2001:db8:2::/64devdocker0managedbyDocker \ No newline at end of file diff --git a/articles/ambassador_pattern_linking.md~ b/articles/ambassador_pattern_linking.md~ new file mode 100644 index 0000000000..9b1b0329a6 --- /dev/null +++ b/articles/ambassador_pattern_linking.md~ @@ -0,0 +1,150 @@ +page_title: Link via an Ambassador Container +page_description: Using the Ambassador pattern to abstract (network) services +page_keywords: Examples, Usage, links, docker, documentation, examples, names, name, container naming + +# Link via an Ambassador Container + +## Introduction + +Rather than hardcoding network links between a service consumer and +provider, Docker encourages service portability, for example instead of: + + (consumer) --> (redis) + +Requiring you to restart the `consumer` to attach it to a different +`redis` service, you can add ambassadors: + + (consumer) --> (redis-ambassador) --> (redis) + +Or + + (consumer) --> (redis-ambassador) ---network---> (redis-ambassador) --> (redis) + +When you need to rewire your consumer to talk to a different Redis +server, you can just restart the `redis-ambassador` container that the +consumer is connected to. + +This pattern also allows you to transparently move the Redis server to a +different docker host from the consumer. + +Using the `svendowideit/ambassador` container, the link wiring is +controlled entirely from the `docker run` parameters. + +## Two host Example + +Start actual Redis server on one Docker host + + big-server $ sudo docker run -d --name redis crosbymichael/redis + +Then add an ambassador linked to the Redis server, mapping a port to the +outside world + + big-server $ sudo docker run -d --link redis:redis --name redis_ambassador -p 6379:6379 svendowideit/ambassador + +On the other host, you can set up another ambassador setting environment +variables for each remote port we want to proxy to the `big-server` + + client-server $ sudo docker run -d --name redis_ambassador --expose 6379 -e REDIS_PORT_6379_TCP=tcp://192.168.1.52:6379 svendowideit/ambassador + +Then on the `client-server` host, you can use a Redis client container +to talk to the remote Redis server, just by linking to the local Redis +ambassador. + + client-server $ sudo docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli + redis 172.17.0.160:6379> ping + PONG + +## How it works + +The following example shows what the `svendowideit/ambassador` container +does automatically (with a tiny amount of `sed`) + +On the Docker host (192.168.1.52) that Redis will run on: + + # start actual redis server + $ sudo docker run -d --name redis crosbymichael/redis + + # get a redis-cli container for connection testing + $ sudo docker pull relateiq/redis-cli + + # test the redis server by talking to it directly + $ sudo docker run -t -i --rm --link redis:redis relateiq/redis-cli + redis 172.17.0.136:6379> ping + PONG + ^D + + # add redis ambassador + $ sudo docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 busybox sh + +In the `redis_ambassador` container, you can see the linked Redis +containers `env`: + + $ env + REDIS_PORT=tcp://172.17.0.136:6379 + REDIS_PORT_6379_TCP_ADDR=172.17.0.136 + REDIS_NAME=/redis_ambassador/redis + HOSTNAME=19d7adf4705e + REDIS_PORT_6379_TCP_PORT=6379 + HOME=/ + REDIS_PORT_6379_TCP_PROTO=tcp + container=lxc + REDIS_PORT_6379_TCP=tcp://172.17.0.136:6379 + TERM=xterm + PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + PWD=/ + +This environment is used by the ambassador `socat` script to expose Redis +to the world (via the `-p 6379:6379` port mapping): + + $ sudo docker rm redis_ambassador + $ sudo ./contrib/mkimage-unittest.sh + $ sudo docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 docker-ut sh + + $ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:172.17.0.136:6379 + +Now ping the Redis server via the ambassador: + +Now go to a different server: + + $ sudo ./contrib/mkimage-unittest.sh + $ sudo docker run -t -i --expose 6379 --name redis_ambassador docker-ut sh + + $ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:192.168.1.52:6379 + +And get the `redis-cli` image so we can talk over the ambassador bridge. + + $ sudo docker pull relateiq/redis-cli + $ sudo docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli + redis 172.17.0.160:6379> ping + PONG + +## The svendowideit/ambassador Dockerfile + +The `svendowideit/ambassador` image is a small `busybox` image with +`socat` built in. When you start the container, it uses a small `sed` +script to parse out the (possibly multiple) link environment variables +to set up the port forwarding. On the remote host, you need to set the +variable using the `-e` command line option. + + --expose 1234 -e REDIS_PORT_1234_TCP=tcp://192.168.1.52:6379 + +Will forward the local `1234` port to the remote IP and port, in this +case `192.168.1.52:6379`. + + # + # + # first you need to build the docker-ut image + # using ./contrib/mkimage-unittest.sh + # then + # docker build -t SvenDowideit/ambassador . + # docker tag SvenDowideit/ambassador ambassador + # then to run it (on the host that has the real backend on it) + # docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 ambassador + # on the remote host, you can set up another ambassador + # docker run -t -i --name redis_ambassador --expose 6379 sh + + FROM docker-ut + MAINTAINER SvenDowideit@home.org.au + + + CMD env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\):\(.*\)/socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&/' | sh && top diff --git a/articles/ambassador_pattern_linking/index.html b/articles/ambassador_pattern_linking/index.html new file mode 100644 index 0000000000..cb08f2f490 --- /dev/null +++ b/articles/ambassador_pattern_linking/index.html @@ -0,0 +1,962 @@ + + + + + + + + + + + + + + + + + + + + + + + + Cross-Host linking using ambassador containers - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Link via an Ambassador Container

+

Introduction

+

Rather than hardcoding network links between a service consumer and +provider, Docker encourages service portability, for example instead of:

+
(consumer) --> (redis)
+
+

Requiring you to restart the consumer to attach it to a different +redis service, you can add ambassadors:

+
(consumer) --> (redis-ambassador) --> (redis)
+
+

Or

+
(consumer) --> (redis-ambassador) ---network---> (redis-ambassador) --> (redis)
+
+

When you need to rewire your consumer to talk to a different Redis +server, you can just restart the redis-ambassador container that the +consumer is connected to.

+

This pattern also allows you to transparently move the Redis server to a +different docker host from the consumer.

+

Using the svendowideit/ambassador container, the link wiring is +controlled entirely from the docker run parameters.

+

Two host Example

+

Start actual Redis server on one Docker host

+
big-server $ sudo docker run -d --name redis crosbymichael/redis
+
+

Then add an ambassador linked to the Redis server, mapping a port to the +outside world

+
big-server $ sudo docker run -d --link redis:redis --name redis_ambassador -p 6379:6379 svendowideit/ambassador
+
+

On the other host, you can set up another ambassador setting environment +variables for each remote port we want to proxy to the big-server

+
client-server $ sudo docker run -d --name redis_ambassador --expose 6379 -e REDIS_PORT_6379_TCP=tcp://192.168.1.52:6379 svendowideit/ambassador
+
+

Then on the client-server host, you can use a Redis client container +to talk to the remote Redis server, just by linking to the local Redis +ambassador.

+
client-server $ sudo docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli
+redis 172.17.0.160:6379> ping
+PONG
+
+

How it works

+

The following example shows what the svendowideit/ambassador container +does automatically (with a tiny amount of sed)

+

On the Docker host (192.168.1.52) that Redis will run on:

+
# start actual redis server
+$ sudo docker run -d --name redis crosbymichael/redis
+
+# get a redis-cli container for connection testing
+$ sudo docker pull relateiq/redis-cli
+
+# test the redis server by talking to it directly
+$ sudo docker run -t -i --rm --link redis:redis relateiq/redis-cli
+redis 172.17.0.136:6379> ping
+PONG
+^D
+
+# add redis ambassador
+$ sudo docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 busybox sh
+
+

In the redis_ambassador container, you can see the linked Redis +containers env:

+
$ env
+REDIS_PORT=tcp://172.17.0.136:6379
+REDIS_PORT_6379_TCP_ADDR=172.17.0.136
+REDIS_NAME=/redis_ambassador/redis
+HOSTNAME=19d7adf4705e
+REDIS_PORT_6379_TCP_PORT=6379
+HOME=/
+REDIS_PORT_6379_TCP_PROTO=tcp
+container=lxc
+REDIS_PORT_6379_TCP=tcp://172.17.0.136:6379
+TERM=xterm
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+PWD=/
+
+

This environment is used by the ambassador socat script to expose Redis +to the world (via the -p 6379:6379 port mapping):

+
$ sudo docker rm redis_ambassador
+$ sudo ./contrib/mkimage-unittest.sh
+$ sudo docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 docker-ut sh
+
+$ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:172.17.0.136:6379
+
+

Now ping the Redis server via the ambassador:

+

Now go to a different server:

+
$ sudo ./contrib/mkimage-unittest.sh
+$ sudo docker run -t -i --expose 6379 --name redis_ambassador docker-ut sh
+
+$ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:192.168.1.52:6379
+
+

And get the redis-cli image so we can talk over the ambassador bridge.

+
$ sudo docker pull relateiq/redis-cli
+$ sudo docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli
+redis 172.17.0.160:6379> ping
+PONG
+
+

The svendowideit/ambassador Dockerfile

+

The svendowideit/ambassador image is a small busybox image with +socat built in. When you start the container, it uses a small sed +script to parse out the (possibly multiple) link environment variables +to set up the port forwarding. On the remote host, you need to set the +variable using the -e command line option.

+
--expose 1234 -e REDIS_PORT_1234_TCP=tcp://192.168.1.52:6379
+
+

Will forward the local 1234 port to the remote IP and port, in this +case 192.168.1.52:6379.

+
#
+#
+# first you need to build the docker-ut image
+# using ./contrib/mkimage-unittest.sh
+# then
+#   docker build -t SvenDowideit/ambassador .
+#   docker tag SvenDowideit/ambassador ambassador
+# then to run it (on the host that has the real backend on it)
+#   docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 ambassador
+# on the remote host, you can set up another ambassador
+#   docker run -t -i --name redis_ambassador --expose 6379 sh
+
+FROM    docker-ut
+MAINTAINER      SvenDowideit@home.org.au
+
+
+CMD     env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\):\(.*\)/socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&/'  | sh && top
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/b2d_volume_images/add_cd.png b/articles/b2d_volume_images/add_cd.png new file mode 100644 index 0000000000..50d7c4e7ed Binary files /dev/null and b/articles/b2d_volume_images/add_cd.png differ diff --git a/articles/b2d_volume_images/add_new_controller.png b/articles/b2d_volume_images/add_new_controller.png new file mode 100644 index 0000000000..791a310585 Binary files /dev/null and b/articles/b2d_volume_images/add_new_controller.png differ diff --git a/articles/b2d_volume_images/add_volume.png b/articles/b2d_volume_images/add_volume.png new file mode 100644 index 0000000000..ea2d6f6e79 Binary files /dev/null and b/articles/b2d_volume_images/add_volume.png differ diff --git a/articles/b2d_volume_images/boot_order.png b/articles/b2d_volume_images/boot_order.png new file mode 100644 index 0000000000..a62cc95e5a Binary files /dev/null and b/articles/b2d_volume_images/boot_order.png differ diff --git a/articles/b2d_volume_images/gparted.png b/articles/b2d_volume_images/gparted.png new file mode 100644 index 0000000000..1a50155ce2 Binary files /dev/null and b/articles/b2d_volume_images/gparted.png differ diff --git a/articles/b2d_volume_images/gparted2.png b/articles/b2d_volume_images/gparted2.png new file mode 100644 index 0000000000..e48e9f1531 Binary files /dev/null and b/articles/b2d_volume_images/gparted2.png differ diff --git a/articles/b2d_volume_images/verify.png b/articles/b2d_volume_images/verify.png new file mode 100644 index 0000000000..843fa126bf Binary files /dev/null and b/articles/b2d_volume_images/verify.png differ diff --git a/articles/b2d_volume_resize.md~ b/articles/b2d_volume_resize.md~ new file mode 100644 index 0000000000..1b39b49eda --- /dev/null +++ b/articles/b2d_volume_resize.md~ @@ -0,0 +1,101 @@ +page_title: Resizing a Boot2Docker Volume +page_description: Resizing a Boot2Docker Volume in VirtualBox with GParted +page_keywords: boot2docker, volume, virtualbox + +# Getting “no space left on device” errors with Boot2Docker? + +If you're using Boot2Docker with a large number of images, or the images you're +working with are very large, your pulls might start failing with "no space left +on device" errors when the Boot2Docker volume fills up. The solution is to +increase the volume size by first cloning it, then resizing it using a disk +partitioning tool. + +We recommend [GParted](http://gparted.sourceforge.net/download.php/index.php). +The tool comes as a bootable ISO, is a free download, and works well with +VirtualBox. + +## 1. Stop Boot2Docker + +Issue the command to stop the Boot2Docker VM on the command line: + + $ boot2docker stop + +## 2. Clone the VMDK image to a VDI image + +Boot2Docker ships with a VMDK image, which can’t be resized by VirtualBox’s +native tools. We will instead create a VDI volume and clone the VMDK volume to +it. + +Using the command line VirtualBox tools, clone the VMDK image to a VDI image: + + $ vboxmanage clonehd /full/path/to/boot2docker-hd.vmdk /full/path/to/.vdi --format VDI --variant Standard + +## 3. Resize the VDI volume + +Choose a size that will be appropriate for your needs. If you’re spinning up a +lot of containers, or your containers are particularly large, larger will be +better: + + $ vboxmanage modifyhd /full/path/to/.vdi --resize + +## 4. Download a disk partitioning tool ISO + +To resize the volume, we'll use [GParted](http://gparted.sourceforge.net/download.php/). +Once you've downloaded the tool, add the ISO to the Boot2Docker VM IDE bus. +You might need to create the bus before you can add the ISO. + +> **Note:** +> It's important that you choose a partitioning tool that is available as an ISO so +> that the Boot2Docker VM can be booted with it. + + + + + + + + +


+ +## 5. Add the new VDI image + +In the settings for the Boot2Docker image in VirtualBox, remove the VMDK image +from the SATA contoller and add the VDI image. + + + +## 6. Verify the boot order + +In the **System** settings for the Boot2Docker VM, make sure that **CD/DVD** is +at the top of the **Boot Order** list. + + + +## 7. Boot to the disk partitioning ISO + +Manually start the Boot2Docker VM in VirtualBox, and the disk partitioning ISO +should start up. Using GParted, choose the **GParted Live (default settings)** +option. Choose the default keyboard, language, and XWindows settings, and the +GParted tool will start up and display the VDI volume you created. Right click +on the VDI and choose **Resize/Move**. + + + +Drag the slider representing the volume to the maximum available size, click +**Resize/Move**, and then **Apply**. + + + +Quit GParted and shut down the VM. Remove the GParted ISO from the IDE controller +for the Boot2Docker VM in VirtualBox. + +## 8. Start the Boot2Docker VM + +Fire up the Boot2Docker VM manually in VirtualBox. The VM should log in +automatically, but if it doesn't, the credentials are `docker/tcuser`. Using +the `df -h` command, verify that your changes took effect. + + + +You’re done! + diff --git a/articles/b2d_volume_resize/index.html b/articles/b2d_volume_resize/index.html new file mode 100644 index 0000000000..a1067a7d41 --- /dev/null +++ b/articles/b2d_volume_resize/index.html @@ -0,0 +1,933 @@ + + + + + + + + + + + + + + + + + + + + + + + + Increasing a Boot2Docker volume - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Getting “no space left on device” errors with Boot2Docker?

+

If you're using Boot2Docker with a large number of images, or the images you're +working with are very large, your pulls might start failing with "no space left +on device" errors when the Boot2Docker volume fills up. The solution is to +increase the volume size by first cloning it, then resizing it using a disk +partitioning tool.

+

We recommend GParted. +The tool comes as a bootable ISO, is a free download, and works well with +VirtualBox.

+

1. Stop Boot2Docker

+

Issue the command to stop the Boot2Docker VM on the command line:

+
$ boot2docker stop
+
+

2. Clone the VMDK image to a VDI image

+

Boot2Docker ships with a VMDK image, which can’t be resized by VirtualBox’s +native tools. We will instead create a VDI volume and clone the VMDK volume to +it.

+

Using the command line VirtualBox tools, clone the VMDK image to a VDI image:

+
$ vboxmanage clonehd /full/path/to/boot2docker-hd.vmdk /full/path/to/<newVDIimage>.vdi --format VDI --variant Standard
+
+

3. Resize the VDI volume

+

Choose a size that will be appropriate for your needs. If you’re spinning up a +lot of containers, or your containers are particularly large, larger will be +better:

+
$ vboxmanage modifyhd /full/path/to/<newVDIimage>.vdi --resize <size in MB>
+
+

4. Download a disk partitioning tool ISO

+

To resize the volume, we'll use GParted. +Once you've downloaded the tool, add the ISO to the Boot2Docker VM IDE bus. +You might need to create the bus before you can add the ISO.

+
+

Note: +It's important that you choose a partitioning tool that is available as an ISO so +that the Boot2Docker VM can be booted with it.

+
+ + + + + + + +


+ +

5. Add the new VDI image

+

In the settings for the Boot2Docker image in VirtualBox, remove the VMDK image +from the SATA contoller and add the VDI image.

+

+

6. Verify the boot order

+

In the System settings for the Boot2Docker VM, make sure that CD/DVD is +at the top of the Boot Order list.

+

+

7. Boot to the disk partitioning ISO

+

Manually start the Boot2Docker VM in VirtualBox, and the disk partitioning ISO +should start up. Using GParted, choose the GParted Live (default settings) +option. Choose the default keyboard, language, and XWindows settings, and the +GParted tool will start up and display the VDI volume you created. Right click +on the VDI and choose Resize/Move.

+

+

Drag the slider representing the volume to the maximum available size, click +Resize/Move, and then Apply.

+

+

Quit GParted and shut down the VM. Remove the GParted ISO from the IDE controller +for the Boot2Docker VM in VirtualBox.

+

8. Start the Boot2Docker VM

+

Fire up the Boot2Docker VM manually in VirtualBox. The VM should log in +automatically, but if it doesn't, the credentials are docker/tcuser. Using +the df -h command, verify that your changes took effect.

+

+

You’re done!

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/baseimages.md~ b/articles/baseimages.md~ new file mode 100644 index 0000000000..5a5addd1aa --- /dev/null +++ b/articles/baseimages.md~ @@ -0,0 +1,68 @@ +page_title: Create a Base Image +page_description: How to create base images +page_keywords: Examples, Usage, base image, docker, documentation, examples + +# Create a Base Image + +So you want to create your own [*Base Image*]( +/terms/image/#base-image)? Great! + +The specific process will depend heavily on the Linux distribution you +want to package. We have some examples below, and you are encouraged to +submit pull requests to contribute new ones. + +## Create a full image using tar + +In general, you'll want to start with a working machine that is running +the distribution you'd like to package as a base image, though that is +not required for some tools like Debian's +[Debootstrap](https://wiki.debian.org/Debootstrap), which you can also +use to build Ubuntu images. + +It can be as simple as this to create an Ubuntu base image: + + $ sudo debootstrap raring raring > /dev/null + $ sudo tar -C raring -c . | sudo docker import - raring + a29c15f1bf7a + $ sudo docker run raring cat /etc/lsb-release + DISTRIB_ID=Ubuntu + DISTRIB_RELEASE=13.04 + DISTRIB_CODENAME=raring + DISTRIB_DESCRIPTION="Ubuntu 13.04" + +There are more example scripts for creating base images in the Docker +GitHub Repo: + + - [BusyBox](https://github.com/docker/docker/blob/master/contrib/mkimage-busybox.sh) + - CentOS / Scientific Linux CERN (SLC) [on Debian/Ubuntu]( + https://github.com/docker/docker/blob/master/contrib/mkimage-rinse.sh) or + [on CentOS/RHEL/SLC/etc.]( + https://github.com/docker/docker/blob/master/contrib/mkimage-yum.sh) + - [Debian / Ubuntu]( + https://github.com/docker/docker/blob/master/contrib/mkimage-debootstrap.sh) + +## Creating a simple base image using `scratch` + +There is a special repository in the Docker registry called `scratch`, which +was created using an empty tar file: + + $ tar cv --files-from /dev/null | docker import - scratch + +which you can `docker pull`. You can then use that +image to base your new minimal containers `FROM`: + + FROM scratch + COPY true-asm /true + CMD ["/true"] + +The `Dockerfile` above is from an extremely minimal image - [tianon/true]( +https://github.com/tianon/dockerfiles/tree/master/true). + +## More resources + +There are lots more resources available to help you write your 'Dockerfile`. + +* There's a [complete guide to all the instructions](/reference/builder/) available for use in a `Dockerfile` in the reference section. +* To help you write a clear, readable, maintainable `Dockerfile`, we've also +written a [`Dockerfile` Best Practices guide](/articles/dockerfile_best-practices). +* If you're working on an Official Repo, be sure to check out the [Official Repo Guidelines](/docker-hub/official_repos/). diff --git a/articles/baseimages/index.html b/articles/baseimages/index.html new file mode 100644 index 0000000000..0eb18c4406 --- /dev/null +++ b/articles/baseimages/index.html @@ -0,0 +1,882 @@ + + + + + + + + + + + + + + + + + + + + + + + + Creating a base image - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Create a Base Image

+

So you want to create your own Base Image? Great!

+

The specific process will depend heavily on the Linux distribution you +want to package. We have some examples below, and you are encouraged to +submit pull requests to contribute new ones.

+

Create a full image using tar

+

In general, you'll want to start with a working machine that is running +the distribution you'd like to package as a base image, though that is +not required for some tools like Debian's +Debootstrap, which you can also +use to build Ubuntu images.

+

It can be as simple as this to create an Ubuntu base image:

+
$ sudo debootstrap raring raring > /dev/null
+$ sudo tar -C raring -c . | sudo docker import - raring
+a29c15f1bf7a
+$ sudo docker run raring cat /etc/lsb-release
+DISTRIB_ID=Ubuntu
+DISTRIB_RELEASE=13.04
+DISTRIB_CODENAME=raring
+DISTRIB_DESCRIPTION="Ubuntu 13.04"
+
+

There are more example scripts for creating base images in the Docker +GitHub Repo:

+ +

Creating a simple base image using scratch

+

There is a special repository in the Docker registry called scratch, which +was created using an empty tar file:

+
$ tar cv --files-from /dev/null | docker import - scratch
+
+

which you can docker pull. You can then use that +image to base your new minimal containers FROM:

+
FROM scratch
+COPY true-asm /true
+CMD ["/true"]
+
+

The Dockerfile above is from an extremely minimal image - tianon/true.

+

More resources

+

There are lots more resources available to help you write your 'Dockerfile`.

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/basics.md~ b/articles/basics.md~ new file mode 100644 index 0000000000..4cdcab4aa4 --- /dev/null +++ b/articles/basics.md~ @@ -0,0 +1,179 @@ +page_title: First steps with Docker +page_description: Common usage and commands +page_keywords: Examples, Usage, basic commands, docker, documentation, examples + +# First steps with Docker + +## Check your Docker install + +This guide assumes you have a working installation of Docker. To check +your Docker install, run the following command: + + # Check that you have a working install + $ sudo docker info + +If you get `docker: command not found` or something like +`/var/lib/docker/repositories: permission denied` you may have an +incomplete Docker installation or insufficient privileges to access +Docker on your machine. + +Please refer to [*Installation*](/installation) +for installation instructions. + +## Download a pre-built image + + # Download an ubuntu image + $ sudo docker pull ubuntu + +This will find the `ubuntu` image by name on +[*Docker Hub*](/userguide/dockerrepos/#searching-for-images) +and download it from [Docker Hub](https://hub.docker.com) to a local +image cache. + +> **Note**: +> When the image has successfully downloaded, you will see a 12 character +> hash `539c0211cd76: Download complete` which is the +> short form of the image ID. These short image IDs are the first 12 +> characters of the full image ID - which can be found using +> `docker inspect` or `docker images --no-trunc=true` + +{{ include "no-remote-sudo.md" }} + +## Running an interactive shell + + # Run an interactive shell in the ubuntu image, + # allocate a tty, attach stdin and stdout + # To detach the tty without exiting the shell, + # use the escape sequence Ctrl-p + Ctrl-q + # note: This will continue to exist in a stopped state once exited (see "docker ps -a") + $ sudo docker run -i -t ubuntu /bin/bash + +## Bind Docker to another host/port or a Unix socket + +> **Warning**: +> Changing the default `docker` daemon binding to a +> TCP port or Unix *docker* user group will increase your security risks +> by allowing non-root users to gain *root* access on the host. Make sure +> you control access to `docker`. If you are binding +> to a TCP port, anyone with access to that port has full Docker access; +> so it is not advisable on an open network. + +With `-H` it is possible to make the Docker daemon to listen on a +specific IP and port. By default, it will listen on +`unix:///var/run/docker.sock` to allow only local connections by the +*root* user. You *could* set it to `0.0.0.0:2375` or a specific host IP +to give access to everybody, but that is **not recommended** because +then it is trivial for someone to gain root access to the host where the +daemon is running. + +Similarly, the Docker client can use `-H` to connect to a custom port. + +`-H` accepts host and port assignment in the following format: + + tcp://[host][:port]` or `unix://path + +For example: + +- `tcp://host:2375` -> TCP connection on + host:2375 +- `unix://path/to/socket` -> Unix socket located + at `path/to/socket` + +`-H`, when empty, will default to the same value as +when no `-H` was passed in. + +`-H` also accepts short form for TCP bindings: + + host[:port]` or `:port + +Run Docker in daemon mode: + + $ sudo /docker -H 0.0.0.0:5555 -d & + +Download an `ubuntu` image: + + $ sudo docker -H :5555 pull ubuntu + +You can use multiple `-H`, for example, if you want to listen on both +TCP and a Unix socket + + # Run docker in daemon mode + $ sudo /docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d & + # Download an ubuntu image, use default Unix socket + $ sudo docker pull ubuntu + # OR use the TCP port + $ sudo docker -H tcp://127.0.0.1:2375 pull ubuntu + +## Starting a long-running worker process + + # Start a very useful long-running process + $ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") + + # Collect the output of the job so far + $ sudo docker logs $JOB + + # Kill the job + $ sudo docker kill $JOB + +## Listing containers + + $ sudo docker ps # Lists only running containers + $ sudo docker ps -a # Lists all containers + +## Controlling containers + + # Start a new container + $ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") + + # Stop the container + $ sudo docker stop $JOB + + # Start the container + $ sudo docker start $JOB + + # Restart the container + $ sudo docker restart $JOB + + # SIGKILL a container + $ sudo docker kill $JOB + + # Remove a container + $ sudo docker stop $JOB # Container must be stopped to remove it + $ sudo docker rm $JOB + +## Bind a service on a TCP port + + # Bind port 4444 of this container, and tell netcat to listen on it + $ JOB=$(sudo docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444) + + # Which public port is NATed to my container? + $ PORT=$(sudo docker port $JOB 4444 | awk -F: '{ print $2 }') + + # Connect to the public port + $ echo hello world | nc 127.0.0.1 $PORT + + # Verify that the network connection worked + $ echo "Daemon received: $(sudo docker logs $JOB)" + +## Committing (saving) a container state + +Save your containers state to an image, so the state can be +re-used. + +When you commit your container only the differences between the image +the container was created from and the current state of the container +will be stored (as a diff). See which images you already have using the +`docker images` command. + + # Commit your container to a new named image + $ sudo docker commit + + # List your containers + $ sudo docker images + +You now have an image state from which you can create new instances. + +Read more about [*Share Images via +Repositories*](/userguide/dockerrepos) or +continue to the complete [*Command +Line*](/reference/commandline/cli) diff --git a/articles/basics.md~~ b/articles/basics.md~~ new file mode 100644 index 0000000000..4cdcab4aa4 --- /dev/null +++ b/articles/basics.md~~ @@ -0,0 +1,179 @@ +page_title: First steps with Docker +page_description: Common usage and commands +page_keywords: Examples, Usage, basic commands, docker, documentation, examples + +# First steps with Docker + +## Check your Docker install + +This guide assumes you have a working installation of Docker. To check +your Docker install, run the following command: + + # Check that you have a working install + $ sudo docker info + +If you get `docker: command not found` or something like +`/var/lib/docker/repositories: permission denied` you may have an +incomplete Docker installation or insufficient privileges to access +Docker on your machine. + +Please refer to [*Installation*](/installation) +for installation instructions. + +## Download a pre-built image + + # Download an ubuntu image + $ sudo docker pull ubuntu + +This will find the `ubuntu` image by name on +[*Docker Hub*](/userguide/dockerrepos/#searching-for-images) +and download it from [Docker Hub](https://hub.docker.com) to a local +image cache. + +> **Note**: +> When the image has successfully downloaded, you will see a 12 character +> hash `539c0211cd76: Download complete` which is the +> short form of the image ID. These short image IDs are the first 12 +> characters of the full image ID - which can be found using +> `docker inspect` or `docker images --no-trunc=true` + +{{ include "no-remote-sudo.md" }} + +## Running an interactive shell + + # Run an interactive shell in the ubuntu image, + # allocate a tty, attach stdin and stdout + # To detach the tty without exiting the shell, + # use the escape sequence Ctrl-p + Ctrl-q + # note: This will continue to exist in a stopped state once exited (see "docker ps -a") + $ sudo docker run -i -t ubuntu /bin/bash + +## Bind Docker to another host/port or a Unix socket + +> **Warning**: +> Changing the default `docker` daemon binding to a +> TCP port or Unix *docker* user group will increase your security risks +> by allowing non-root users to gain *root* access on the host. Make sure +> you control access to `docker`. If you are binding +> to a TCP port, anyone with access to that port has full Docker access; +> so it is not advisable on an open network. + +With `-H` it is possible to make the Docker daemon to listen on a +specific IP and port. By default, it will listen on +`unix:///var/run/docker.sock` to allow only local connections by the +*root* user. You *could* set it to `0.0.0.0:2375` or a specific host IP +to give access to everybody, but that is **not recommended** because +then it is trivial for someone to gain root access to the host where the +daemon is running. + +Similarly, the Docker client can use `-H` to connect to a custom port. + +`-H` accepts host and port assignment in the following format: + + tcp://[host][:port]` or `unix://path + +For example: + +- `tcp://host:2375` -> TCP connection on + host:2375 +- `unix://path/to/socket` -> Unix socket located + at `path/to/socket` + +`-H`, when empty, will default to the same value as +when no `-H` was passed in. + +`-H` also accepts short form for TCP bindings: + + host[:port]` or `:port + +Run Docker in daemon mode: + + $ sudo /docker -H 0.0.0.0:5555 -d & + +Download an `ubuntu` image: + + $ sudo docker -H :5555 pull ubuntu + +You can use multiple `-H`, for example, if you want to listen on both +TCP and a Unix socket + + # Run docker in daemon mode + $ sudo /docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d & + # Download an ubuntu image, use default Unix socket + $ sudo docker pull ubuntu + # OR use the TCP port + $ sudo docker -H tcp://127.0.0.1:2375 pull ubuntu + +## Starting a long-running worker process + + # Start a very useful long-running process + $ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") + + # Collect the output of the job so far + $ sudo docker logs $JOB + + # Kill the job + $ sudo docker kill $JOB + +## Listing containers + + $ sudo docker ps # Lists only running containers + $ sudo docker ps -a # Lists all containers + +## Controlling containers + + # Start a new container + $ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") + + # Stop the container + $ sudo docker stop $JOB + + # Start the container + $ sudo docker start $JOB + + # Restart the container + $ sudo docker restart $JOB + + # SIGKILL a container + $ sudo docker kill $JOB + + # Remove a container + $ sudo docker stop $JOB # Container must be stopped to remove it + $ sudo docker rm $JOB + +## Bind a service on a TCP port + + # Bind port 4444 of this container, and tell netcat to listen on it + $ JOB=$(sudo docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444) + + # Which public port is NATed to my container? + $ PORT=$(sudo docker port $JOB 4444 | awk -F: '{ print $2 }') + + # Connect to the public port + $ echo hello world | nc 127.0.0.1 $PORT + + # Verify that the network connection worked + $ echo "Daemon received: $(sudo docker logs $JOB)" + +## Committing (saving) a container state + +Save your containers state to an image, so the state can be +re-used. + +When you commit your container only the differences between the image +the container was created from and the current state of the container +will be stored (as a diff). See which images you already have using the +`docker images` command. + + # Commit your container to a new named image + $ sudo docker commit + + # List your containers + $ sudo docker images + +You now have an image state from which you can create new instances. + +Read more about [*Share Images via +Repositories*](/userguide/dockerrepos) or +continue to the complete [*Command +Line*](/reference/commandline/cli) diff --git a/articles/basics/index.html b/articles/basics/index.html new file mode 100644 index 0000000000..0a9286ea0d --- /dev/null +++ b/articles/basics/index.html @@ -0,0 +1,1022 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker basics - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

First steps with Docker

+

Check your Docker install

+

This guide assumes you have a working installation of Docker. To check +your Docker install, run the following command:

+
# Check that you have a working install
+$ sudo docker info
+
+

If you get docker: command not found or something like +/var/lib/docker/repositories: permission denied you may have an +incomplete Docker installation or insufficient privileges to access +Docker on your machine.

+

Please refer to Installation +for installation instructions.

+

Download a pre-built image

+
# Download an ubuntu image
+$ sudo docker pull ubuntu
+
+

This will find the ubuntu image by name on +Docker Hub +and download it from Docker Hub to a local +image cache.

+
+

Note: +When the image has successfully downloaded, you will see a 12 character +hash 539c0211cd76: Download complete which is the +short form of the image ID. These short image IDs are the first 12 +characters of the full image ID - which can be found using +docker inspect or docker images --no-trunc=true

+

Note: if you are using a remote Docker daemon, such as Boot2Docker, +then do not type the sudo before the docker commands shown in the +documentation's examples.

+
+

Running an interactive shell

+
# Run an interactive shell in the ubuntu image,
+# allocate a tty, attach stdin and stdout
+# To detach the tty without exiting the shell,
+# use the escape sequence Ctrl-p + Ctrl-q
+# note: This will continue to exist in a stopped state once exited (see "docker ps -a")
+$ sudo docker run -i -t ubuntu /bin/bash
+
+

Bind Docker to another host/port or a Unix socket

+
+

Warning: +Changing the default docker daemon binding to a +TCP port or Unix docker user group will increase your security risks +by allowing non-root users to gain root access on the host. Make sure +you control access to docker. If you are binding +to a TCP port, anyone with access to that port has full Docker access; +so it is not advisable on an open network.

+
+

With -H it is possible to make the Docker daemon to listen on a +specific IP and port. By default, it will listen on +unix:///var/run/docker.sock to allow only local connections by the +root user. You could set it to 0.0.0.0:2375 or a specific host IP +to give access to everybody, but that is not recommended because +then it is trivial for someone to gain root access to the host where the +daemon is running.

+

Similarly, the Docker client can use -H to connect to a custom port.

+

-H accepts host and port assignment in the following format:

+
tcp://[host][:port]` or `unix://path
+
+

For example:

+
    +
  • tcp://host:2375 -> TCP connection on + host:2375
  • +
  • unix://path/to/socket -> Unix socket located + at path/to/socket
  • +
+

-H, when empty, will default to the same value as +when no -H was passed in.

+

-H also accepts short form for TCP bindings:

+
host[:port]` or `:port
+
+

Run Docker in daemon mode:

+
$ sudo <path to>/docker -H 0.0.0.0:5555 -d &
+
+

Download an ubuntu image:

+
$ sudo docker -H :5555 pull ubuntu
+
+

You can use multiple -H, for example, if you want to listen on both +TCP and a Unix socket

+
# Run docker in daemon mode
+$ sudo <path to>/docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d &
+# Download an ubuntu image, use default Unix socket
+$ sudo docker pull ubuntu
+# OR use the TCP port
+$ sudo docker -H tcp://127.0.0.1:2375 pull ubuntu
+
+

Starting a long-running worker process

+
# Start a very useful long-running process
+$ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done")
+
+# Collect the output of the job so far
+$ sudo docker logs $JOB
+
+# Kill the job
+$ sudo docker kill $JOB
+
+

Listing containers

+
$ sudo docker ps # Lists only running containers
+$ sudo docker ps -a # Lists all containers
+
+

Controlling containers

+
# Start a new container
+$ JOB=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done")
+
+# Stop the container
+$ sudo docker stop $JOB
+
+# Start the container
+$ sudo docker start $JOB
+
+# Restart the container
+$ sudo docker restart $JOB
+
+# SIGKILL a container
+$ sudo docker kill $JOB
+
+# Remove a container
+$ sudo docker stop $JOB # Container must be stopped to remove it
+$ sudo docker rm $JOB
+
+

Bind a service on a TCP port

+
# Bind port 4444 of this container, and tell netcat to listen on it
+$ JOB=$(sudo docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444)
+
+# Which public port is NATed to my container?
+$ PORT=$(sudo docker port $JOB 4444 | awk -F: '{ print $2 }')
+
+# Connect to the public port
+$ echo hello world | nc 127.0.0.1 $PORT
+
+# Verify that the network connection worked
+$ echo "Daemon received: $(sudo docker logs $JOB)"
+
+

Committing (saving) a container state

+

Save your containers state to an image, so the state can be +re-used.

+

When you commit your container only the differences between the image +the container was created from and the current state of the container +will be stored (as a diff). See which images you already have using the +docker images command.

+
# Commit your container to a new named image
+$ sudo docker commit <container_id> <some_name>
+
+# List your containers
+$ sudo docker images
+
+

You now have an image state from which you can create new instances.

+

Read more about Share Images via +Repositories or +continue to the complete Command +Line

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/certificates.md~ b/articles/certificates.md~ new file mode 100644 index 0000000000..ebd606f385 --- /dev/null +++ b/articles/certificates.md~ @@ -0,0 +1,114 @@ +page_title: Using certificates for repository client verification +page_description: How to set up and use certificates with a registry to verify access +page_keywords: Usage, registry, repository, client, root, certificate, docker, apache, ssl, tls, documentation, examples, articles, tutorials + +# Using certificates for repository client verification + +In [Running Docker with HTTPS](/articles/https), you learned that, by default, +Docker runs via a non-networked Unix socket and TLS must be enabled in order +to have the Docker client and the daemon communicate securely over HTTPS. + +Now, you will see how to allow the Docker registry (i.e., *a server*) to +verify that the Docker daemon (i.e., *a client*) has the right to access the +images being hosted with *certificate-based client-server authentication*. + +We will show you how to install a Certificate Authority (CA) root certificate +for the registry and how to set the client TLS certificate for verification. + +## Understanding the configuration + +A custom certificate is configured by creating a directory under +`/etc/docker/certs.d` using the same name as the registry's hostname (e.g., +`localhost`). All `*.crt` files are added to this directory as CA roots. + +> **Note:** +> In the absence of any root certificate authorities, Docker +> will use the system default (i.e., host's root CA set). + +The presence of one or more `.key/cert` pairs indicates to Docker +that there are custom certificates required for access to the desired +repository. + +> **Note:** +> If there are multiple certificates, each will be tried in alphabetical +> order. If there is an authentication error (e.g., 403, 404, 5xx, etc.), Docker +> will continue to try with the next certificate. + +Our example is set up like this: + + /etc/docker/certs.d/ <-- Certificate directory + └── localhost <-- Hostname + ├── client.cert <-- Client certificate + ├── client.key <-- Client key + └── localhost.crt <-- Registry certificate + +## Creating the client certificates + +You will use OpenSSL's `genrsa` and `req` commands to first generate an RSA +key and then use the key to create the certificate. + + $ openssl genrsa -out client.key 1024 + $ openssl req -new -x509 -text -key client.key -out client.cert + +> **Warning:**: +> Using TLS and managing a CA is an advanced topic. +> You should be familiar with OpenSSL, x509, and TLS before +> attempting to use them in production. + +> **Warning:** +> These TLS commands will only generate a working set of certificates on Linux. +> The version of OpenSSL in Mac OS X is incompatible with the type of +> certificate Docker requires. + +## Testing the verification setup + +You can test this setup by using Apache to host a Docker registry. +For this purpose, you can copy a registry tree (containing images) inside +the Apache root. + +> **Note:** +> You can find such an example [here]( +> http://people.gnome.org/~alexl/v1.tar.gz) - which contains the busybox image. + +Once you set up the registry, you can use the following Apache configuration +to implement certificate-based protection. + + # This must be in the root context, otherwise it causes a re-negotiation + # which is not supported by the TLS implementation in go + SSLVerifyClient optional_no_ca + + + Action cert-protected /cgi-bin/cert.cgi + SetHandler cert-protected + + Header set x-docker-registry-version "0.6.2" + SetEnvIf Host (.*) custom_host=$1 + Header set X-Docker-Endpoints "%{custom_host}e" + + +Save the above content as `/etc/httpd/conf.d/registry.conf`, and +continue with creating a `cert.cgi` file under `/var/www/cgi-bin/`. + + #!/bin/bash + if [ "$HTTPS" != "on" ]; then + echo "Status: 403 Not using SSL" + echo "x-docker-registry-version: 0.6.2" + echo + exit 0 + fi + if [ "$SSL_CLIENT_VERIFY" == "NONE" ]; then + echo "Status: 403 Client certificate invalid" + echo "x-docker-registry-version: 0.6.2" + echo + exit 0 + fi + echo "Content-length: $(stat --printf='%s' $PATH_TRANSLATED)" + echo "x-docker-registry-version: 0.6.2" + echo "X-Docker-Endpoints: $SERVER_NAME" + echo "X-Docker-Size: 0" + echo + + cat $PATH_TRANSLATED + +This CGI script will ensure that all requests to `/v1` *without* a valid +certificate will be returned with a `403` (i.e., HTTP forbidden) error. diff --git a/articles/certificates/index.html b/articles/certificates/index.html new file mode 100644 index 0000000000..5cbd43bf60 --- /dev/null +++ b/articles/certificates/index.html @@ -0,0 +1,931 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using certificates for repository client verification - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Using certificates for repository client verification

+

In Running Docker with HTTPS, you learned that, by default, +Docker runs via a non-networked Unix socket and TLS must be enabled in order +to have the Docker client and the daemon communicate securely over HTTPS.

+

Now, you will see how to allow the Docker registry (i.e., a server) to +verify that the Docker daemon (i.e., a client) has the right to access the +images being hosted with certificate-based client-server authentication.

+

We will show you how to install a Certificate Authority (CA) root certificate +for the registry and how to set the client TLS certificate for verification.

+

Understanding the configuration

+

A custom certificate is configured by creating a directory under +/etc/docker/certs.d using the same name as the registry's hostname (e.g., +localhost). All *.crt files are added to this directory as CA roots.

+
+

Note: +In the absence of any root certificate authorities, Docker +will use the system default (i.e., host's root CA set).

+
+

The presence of one or more <filename>.key/cert pairs indicates to Docker +that there are custom certificates required for access to the desired +repository.

+
+

Note: +If there are multiple certificates, each will be tried in alphabetical +order. If there is an authentication error (e.g., 403, 404, 5xx, etc.), Docker +will continue to try with the next certificate.

+
+

Our example is set up like this:

+
/etc/docker/certs.d/        <-- Certificate directory
+└── localhost               <-- Hostname
+   ├── client.cert          <-- Client certificate
+   ├── client.key           <-- Client key
+   └── localhost.crt        <-- Registry certificate
+
+

Creating the client certificates

+

You will use OpenSSL's genrsa and req commands to first generate an RSA +key and then use the key to create the certificate.

+
$ openssl genrsa -out client.key 1024
+$ openssl req -new -x509 -text -key client.key -out client.cert
+
+
+

Warning:: +Using TLS and managing a CA is an advanced topic. +You should be familiar with OpenSSL, x509, and TLS before +attempting to use them in production.

+

Warning: +These TLS commands will only generate a working set of certificates on Linux. +The version of OpenSSL in Mac OS X is incompatible with the type of +certificate Docker requires.

+
+

Testing the verification setup

+

You can test this setup by using Apache to host a Docker registry. +For this purpose, you can copy a registry tree (containing images) inside +the Apache root.

+
+

Note: +You can find such an example here - which contains the busybox image.

+
+

Once you set up the registry, you can use the following Apache configuration +to implement certificate-based protection.

+
# This must be in the root context, otherwise it causes a re-negotiation
+# which is not supported by the TLS implementation in go
+SSLVerifyClient optional_no_ca
+
+<Location /v1>
+Action cert-protected /cgi-bin/cert.cgi
+SetHandler cert-protected
+
+Header set x-docker-registry-version "0.6.2"
+SetEnvIf Host (.*) custom_host=$1
+Header set X-Docker-Endpoints "%{custom_host}e"
+</Location>
+
+

Save the above content as /etc/httpd/conf.d/registry.conf, and +continue with creating a cert.cgi file under /var/www/cgi-bin/.

+
#!/bin/bash
+if [ "$HTTPS" != "on" ]; then
+    echo "Status: 403 Not using SSL"
+    echo "x-docker-registry-version: 0.6.2"
+    echo
+    exit 0
+fi
+if [ "$SSL_CLIENT_VERIFY" == "NONE" ]; then
+    echo "Status: 403 Client certificate invalid"
+    echo "x-docker-registry-version: 0.6.2"
+    echo
+    exit 0
+fi
+echo "Content-length: $(stat --printf='%s' $PATH_TRANSLATED)"
+echo "x-docker-registry-version: 0.6.2"
+echo "X-Docker-Endpoints: $SERVER_NAME"
+echo "X-Docker-Size: 0"
+echo
+
+cat $PATH_TRANSLATED
+
+

This CGI script will ensure that all requests to /v1 without a valid +certificate will be returned with a 403 (i.e., HTTP forbidden) error.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/cfengine_process_management.md~ b/articles/cfengine_process_management.md~ new file mode 100644 index 0000000000..e32b266397 --- /dev/null +++ b/articles/cfengine_process_management.md~ @@ -0,0 +1,143 @@ +page_title: Process Management with CFEngine +page_description: Managing containerized processes with CFEngine +page_keywords: cfengine, process, management, usage, docker, documentation + +# Process Management with CFEngine + +Create Docker containers with managed processes. + +Docker monitors one process in each running container and the container +lives or dies with that process. By introducing CFEngine inside Docker +containers, we can alleviate a few of the issues that may arise: + + - It is possible to easily start multiple processes within a + container, all of which will be managed automatically, with the + normal `docker run` command. + - If a managed process dies or crashes, CFEngine will start it again + within 1 minute. + - The container itself will live as long as the CFEngine scheduling + daemon (cf-execd) lives. With CFEngine, we are able to decouple the + life of the container from the uptime of the service it provides. + +## How it works + +CFEngine, together with the cfe-docker integration policies, are +installed as part of the Dockerfile. This builds CFEngine into our +Docker image. + +The Dockerfile's `ENTRYPOINT` takes an arbitrary +amount of commands (with any desired arguments) as parameters. When we +run the Docker container these parameters get written to CFEngine +policies and CFEngine takes over to ensure that the desired processes +are running in the container. + +CFEngine scans the process table for the `basename` of the commands given +to the `ENTRYPOINT` and runs the command to start the process if the `basename` +is not found. For example, if we start the container with +`docker run "/path/to/my/application parameters"`, CFEngine will look for a +process named `application` and run the command. If an entry for `application` +is not found in the process table at any point in time, CFEngine will execute +`/path/to/my/application parameters` to start the application once again. The +check on the process table happens every minute. + +Note that it is therefore important that the command to start your +application leaves a process with the basename of the command. This can +be made more flexible by making some minor adjustments to the CFEngine +policies, if desired. + +## Usage + +This example assumes you have Docker installed and working. We will +install and manage `apache2` and `sshd` +in a single container. + +There are three steps: + +1. Install CFEngine into the container. +2. Copy the CFEngine Docker process management policy into the + containerized CFEngine installation. +3. Start your application processes as part of the `docker run` command. + +### Building the image + +The first two steps can be done as part of a Dockerfile, as follows. + + FROM ubuntu + MAINTAINER Eystein Måløy Stenberg + + RUN apt-get update && apt-get install -y wget lsb-release unzip ca-certificates + + # install latest CFEngine + RUN wget -qO- http://cfengine.com/pub/gpg.key | apt-key add - + RUN echo "deb http://cfengine.com/pub/apt $(lsb_release -cs) main" > /etc/apt/sources.list.d/cfengine-community.list + RUN apt-get update && apt-get install -y cfengine-community + + # install cfe-docker process management policy + RUN wget https://github.com/estenberg/cfe-docker/archive/master.zip -P /tmp/ && unzip /tmp/master.zip -d /tmp/ + RUN cp /tmp/cfe-docker-master/cfengine/bin/* /var/cfengine/bin/ + RUN cp /tmp/cfe-docker-master/cfengine/inputs/* /var/cfengine/inputs/ + RUN rm -rf /tmp/cfe-docker-master /tmp/master.zip + + # apache2 and openssh are just for testing purposes, install your own apps here + RUN apt-get update && apt-get install -y openssh-server apache2 + RUN mkdir -p /var/run/sshd + RUN echo "root:password" | chpasswd # need a password for ssh + + ENTRYPOINT ["/var/cfengine/bin/docker_processes_run.sh"] + +By saving this file as Dockerfile to a working directory, you can then build +your image with the docker build command, e.g., +`docker build -t managed_image`. + +### Testing the container + +Start the container with `apache2` and `sshd` running and managed, forwarding +a port to our SSH instance: + + $ sudo docker run -p 127.0.0.1:222:22 -d managed_image "/usr/sbin/sshd" "/etc/init.d/apache2 start" + +We now clearly see one of the benefits of the cfe-docker integration: it +allows to start several processes as part of a normal `docker run` command. + +We can now log in to our new container and see that both `apache2` and `sshd` +are running. We have set the root password to "password" in the Dockerfile +above and can use that to log in with ssh: + + ssh -p222 root@127.0.0.1 + + ps -ef + UID PID PPID C STIME TTY TIME CMD + root 1 0 0 07:48 ? 00:00:00 /bin/bash /var/cfengine/bin/docker_processes_run.sh /usr/sbin/sshd /etc/init.d/apache2 start + root 18 1 0 07:48 ? 00:00:00 /var/cfengine/bin/cf-execd -F + root 20 1 0 07:48 ? 00:00:00 /usr/sbin/sshd + root 32 1 0 07:48 ? 00:00:00 /usr/sbin/apache2 -k start + www-data 34 32 0 07:48 ? 00:00:00 /usr/sbin/apache2 -k start + www-data 35 32 0 07:48 ? 00:00:00 /usr/sbin/apache2 -k start + www-data 36 32 0 07:48 ? 00:00:00 /usr/sbin/apache2 -k start + root 93 20 0 07:48 ? 00:00:00 sshd: root@pts/0 + root 105 93 0 07:48 pts/0 00:00:00 -bash + root 112 105 0 07:49 pts/0 00:00:00 ps -ef + +If we stop apache2, it will be started again within a minute by +CFEngine. + + service apache2 status + Apache2 is running (pid 32). + service apache2 stop + * Stopping web server apache2 ... waiting [ OK ] + service apache2 status + Apache2 is NOT running. + # ... wait up to 1 minute... + service apache2 status + Apache2 is running (pid 173). + +## Adapting to your applications + +To make sure your applications get managed in the same manner, there are +just two things you need to adjust from the above example: + + - In the Dockerfile used above, install your applications instead of + `apache2` and `sshd`. + - When you start the container with `docker run`, + specify the command line arguments to your applications rather than + `apache2` and `sshd`. diff --git a/articles/cfengine_process_management/index.html b/articles/cfengine_process_management/index.html new file mode 100644 index 0000000000..7ab60e5183 --- /dev/null +++ b/articles/cfengine_process_management/index.html @@ -0,0 +1,959 @@ + + + + + + + + + + + + + + + + + + + + + + + + Process management with CFEngine - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Process Management with CFEngine

+

Create Docker containers with managed processes.

+

Docker monitors one process in each running container and the container +lives or dies with that process. By introducing CFEngine inside Docker +containers, we can alleviate a few of the issues that may arise:

+
    +
  • It is possible to easily start multiple processes within a + container, all of which will be managed automatically, with the + normal docker run command.
  • +
  • If a managed process dies or crashes, CFEngine will start it again + within 1 minute.
  • +
  • The container itself will live as long as the CFEngine scheduling + daemon (cf-execd) lives. With CFEngine, we are able to decouple the + life of the container from the uptime of the service it provides.
  • +
+

How it works

+

CFEngine, together with the cfe-docker integration policies, are +installed as part of the Dockerfile. This builds CFEngine into our +Docker image.

+

The Dockerfile's ENTRYPOINT takes an arbitrary +amount of commands (with any desired arguments) as parameters. When we +run the Docker container these parameters get written to CFEngine +policies and CFEngine takes over to ensure that the desired processes +are running in the container.

+

CFEngine scans the process table for the basename of the commands given +to the ENTRYPOINT and runs the command to start the process if the basename +is not found. For example, if we start the container with +docker run "/path/to/my/application parameters", CFEngine will look for a +process named application and run the command. If an entry for application +is not found in the process table at any point in time, CFEngine will execute +/path/to/my/application parameters to start the application once again. The +check on the process table happens every minute.

+

Note that it is therefore important that the command to start your +application leaves a process with the basename of the command. This can +be made more flexible by making some minor adjustments to the CFEngine +policies, if desired.

+

Usage

+

This example assumes you have Docker installed and working. We will +install and manage apache2 and sshd +in a single container.

+

There are three steps:

+
    +
  1. Install CFEngine into the container.
  2. +
  3. Copy the CFEngine Docker process management policy into the + containerized CFEngine installation.
  4. +
  5. Start your application processes as part of the docker run command.
  6. +
+

Building the image

+

The first two steps can be done as part of a Dockerfile, as follows.

+
FROM ubuntu
+MAINTAINER Eystein Måløy Stenberg <eytein.stenberg@gmail.com>
+
+RUN apt-get update && apt-get install -y wget lsb-release unzip ca-certificates
+
+# install latest CFEngine
+RUN wget -qO- http://cfengine.com/pub/gpg.key | apt-key add -
+RUN echo "deb http://cfengine.com/pub/apt $(lsb_release -cs) main" > /etc/apt/sources.list.d/cfengine-community.list
+RUN apt-get update && apt-get install -y cfengine-community
+
+# install cfe-docker process management policy
+RUN wget https://github.com/estenberg/cfe-docker/archive/master.zip -P /tmp/ && unzip /tmp/master.zip -d /tmp/
+RUN cp /tmp/cfe-docker-master/cfengine/bin/* /var/cfengine/bin/
+RUN cp /tmp/cfe-docker-master/cfengine/inputs/* /var/cfengine/inputs/
+RUN rm -rf /tmp/cfe-docker-master /tmp/master.zip
+
+# apache2 and openssh are just for testing purposes, install your own apps here
+RUN apt-get update && apt-get install -y openssh-server apache2
+RUN mkdir -p /var/run/sshd
+RUN echo "root:password" | chpasswd  # need a password for ssh
+
+ENTRYPOINT ["/var/cfengine/bin/docker_processes_run.sh"]
+
+

By saving this file as Dockerfile to a working directory, you can then build +your image with the docker build command, e.g., +docker build -t managed_image.

+

Testing the container

+

Start the container with apache2 and sshd running and managed, forwarding +a port to our SSH instance:

+
$ sudo docker run -p 127.0.0.1:222:22 -d managed_image "/usr/sbin/sshd" "/etc/init.d/apache2 start"
+
+

We now clearly see one of the benefits of the cfe-docker integration: it +allows to start several processes as part of a normal docker run command.

+

We can now log in to our new container and see that both apache2 and sshd +are running. We have set the root password to "password" in the Dockerfile +above and can use that to log in with ssh:

+
ssh -p222 root@127.0.0.1
+
+ps -ef
+UID        PID  PPID  C STIME TTY          TIME CMD
+root         1     0  0 07:48 ?        00:00:00 /bin/bash /var/cfengine/bin/docker_processes_run.sh /usr/sbin/sshd /etc/init.d/apache2 start
+root        18     1  0 07:48 ?        00:00:00 /var/cfengine/bin/cf-execd -F
+root        20     1  0 07:48 ?        00:00:00 /usr/sbin/sshd
+root        32     1  0 07:48 ?        00:00:00 /usr/sbin/apache2 -k start
+www-data    34    32  0 07:48 ?        00:00:00 /usr/sbin/apache2 -k start
+www-data    35    32  0 07:48 ?        00:00:00 /usr/sbin/apache2 -k start
+www-data    36    32  0 07:48 ?        00:00:00 /usr/sbin/apache2 -k start
+root        93    20  0 07:48 ?        00:00:00 sshd: root@pts/0
+root       105    93  0 07:48 pts/0    00:00:00 -bash
+root       112   105  0 07:49 pts/0    00:00:00 ps -ef
+
+

If we stop apache2, it will be started again within a minute by +CFEngine.

+
service apache2 status
+ Apache2 is running (pid 32).
+service apache2 stop
+         * Stopping web server apache2 ... waiting    [ OK ]
+service apache2 status
+ Apache2 is NOT running.
+# ... wait up to 1 minute...
+service apache2 status
+ Apache2 is running (pid 173).
+
+

Adapting to your applications

+

To make sure your applications get managed in the same manner, there are +just two things you need to adjust from the above example:

+
    +
  • In the Dockerfile used above, install your applications instead of + apache2 and sshd.
  • +
  • When you start the container with docker run, + specify the command line arguments to your applications rather than + apache2 and sshd.
  • +
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/chef.md~ b/articles/chef.md~ new file mode 100644 index 0000000000..cb70215c54 --- /dev/null +++ b/articles/chef.md~ @@ -0,0 +1,74 @@ +page_title: Chef Usage +page_description: Installation and using Docker via Chef +page_keywords: chef, installation, usage, docker, documentation + +# Using Chef + +> **Note**: +> Please note this is a community contributed installation path. The only +> `official` installation is using the +> [*Ubuntu*](/installation/ubuntulinux) installation +> path. This version may sometimes be out of date. + +## Requirements + +To use this guide you'll need a working installation of +[Chef](http://www.getchef.com/). This cookbook supports a variety of +operating systems. + +## Installation + +The cookbook is available on the [Chef Community +Site](http://community.opscode.com/cookbooks/docker) and can be +installed using your favorite cookbook dependency manager. + +The source can be found on +[GitHub](https://github.com/bflad/chef-docker). + +## Usage + +The cookbook provides recipes for installing Docker, configuring init +for Docker, and resources for managing images and containers. It +supports almost all Docker functionality. + +### Installation + + include_recipe 'docker' + +### Images + +The next step is to pull a Docker image. For this, we have a resource: + + docker_image 'samalba/docker-registry' + +This is equivalent to running: + + $ sudo docker pull samalba/docker-registry + +There are attributes available to control how long the cookbook will +allow for downloading (5 minute default). + +To remove images you no longer need: + + docker_image 'samalba/docker-registry' do + action :remove + end + +### Containers + +Now you have an image where you can run commands within a container +managed by Docker. + + docker_container 'samalba/docker-registry' do + detach true + port '5000:5000' + env 'SETTINGS_FLAVOR=local' + volume '/mnt/docker:/docker-storage' + end + +This is equivalent to running the following command, but under upstart: + + $ sudo docker run --detach=true --publish='5000:5000' --env='SETTINGS_FLAVOR=local' --volume='/mnt/docker:/docker-storage' samalba/docker-registry + +The resources will accept a single string or an array of values for any +Docker flags that allow multiple values. diff --git a/articles/chef/index.html b/articles/chef/index.html new file mode 100644 index 0000000000..f320b2cd79 --- /dev/null +++ b/articles/chef/index.html @@ -0,0 +1,893 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using Chef - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Using Chef

+
+

Note: +Please note this is a community contributed installation path. The only +official installation is using the +Ubuntu installation +path. This version may sometimes be out of date.

+
+

Requirements

+

To use this guide you'll need a working installation of +Chef. This cookbook supports a variety of +operating systems.

+

Installation

+

The cookbook is available on the Chef Community +Site and can be +installed using your favorite cookbook dependency manager.

+

The source can be found on +GitHub.

+

Usage

+

The cookbook provides recipes for installing Docker, configuring init +for Docker, and resources for managing images and containers. It +supports almost all Docker functionality.

+

Installation

+
include_recipe 'docker'
+
+

Images

+

The next step is to pull a Docker image. For this, we have a resource:

+
docker_image 'samalba/docker-registry'
+
+

This is equivalent to running:

+
$ sudo docker pull samalba/docker-registry
+
+

There are attributes available to control how long the cookbook will +allow for downloading (5 minute default).

+

To remove images you no longer need:

+
docker_image 'samalba/docker-registry' do
+  action :remove
+end
+
+

Containers

+

Now you have an image where you can run commands within a container +managed by Docker.

+
docker_container 'samalba/docker-registry' do
+  detach true
+  port '5000:5000'
+  env 'SETTINGS_FLAVOR=local'
+  volume '/mnt/docker:/docker-storage'
+end
+
+

This is equivalent to running the following command, but under upstart:

+
$ sudo docker run --detach=true --publish='5000:5000' --env='SETTINGS_FLAVOR=local' --volume='/mnt/docker:/docker-storage' samalba/docker-registry
+
+

The resources will accept a single string or an array of values for any +Docker flags that allow multiple values.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/dockerfile_best-practices.md~ b/articles/dockerfile_best-practices.md~ new file mode 100644 index 0000000000..2ea796582d --- /dev/null +++ b/articles/dockerfile_best-practices.md~ @@ -0,0 +1,429 @@ +page_title: Best Practices for Writing Dockerfiles +page_description: Hints, tips and guidelines for writing clean, reliable Dockerfiles +page_keywords: Examples, Usage, base image, docker, documentation, dockerfile, best practices, hub, official repo + +# Best practices for writing Dockerfiles + +## Overview + +Docker can build images automatically by reading the instructions from a +`Dockerfile`, a text file that contains all the commands, in order, needed to +build a given image. `Dockerfile`s adhere to a specific format and use a +specific set of instructions. You can learn the basics on the +[Dockerfile Reference](https://docs.docker.com/reference/builder/) page. If +you’re new to writing `Dockerfile`s, you should start there. + +This document covers the best practices and methods recommended by Docker, +Inc. and the Docker community for creating easy-to-use, effective +`Dockerfile`s. We strongly suggest you follow these recommendations (in fact, +if you’re creating an Official Image, you *must* adhere to these practices). + +You can see many of these practices and recommendations in action in the [buildpack-deps `Dockerfile`](https://github.com/docker-library/buildpack-deps/blob/master/jessie/Dockerfile). + +> Note: for more detailed explanations of any of the Dockerfile commands +>mentioned here, visit the [Dockerfile Reference](https://docs.docker.com/reference/builder/) page. + +## General guidelines and recommendations + +### Containers should be ephemeral + +The container produced by the image your `Dockerfile` defines should be as +ephemeral as possible. By “ephemeral,” we mean that it can be stopped and +destroyed and a new one built and put in place with an absolute minimum of +set-up and configuration. + +### Use [a .dockerignore file](https://docs.docker.com/reference/builder/#the-dockerignore-file) + +For faster uploading and efficiency during `docker build`, you should use +a `.dockerignore` file to exclude files or directories from the build +context and final image. For example, unless`.git` is needed by your build +process or scripts, you should add it to `.dockerignore`, which can save many +megabytes worth of upload time. + +### Avoid installing unnecessary packages + +In order to reduce complexity, dependencies, file sizes, and build times, you +should avoid installing extra or unnecessary packages just because they +might be “nice to have.” For example, you don’t need to include a text editor +in a database image. + +### Run only one process per container + +In almost all cases, you should only run a single process in a single +container. Decoupling applications into multiple containers makes it much +easier to scale horizontally and reuse containers. If that service depends on +another service, make use of [container linking](https://docs.docker.com/userguide/dockerlinks/). + +### Minimize the number of layers + +You need to find the balance between readability (and thus long-term +maintainability) of the `Dockerfile` and minimizing the number of layers it +uses. Be strategic and cautious about the number of layers you use. + +### Sort multi-line arguments + +Whenever possible, ease later changes by sorting multi-line arguments +alphanumerically. This will help you avoid duplication of packages and make the +list much easier to update. This also makes PRs a lot easier to read and +review. Adding a space before a backslash (`\`) helps as well. + +Here’s an example from the [`buildpack-deps` image](https://github.com/docker-library/buildpack-deps): + + RUN apt-get update && apt-get install -y \ + bzr \ + cvs \ + git \ + mercurial \ + subversion + +### Build cache + +During the process of building an image Docker will step through the +instructions in your `Dockerfile` executing each in the order specified. +As each instruction is examined Docker will look for an existing image in its +cache that it can reuse, rather than creating a new (duplicate) image. +If you do not want to use the cache at all you can use the ` --no-cache=true` +option on the `docker build` command. + +However, if you do let Docker use its cache then it is very important to +understand when it will, and will not, find a matching image. The basic rules +that Docker will follow are outlined below: + +* Starting with a base image that is already in the cache, the next +instruction is compared against all child images derived from that base +image to see if one of them was built using the exact same instruction. If +not, the cache is invalidated. + +* In most cases simply comparing the instruction in the `Dockerfile` with one +of the child images is sufficient. However, certain instructions require +a little more examination and explanation. + +* In the case of the `ADD` and `COPY` instructions, the contents of the file(s) +being put into the image are examined. Specifically, a checksum is done +of the file(s) and then that checksum is used during the cache lookup. +If anything has changed in the file(s), including its metadata, +then the cache is invalidated. + +* Aside from the `ADD` and `COPY` commands cache checking will not look at the +files in the container to determine a cache match. For example, when processing +a `RUN apt-get -y update` command the files updated in the container +will not be examined to determine if a cache hit exists. In that case just +the command string itself will be used to find a match. + +Once the cache is invalidated, all subsequent `Dockerfile` commands will +generate new images and the cache will not be used. + +## The Dockerfile instructions + +Below you'll find recommendations for the best way to write the +various instructions available for use in a `Dockerfile`. + +### [`FROM`](https://docs.docker.com/reference/builder/#from) + +Whenever possible, use current Official Repositories as the basis for your +image. We recommend the [Debian image](https://registry.hub.docker.com/_/debian/) +since it’s very tightly controlled and kept extremely minimal (currently under +100 mb), while still being a full distribution. + +### [`RUN`](https://docs.docker.com/reference/builder/#run) + +As always, to make your `Dockerfile` more readable, understandable, and +maintainable, put long or complex `RUN` statements on multiple lines separated +with backslashes. + +Probably the most common use-case for `RUN` is an application of `apt-get`. +When using `apt-get`, here are a few things to keep in mind: + +* Don’t do `RUN apt-get update` on a single line. This will cause +caching issues if the referenced archive gets updated, which will make your +subsequent `apt-get install` fail without comment. + +* Avoid `RUN apt-get upgrade` or `dist-upgrade`, since many of the “essential” +packages from the base images will fail to upgrade inside an unprivileged +container. If a base package is out of date, you should contact its +maintainers. If you know there’s a particular package, `foo`, that needs to be +updated, use `apt-get install -y foo` and it will update automatically. + +* Do write instructions like: + + RUN apt-get update && apt-get install -y package-bar package-foo package-baz + +Writing the instruction this way not only makes it easier to read +and maintain, but also, by including `apt-get update`, ensures that the cache +will naturally be busted and the latest versions will be installed with no +further coding or manual intervention required. + +* Further natural cache-busting can be realized by version-pinning packages +(e.g., `package-foo=1.3.*`). This will force retrieval of that version +regardless of what’s in the cache. +Writing your `apt-get` code this way will greatly ease maintenance and reduce +failures due to unanticipated changes in required packages. + +#### Example + +Below is a well-formed `RUN` instruction that demonstrates the above +recommendations. Note that the last package, `s3cmd`, specifies a version +`1.1.0*`. If the image previously used an older version, specifying the new one +will cause a cache bust of `apt-get update` and ensure the installation of +the new version (which in this case had a new, required feature). + + RUN apt-get update && apt-get install -y \ + aufs-tools \ + automake \ + btrfs-tools \ + build-essential \ + curl \ + dpkg-sig \ + git \ + iptables \ + libapparmor-dev \ + libcap-dev \ + libsqlite3-dev \ + lxc=1.0* \ + mercurial \ + parallel \ + reprepro \ + ruby1.9.1 \ + ruby1.9.1-dev \ + s3cmd=1.1.0* + +Writing the instruction this way also helps you avoid potential duplication of +a given package because it is much easier to read than an instruction like: + + RUN apt-get install -y package-foo && apt-get install -y package-bar + +### [`CMD`](https://docs.docker.com/reference/builder/#cmd) + +The `CMD` instruction should be used to run the software contained by your +image, along with any arguments. `CMD` should almost always be used in the +form of `CMD [“executable”, “param1”, “param2”…]`. Thus, if the image is for a +service (Apache, Rails, etc.), you would run something like +`CMD ["apache2","-DFOREGROUND"]`. Indeed, this form of the instruction is +recommended for any service-based image. + +In most other cases, `CMD` should be given an interactive shell (bash, python, +perl, etc), for example, `CMD ["perl", "-de0"]`, `CMD ["python"]`, or +`CMD [“php”, “-a”]`. Using this form means that when you execute something like +`docker run -it python`, you’ll get dropped into a usable shell, ready to go. +`CMD` should rarely be used in the manner of `CMD [“param”, “param”]` in +conjunction with [`ENTRYPOINT`](https://docs.docker.com/reference/builder/#entrypoint), unless +you and your expected users are already quite familiar with how `ENTRYPOINT` +works. + +### [`EXPOSE`](https://docs.docker.com/reference/builder/#expose) + +The `EXPOSE` instruction indicates the ports on which a container will listen +for connections. Consequently, you should use the common, traditional port for +your application. For example, an image containing the Apache web server would +use `EXPOSE 80`, while an image containing MongoDB would use `EXPOSE 27017` and +so on. + +For external access, your users can execute `docker run` with a flag indicating +how to map the specified port to the port of their choice. +For container linking, Docker provides environment variables for the path from +the recipient container back to the source (ie, `MYSQL_PORT_3306_TCP`). + +### [`ENV`](https://docs.docker.com/reference/builder/#env) + +In order to make new software easier to run, you can use `ENV` to update the +`PATH` environment variable for the software your container installs. For +example, `ENV PATH /usr/local/nginx/bin:$PATH` will ensure that `CMD [“nginx”]` +just works. + +The `ENV` instruction is also useful for providing required environment +variables specific to services you wish to containerize, such as Postgres’s +`PGDATA`. + +Lastly, `ENV` can also be used to set commonly used version numbers so that +version bumps are easier to maintain, as seen in the following example: + + ENV PG_MAJOR 9.3 + ENV PG_VERSION 9.3.4 + RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && … + ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH + +Similar to having constant variables in a program (as opposed to hard-coding +values), this approach lets you change a single `ENV` instruction to +auto-magically bump the version of the software in your container. + +### [`ADD`](https://docs.docker.com/reference/builder/#add) or [`COPY`](https://docs.docker.com/reference/builder/#copy) + +Although `ADD` and `COPY` are functionally similar, generally speaking, `COPY` +is preferred. That’s because it’s more transparent than `ADD`. `COPY` only +supports the basic copying of local files into the container, while `ADD` has +some features (like local-only tar extraction and remote URL support) that are +not immediately obvious. Consequently, the best use for `ADD` is local tar file +auto-extraction into the image, as in `ADD rootfs.tar.xz /`. + +If you have multiple `Dockerfile` steps that use different files from your +context, `COPY` them individually, rather than all at once. This will ensure that +each step's build cache is only invalidated (forcing the step to be re-run) if the +specifically required files change. + +For example: + + COPY requirements.txt /tmp/ + RUN pip install /tmp/requirements.txt + COPY . /tmp/ + +Results in fewer cache invalidations for the `RUN` step, than if you put the +`COPY . /tmp/` before it. + +Because image size matters, using `ADD` to fetch packages from remote URLs is +strongly discouraged; you should use `curl` or `wget` instead. That way you can +delete the files you no longer need after they've been extracted and you won't +have to add another layer in your image. For example, you should avoid doing +things like: + + ADD http://example.com/big.tar.xz /usr/src/things/ + RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things + RUN make -C /usr/src/things all + +And instead, do something like: + + RUN mkdir -p /usr/src/things \ + && curl -SL http://example.com/big.tar.gz \ + | tar -xJC /usr/src/things \ + && make -C /usr/src/things all + +For other items (files, directories) that do not require `ADD`’s tar +auto-extraction capability, you should always use `COPY`. + +### [`ENTRYPOINT`](https://docs.docker.com/reference/builder/#entrypoint) + +The best use for `ENTRYPOINT` is to set the image's main command, allowing that +image to be run as though it was that command (and then use `CMD` as the +default flags). + +Let's start with an example of an image for the command line tool `s3cmd`: + + ENTRYPOINT ["s3cmd"] + CMD ["--help"] + +Now the image can be run like this to show the command's help: + + $ docker run s3cmd + +Or using the right parameters to execute a command: + + $ docker run s3cmd ls s3://mybucket + +This is useful because the image name can double as a reference to the binary as +shown in the command above. + +The `ENTRYPOINT` instruction can also be used in combination with a helper +script, allowing it to function in a similar way to the command above, even +when starting the tool may require more than one step. + +For example, the [Postgres Official Image](https://registry.hub.docker.com/_/postgres/) +uses the following script as its `ENTRYPOINT`: + +```bash +#!/bin/bash +set -e + +if [ "$1" = 'postgres' ]; then + chown -R postgres "$PGDATA" + + if [ -z "$(ls -A "$PGDATA")" ]; then + gosu postgres initdb + fi + + exec gosu postgres "$@" +fi + +exec "$@" +``` + +> **Note**: +> This script uses [the `exec` Bash command](http://wiki.bash-hackers.org/commands/builtin/exec) +> so that the final running application becomes the container's PID 1. This allows +> the application to receive any Unix signals sent to the container. +> See the [`ENTRYPOINT`](https://docs.docker.com/reference/builder/#ENTRYPOINT) +> help for more details. + + +The helper script is copied into the container and run via `ENTRYPOINT` on +container start: + + COPY ./docker-entrypoint.sh / + ENTRYPOINT ["/docker-entrypoint.sh"] + +This script allows the user to interact with Postgres in several ways. + +It can simply start Postgres: + + $ docker run postgres + +Or, it can be used to run Postgres and pass parameters to the server: + + $ docker run postgres postgres --help + +Lastly, it could also be used to start a totally different tool, such Bash: + + $ docker run --rm -it postgres bash + +### [`VOLUME`](https://docs.docker.com/reference/builder/#volume) + +The `VOLUME` instruction should be used to expose any database storage area, +configuration storage, or files/folders created by your docker container. You +are strongly encouraged to use `VOLUME` for any mutable and/or user-serviceable +parts of your image. + +### [`USER`](https://docs.docker.com/reference/builder/#user) + +If a service can run without privileges, use `USER` to change to a non-root +user. Start by creating the user and group in the `Dockerfile` with something +like `RUN groupadd -r postgres && useradd -r -g postgres postgres`. + +> **Note:** Users and groups in an image get a non-deterministic +> UID/GID in that the “next” UID/GID gets assigned regardless of image +> rebuilds. So, if it’s critical, you should assign an explicit UID/GID. + +You should avoid installing or using `sudo` since it has unpredictable TTY and +signal-forwarding behavior that can cause more problems than it solves. If +you absolutely need functionality similar to `sudo` (e.g., initializing the +daemon as root but running it as non-root), you may be able to use +[“gosu”](https://github.com/tianon/gosu). + +Lastly, to reduce layers and complexity, avoid switching `USER` back +and forth frequently. + +### [`WORKDIR`](https://docs.docker.com/reference/builder/#workdir) + +For clarity and reliability, you should always use absolute paths for your +`WORKDIR`. Also, you should use `WORKDIR` instead of proliferating +instructions like `RUN cd … && do-something`, which are hard to read, +troubleshoot, and maintain. + +### [`ONBUILD`](https://docs.docker.com/reference/builder/#onbuild) + +`ONBUILD` is only useful for images that are going to be built `FROM` a given +image. For example, you would use `ONBUILD` for a language stack image that +builds arbitrary user software written in that language within the +`Dockerfile`, as you can see in [Ruby’s `ONBUILD` variants](https://github.com/docker-library/ruby/blob/master/2.1/onbuild/Dockerfile). + +Images built from `ONBUILD` should get a separate tag, for example: +`ruby:1.9-onbuild` or `ruby:2.0-onbuild`. + +Be careful when putting `ADD` or `COPY` in `ONBUILD`. The “onbuild” image will +fail catastrophically if the new build's context is missing the resource being +added. Adding a separate tag, as recommended above, will help mitigate this by +allowing the `Dockerfile` author to make a choice. + +## Examples For Official Repositories + +These Official Repos have exemplary `Dockerfile`s: + +* [Go](https://registry.hub.docker.com/_/golang/) +* [Perl](https://registry.hub.docker.com/_/perl/) +* [Hy](https://registry.hub.docker.com/_/hylang/) +* [Rails](https://registry.hub.docker.com/_/rails) + +## Additional Resources: + +* [Dockerfile Reference](https://docs.docker.com/reference/builder/#onbuild) +* [More about Base Images](https://docs.docker.com/articles/baseimages/) +* [More about Automated Builds](https://docs.docker.com/docker-hub/builds/) +* [Guidelines for Creating Official +Repositories](https://docs.docker.com/docker-hub/official_repos/) diff --git a/articles/dockerfile_best-practices/index.html b/articles/dockerfile_best-practices/index.html new file mode 100644 index 0000000000..1fcbba6a0e --- /dev/null +++ b/articles/dockerfile_best-practices/index.html @@ -0,0 +1,1240 @@ + + + + + + + + + + + + + + + + + + + + + + + + Best practices for writing Dockerfiles - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Best practices for writing Dockerfiles

+

Overview

+

Docker can build images automatically by reading the instructions from a +Dockerfile, a text file that contains all the commands, in order, needed to +build a given image. Dockerfiles adhere to a specific format and use a +specific set of instructions. You can learn the basics on the +Dockerfile Reference page. If +you’re new to writing Dockerfiles, you should start there.

+

This document covers the best practices and methods recommended by Docker, +Inc. and the Docker community for creating easy-to-use, effective +Dockerfiles. We strongly suggest you follow these recommendations (in fact, +if you’re creating an Official Image, you must adhere to these practices).

+

You can see many of these practices and recommendations in action in the buildpack-deps Dockerfile.

+
+

Note: for more detailed explanations of any of the Dockerfile commands +mentioned here, visit the Dockerfile Reference page.

+
+

General guidelines and recommendations

+

Containers should be ephemeral

+

The container produced by the image your Dockerfile defines should be as +ephemeral as possible. By “ephemeral,” we mean that it can be stopped and +destroyed and a new one built and put in place with an absolute minimum of +set-up and configuration.

+

Use a .dockerignore file

+

For faster uploading and efficiency during docker build, you should use +a .dockerignore file to exclude files or directories from the build +context and final image. For example, unless.git is needed by your build +process or scripts, you should add it to .dockerignore, which can save many +megabytes worth of upload time.

+

Avoid installing unnecessary packages

+

In order to reduce complexity, dependencies, file sizes, and build times, you +should avoid installing extra or unnecessary packages just because they +might be “nice to have.” For example, you don’t need to include a text editor +in a database image.

+

Run only one process per container

+

In almost all cases, you should only run a single process in a single +container. Decoupling applications into multiple containers makes it much +easier to scale horizontally and reuse containers. If that service depends on +another service, make use of container linking.

+

Minimize the number of layers

+

You need to find the balance between readability (and thus long-term +maintainability) of the Dockerfile and minimizing the number of layers it +uses. Be strategic and cautious about the number of layers you use.

+

Sort multi-line arguments

+

Whenever possible, ease later changes by sorting multi-line arguments +alphanumerically. This will help you avoid duplication of packages and make the +list much easier to update. This also makes PRs a lot easier to read and +review. Adding a space before a backslash (\) helps as well.

+

Here’s an example from the buildpack-deps image:

+
RUN apt-get update && apt-get install -y \
+  bzr \
+  cvs \
+  git \
+  mercurial \
+  subversion
+
+

Build cache

+

During the process of building an image Docker will step through the +instructions in your Dockerfile executing each in the order specified. +As each instruction is examined Docker will look for an existing image in its +cache that it can reuse, rather than creating a new (duplicate) image. +If you do not want to use the cache at all you can use the --no-cache=true +option on the docker build command.

+

However, if you do let Docker use its cache then it is very important to +understand when it will, and will not, find a matching image. The basic rules +that Docker will follow are outlined below:

+
    +
  • +

    Starting with a base image that is already in the cache, the next +instruction is compared against all child images derived from that base +image to see if one of them was built using the exact same instruction. If +not, the cache is invalidated.

    +
  • +
  • +

    In most cases simply comparing the instruction in the Dockerfile with one +of the child images is sufficient. However, certain instructions require +a little more examination and explanation.

    +
  • +
  • +

    In the case of the ADD and COPY instructions, the contents of the file(s) +being put into the image are examined. Specifically, a checksum is done +of the file(s) and then that checksum is used during the cache lookup. +If anything has changed in the file(s), including its metadata, +then the cache is invalidated.

    +
  • +
  • +

    Aside from the ADD and COPY commands cache checking will not look at the +files in the container to determine a cache match. For example, when processing +a RUN apt-get -y update command the files updated in the container +will not be examined to determine if a cache hit exists. In that case just +the command string itself will be used to find a match.

    +
  • +
+

Once the cache is invalidated, all subsequent Dockerfile commands will +generate new images and the cache will not be used.

+

The Dockerfile instructions

+

Below you'll find recommendations for the best way to write the +various instructions available for use in a Dockerfile.

+

FROM

+

Whenever possible, use current Official Repositories as the basis for your +image. We recommend the Debian image +since it’s very tightly controlled and kept extremely minimal (currently under +100 mb), while still being a full distribution.

+

RUN

+

As always, to make your Dockerfile more readable, understandable, and +maintainable, put long or complex RUN statements on multiple lines separated +with backslashes.

+

Probably the most common use-case for RUN is an application of apt-get. +When using apt-get, here are a few things to keep in mind:

+
    +
  • +

    Don’t do RUN apt-get update on a single line. This will cause +caching issues if the referenced archive gets updated, which will make your +subsequent apt-get install fail without comment.

    +
  • +
  • +

    Avoid RUN apt-get upgrade or dist-upgrade, since many of the “essential” +packages from the base images will fail to upgrade inside an unprivileged +container. If a base package is out of date, you should contact its +maintainers. If you know there’s a particular package, foo, that needs to be +updated, use apt-get install -y foo and it will update automatically.

    +
  • +
  • +

    Do write instructions like:

    +

    RUN apt-get update && apt-get install -y package-bar package-foo package-baz

    +
  • +
+

Writing the instruction this way not only makes it easier to read +and maintain, but also, by including apt-get update, ensures that the cache +will naturally be busted and the latest versions will be installed with no +further coding or manual intervention required.

+
    +
  • Further natural cache-busting can be realized by version-pinning packages +(e.g., package-foo=1.3.*). This will force retrieval of that version +regardless of what’s in the cache. +Writing your apt-get code this way will greatly ease maintenance and reduce +failures due to unanticipated changes in required packages.
  • +
+

Example

+

Below is a well-formed RUN instruction that demonstrates the above +recommendations. Note that the last package, s3cmd, specifies a version +1.1.0*. If the image previously used an older version, specifying the new one +will cause a cache bust of apt-get update and ensure the installation of +the new version (which in this case had a new, required feature).

+
RUN apt-get update && apt-get install -y \
+    aufs-tools \
+    automake \
+    btrfs-tools \
+    build-essential \
+    curl \
+    dpkg-sig \
+    git \
+    iptables \
+    libapparmor-dev \
+    libcap-dev \
+    libsqlite3-dev \
+    lxc=1.0* \
+    mercurial \
+    parallel \
+    reprepro \
+    ruby1.9.1 \
+    ruby1.9.1-dev \
+    s3cmd=1.1.0*
+
+

Writing the instruction this way also helps you avoid potential duplication of +a given package because it is much easier to read than an instruction like:

+
RUN apt-get install -y package-foo && apt-get install -y package-bar
+
+

CMD

+

The CMD instruction should be used to run the software contained by your +image, along with any arguments. CMD should almost always be used in the +form of CMD [“executable”, “param1”, “param2”…]. Thus, if the image is for a +service (Apache, Rails, etc.), you would run something like +CMD ["apache2","-DFOREGROUND"]. Indeed, this form of the instruction is +recommended for any service-based image.

+

In most other cases, CMD should be given an interactive shell (bash, python, +perl, etc), for example, CMD ["perl", "-de0"], CMD ["python"], or +CMD [“php”, “-a”]. Using this form means that when you execute something like +docker run -it python, you’ll get dropped into a usable shell, ready to go. +CMD should rarely be used in the manner of CMD [“param”, “param”] in +conjunction with ENTRYPOINT, unless +you and your expected users are already quite familiar with how ENTRYPOINT +works.

+

EXPOSE

+

The EXPOSE instruction indicates the ports on which a container will listen +for connections. Consequently, you should use the common, traditional port for +your application. For example, an image containing the Apache web server would +use EXPOSE 80, while an image containing MongoDB would use EXPOSE 27017 and +so on.

+

For external access, your users can execute docker run with a flag indicating +how to map the specified port to the port of their choice. +For container linking, Docker provides environment variables for the path from +the recipient container back to the source (ie, MYSQL_PORT_3306_TCP).

+

ENV

+

In order to make new software easier to run, you can use ENV to update the +PATH environment variable for the software your container installs. For +example, ENV PATH /usr/local/nginx/bin:$PATH will ensure that CMD [“nginx”] +just works.

+

The ENV instruction is also useful for providing required environment +variables specific to services you wish to containerize, such as Postgres’s +PGDATA.

+

Lastly, ENV can also be used to set commonly used version numbers so that +version bumps are easier to maintain, as seen in the following example:

+
ENV PG_MAJOR 9.3
+ENV PG_VERSION 9.3.4
+RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …
+ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
+
+

Similar to having constant variables in a program (as opposed to hard-coding +values), this approach lets you change a single ENV instruction to +auto-magically bump the version of the software in your container.

+

ADD or COPY

+

Although ADD and COPY are functionally similar, generally speaking, COPY +is preferred. That’s because it’s more transparent than ADD. COPY only +supports the basic copying of local files into the container, while ADD has +some features (like local-only tar extraction and remote URL support) that are +not immediately obvious. Consequently, the best use for ADD is local tar file +auto-extraction into the image, as in ADD rootfs.tar.xz /.

+

If you have multiple Dockerfile steps that use different files from your +context, COPY them individually, rather than all at once. This will ensure that +each step's build cache is only invalidated (forcing the step to be re-run) if the +specifically required files change.

+

For example:

+
COPY requirements.txt /tmp/
+RUN pip install /tmp/requirements.txt
+COPY . /tmp/
+
+

Results in fewer cache invalidations for the RUN step, than if you put the +COPY . /tmp/ before it.

+

Because image size matters, using ADD to fetch packages from remote URLs is +strongly discouraged; you should use curl or wget instead. That way you can +delete the files you no longer need after they've been extracted and you won't +have to add another layer in your image. For example, you should avoid doing +things like:

+
ADD http://example.com/big.tar.xz /usr/src/things/
+RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things
+RUN make -C /usr/src/things all
+
+

And instead, do something like:

+
RUN mkdir -p /usr/src/things \
+    && curl -SL http://example.com/big.tar.gz \
+    | tar -xJC /usr/src/things \
+    && make -C /usr/src/things all
+
+

For other items (files, directories) that do not require ADD’s tar +auto-extraction capability, you should always use COPY.

+

ENTRYPOINT

+

The best use for ENTRYPOINT is to set the image's main command, allowing that +image to be run as though it was that command (and then use CMD as the +default flags).

+

Let's start with an example of an image for the command line tool s3cmd:

+
ENTRYPOINT ["s3cmd"]
+CMD ["--help"]
+
+

Now the image can be run like this to show the command's help:

+
$ docker run s3cmd
+
+

Or using the right parameters to execute a command:

+
$ docker run s3cmd ls s3://mybucket
+
+

This is useful because the image name can double as a reference to the binary as +shown in the command above.

+

The ENTRYPOINT instruction can also be used in combination with a helper +script, allowing it to function in a similar way to the command above, even +when starting the tool may require more than one step.

+

For example, the Postgres Official Image +uses the following script as its ENTRYPOINT:

+
#!/bin/bash
+set -e
+
+if [ "$1" = 'postgres' ]; then
+    chown -R postgres "$PGDATA"
+
+    if [ -z "$(ls -A "$PGDATA")" ]; then
+        gosu postgres initdb
+    fi
+
+    exec gosu postgres "$@"
+fi
+
+exec "$@"
+
+ +
+

Note: +This script uses the exec Bash command +so that the final running application becomes the container's PID 1. This allows +the application to receive any Unix signals sent to the container. +See the ENTRYPOINT +help for more details.

+
+

The helper script is copied into the container and run via ENTRYPOINT on +container start:

+
COPY ./docker-entrypoint.sh /
+ENTRYPOINT ["/docker-entrypoint.sh"]
+
+

This script allows the user to interact with Postgres in several ways.

+

It can simply start Postgres:

+
$ docker run postgres
+
+

Or, it can be used to run Postgres and pass parameters to the server:

+
$ docker run postgres postgres --help
+
+

Lastly, it could also be used to start a totally different tool, such Bash:

+
$ docker run --rm -it postgres bash
+
+

VOLUME

+

The VOLUME instruction should be used to expose any database storage area, +configuration storage, or files/folders created by your docker container. You +are strongly encouraged to use VOLUME for any mutable and/or user-serviceable +parts of your image.

+

USER

+

If a service can run without privileges, use USER to change to a non-root +user. Start by creating the user and group in the Dockerfile with something +like RUN groupadd -r postgres && useradd -r -g postgres postgres.

+
+

Note: Users and groups in an image get a non-deterministic +UID/GID in that the “next” UID/GID gets assigned regardless of image +rebuilds. So, if it’s critical, you should assign an explicit UID/GID.

+
+

You should avoid installing or using sudo since it has unpredictable TTY and +signal-forwarding behavior that can cause more problems than it solves. If +you absolutely need functionality similar to sudo (e.g., initializing the +daemon as root but running it as non-root), you may be able to use +“gosu”.

+

Lastly, to reduce layers and complexity, avoid switching USER back +and forth frequently.

+

WORKDIR

+

For clarity and reliability, you should always use absolute paths for your +WORKDIR. Also, you should use WORKDIR instead of proliferating +instructions like RUN cd … && do-something, which are hard to read, +troubleshoot, and maintain.

+

ONBUILD

+

ONBUILD is only useful for images that are going to be built FROM a given +image. For example, you would use ONBUILD for a language stack image that +builds arbitrary user software written in that language within the +Dockerfile, as you can see in Ruby’s ONBUILD variants.

+

Images built from ONBUILD should get a separate tag, for example: +ruby:1.9-onbuild or ruby:2.0-onbuild.

+

Be careful when putting ADD or COPY in ONBUILD. The “onbuild” image will +fail catastrophically if the new build's context is missing the resource being +added. Adding a separate tag, as recommended above, will help mitigate this by +allowing the Dockerfile author to make a choice.

+

Examples For Official Repositories

+

These Official Repos have exemplary Dockerfiles:

+ +

Additional Resources:

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/dsc.md~ b/articles/dsc.md~ new file mode 100644 index 0000000000..8d75b8f816 --- /dev/null +++ b/articles/dsc.md~ @@ -0,0 +1,167 @@ +page_title: PowerShell DSC Usage +page_description: Using DSC to configure a new Docker host +page_keywords: powershell, dsc, installation, usage, docker, documentation + +# Using PowerShell DSC + +Windows PowerShell Desired State Configuration (DSC) is a configuration +management tool that extends the existing functionality of Windows PowerShell. +DSC uses a declarative syntax to define the state in which a target should be +configured. More information about PowerShell DSC can be found at +[http://technet.microsoft.com/en-us/library/dn249912.aspx](http://technet.microsoft.com/en-us/library/dn249912.aspx). + +## Requirements + +To use this guide you'll need a Windows host with PowerShell v4.0 or newer. + +The included DSC configuration script also uses the official PPA so +only an Ubuntu target is supported. The Ubuntu target must already have the +required OMI Server and PowerShell DSC for Linux providers installed. More +information can be found at [https://github.com/MSFTOSSMgmt/WPSDSCLinux](https://github.com/MSFTOSSMgmt/WPSDSCLinux). +The source repository listed below also includes PowerShell DSC for Linux +installation and init scripts along with more detailed installation information. + +## Installation + +The DSC configuration example source is available in the following repository: +[https://github.com/anweiss/DockerClientDSC](https://github.com/anweiss/DockerClientDSC). It can be cloned with: + + $ git clone https://github.com/anweiss/DockerClientDSC.git + +## Usage + +The DSC configuration utilizes a set of shell scripts to determine whether or +not the specified Docker components are configured on the target node(s). The +source repository also includes a script (`RunDockerClientConfig.ps1`) that can +be used to establish the required CIM session(s) and execute the +`Set-DscConfiguration` cmdlet. + +More detailed usage information can be found at +[https://github.com/anweiss/DockerClientDSC](https://github.com/anweiss/DockerClientDSC). + +### Install Docker +The Docker installation configuration is equivalent to running: + +``` +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys\ +36A1D7869245C8950F966E92D8576A8BA88D21E9 +sh -c "echo deb https://get.docker.com/ubuntu docker main\ +> /etc/apt/sources.list.d/docker.list" +apt-get update +apt-get install lxc-docker +``` + +Ensure that your current working directory is set to the `DockerClientDSC` +source and load the DockerClient configuration into the current PowerShell +session + +```powershell +. .\DockerClient.ps1 +``` + +Generate the required DSC configuration .mof file for the targeted node + +```powershell +DockerClient -Hostname "myhost" +``` + +A sample DSC configuration data file has also been included and can be modified +and used in conjunction with or in place of the `Hostname` parameter: + +```powershell +DockerClient -ConfigurationData .\DockerConfigData.psd1 +``` + +Start the configuration application process on the targeted node + +```powershell +.\RunDockerClientConfig.ps1 -Hostname "myhost" +``` + +The `RunDockerClientConfig.ps1` script can also parse a DSC configuration data +file and execute configurations against multiple nodes as such: + +```powershell +.\RunDockerClientConfig.ps1 -ConfigurationData .\DockerConfigData.psd1 +``` + +### Images +Image configuration is equivalent to running: `docker pull [image]` or +`docker rmi -f [IMAGE]`. + +Using the same steps defined above, execute `DockerClient` with the `Image` +parameter and apply the configuration: + +```powershell +DockerClient -Hostname "myhost" -Image "node" +.\RunDockerClientConfig.ps1 -Hostname "myhost" +``` + +You can also configure the host to pull multiple images: + +```powershell +DockerClient -Hostname "myhost" -Image "node","mongo" +.\RunDockerClientConfig.ps1 -Hostname "myhost" +``` + +To remove images, use a hashtable as follows: + +```powershell +DockerClient -Hostname "myhost" -Image @{Name="node"; Remove=$true} +.\RunDockerClientConfig.ps1 -Hostname $hostname +``` + +### Containers +Container configuration is equivalent to running: + +``` +docker run -d --name="[containername]" -p '[port]' -e '[env]' --link '[link]'\ +'[image]' '[command]' +``` +or + +``` +docker rm -f [containername] +``` + +To create or remove containers, you can use the `Container` parameter with one +or more hashtables. The hashtable(s) passed to this parameter can have the +following properties: + +- Name (required) +- Image (required unless Remove property is set to `$true`) +- Port +- Env +- Link +- Command +- Remove + +For example, create a hashtable with the settings for your container: + +```powershell +$webContainer = @{Name="web"; Image="anweiss/docker-platynem"; Port="80:80"} +``` + +Then, using the same steps defined above, execute +`DockerClient` with the `-Image` and `-Container` parameters: + +```powershell +DockerClient -Hostname "myhost" -Image node -Container $webContainer +.\RunDockerClientConfig.ps1 -Hostname "myhost" +``` + +Existing containers can also be removed as follows: + +```powershell +$containerToRemove = @{Name="web"; Remove=$true} +DockerClient -Hostname "myhost" -Container $containerToRemove +.\RunDockerClientConfig.ps1 -Hostname "myhost" +``` + +Here is a hashtable with all of the properties that can be used to create a +container: + +```powershell +$containerProps = @{Name="web"; Image="node:latest"; Port="80:80"; ` +Env="PORT=80"; Link="db:db"; Command="grunt"} +``` diff --git a/articles/dsc/index.html b/articles/dsc/index.html new file mode 100644 index 0000000000..13b224c4ad --- /dev/null +++ b/articles/dsc/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using PowerShell DSC - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Using PowerShell DSC

+

Windows PowerShell Desired State Configuration (DSC) is a configuration +management tool that extends the existing functionality of Windows PowerShell. +DSC uses a declarative syntax to define the state in which a target should be +configured. More information about PowerShell DSC can be found at +http://technet.microsoft.com/en-us/library/dn249912.aspx.

+

Requirements

+

To use this guide you'll need a Windows host with PowerShell v4.0 or newer.

+

The included DSC configuration script also uses the official PPA so +only an Ubuntu target is supported. The Ubuntu target must already have the +required OMI Server and PowerShell DSC for Linux providers installed. More +information can be found at https://github.com/MSFTOSSMgmt/WPSDSCLinux. +The source repository listed below also includes PowerShell DSC for Linux +installation and init scripts along with more detailed installation information.

+

Installation

+

The DSC configuration example source is available in the following repository: +https://github.com/anweiss/DockerClientDSC. It can be cloned with:

+
$ git clone https://github.com/anweiss/DockerClientDSC.git
+
+

Usage

+

The DSC configuration utilizes a set of shell scripts to determine whether or +not the specified Docker components are configured on the target node(s). The +source repository also includes a script (RunDockerClientConfig.ps1) that can +be used to establish the required CIM session(s) and execute the +Set-DscConfiguration cmdlet.

+

More detailed usage information can be found at +https://github.com/anweiss/DockerClientDSC.

+

Install Docker

+

The Docker installation configuration is equivalent to running:

+
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys\
+36A1D7869245C8950F966E92D8576A8BA88D21E9
+sh -c "echo deb https://get.docker.com/ubuntu docker main\
+> /etc/apt/sources.list.d/docker.list"
+apt-get update
+apt-get install lxc-docker
+
+ +

Ensure that your current working directory is set to the DockerClientDSC +source and load the DockerClient configuration into the current PowerShell +session

+
. .\DockerClient.ps1
+
+ +

Generate the required DSC configuration .mof file for the targeted node

+
DockerClient -Hostname "myhost"
+
+ +

A sample DSC configuration data file has also been included and can be modified +and used in conjunction with or in place of the Hostname parameter:

+
DockerClient -ConfigurationData .\DockerConfigData.psd1
+
+ +

Start the configuration application process on the targeted node

+
.\RunDockerClientConfig.ps1 -Hostname "myhost"
+
+ +

The RunDockerClientConfig.ps1 script can also parse a DSC configuration data +file and execute configurations against multiple nodes as such:

+
.\RunDockerClientConfig.ps1 -ConfigurationData .\DockerConfigData.psd1
+
+ +

Images

+

Image configuration is equivalent to running: docker pull [image] or +docker rmi -f [IMAGE].

+

Using the same steps defined above, execute DockerClient with the Image +parameter and apply the configuration:

+
DockerClient -Hostname "myhost" -Image "node"
+.\RunDockerClientConfig.ps1 -Hostname "myhost"
+
+ +

You can also configure the host to pull multiple images:

+
DockerClient -Hostname "myhost" -Image "node","mongo"
+.\RunDockerClientConfig.ps1 -Hostname "myhost"
+
+ +

To remove images, use a hashtable as follows:

+
DockerClient -Hostname "myhost" -Image @{Name="node"; Remove=$true}
+.\RunDockerClientConfig.ps1 -Hostname $hostname
+
+ +

Containers

+

Container configuration is equivalent to running:

+
docker run -d --name="[containername]" -p '[port]' -e '[env]' --link '[link]'\
+'[image]' '[command]'
+
+ +

or

+
docker rm -f [containername]
+
+ +

To create or remove containers, you can use the Container parameter with one +or more hashtables. The hashtable(s) passed to this parameter can have the +following properties:

+
    +
  • Name (required)
  • +
  • Image (required unless Remove property is set to $true)
  • +
  • Port
  • +
  • Env
  • +
  • Link
  • +
  • Command
  • +
  • Remove
  • +
+

For example, create a hashtable with the settings for your container:

+
$webContainer = @{Name="web"; Image="anweiss/docker-platynem"; Port="80:80"}
+
+ +

Then, using the same steps defined above, execute +DockerClient with the -Image and -Container parameters:

+
DockerClient -Hostname "myhost" -Image node -Container $webContainer
+.\RunDockerClientConfig.ps1 -Hostname "myhost"
+
+ +

Existing containers can also be removed as follows:

+
$containerToRemove = @{Name="web"; Remove=$true}
+DockerClient -Hostname "myhost" -Container $containerToRemove
+.\RunDockerClientConfig.ps1 -Hostname "myhost"
+
+ +

Here is a hashtable with all of the properties that can be used to create a +container:

+
$containerProps = @{Name="web"; Image="node:latest"; Port="80:80"; `
+Env="PORT=80"; Link="db:db"; Command="grunt"}
+
+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/host_integration.md~ b/articles/host_integration.md~ new file mode 100644 index 0000000000..89fd2a1f7a --- /dev/null +++ b/articles/host_integration.md~ @@ -0,0 +1,76 @@ +page_title: Automatically Start Containers +page_description: How to generate scripts for upstart, systemd, etc. +page_keywords: systemd, upstart, supervisor, docker, documentation, host integration + +# Automatically Start Containers + +As of Docker 1.2, +[restart policies](/reference/commandline/cli/#restart-policies) are the +built-in Docker mechanism for restarting containers when they exit. If set, +restart policies will be used when the Docker daemon starts up, as typically +happens after a system boot. Restart policies will ensure that linked containers +are started in the correct order. + +If restart policies don't suit your needs (i.e., you have non-Docker processes +that depend on Docker containers), you can use a process manager like +[upstart](http://upstart.ubuntu.com/), +[systemd](http://freedesktop.org/wiki/Software/systemd/) or +[supervisor](http://supervisord.org/) instead. + + +## Using a Process Manager + +Docker does not set any restart policies by default, but be aware that they will +conflict with most process managers. So don't set restart policies if you are +using a process manager. + +*Note:* Prior to Docker 1.2, restarting of Docker containers had to be +explicitly disabled. Refer to the +[previous version](/v1.1/articles/host_integration/) of this article for the +details on how to do that. + +When you have finished setting up your image and are happy with your +running container, you can then attach a process manager to manage it. +When you run `docker start -a`, Docker will automatically attach to the +running container, or start it if needed and forward all signals so that +the process manager can detect when a container stops and correctly +restart it. + +Here are a few sample scripts for systemd and upstart to integrate with +Docker. + + +## Examples + +The examples below show configuration files for two popular process managers, +upstart and systemd. In these examples, we'll assume that we have already +created a container to run Redis with `--name=redis_server`. These files define +a new service that will be started after the docker daemon service has started. + + +### upstart + + description "Redis container" + author "Me" + start on filesystem and started docker + stop on runlevel [!2345] + respawn + script + /usr/bin/docker start -a redis_server + end script + + +### systemd + + [Unit] + Description=Redis container + Author=Me + After=docker.service + + [Service] + Restart=always + ExecStart=/usr/bin/docker start -a redis_server + ExecStop=/usr/bin/docker stop -t 2 redis_server + + [Install] + WantedBy=local.target diff --git a/articles/host_integration/index.html b/articles/host_integration/index.html new file mode 100644 index 0000000000..b3d340da3e --- /dev/null +++ b/articles/host_integration/index.html @@ -0,0 +1,888 @@ + + + + + + + + + + + + + + + + + + + + + + + + Automatically starting containers - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Automatically Start Containers

+

As of Docker 1.2, +restart policies are the +built-in Docker mechanism for restarting containers when they exit. If set, +restart policies will be used when the Docker daemon starts up, as typically +happens after a system boot. Restart policies will ensure that linked containers +are started in the correct order.

+

If restart policies don't suit your needs (i.e., you have non-Docker processes +that depend on Docker containers), you can use a process manager like +upstart, +systemd or +supervisor instead.

+

Using a Process Manager

+

Docker does not set any restart policies by default, but be aware that they will +conflict with most process managers. So don't set restart policies if you are +using a process manager.

+

Note: Prior to Docker 1.2, restarting of Docker containers had to be +explicitly disabled. Refer to the +previous version of this article for the +details on how to do that.

+

When you have finished setting up your image and are happy with your +running container, you can then attach a process manager to manage it. +When you run docker start -a, Docker will automatically attach to the +running container, or start it if needed and forward all signals so that +the process manager can detect when a container stops and correctly +restart it.

+

Here are a few sample scripts for systemd and upstart to integrate with +Docker.

+

Examples

+

The examples below show configuration files for two popular process managers, +upstart and systemd. In these examples, we'll assume that we have already +created a container to run Redis with --name=redis_server. These files define +a new service that will be started after the docker daemon service has started.

+

upstart

+
description "Redis container"
+author "Me"
+start on filesystem and started docker
+stop on runlevel [!2345]
+respawn
+script
+  /usr/bin/docker start -a redis_server
+end script
+
+

systemd

+
[Unit]
+Description=Redis container
+Author=Me
+After=docker.service
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/docker start -a redis_server
+ExecStop=/usr/bin/docker stop -t 2 redis_server
+
+[Install]
+WantedBy=local.target
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/https.md~ b/articles/https.md~ new file mode 100644 index 0000000000..94d9ca3f22 --- /dev/null +++ b/articles/https.md~ @@ -0,0 +1,204 @@ +page_title: Protecting the Docker daemon Socket with HTTPS +page_description: How to setup and run Docker with HTTPS +page_keywords: docker, docs, article, example, https, daemon, tls, ca, certificate + +# Protecting the Docker daemon Socket with HTTPS + +By default, Docker runs via a non-networked Unix socket. It can also +optionally communicate using a HTTP socket. + +If you need Docker to be reachable via the network in a safe manner, you can +enable TLS by specifying the `tlsverify` flag and pointing Docker's +`tlscacert` flag to a trusted CA certificate. + +In the daemon mode, it will only allow connections from clients +authenticated by a certificate signed by that CA. In the client mode, +it will only connect to servers with a certificate signed by that CA. + +> **Warning**: +> Using TLS and managing a CA is an advanced topic. Please familiarize yourself +> with OpenSSL, x509 and TLS before using it in production. + +> **Warning**: +> These TLS commands will only generate a working set of certificates on Linux. +> Mac OS X comes with a version of OpenSSL that is incompatible with the +> certificates that Docker requires. + +## Create a CA, server and client keys with OpenSSL + +> **Note**: replace all instances of `$HOST` in the following example with the +> DNS name of your Docker daemon's host. + +First generate CA private and public keys: + + $ openssl genrsa -aes256 -out ca-key.pem 2048 + Generating RSA private key, 2048 bit long modulus + ......+++ + ...............+++ + e is 65537 (0x10001) + Enter pass phrase for ca-key.pem: + Verifying - Enter pass phrase for ca-key.pem: + $ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem + Enter pass phrase for ca-key.pem: + You are about to be asked to enter information that will be incorporated + into your certificate request. + What you are about to enter is what is called a Distinguished Name or a DN. + There are quite a few fields but you can leave some blank + For some fields there will be a default value, + If you enter '.', the field will be left blank. + ----- + Country Name (2 letter code) [AU]: + State or Province Name (full name) [Some-State]:Queensland + Locality Name (eg, city) []:Brisbane + Organization Name (eg, company) [Internet Widgits Pty Ltd]:Docker Inc + Organizational Unit Name (eg, section) []:Boot2Docker + Common Name (e.g. server FQDN or YOUR name) []:$HOST + Email Address []:Sven@home.org.au + +Now that we have a CA, you can create a server key and certificate +signing request (CSR). Make sure that "Common Name" (i.e., server FQDN or YOUR +name) matches the hostname you will use to connect to Docker: + +> **Note**: replace all instances of `$HOST` in the following example with the +> DNS name of your Docker daemon's host. + + $ openssl genrsa -out server-key.pem 2048 + Generating RSA private key, 2048 bit long modulus + ......................................................+++ + ............................................+++ + e is 65537 (0x10001) + $ openssl req -subj "/CN=$HOST" -new -key server-key.pem -out server.csr + +Next, we're going to sign the public key with our CA: + +Since TLS connections can be made via IP address as well as DNS name, they need +to be specified when creating the certificate. For example, to allow connections +using `10.10.10.20` and `127.0.0.1`: + + $ echo subjectAltName = IP:10.10.10.20,IP:127.0.0.1 > extfile.cnf + + $ openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem \ + -CAcreateserial -out server-cert.pem -extfile extfile.cnf + Signature ok + subject=/CN=your.host.com + Getting CA Private Key + Enter pass phrase for ca-key.pem: + +For client authentication, create a client key and certificate signing +request: + + $ openssl genrsa -out key.pem 2048 + Generating RSA private key, 2048 bit long modulus + ...............................................+++ + ...............................................................+++ + e is 65537 (0x10001) + $ openssl req -subj '/CN=client' -new -key key.pem -out client.csr + +To make the key suitable for client authentication, create an extensions +config file: + + $ echo extendedKeyUsage = clientAuth > extfile.cnf + +Now sign the public key: + + $ openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem \ + -CAcreateserial -out cert.pem -extfile extfile.cnf + Signature ok + subject=/CN=client + Getting CA Private Key + Enter pass phrase for ca-key.pem: + +After generating `cert.pem` and `server-cert.pem` you can safely remove the +two certificate signing requests: + + $ rm -v client.csr server.csr + +With a default `umask` of 022, your secret keys will be *world-readable* and +writable for you and your group. + +In order to protect your keys from accidental damage, you will want to remove their +write permissions. To make them only readable by you, change file modes as follows: + + $ chmod -v 0400 ca-key.pem key.pem server-key.pem + +Certificates can be world-readable, but you might want to remove write access to +prevent accidental damage: + + $ chmod -v 0444 ca.pem server-cert.pem cert.pem + +Now you can make the Docker daemon only accept connections from clients +providing a certificate trusted by our CA: + + $ docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem \ + -H=0.0.0.0:2376 + +To be able to connect to Docker and validate its certificate, you now +need to provide your client keys, certificates and trusted CA: + +> **Note**: replace all instances of `$HOST` in the following example with the +> DNS name of your Docker daemon's host. + + $ docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem \ + -H=$HOST:2376 version + +> **Note**: +> Docker over TLS should run on TCP port 2376. + +> **Warning**: +> As shown in the example above, you don't have to run the `docker` client +> with `sudo` or the `docker` group when you use certificate authentication. +> That means anyone with the keys can give any instructions to your Docker +> daemon, giving them root access to the machine hosting the daemon. Guard +> these keys as you would a root password! + +## Secure by default + +If you want to secure your Docker client connections by default, you can move +the files to the `.docker` directory in your home directory -- and set the +`DOCKER_HOST` and `DOCKER_TLS_VERIFY` variables as well (instead of passing +`-H=tcp://$HOST:2376` and `--tlsverify` on every call). + + $ mkdir -pv ~/.docker + $ cp -v {ca,cert,key}.pem ~/.docker + $ export DOCKER_HOST=tcp://$HOST:2376 DOCKER_TLS_VERIFY=1 + +Docker will now connect securely by default: + + $ docker ps + +## Other modes + +If you don't want to have complete two-way authentication, you can run +Docker in various other modes by mixing the flags. + +### Daemon modes + + - `tlsverify`, `tlscacert`, `tlscert`, `tlskey` set: Authenticate clients + - `tls`, `tlscert`, `tlskey`: Do not authenticate clients + +### Client modes + + - `tls`: Authenticate server based on public/default CA pool + - `tlsverify`, `tlscacert`: Authenticate server based on given CA + - `tls`, `tlscert`, `tlskey`: Authenticate with client certificate, do not + authenticate server based on given CA + - `tlsverify`, `tlscacert`, `tlscert`, `tlskey`: Authenticate with client + certificate and authenticate server based on given CA + +If found, the client will send its client certificate, so you just need +to drop your keys into `~/.docker/{ca,cert,key}.pem`. Alternatively, +if you want to store your keys in another location, you can specify that +location using the environment variable `DOCKER_CERT_PATH`. + + $ export DOCKER_CERT_PATH=~/.docker/zone1/ + $ docker --tlsverify ps + +### Connecting to the Secure Docker port using `curl` + +To use `curl` to make test API requests, you need to use three extra command line +flags: + + $ curl https://$HOST:2376/images/json \ + --cert ~/.docker/cert.pem \ + --key ~/.docker/key.pem \ + --cacert ~/.docker/ca.pem diff --git a/articles/https/Dockerfile b/articles/https/Dockerfile new file mode 100644 index 0000000000..a3cc132c51 --- /dev/null +++ b/articles/https/Dockerfile @@ -0,0 +1,10 @@ +FROM debian + +RUN apt-get update && apt-get install -yq openssl + +ADD make_certs.sh / + + +WORKDIR /data +VOLUME ["/data"] +CMD /make_certs.sh diff --git a/articles/https/Makefile b/articles/https/Makefile new file mode 100644 index 0000000000..f06e0d256e --- /dev/null +++ b/articles/https/Makefile @@ -0,0 +1,24 @@ + +HOST:=boot2docker + +makescript: + ./parsedocs.sh > make_certs.sh + +build: clean makescript + docker build -t makecerts . + +cert: build + docker run --rm -it -v $(CURDIR):/data -e HOST=$(HOST) -e YOUR_PUBLIC_IP=$(shell ip a | grep "inet " | sed "s/.*inet \([0-9.]*\)\/.*/\1/" | xargs echo | sed "s/ /,IP:/g") makecerts + +certs: cert + +run: + sudo docker -d -D --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:6666 --pidfile=$(pwd)/docker.pid --graph=$(pwd)/graph + +client: + sudo docker --tls --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$(HOST):6666 version + sudo docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$(HOST):6666 info + sudo curl https://$(HOST):6666/images/json --cert ./cert.pem --key ./key.pem --cacert ./ca.pem + +clean: + rm -f ca-key.pem ca.pem ca.srl cert.pem client.csr extfile.cnf key.pem server-cert.pem server-key.pem server.csr extfile.cnf diff --git a/articles/https/README.md~ b/articles/https/README.md~ new file mode 100644 index 0000000000..3e1dd27f6e --- /dev/null +++ b/articles/https/README.md~ @@ -0,0 +1,26 @@ + + +This is an initial attempt to make it easier to test the examples in the https.md +doc + +at this point, it has to be a manual thing, and I've been running it in boot2docker + +so my process is + +$ boot2docker ssh +$$ git clone https://github.com/docker/docker +$$ cd docker/docs/sources/articles/https +$$ make cert +lots of things to see and manually answer, as openssl wants to be interactive +**NOTE:** make sure you enter the hostname (`boot2docker` in my case) when prompted for `Computer Name`) +$$ sudo make run + +start another terminal + +$ boot2docker ssh +$$ cd docker/docs/sources/articles/https +$$ make client + +the last will connect first with `--tls` and then with `--tlsverify` + +both should succeed diff --git a/articles/https/index.html b/articles/https/index.html new file mode 100644 index 0000000000..631bd5ab9f --- /dev/null +++ b/articles/https/index.html @@ -0,0 +1,1017 @@ + + + + + + + + + + + + + + + + + + + + + + + + Running Docker with HTTPS - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Protecting the Docker daemon Socket with HTTPS

+

By default, Docker runs via a non-networked Unix socket. It can also +optionally communicate using a HTTP socket.

+

If you need Docker to be reachable via the network in a safe manner, you can +enable TLS by specifying the tlsverify flag and pointing Docker's +tlscacert flag to a trusted CA certificate.

+

In the daemon mode, it will only allow connections from clients +authenticated by a certificate signed by that CA. In the client mode, +it will only connect to servers with a certificate signed by that CA.

+
+

Warning: +Using TLS and managing a CA is an advanced topic. Please familiarize yourself +with OpenSSL, x509 and TLS before using it in production.

+

Warning: +These TLS commands will only generate a working set of certificates on Linux. +Mac OS X comes with a version of OpenSSL that is incompatible with the +certificates that Docker requires.

+
+

Create a CA, server and client keys with OpenSSL

+
+

Note: replace all instances of $HOST in the following example with the +DNS name of your Docker daemon's host.

+
+

First generate CA private and public keys:

+
$ openssl genrsa -aes256 -out ca-key.pem 2048
+Generating RSA private key, 2048 bit long modulus
+......+++
+...............+++
+e is 65537 (0x10001)
+Enter pass phrase for ca-key.pem:
+Verifying - Enter pass phrase for ca-key.pem:
+$ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
+Enter pass phrase for ca-key.pem:
+You are about to be asked to enter information that will be incorporated
+into your certificate request.
+What you are about to enter is what is called a Distinguished Name or a DN.
+There are quite a few fields but you can leave some blank
+For some fields there will be a default value,
+If you enter '.', the field will be left blank.
+-----
+Country Name (2 letter code) [AU]:
+State or Province Name (full name) [Some-State]:Queensland
+Locality Name (eg, city) []:Brisbane
+Organization Name (eg, company) [Internet Widgits Pty Ltd]:Docker Inc
+Organizational Unit Name (eg, section) []:Boot2Docker
+Common Name (e.g. server FQDN or YOUR name) []:$HOST
+Email Address []:Sven@home.org.au
+
+

Now that we have a CA, you can create a server key and certificate +signing request (CSR). Make sure that "Common Name" (i.e., server FQDN or YOUR +name) matches the hostname you will use to connect to Docker:

+
+

Note: replace all instances of $HOST in the following example with the +DNS name of your Docker daemon's host.

+
+
$ openssl genrsa -out server-key.pem 2048
+Generating RSA private key, 2048 bit long modulus
+......................................................+++
+............................................+++
+e is 65537 (0x10001)
+$ openssl req -subj "/CN=$HOST" -new -key server-key.pem -out server.csr
+
+

Next, we're going to sign the public key with our CA:

+

Since TLS connections can be made via IP address as well as DNS name, they need +to be specified when creating the certificate. For example, to allow connections +using 10.10.10.20 and 127.0.0.1:

+
$ echo subjectAltName = IP:10.10.10.20,IP:127.0.0.1 > extfile.cnf
+
+$ openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem \
+  -CAcreateserial -out server-cert.pem -extfile extfile.cnf
+Signature ok
+subject=/CN=your.host.com
+Getting CA Private Key
+Enter pass phrase for ca-key.pem:
+
+

For client authentication, create a client key and certificate signing +request:

+
$ openssl genrsa -out key.pem 2048
+Generating RSA private key, 2048 bit long modulus
+...............................................+++
+...............................................................+++
+e is 65537 (0x10001)
+$ openssl req -subj '/CN=client' -new -key key.pem -out client.csr
+
+

To make the key suitable for client authentication, create an extensions +config file:

+
$ echo extendedKeyUsage = clientAuth > extfile.cnf
+
+

Now sign the public key:

+
$ openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem \
+  -CAcreateserial -out cert.pem -extfile extfile.cnf
+Signature ok
+subject=/CN=client
+Getting CA Private Key
+Enter pass phrase for ca-key.pem:
+
+

After generating cert.pem and server-cert.pem you can safely remove the +two certificate signing requests:

+
$ rm -v client.csr server.csr
+
+

With a default umask of 022, your secret keys will be world-readable and +writable for you and your group.

+

In order to protect your keys from accidental damage, you will want to remove their +write permissions. To make them only readable by you, change file modes as follows:

+
$ chmod -v 0400 ca-key.pem key.pem server-key.pem
+
+

Certificates can be world-readable, but you might want to remove write access to +prevent accidental damage:

+
$ chmod -v 0444 ca.pem server-cert.pem cert.pem
+
+

Now you can make the Docker daemon only accept connections from clients +providing a certificate trusted by our CA:

+
$ docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem \
+  -H=0.0.0.0:2376
+
+

To be able to connect to Docker and validate its certificate, you now +need to provide your client keys, certificates and trusted CA:

+
+

Note: replace all instances of $HOST in the following example with the +DNS name of your Docker daemon's host.

+
+
$ docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem \
+  -H=$HOST:2376 version
+
+
+

Note: +Docker over TLS should run on TCP port 2376.

+

Warning: +As shown in the example above, you don't have to run the docker client +with sudo or the docker group when you use certificate authentication. +That means anyone with the keys can give any instructions to your Docker +daemon, giving them root access to the machine hosting the daemon. Guard +these keys as you would a root password!

+
+

Secure by default

+

If you want to secure your Docker client connections by default, you can move +the files to the .docker directory in your home directory -- and set the +DOCKER_HOST and DOCKER_TLS_VERIFY variables as well (instead of passing +-H=tcp://$HOST:2376 and --tlsverify on every call).

+
$ mkdir -pv ~/.docker
+$ cp -v {ca,cert,key}.pem ~/.docker
+$ export DOCKER_HOST=tcp://$HOST:2376 DOCKER_TLS_VERIFY=1
+
+

Docker will now connect securely by default:

+
$ docker ps
+
+

Other modes

+

If you don't want to have complete two-way authentication, you can run +Docker in various other modes by mixing the flags.

+

Daemon modes

+
    +
  • tlsverify, tlscacert, tlscert, tlskey set: Authenticate clients
  • +
  • tls, tlscert, tlskey: Do not authenticate clients
  • +
+

Client modes

+
    +
  • tls: Authenticate server based on public/default CA pool
  • +
  • tlsverify, tlscacert: Authenticate server based on given CA
  • +
  • tls, tlscert, tlskey: Authenticate with client certificate, do not + authenticate server based on given CA
  • +
  • tlsverify, tlscacert, tlscert, tlskey: Authenticate with client + certificate and authenticate server based on given CA
  • +
+

If found, the client will send its client certificate, so you just need +to drop your keys into ~/.docker/{ca,cert,key}.pem. Alternatively, +if you want to store your keys in another location, you can specify that +location using the environment variable DOCKER_CERT_PATH.

+
$ export DOCKER_CERT_PATH=~/.docker/zone1/
+$ docker --tlsverify ps
+
+

Connecting to the Secure Docker port using curl

+

To use curl to make test API requests, you need to use three extra command line +flags:

+
$ curl https://$HOST:2376/images/json \
+  --cert ~/.docker/cert.pem \
+  --key ~/.docker/key.pem \
+  --cacert ~/.docker/ca.pem
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/https/make_certs.sh b/articles/https/make_certs.sh new file mode 100644 index 0000000000..39001fdb50 --- /dev/null +++ b/articles/https/make_certs.sh @@ -0,0 +1,23 @@ +#!/bin/sh +openssl genrsa -aes256 -out ca-key.pem 2048 +openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem +openssl genrsa -out server-key.pem 2048 +openssl req -subj "/CN=$HOST" -new -key server-key.pem -out server.csr +echo subjectAltName = IP:$YOUR_PUBLIC_IP > extfile.cnf +openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf +openssl genrsa -out key.pem 2048 +openssl req -subj '/CN=client' -new -key key.pem -out client.csr +echo extendedKeyUsage = clientAuth > extfile.cnf +openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf +rm -v client.csr server.csr +chmod -v 0400 ca-key.pem key.pem server-key.pem +chmod -v 0444 ca.pem server-cert.pem cert.pem +# docker -d --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:7778 +# docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$HOST:7778 version +mkdir -pv ~/.docker +cp -v {ca,cert,key}.pem ~/.docker +export DOCKER_HOST=tcp://$HOST:7778 DOCKER_TLS_VERIFY=1 +# docker ps +export DOCKER_CERT_PATH=~/.docker/zone1/ +# docker --tlsverify ps +# curl https://$HOST:7778/images/json --cert ~/.docker/cert.pem --key ~/.docker/key.pem --cacert ~/.docker/ca.pem diff --git a/articles/https/parsedocs.sh b/articles/https/parsedocs.sh new file mode 100644 index 0000000000..f9df33c337 --- /dev/null +++ b/articles/https/parsedocs.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "#!/bin/sh" +cat ../https.md | awk '{if (sub(/\\$/,"")) printf "%s", $0; else print $0}' \ + | grep ' $ ' \ + | sed 's/ $ //g' \ + | sed 's/2375/7777/g' \ + | sed 's/2376/7778/g' \ + | sed 's/^docker/# docker/g' \ + | sed 's/^curl/# curl/g' diff --git a/articles/index.html b/articles/index.html new file mode 100644 index 0000000000..8a36684902 --- /dev/null +++ b/articles/index.html @@ -0,0 +1,1201 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Table of Contents

+

About

+ +

Installation

+ +

User Guide

+ +

Docker Hub

+ +

Examples

+ +

Articles

+ +

Reference

+ +

Contributor Guide

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/networking.md~ b/articles/networking.md~ new file mode 100644 index 0000000000..5c3e885e17 --- /dev/null +++ b/articles/networking.md~ @@ -0,0 +1,996 @@ +page_title: Network Configuration +page_description: Docker networking +page_keywords: network, networking, bridge, docker, documentation + +# Network Configuration + +## TL;DR + +When Docker starts, it creates a virtual interface named `docker0` on +the host machine. It randomly chooses an address and subnet from the +private range defined by [RFC 1918](http://tools.ietf.org/html/rfc1918) +that are not in use on the host machine, and assigns it to `docker0`. +Docker made the choice `172.17.42.1/16` when I started it a few minutes +ago, for example — a 16-bit netmask providing 65,534 addresses for the +host machine and its containers. The MAC address is generated using the +IP address allocated to the container to avoid ARP collisions, using a +range from `02:42:ac:11:00:00` to `02:42:ac:11:ff:ff`. + +> **Note:** +> This document discusses advanced networking configuration +> and options for Docker. In most cases you won't need this information. +> If you're looking to get started with a simpler explanation of Docker +> networking and an introduction to the concept of container linking see +> the [Docker User Guide](/userguide/dockerlinks/). + +But `docker0` is no ordinary interface. It is a virtual *Ethernet +bridge* that automatically forwards packets between any other network +interfaces that are attached to it. This lets containers communicate +both with the host machine and with each other. Every time Docker +creates a container, it creates a pair of “peer” interfaces that are +like opposite ends of a pipe — a packet sent on one will be received on +the other. It gives one of the peers to the container to become its +`eth0` interface and keeps the other peer, with a unique name like +`vethAQI2QT`, out in the namespace of the host machine. By binding +every `veth*` interface to the `docker0` bridge, Docker creates a +virtual subnet shared between the host machine and every Docker +container. + +The remaining sections of this document explain all of the ways that you +can use Docker options and — in advanced cases — raw Linux networking +commands to tweak, supplement, or entirely replace Docker's default +networking configuration. + +## Quick Guide to the Options + +Here is a quick list of the networking-related Docker command-line +options, in case it helps you find the section below that you are +looking for. + +Some networking command-line options can only be supplied to the Docker +server when it starts up, and cannot be changed once it is running: + + * `-b BRIDGE` or `--bridge=BRIDGE` — see + [Building your own bridge](#bridge-building) + + * `--bip=CIDR` — see + [Customizing docker0](#docker0) + + * `--fixed-cidr` — see + [Customizing docker0](#docker0) + + * `--fixed-cidr-v6` — see + [IPv6](#ipv6) + + * `-H SOCKET...` or `--host=SOCKET...` — + This might sound like it would affect container networking, + but it actually faces in the other direction: + it tells the Docker server over what channels + it should be willing to receive commands + like “run container” and “stop container.” + + * `--icc=true|false` — see + [Communication between containers](#between-containers) + + * `--ip=IP_ADDRESS` — see + [Binding container ports](#binding-ports) + + * `--ipv6=true|false` — see + [IPv6](#ipv6) + + * `--ip-forward=true|false` — see + [Communication between containers and the wider world](#the-world) + + * `--iptables=true|false` — see + [Communication between containers](#between-containers) + + * `--mtu=BYTES` — see + [Customizing docker0](#docker0) + +There are two networking options that can be supplied either at startup +or when `docker run` is invoked. When provided at startup, set the +default value that `docker run` will later use if the options are not +specified: + + * `--dns=IP_ADDRESS...` — see + [Configuring DNS](#dns) + + * `--dns-search=DOMAIN...` — see + [Configuring DNS](#dns) + +Finally, several networking options can only be provided when calling +`docker run` because they specify something specific to one container: + + * `-h HOSTNAME` or `--hostname=HOSTNAME` — see + [Configuring DNS](#dns) and + [How Docker networks a container](#container-networking) + + * `--link=CONTAINER_NAME_or_ID:ALIAS` — see + [Configuring DNS](#dns) and + [Communication between containers](#between-containers) + + * `--net=bridge|none|container:NAME_or_ID|host` — see + [How Docker networks a container](#container-networking) + + * `--mac-address=MACADDRESS...` — see + [How Docker networks a container](#container-networking) + + * `-p SPEC` or `--publish=SPEC` — see + [Binding container ports](#binding-ports) + + * `-P` or `--publish-all=true|false` — see + [Binding container ports](#binding-ports) + +The following sections tackle all of the above topics in an order that +moves roughly from simplest to most complex. + +## Configuring DNS + + + +How can Docker supply each container with a hostname and DNS +configuration, without having to build a custom image with the hostname +written inside? Its trick is to overlay three crucial `/etc` files +inside the container with virtual files where it can write fresh +information. You can see this by running `mount` inside a container: + + $$ mount + ... + /dev/disk/by-uuid/1fec...ebdf on /etc/hostname type ext4 ... + /dev/disk/by-uuid/1fec...ebdf on /etc/hosts type ext4 ... + /dev/disk/by-uuid/1fec...ebdf on /etc/resolv.conf type ext4 ... + ... + +This arrangement allows Docker to do clever things like keep +`resolv.conf` up to date across all containers when the host machine +receives new configuration over DHCP later. The exact details of how +Docker maintains these files inside the container can change from one +Docker version to the next, so you should leave the files themselves +alone and use the following Docker options instead. + +Four different options affect container domain name services. + + * `-h HOSTNAME` or `--hostname=HOSTNAME` — sets the hostname by which + the container knows itself. This is written into `/etc/hostname`, + into `/etc/hosts` as the name of the container's host-facing IP + address, and is the name that `/bin/bash` inside the container will + display inside its prompt. But the hostname is not easy to see from + outside the container. It will not appear in `docker ps` nor in the + `/etc/hosts` file of any other container. + + * `--link=CONTAINER_NAME_or_ID:ALIAS` — using this option as you `run` a + container gives the new container's `/etc/hosts` an extra entry + named `ALIAS` that points to the IP address of the container identified by + `CONTAINER_NAME_or_ID`. This lets processes inside the new container + connect to the hostname `ALIAS` without having to know its IP. The + `--link=` option is discussed in more detail below, in the section + [Communication between containers](#between-containers). Because + Docker may assign a different IP address to the linked containers + on restart, Docker updates the `ALIAS` entry in the `/etc/hosts` file + of the recipient containers. + + * `--dns=IP_ADDRESS...` — sets the IP addresses added as `server` + lines to the container's `/etc/resolv.conf` file. Processes in the + container, when confronted with a hostname not in `/etc/hosts`, will + connect to these IP addresses on port 53 looking for name resolution + services. + + * `--dns-search=DOMAIN...` — sets the domain names that are searched + when a bare unqualified hostname is used inside of the container, by + writing `search` lines into the container's `/etc/resolv.conf`. + When a container process attempts to access `host` and the search + domain `example.com` is set, for instance, the DNS logic will not + only look up `host` but also `host.example.com`. + Use `--dns-search=.` if you don't wish to set the search domain. + +Note that Docker, in the absence of either of the last two options +above, will make `/etc/resolv.conf` inside of each container look like +the `/etc/resolv.conf` of the host machine where the `docker` daemon is +running. You might wonder what happens when the host machine's +`/etc/resolv.conf` file changes. The `docker` daemon has a file change +notifier active which will watch for changes to the host DNS configuration. +When the host file changes, all stopped containers which have a matching +`resolv.conf` to the host will be updated immediately to this newest host +configuration. Containers which are running when the host configuration +changes will need to stop and start to pick up the host changes due to lack +of a facility to ensure atomic writes of the `resolv.conf` file while the +container is running. If the container's `resolv.conf` has been edited since +it was started with the default configuration, no replacement will be +attempted as it would overwrite the changes performed by the container. +If the options (`--dns` or `--dns-search`) have been used to modify the +default host configuration, then the replacement with an updated host's +`/etc/resolv.conf` will not happen as well. + +> **Note**: +> For containers which were created prior to the implementation of +> the `/etc/resolv.conf` update feature in Docker 1.5.0: those +> containers will **not** receive updates when the host `resolv.conf` +> file changes. Only containers created with Docker 1.5.0 and above +> will utilize this auto-update feature. + +## Communication between containers and the wider world + + + +Whether a container can talk to the world is governed by two factors. + +1. Is the host machine willing to forward IP packets? This is governed + by the `ip_forward` system parameter. Packets can only pass between + containers if this parameter is `1`. Usually you will simply leave + the Docker server at its default setting `--ip-forward=true` and + Docker will go set `ip_forward` to `1` for you when the server + starts up. To check the setting or turn it on manually: + + ``` + $ cat /proc/sys/net/ipv4/ip_forward + 0 + $ echo 1 > /proc/sys/net/ipv4/ip_forward + $ cat /proc/sys/net/ipv4/ip_forward + 1 + ``` + + Many using Docker will want `ip_forward` to be on, to at + least make communication *possible* between containers and + the wider world. + + May also be needed for inter-container communication if you are + in a multiple bridge setup. + +2. Do your `iptables` allow this particular connection? Docker will + never make changes to your system `iptables` rules if you set + `--iptables=false` when the daemon starts. Otherwise the Docker + server will append forwarding rules to the `DOCKER` filter chain. + +Docker will not delete or modify any pre-existing rules from the `DOCKER` +filter chain. This allows the user to create in advance any rules required +to further restrict access to the containers. + +Docker's forward rules permit all external source IPs by default. To allow +only a specific IP or network to access the containers, insert a negated +rule at the top of the `DOCKER` filter chain. For example, to restrict +external access such that *only* source IP 8.8.8.8 can access the +containers, the following rule could be added: + + $ iptables -I DOCKER -i ext_if ! -s 8.8.8.8 -j DROP + +## Communication between containers + + + +Whether two containers can communicate is governed, at the operating +system level, by two factors. + +1. Does the network topology even connect the containers' network + interfaces? By default Docker will attach all containers to a + single `docker0` bridge, providing a path for packets to travel + between them. See the later sections of this document for other + possible topologies. + +2. Do your `iptables` allow this particular connection? Docker will never + make changes to your system `iptables` rules if you set + `--iptables=false` when the daemon starts. Otherwise the Docker server + will add a default rule to the `FORWARD` chain with a blanket `ACCEPT` + policy if you retain the default `--icc=true`, or else will set the + policy to `DROP` if `--icc=false`. + +It is a strategic question whether to leave `--icc=true` or change it to +`--icc=false` (on Ubuntu, by editing the `DOCKER_OPTS` variable in +`/etc/default/docker` and restarting the Docker server) so that +`iptables` will protect other containers — and the main host — from +having arbitrary ports probed or accessed by a container that gets +compromised. + +If you choose the most secure setting of `--icc=false`, then how can +containers communicate in those cases where you *want* them to provide +each other services? + +The answer is the `--link=CONTAINER_NAME_or_ID:ALIAS` option, which was +mentioned in the previous section because of its effect upon name +services. If the Docker daemon is running with both `--icc=false` and +`--iptables=true` then, when it sees `docker run` invoked with the +`--link=` option, the Docker server will insert a pair of `iptables` +`ACCEPT` rules so that the new container can connect to the ports +exposed by the other container — the ports that it mentioned in the +`EXPOSE` lines of its `Dockerfile`. Docker has more documentation on +this subject — see the [linking Docker containers](/userguide/dockerlinks) +page for further details. + +> **Note**: +> The value `CONTAINER_NAME` in `--link=` must either be an +> auto-assigned Docker name like `stupefied_pare` or else the name you +> assigned with `--name=` when you ran `docker run`. It cannot be a +> hostname, which Docker will not recognize in the context of the +> `--link=` option. + +You can run the `iptables` command on your Docker host to see whether +the `FORWARD` chain has a default policy of `ACCEPT` or `DROP`: + + # When --icc=false, you should see a DROP rule: + + $ sudo iptables -L -n + ... + Chain FORWARD (policy ACCEPT) + target prot opt source destination + DOCKER all -- 0.0.0.0/0 0.0.0.0/0 + DROP all -- 0.0.0.0/0 0.0.0.0/0 + ... + + # When a --link= has been created under --icc=false, + # you should see port-specific ACCEPT rules overriding + # the subsequent DROP policy for all other packets: + + $ sudo iptables -L -n + ... + Chain FORWARD (policy ACCEPT) + target prot opt source destination + DOCKER all -- 0.0.0.0/0 0.0.0.0/0 + DROP all -- 0.0.0.0/0 0.0.0.0/0 + + Chain DOCKER (1 references) + target prot opt source destination + ACCEPT tcp -- 172.17.0.2 172.17.0.3 tcp spt:80 + ACCEPT tcp -- 172.17.0.3 172.17.0.2 tcp dpt:80 + +> **Note**: +> Docker is careful that its host-wide `iptables` rules fully expose +> containers to each other's raw IP addresses, so connections from one +> container to another should always appear to be originating from the +> first container's own IP address. + +## Binding container ports to the host + + + +By default Docker containers can make connections to the outside world, +but the outside world cannot connect to containers. Each outgoing +connection will appear to originate from one of the host machine's own +IP addresses thanks to an `iptables` masquerading rule on the host +machine that the Docker server creates when it starts: + + # You can see that the Docker server creates a + # masquerade rule that let containers connect + # to IP addresses in the outside world: + + $ sudo iptables -t nat -L -n + ... + Chain POSTROUTING (policy ACCEPT) + target prot opt source destination + MASQUERADE all -- 172.17.0.0/16 !172.17.0.0/16 + ... + +But if you want containers to accept incoming connections, you will need +to provide special options when invoking `docker run`. These options +are covered in more detail in the [Docker User Guide](/userguide/dockerlinks) +page. There are two approaches. + +First, you can supply `-P` or `--publish-all=true|false` to `docker run` +which is a blanket operation that identifies every port with an `EXPOSE` +line in the image's `Dockerfile` and maps it to a host port somewhere in +the range 49153–65535. This tends to be a bit inconvenient, since you +then have to run other `docker` sub-commands to learn which external +port a given service was mapped to. + +More convenient is the `-p SPEC` or `--publish=SPEC` option which lets +you be explicit about exactly which external port on the Docker server — +which can be any port at all, not just those in the 49153-65535 block — +you want mapped to which port in the container. + +Either way, you should be able to peek at what Docker has accomplished +in your network stack by examining your NAT tables. + + # What your NAT rules might look like when Docker + # is finished setting up a -P forward: + + $ iptables -t nat -L -n + ... + Chain DOCKER (2 references) + target prot opt source destination + DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:49153 to:172.17.0.2:80 + + # What your NAT rules might look like when Docker + # is finished setting up a -p 80:80 forward: + + Chain DOCKER (2 references) + target prot opt source destination + DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80 + +You can see that Docker has exposed these container ports on `0.0.0.0`, +the wildcard IP address that will match any possible incoming port on +the host machine. If you want to be more restrictive and only allow +container services to be contacted through a specific external interface +on the host machine, you have two choices. When you invoke `docker run` +you can use either `-p IP:host_port:container_port` or `-p IP::port` to +specify the external interface for one particular binding. + +Or if you always want Docker port forwards to bind to one specific IP +address, you can edit your system-wide Docker server settings (on +Ubuntu, by editing `DOCKER_OPTS` in `/etc/default/docker`) and add the +option `--ip=IP_ADDRESS`. Remember to restart your Docker server after +editing this setting. + +Again, this topic is covered without all of these low-level networking +details in the [Docker User Guide](/userguide/dockerlinks/) document if you +would like to use that as your port redirection reference instead. + +## IPv6 + + + +As we are [running out of IPv4 addresses](http://en.wikipedia.org/wiki/IPv4_address_exhaustion) +the IETF has standardized an IPv4 successor, [Internet Protocol Version 6](http://en.wikipedia.org/wiki/IPv6) +, in [RFC 2460](https://www.ietf.org/rfc/rfc2460.txt). Both protocols, IPv4 and +IPv6, reside on layer 3 of the [OSI model](http://en.wikipedia.org/wiki/OSI_model). + + +### IPv6 with Docker +By default, the Docker server configures the container network for IPv4 only. +You can enable IPv4/IPv6 dualstack support by running the Docker daemon with the +`--ipv6` flag. Docker will set up the bridge `docker0` with the IPv6 +[link-local address](http://en.wikipedia.org/wiki/Link-local_address) `fe80::1`. + +By default, containers that are created will only get a link-local IPv6 address. +To assign globally routable IPv6 addresses to your containers you have to +specify an IPv6 subnet to pick the addresses from. Set the IPv6 subnet via the +`--fixed-cidr-v6` parameter when starting Docker daemon: + + docker -d --ipv6 --fixed-cidr-v6="2001:db8:1::/64" + +The subnet for Docker containers should at least have a size of `/80`. This way +an IPv6 address can end with the container's MAC address and you prevent NDP +neighbor cache invalidation issues in the Docker layer. + +With the `--fixed-cidr-v6` parameter set Docker will add a new route to the +routing table. Further IPv6 routing will be enabled (you may prevent this by +starting Docker daemon with `--ip-forward=false`): + + $ ip -6 route add 2001:db8:1::/64 dev docker0 + $ sysctl net.ipv6.conf.default.forwarding=1 + $ sysctl net.ipv6.conf.all.forwarding=1 + +All traffic to the subnet `2001:db8:1::/64` will now be routed +via the `docker0` interface. + +Be aware that IPv6 forwarding may interfere with your existing IPv6 +configuration: If you are using Router Advertisements to get IPv6 settings for +your host's interfaces you should set `accept_ra` to `2`. Otherwise IPv6 +enabled forwarding will result in rejecting Router Advertisements. E.g., if you +want to configure `eth0` via Router Advertisements you should set: + + ``` + $ sysctl net.ipv6.conf.eth0.accept_ra=2 + ``` + +![](/article-img/ipv6_basic_host_config.svg) + +Every new container will get an IPv6 address from the defined subnet. Further +a default route will be added via the gateway `fe80::1` on `eth0`: + + docker run -it ubuntu bash -c "ip -6 addr show dev eth0; ip -6 route show" + + 15: eth0: mtu 1500 + inet6 2001:db8:1:0:0:242:ac11:3/64 scope global + valid_lft forever preferred_lft forever + inet6 fe80::42:acff:fe11:3/64 scope link + valid_lft forever preferred_lft forever + + 2001:db8:1::/64 dev eth0 proto kernel metric 256 + fe80::/64 dev eth0 proto kernel metric 256 + default via fe80::1 dev eth0 metric 1024 + +In this example the Docker container is assigned a link-local address with the +network suffix `/64` (here: `fe80::42:acff:fe11:3/64`) and a globally routable +IPv6 address (here: `2001:db8:1:0:0:242:ac11:3/64`). The container will create +connections to addresses outside of the `2001:db8:1::/64` network via the +link-local gateway at `fe80::1` on `eth0`. + +Often servers or virtual machines get a `/64` IPv6 subnet assigned (e.g. +`2001:db8:23:42::/64`). In this case you can split it up further and provide +Docker a `/80` subnet while using a separate `/80` subnet for other +applications on the host: + +![](/article-img/ipv6_slash64_subnet_config.svg) + +In this setup the subnet `2001:db8:23:42::/80` with a range from `2001:db8:23:42:0:0:0:0` +to `2001:db8:23:42:0:ffff:ffff:ffff` is attached to `eth0`, with the host listening +at `2001:db8:23:42::1`. The subnet `2001:db8:23:42:1::/80` with an address range from +`2001:db8:23:42:1:0:0:0` to `2001:db8:23:42:1:ffff:ffff:ffff` is attached to +`docker0` and will be used by containers. + +### Docker IPv6 Cluster + +#### Switched Network Environment +Using routable IPv6 addresses allows you to realize communication between +containers on different hosts. Let's have a look at a simple Docker IPv6 cluster +example: + +![](/article-img/ipv6_switched_network_example.svg) + +The Docker hosts are in the `2001:db8:0::/64` subnet. Host1 is configured +to provide addresses from the `2001:db8:1::/64` subnet to its containers. It +has three routes configured: + +- Route all traffic to `2001:db8:0::/64` via `eth0` +- Route all traffic to `2001:db8:1::/64` via `docker0` +- Route all traffic to `2001:db8:2::/64` via Host2 with IP `2001:db8::2` + +Host1 also acts as a router on OSI layer 3. When one of the network clients +tries to contact a target that is specified in Host1's routing table Host1 will +forward the traffic accordingly. It acts as a router for all networks it knows: +`2001:db8::/64`, `2001:db8:1::/64` and `2001:db8:2::/64`. + +On Host2 we have nearly the same configuration. Host2's containers will get +IPv6 addresses from `2001:db8:2::/64`. Host2 has three routes configured: + +- Route all traffic to `2001:db8:0::/64` via `eth0` +- Route all traffic to `2001:db8:2::/64` via `docker0` +- Route all traffic to `2001:db8:1::/64` via Host1 with IP `2001:db8:0::1` + +The difference to Host1 is that the network `2001:db8:2::/64` is directly +attached to the host via its `docker0` interface whereas it reaches +`2001:db8:1::/64` via Host1's IPv6 address `2001:db8::1`. + +This way every container is able to contact every other container. The +containers `Container1-*` share the same subnet and contact each other directly. +The traffic between `Container1-*` and `Container2-*` will be routed via Host1 +and Host2 because those containers do not share the same subnet. + +In a switched environment every host has to know all routes to every subnet. You +always have to update the hosts' routing tables once you add or remove a host +to the cluster. + +Every configuration in the diagram that is shown below the dashed line is +handled by Docker: The `docker0` bridge IP address configuration, the route to +the Docker subnet on the host, the container IP addresses and the routes on the +containers. The configuration above the line is up to the user and can be +adapted to the individual environment. + +#### Routed Network Environment + +In a routed network environment you replace the level 2 switch with a level 3 +router. Now the hosts just have to know their default gateway (the router) and +the route to their own containers (managed by Docker). The router holds all +routing information about the Docker subnets. When you add or remove a host to +this environment you just have to update the routing table in the router - not +on every host. + +![](/article-img/ipv6_routed_network_example.svg) + +In this scenario containers of the same host can communicate directly with each +other. The traffic between containers on different hosts will be routed via +their hosts and the router. For example packet from `Container1-1` to +`Container2-1` will be routed through `Host1`, `Router` and `Host2` until it +arrives at `Container2-1`. + +To keep the IPv6 addresses short in this example a `/48` network is assigned to +every host. The hosts use a `/64` subnet of this for its own services and one +for Docker. When adding a third host you would add a route for the subnet +`2001:db8:3::/48` in the router and configure Docker on Host3 with +`--fixed-cidr-v6=2001:db8:3:1::/64`. + +Remember the subnet for Docker containers should at least have a size of `/80`. +This way an IPv6 address can end with the container's MAC address and you +prevent NDP neighbor cache invalidation issues in the Docker layer. So if you +have a `/64` for your whole environment use `/68` subnets for the hosts and +`/80` for the containers. This way you can use 4096 hosts with 16 `/80` subnets +each. + +Every configuration in the diagram that is visualized below the dashed line is +handled by Docker: The `docker0` bridge IP address configuration, the route to +the Docker subnet on the host, the container IP addresses and the routes on the +containers. The configuration above the line is up to the user and can be +adapted to the individual environment. + +## Customizing docker0 + + + +By default, the Docker server creates and configures the host system's +`docker0` interface as an *Ethernet bridge* inside the Linux kernel that +can pass packets back and forth between other physical or virtual +network interfaces so that they behave as a single Ethernet network. + +Docker configures `docker0` with an IP address, netmask and IP +allocation range. The host machine can both receive and send packets to +containers connected to the bridge, and gives it an MTU — the *maximum +transmission unit* or largest packet length that the interface will +allow — of either 1,500 bytes or else a more specific value copied from +the Docker host's interface that supports its default route. These +options are configurable at server startup: + + * `--bip=CIDR` — supply a specific IP address and netmask for the + `docker0` bridge, using standard CIDR notation like + `192.168.1.5/24`. + + * `--fixed-cidr=CIDR` — restrict the IP range from the `docker0` subnet, + using the standard CIDR notation like `172.167.1.0/28`. This range must + be and IPv4 range for fixed IPs (ex: 10.20.0.0/16) and must be a subset + of the bridge IP range (`docker0` or set using `--bridge`). For example + with `--fixed-cidr=192.168.1.0/25`, IPs for your containers will be chosen + from the first half of `192.168.1.0/24` subnet. + + * `--mtu=BYTES` — override the maximum packet length on `docker0`. + +On Ubuntu you would add these to the `DOCKER_OPTS` setting in +`/etc/default/docker` on your Docker host and restarting the Docker +service. + +Once you have one or more containers up and running, you can confirm +that Docker has properly connected them to the `docker0` bridge by +running the `brctl` command on the host machine and looking at the +`interfaces` column of the output. Here is a host with two different +containers connected: + + # Display bridge info + + $ sudo brctl show + bridge name bridge id STP enabled interfaces + docker0 8000.3a1d7362b4ee no veth65f9 + vethdda6 + +If the `brctl` command is not installed on your Docker host, then on +Ubuntu you should be able to run `sudo apt-get install bridge-utils` to +install it. + +Finally, the `docker0` Ethernet bridge settings are used every time you +create a new container. Docker selects a free IP address from the range +available on the bridge each time you `docker run` a new container, and +configures the container's `eth0` interface with that IP address and the +bridge's netmask. The Docker host's own IP address on the bridge is +used as the default gateway by which each container reaches the rest of +the Internet. + + # The network, as seen from a container + + $ sudo docker run -i -t --rm base /bin/bash + + $$ ip addr show eth0 + 24: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 32:6f:e0:35:57:91 brd ff:ff:ff:ff:ff:ff + inet 172.17.0.3/16 scope global eth0 + valid_lft forever preferred_lft forever + inet6 fe80::306f:e0ff:fe35:5791/64 scope link + valid_lft forever preferred_lft forever + + $$ ip route + default via 172.17.42.1 dev eth0 + 172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.3 + + $$ exit + +Remember that the Docker host will not be willing to forward container +packets out on to the Internet unless its `ip_forward` system setting is +`1` — see the section above on [Communication between +containers](#between-containers) for details. + +## Building your own bridge + + + +If you want to take Docker out of the business of creating its own +Ethernet bridge entirely, you can set up your own bridge before starting +Docker and use `-b BRIDGE` or `--bridge=BRIDGE` to tell Docker to use +your bridge instead. If you already have Docker up and running with its +old `docker0` still configured, you will probably want to begin by +stopping the service and removing the interface: + + # Stopping Docker and removing docker0 + + $ sudo service docker stop + $ sudo ip link set dev docker0 down + $ sudo brctl delbr docker0 + $ sudo iptables -t nat -F POSTROUTING + +Then, before starting the Docker service, create your own bridge and +give it whatever configuration you want. Here we will create a simple +enough bridge that we really could just have used the options in the +previous section to customize `docker0`, but it will be enough to +illustrate the technique. + + # Create our own bridge + + $ sudo brctl addbr bridge0 + $ sudo ip addr add 192.168.5.1/24 dev bridge0 + $ sudo ip link set dev bridge0 up + + # Confirming that our bridge is up and running + + $ ip addr show bridge0 + 4: bridge0: mtu 1500 qdisc noop state UP group default + link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff + inet 192.168.5.1/24 scope global bridge0 + valid_lft forever preferred_lft forever + + # Tell Docker about it and restart (on Ubuntu) + + $ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker + $ sudo service docker start + + # Confirming new outgoing NAT masquerade is set up + + $ sudo iptables -t nat -L -n + ... + Chain POSTROUTING (policy ACCEPT) + target prot opt source destination + MASQUERADE all -- 192.168.5.0/24 0.0.0.0/0 + + +The result should be that the Docker server starts successfully and is +now prepared to bind containers to the new bridge. After pausing to +verify the bridge's configuration, try creating a container — you will +see that its IP address is in your new IP address range, which Docker +will have auto-detected. + +Just as we learned in the previous section, you can use the `brctl show` +command to see Docker add and remove interfaces from the bridge as you +start and stop containers, and can run `ip addr` and `ip route` inside a +container to see that it has been given an address in the bridge's IP +address range and has been told to use the Docker host's IP address on +the bridge as its default gateway to the rest of the Internet. + +## How Docker networks a container + + + +While Docker is under active development and continues to tweak and +improve its network configuration logic, the shell commands in this +section are rough equivalents to the steps that Docker takes when +configuring networking for each new container. + +Let's review a few basics. + +To communicate using the Internet Protocol (IP), a machine needs access +to at least one network interface at which packets can be sent and +received, and a routing table that defines the range of IP addresses +reachable through that interface. Network interfaces do not have to be +physical devices. In fact, the `lo` loopback interface available on +every Linux machine (and inside each Docker container) is entirely +virtual — the Linux kernel simply copies loopback packets directly from +the sender's memory into the receiver's memory. + +Docker uses special virtual interfaces to let containers communicate +with the host machine — pairs of virtual interfaces called “peers” that +are linked inside of the host machine's kernel so that packets can +travel between them. They are simple to create, as we will see in a +moment. + +The steps with which Docker configures a container are: + +1. Create a pair of peer virtual interfaces. + +2. Give one of them a unique name like `veth65f9`, keep it inside of + the main Docker host, and bind it to `docker0` or whatever bridge + Docker is supposed to be using. + +3. Toss the other interface over the wall into the new container (which + will already have been provided with an `lo` interface) and rename + it to the much prettier name `eth0` since, inside of the container's + separate and unique network interface namespace, there are no + physical interfaces with which this name could collide. + +4. Set the interface's MAC address according to the `--mac-address` + parameter or generate a random one. + +5. Give the container's `eth0` a new IP address from within the + bridge's range of network addresses, and set its default route to + the IP address that the Docker host owns on the bridge. If available + the IP address is generated from the MAC address. This prevents ARP + cache invalidation problems, when a new container comes up with an + IP used in the past by another container with another MAC. + +With these steps complete, the container now possesses an `eth0` +(virtual) network card and will find itself able to communicate with +other containers and the rest of the Internet. + +You can opt out of the above process for a particular container by +giving the `--net=` option to `docker run`, which takes four possible +values. + + * `--net=bridge` — The default action, that connects the container to + the Docker bridge as described above. + + * `--net=host` — Tells Docker to skip placing the container inside of + a separate network stack. In essence, this choice tells Docker to + **not containerize the container's networking**! While container + processes will still be confined to their own filesystem and process + list and resource limits, a quick `ip addr` command will show you + that, network-wise, they live “outside” in the main Docker host and + have full access to its network interfaces. Note that this does + **not** let the container reconfigure the host network stack — that + would require `--privileged=true` — but it does let container + processes open low-numbered ports like any other root process. + It also allows the container to access local network services + like D-bus. This can lead to processes in the container being + able to do unexpected things like + [restart your computer](https://github.com/docker/docker/issues/6401). + You should use this option with caution. + + * `--net=container:NAME_or_ID` — Tells Docker to put this container's + processes inside of the network stack that has already been created + inside of another container. The new container's processes will be + confined to their own filesystem and process list and resource + limits, but will share the same IP address and port numbers as the + first container, and processes on the two containers will be able to + connect to each other over the loopback interface. + + * `--net=none` — Tells Docker to put the container inside of its own + network stack but not to take any steps to configure its network, + leaving you free to build any of the custom configurations explored + in the last few sections of this document. + +To get an idea of the steps that are necessary if you use `--net=none` +as described in that last bullet point, here are the commands that you +would run to reach roughly the same configuration as if you had let +Docker do all of the configuration: + + # At one shell, start a container and + # leave its shell idle and running + + $ sudo docker run -i -t --rm --net=none base /bin/bash + root@63f36fc01b5f:/# + + # At another shell, learn the container process ID + # and create its namespace entry in /var/run/netns/ + # for the "ip netns" command we will be using below + + $ sudo docker inspect -f '{{.State.Pid}}' 63f36fc01b5f + 2778 + $ pid=2778 + $ sudo mkdir -p /var/run/netns + $ sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid + + # Check the bridge's IP address and netmask + + $ ip addr show docker0 + 21: docker0: ... + inet 172.17.42.1/16 scope global docker0 + ... + + # Create a pair of "peer" interfaces A and B, + # bind the A end to the bridge, and bring it up + + $ sudo ip link add A type veth peer name B + $ sudo brctl addif docker0 A + $ sudo ip link set A up + + # Place B inside the container's network namespace, + # rename to eth0, and activate it with a free IP + + $ sudo ip link set B netns $pid + $ sudo ip netns exec $pid ip link set dev B name eth0 + $ sudo ip netns exec $pid ip link set eth0 address 12:34:56:78:9a:bc + $ sudo ip netns exec $pid ip link set eth0 up + $ sudo ip netns exec $pid ip addr add 172.17.42.99/16 dev eth0 + $ sudo ip netns exec $pid ip route add default via 172.17.42.1 + +At this point your container should be able to perform networking +operations as usual. + +When you finally exit the shell and Docker cleans up the container, the +network namespace is destroyed along with our virtual `eth0` — whose +destruction in turn destroys interface `A` out in the Docker host and +automatically un-registers it from the `docker0` bridge. So everything +gets cleaned up without our having to run any extra commands! Well, +almost everything: + + # Clean up dangling symlinks in /var/run/netns + + find -L /var/run/netns -type l -delete + +Also note that while the script above used modern `ip` command instead +of old deprecated wrappers like `ipconfig` and `route`, these older +commands would also have worked inside of our container. The `ip addr` +command can be typed as `ip a` if you are in a hurry. + +Finally, note the importance of the `ip netns exec` command, which let +us reach inside and configure a network namespace as root. The same +commands would not have worked if run inside of the container, because +part of safe containerization is that Docker strips container processes +of the right to configure their own networks. Using `ip netns exec` is +what let us finish up the configuration without having to take the +dangerous step of running the container itself with `--privileged=true`. + +## Tools and Examples + +Before diving into the following sections on custom network topologies, +you might be interested in glancing at a few external tools or examples +of the same kinds of configuration. Here are two: + + * Jérôme Petazzoni has created a `pipework` shell script to help you + connect together containers in arbitrarily complex scenarios: + + + * Brandon Rhodes has created a whole network topology of Docker + containers for the next edition of Foundations of Python Network + Programming that includes routing, NAT'd firewalls, and servers that + offer HTTP, SMTP, POP, IMAP, Telnet, SSH, and FTP: + + +Both tools use networking commands very much like the ones you saw in +the previous section, and will see in the following sections. + +## Building a point-to-point connection + + + +By default, Docker attaches all containers to the virtual subnet +implemented by `docker0`. You can create containers that are each +connected to some different virtual subnet by creating your own bridge +as shown in [Building your own bridge](#bridge-building), starting each +container with `docker run --net=none`, and then attaching the +containers to your bridge with the shell commands shown in [How Docker +networks a container](#container-networking). + +But sometimes you want two particular containers to be able to +communicate directly without the added complexity of both being bound to +a host-wide Ethernet bridge. + +The solution is simple: when you create your pair of peer interfaces, +simply throw *both* of them into containers, and configure them as +classic point-to-point links. The two containers will then be able to +communicate directly (provided you manage to tell each container the +other's IP address, of course). You might adjust the instructions of +the previous section to go something like this: + + # Start up two containers in two terminal windows + + $ sudo docker run -i -t --rm --net=none base /bin/bash + root@1f1f4c1f931a:/# + + $ sudo docker run -i -t --rm --net=none base /bin/bash + root@12e343489d2f:/# + + # Learn the container process IDs + # and create their namespace entries + + $ sudo docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a + 2989 + $ sudo docker inspect -f '{{.State.Pid}}' 12e343489d2f + 3004 + $ sudo mkdir -p /var/run/netns + $ sudo ln -s /proc/2989/ns/net /var/run/netns/2989 + $ sudo ln -s /proc/3004/ns/net /var/run/netns/3004 + + # Create the "peer" interfaces and hand them out + + $ sudo ip link add A type veth peer name B + + $ sudo ip link set A netns 2989 + $ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A + $ sudo ip netns exec 2989 ip link set A up + $ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A + + $ sudo ip link set B netns 3004 + $ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B + $ sudo ip netns exec 3004 ip link set B up + $ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B + +The two containers should now be able to ping each other and make +connections successfully. Point-to-point links like this do not depend +on a subnet nor a netmask, but on the bare assertion made by `ip route` +that some other single IP address is connected to a particular network +interface. + +Note that point-to-point links can be safely combined with other kinds +of network connectivity — there is no need to start the containers with +`--net=none` if you want point-to-point links to be an addition to the +container's normal networking instead of a replacement. + +A final permutation of this pattern is to create the point-to-point link +between the Docker host and one container, which would allow the host to +communicate with that one container on some single IP address and thus +communicate “out-of-band” of the bridge that connects the other, more +usual containers. But unless you have very specific networking needs +that drive you to such a solution, it is probably far preferable to use +`--icc=false` to lock down inter-container communication, as we explored +earlier. + +## Editing networking config files + +Starting with Docker v.1.2.0, you can now edit `/etc/hosts`, `/etc/hostname` +and `/etc/resolve.conf` in a running container. This is useful if you need +to install bind or other services that might override one of those files. + +Note, however, that changes to these files will not be saved by +`docker commit`, nor will they be saved during `docker run`. +That means they won't be saved in the image, nor will they persist when a +container is restarted; they will only "stick" in a running container. diff --git a/articles/networking/index.html b/articles/networking/index.html new file mode 100644 index 0000000000..3e51a04340 --- /dev/null +++ b/articles/networking/index.html @@ -0,0 +1,1836 @@ + + + + + + + + + + + + + + + + + + + + + + + + Advanced networking - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Network Configuration

+

TL;DR

+

When Docker starts, it creates a virtual interface named docker0 on +the host machine. It randomly chooses an address and subnet from the +private range defined by RFC 1918 +that are not in use on the host machine, and assigns it to docker0. +Docker made the choice 172.17.42.1/16 when I started it a few minutes +ago, for example — a 16-bit netmask providing 65,534 addresses for the +host machine and its containers. The MAC address is generated using the +IP address allocated to the container to avoid ARP collisions, using a +range from 02:42:ac:11:00:00 to 02:42:ac:11:ff:ff.

+
+

Note: +This document discusses advanced networking configuration +and options for Docker. In most cases you won't need this information. +If you're looking to get started with a simpler explanation of Docker +networking and an introduction to the concept of container linking see +the Docker User Guide.

+
+

But docker0 is no ordinary interface. It is a virtual Ethernet +bridge that automatically forwards packets between any other network +interfaces that are attached to it. This lets containers communicate +both with the host machine and with each other. Every time Docker +creates a container, it creates a pair of “peer” interfaces that are +like opposite ends of a pipe — a packet sent on one will be received on +the other. It gives one of the peers to the container to become its +eth0 interface and keeps the other peer, with a unique name like +vethAQI2QT, out in the namespace of the host machine. By binding +every veth* interface to the docker0 bridge, Docker creates a +virtual subnet shared between the host machine and every Docker +container.

+

The remaining sections of this document explain all of the ways that you +can use Docker options and — in advanced cases — raw Linux networking +commands to tweak, supplement, or entirely replace Docker's default +networking configuration.

+

Quick Guide to the Options

+

Here is a quick list of the networking-related Docker command-line +options, in case it helps you find the section below that you are +looking for.

+

Some networking command-line options can only be supplied to the Docker +server when it starts up, and cannot be changed once it is running:

+ +

There are two networking options that can be supplied either at startup +or when docker run is invoked. When provided at startup, set the +default value that docker run will later use if the options are not +specified:

+ +

Finally, several networking options can only be provided when calling +docker run because they specify something specific to one container:

+ +

The following sections tackle all of the above topics in an order that +moves roughly from simplest to most complex.

+

Configuring DNS

+

+

How can Docker supply each container with a hostname and DNS +configuration, without having to build a custom image with the hostname +written inside? Its trick is to overlay three crucial /etc files +inside the container with virtual files where it can write fresh +information. You can see this by running mount inside a container:

+
$$ mount
+...
+/dev/disk/by-uuid/1fec...ebdf on /etc/hostname type ext4 ...
+/dev/disk/by-uuid/1fec...ebdf on /etc/hosts type ext4 ...
+/dev/disk/by-uuid/1fec...ebdf on /etc/resolv.conf type ext4 ...
+...
+
+

This arrangement allows Docker to do clever things like keep +resolv.conf up to date across all containers when the host machine +receives new configuration over DHCP later. The exact details of how +Docker maintains these files inside the container can change from one +Docker version to the next, so you should leave the files themselves +alone and use the following Docker options instead.

+

Four different options affect container domain name services.

+
    +
  • +

    -h HOSTNAME or --hostname=HOSTNAME — sets the hostname by which + the container knows itself. This is written into /etc/hostname, + into /etc/hosts as the name of the container's host-facing IP + address, and is the name that /bin/bash inside the container will + display inside its prompt. But the hostname is not easy to see from + outside the container. It will not appear in docker ps nor in the + /etc/hosts file of any other container.

    +
  • +
  • +

    --link=CONTAINER_NAME_or_ID:ALIAS — using this option as you run a + container gives the new container's /etc/hosts an extra entry + named ALIAS that points to the IP address of the container identified by + CONTAINER_NAME_or_ID. This lets processes inside the new container + connect to the hostname ALIAS without having to know its IP. The + --link= option is discussed in more detail below, in the section + Communication between containers. Because + Docker may assign a different IP address to the linked containers + on restart, Docker updates the ALIAS entry in the /etc/hosts file + of the recipient containers.

    +
  • +
  • +

    --dns=IP_ADDRESS... — sets the IP addresses added as server + lines to the container's /etc/resolv.conf file. Processes in the + container, when confronted with a hostname not in /etc/hosts, will + connect to these IP addresses on port 53 looking for name resolution + services.

    +
  • +
  • +

    --dns-search=DOMAIN... — sets the domain names that are searched + when a bare unqualified hostname is used inside of the container, by + writing search lines into the container's /etc/resolv.conf. + When a container process attempts to access host and the search + domain example.com is set, for instance, the DNS logic will not + only look up host but also host.example.com. + Use --dns-search=. if you don't wish to set the search domain.

    +
  • +
+

Note that Docker, in the absence of either of the last two options +above, will make /etc/resolv.conf inside of each container look like +the /etc/resolv.conf of the host machine where the docker daemon is +running. You might wonder what happens when the host machine's +/etc/resolv.conf file changes. The docker daemon has a file change +notifier active which will watch for changes to the host DNS configuration. +When the host file changes, all stopped containers which have a matching +resolv.conf to the host will be updated immediately to this newest host +configuration. Containers which are running when the host configuration +changes will need to stop and start to pick up the host changes due to lack +of a facility to ensure atomic writes of the resolv.conf file while the +container is running. If the container's resolv.conf has been edited since +it was started with the default configuration, no replacement will be +attempted as it would overwrite the changes performed by the container. +If the options (--dns or --dns-search) have been used to modify the +default host configuration, then the replacement with an updated host's +/etc/resolv.conf will not happen as well.

+
+

Note: +For containers which were created prior to the implementation of +the /etc/resolv.conf update feature in Docker 1.5.0: those +containers will not receive updates when the host resolv.conf +file changes. Only containers created with Docker 1.5.0 and above +will utilize this auto-update feature.

+
+

Communication between containers and the wider world

+

+

Whether a container can talk to the world is governed by two factors.

+
    +
  1. +

    Is the host machine willing to forward IP packets? This is governed + by the ip_forward system parameter. Packets can only pass between + containers if this parameter is 1. Usually you will simply leave + the Docker server at its default setting --ip-forward=true and + Docker will go set ip_forward to 1 for you when the server + starts up. To check the setting or turn it on manually:

    +

    $ cat /proc/sys/net/ipv4/ip_forward +0 +$ echo 1 > /proc/sys/net/ipv4/ip_forward +$ cat /proc/sys/net/ipv4/ip_forward +1

    +

    Many using Docker will want ip_forward to be on, to at +least make communication possible between containers and +the wider world.

    +

    May also be needed for inter-container communication if you are +in a multiple bridge setup.

    +
  2. +
  3. +

    Do your iptables allow this particular connection? Docker will + never make changes to your system iptables rules if you set + --iptables=false when the daemon starts. Otherwise the Docker + server will append forwarding rules to the DOCKER filter chain.

    +
  4. +
+

Docker will not delete or modify any pre-existing rules from the DOCKER +filter chain. This allows the user to create in advance any rules required +to further restrict access to the containers.

+

Docker's forward rules permit all external source IPs by default. To allow +only a specific IP or network to access the containers, insert a negated +rule at the top of the DOCKER filter chain. For example, to restrict +external access such that only source IP 8.8.8.8 can access the +containers, the following rule could be added:

+
$ iptables -I DOCKER -i ext_if ! -s 8.8.8.8 -j DROP
+
+

Communication between containers

+

+

Whether two containers can communicate is governed, at the operating +system level, by two factors.

+
    +
  1. +

    Does the network topology even connect the containers' network + interfaces? By default Docker will attach all containers to a + single docker0 bridge, providing a path for packets to travel + between them. See the later sections of this document for other + possible topologies.

    +
  2. +
  3. +

    Do your iptables allow this particular connection? Docker will never + make changes to your system iptables rules if you set + --iptables=false when the daemon starts. Otherwise the Docker server + will add a default rule to the FORWARD chain with a blanket ACCEPT + policy if you retain the default --icc=true, or else will set the + policy to DROP if --icc=false.

    +
  4. +
+

It is a strategic question whether to leave --icc=true or change it to +--icc=false (on Ubuntu, by editing the DOCKER_OPTS variable in +/etc/default/docker and restarting the Docker server) so that +iptables will protect other containers — and the main host — from +having arbitrary ports probed or accessed by a container that gets +compromised.

+

If you choose the most secure setting of --icc=false, then how can +containers communicate in those cases where you want them to provide +each other services?

+

The answer is the --link=CONTAINER_NAME_or_ID:ALIAS option, which was +mentioned in the previous section because of its effect upon name +services. If the Docker daemon is running with both --icc=false and +--iptables=true then, when it sees docker run invoked with the +--link= option, the Docker server will insert a pair of iptables +ACCEPT rules so that the new container can connect to the ports +exposed by the other container — the ports that it mentioned in the +EXPOSE lines of its Dockerfile. Docker has more documentation on +this subject — see the linking Docker containers +page for further details.

+
+

Note: +The value CONTAINER_NAME in --link= must either be an +auto-assigned Docker name like stupefied_pare or else the name you +assigned with --name= when you ran docker run. It cannot be a +hostname, which Docker will not recognize in the context of the +--link= option.

+
+

You can run the iptables command on your Docker host to see whether +the FORWARD chain has a default policy of ACCEPT or DROP:

+
# When --icc=false, you should see a DROP rule:
+
+$ sudo iptables -L -n
+...
+Chain FORWARD (policy ACCEPT)
+target     prot opt source               destination
+DOCKER     all  --  0.0.0.0/0            0.0.0.0/0
+DROP       all  --  0.0.0.0/0            0.0.0.0/0
+...
+
+# When a --link= has been created under --icc=false,
+# you should see port-specific ACCEPT rules overriding
+# the subsequent DROP policy for all other packets:
+
+$ sudo iptables -L -n
+...
+Chain FORWARD (policy ACCEPT)
+target     prot opt source               destination
+DOCKER     all  --  0.0.0.0/0            0.0.0.0/0
+DROP       all  --  0.0.0.0/0            0.0.0.0/0
+
+Chain DOCKER (1 references)
+target     prot opt source               destination
+ACCEPT     tcp  --  172.17.0.2           172.17.0.3           tcp spt:80
+ACCEPT     tcp  --  172.17.0.3           172.17.0.2           tcp dpt:80
+
+
+

Note: +Docker is careful that its host-wide iptables rules fully expose +containers to each other's raw IP addresses, so connections from one +container to another should always appear to be originating from the +first container's own IP address.

+
+

Binding container ports to the host

+

+

By default Docker containers can make connections to the outside world, +but the outside world cannot connect to containers. Each outgoing +connection will appear to originate from one of the host machine's own +IP addresses thanks to an iptables masquerading rule on the host +machine that the Docker server creates when it starts:

+
# You can see that the Docker server creates a
+# masquerade rule that let containers connect
+# to IP addresses in the outside world:
+
+$ sudo iptables -t nat -L -n
+...
+Chain POSTROUTING (policy ACCEPT)
+target     prot opt source               destination
+MASQUERADE  all  --  172.17.0.0/16       !172.17.0.0/16
+...
+
+

But if you want containers to accept incoming connections, you will need +to provide special options when invoking docker run. These options +are covered in more detail in the Docker User Guide +page. There are two approaches.

+

First, you can supply -P or --publish-all=true|false to docker run +which is a blanket operation that identifies every port with an EXPOSE +line in the image's Dockerfile and maps it to a host port somewhere in +the range 49153–65535. This tends to be a bit inconvenient, since you +then have to run other docker sub-commands to learn which external +port a given service was mapped to.

+

More convenient is the -p SPEC or --publish=SPEC option which lets +you be explicit about exactly which external port on the Docker server — +which can be any port at all, not just those in the 49153-65535 block — +you want mapped to which port in the container.

+

Either way, you should be able to peek at what Docker has accomplished +in your network stack by examining your NAT tables.

+
# What your NAT rules might look like when Docker
+# is finished setting up a -P forward:
+
+$ iptables -t nat -L -n
+...
+Chain DOCKER (2 references)
+target     prot opt source               destination
+DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:49153 to:172.17.0.2:80
+
+# What your NAT rules might look like when Docker
+# is finished setting up a -p 80:80 forward:
+
+Chain DOCKER (2 references)
+target     prot opt source               destination
+DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:172.17.0.2:80
+
+

You can see that Docker has exposed these container ports on 0.0.0.0, +the wildcard IP address that will match any possible incoming port on +the host machine. If you want to be more restrictive and only allow +container services to be contacted through a specific external interface +on the host machine, you have two choices. When you invoke docker run +you can use either -p IP:host_port:container_port or -p IP::port to +specify the external interface for one particular binding.

+

Or if you always want Docker port forwards to bind to one specific IP +address, you can edit your system-wide Docker server settings (on +Ubuntu, by editing DOCKER_OPTS in /etc/default/docker) and add the +option --ip=IP_ADDRESS. Remember to restart your Docker server after +editing this setting.

+

Again, this topic is covered without all of these low-level networking +details in the Docker User Guide document if you +would like to use that as your port redirection reference instead.

+

IPv6

+

+

As we are running out of IPv4 addresses +the IETF has standardized an IPv4 successor, Internet Protocol Version 6 +, in RFC 2460. Both protocols, IPv4 and +IPv6, reside on layer 3 of the OSI model.

+

IPv6 with Docker

+

By default, the Docker server configures the container network for IPv4 only. +You can enable IPv4/IPv6 dualstack support by running the Docker daemon with the +--ipv6 flag. Docker will set up the bridge docker0 with the IPv6 +link-local address fe80::1.

+

By default, containers that are created will only get a link-local IPv6 address. +To assign globally routable IPv6 addresses to your containers you have to +specify an IPv6 subnet to pick the addresses from. Set the IPv6 subnet via the +--fixed-cidr-v6 parameter when starting Docker daemon:

+
docker -d --ipv6 --fixed-cidr-v6="2001:db8:1::/64"
+
+

The subnet for Docker containers should at least have a size of /80. This way +an IPv6 address can end with the container's MAC address and you prevent NDP +neighbor cache invalidation issues in the Docker layer.

+

With the --fixed-cidr-v6 parameter set Docker will add a new route to the +routing table. Further IPv6 routing will be enabled (you may prevent this by +starting Docker daemon with --ip-forward=false):

+
$ ip -6 route add 2001:db8:1::/64 dev docker0
+$ sysctl net.ipv6.conf.default.forwarding=1
+$ sysctl net.ipv6.conf.all.forwarding=1
+
+

All traffic to the subnet 2001:db8:1::/64 will now be routed +via the docker0 interface.

+

Be aware that IPv6 forwarding may interfere with your existing IPv6 +configuration: If you are using Router Advertisements to get IPv6 settings for +your host's interfaces you should set accept_ra to 2. Otherwise IPv6 +enabled forwarding will result in rejecting Router Advertisements. E.g., if you +want to configure eth0 via Router Advertisements you should set:

+
```
+$ sysctl net.ipv6.conf.eth0.accept_ra=2
+```
+
+

+

Every new container will get an IPv6 address from the defined subnet. Further +a default route will be added via the gateway fe80::1 on eth0:

+
docker run -it ubuntu bash -c "ip -6 addr show dev eth0; ip -6 route show"
+
+15: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500
+   inet6 2001:db8:1:0:0:242:ac11:3/64 scope global
+      valid_lft forever preferred_lft forever
+   inet6 fe80::42:acff:fe11:3/64 scope link
+      valid_lft forever preferred_lft forever
+
+2001:db8:1::/64 dev eth0  proto kernel  metric 256
+fe80::/64 dev eth0  proto kernel  metric 256
+default via fe80::1 dev eth0  metric 1024
+
+

In this example the Docker container is assigned a link-local address with the +network suffix /64 (here: fe80::42:acff:fe11:3/64) and a globally routable +IPv6 address (here: 2001:db8:1:0:0:242:ac11:3/64). The container will create +connections to addresses outside of the 2001:db8:1::/64 network via the +link-local gateway at fe80::1 on eth0.

+

Often servers or virtual machines get a /64 IPv6 subnet assigned (e.g. +2001:db8:23:42::/64). In this case you can split it up further and provide +Docker a /80 subnet while using a separate /80 subnet for other +applications on the host:

+

+

In this setup the subnet 2001:db8:23:42::/80 with a range from 2001:db8:23:42:0:0:0:0 +to 2001:db8:23:42:0:ffff:ffff:ffff is attached to eth0, with the host listening +at 2001:db8:23:42::1. The subnet 2001:db8:23:42:1::/80 with an address range from +2001:db8:23:42:1:0:0:0 to 2001:db8:23:42:1:ffff:ffff:ffff is attached to +docker0 and will be used by containers.

+

Docker IPv6 Cluster

+

Switched Network Environment

+

Using routable IPv6 addresses allows you to realize communication between +containers on different hosts. Let's have a look at a simple Docker IPv6 cluster +example:

+

+

The Docker hosts are in the 2001:db8:0::/64 subnet. Host1 is configured +to provide addresses from the 2001:db8:1::/64 subnet to its containers. It +has three routes configured:

+
    +
  • Route all traffic to 2001:db8:0::/64 via eth0
  • +
  • Route all traffic to 2001:db8:1::/64 via docker0
  • +
  • Route all traffic to 2001:db8:2::/64 via Host2 with IP 2001:db8::2
  • +
+

Host1 also acts as a router on OSI layer 3. When one of the network clients +tries to contact a target that is specified in Host1's routing table Host1 will +forward the traffic accordingly. It acts as a router for all networks it knows: +2001:db8::/64, 2001:db8:1::/64 and 2001:db8:2::/64.

+

On Host2 we have nearly the same configuration. Host2's containers will get +IPv6 addresses from 2001:db8:2::/64. Host2 has three routes configured:

+
    +
  • Route all traffic to 2001:db8:0::/64 via eth0
  • +
  • Route all traffic to 2001:db8:2::/64 via docker0
  • +
  • Route all traffic to 2001:db8:1::/64 via Host1 with IP 2001:db8:0::1
  • +
+

The difference to Host1 is that the network 2001:db8:2::/64 is directly +attached to the host via its docker0 interface whereas it reaches +2001:db8:1::/64 via Host1's IPv6 address 2001:db8::1.

+

This way every container is able to contact every other container. The +containers Container1-* share the same subnet and contact each other directly. +The traffic between Container1-* and Container2-* will be routed via Host1 +and Host2 because those containers do not share the same subnet.

+

In a switched environment every host has to know all routes to every subnet. You +always have to update the hosts' routing tables once you add or remove a host +to the cluster.

+

Every configuration in the diagram that is shown below the dashed line is +handled by Docker: The docker0 bridge IP address configuration, the route to +the Docker subnet on the host, the container IP addresses and the routes on the +containers. The configuration above the line is up to the user and can be +adapted to the individual environment.

+

Routed Network Environment

+

In a routed network environment you replace the level 2 switch with a level 3 +router. Now the hosts just have to know their default gateway (the router) and +the route to their own containers (managed by Docker). The router holds all +routing information about the Docker subnets. When you add or remove a host to +this environment you just have to update the routing table in the router - not +on every host.

+

+

In this scenario containers of the same host can communicate directly with each +other. The traffic between containers on different hosts will be routed via +their hosts and the router. For example packet from Container1-1 to +Container2-1 will be routed through Host1, Router and Host2 until it +arrives at Container2-1.

+

To keep the IPv6 addresses short in this example a /48 network is assigned to +every host. The hosts use a /64 subnet of this for its own services and one +for Docker. When adding a third host you would add a route for the subnet +2001:db8:3::/48 in the router and configure Docker on Host3 with +--fixed-cidr-v6=2001:db8:3:1::/64.

+

Remember the subnet for Docker containers should at least have a size of /80. +This way an IPv6 address can end with the container's MAC address and you +prevent NDP neighbor cache invalidation issues in the Docker layer. So if you +have a /64 for your whole environment use /68 subnets for the hosts and +/80 for the containers. This way you can use 4096 hosts with 16 /80 subnets +each.

+

Every configuration in the diagram that is visualized below the dashed line is +handled by Docker: The docker0 bridge IP address configuration, the route to +the Docker subnet on the host, the container IP addresses and the routes on the +containers. The configuration above the line is up to the user and can be +adapted to the individual environment.

+

Customizing docker0

+

+

By default, the Docker server creates and configures the host system's +docker0 interface as an Ethernet bridge inside the Linux kernel that +can pass packets back and forth between other physical or virtual +network interfaces so that they behave as a single Ethernet network.

+

Docker configures docker0 with an IP address, netmask and IP +allocation range. The host machine can both receive and send packets to +containers connected to the bridge, and gives it an MTU — the maximum +transmission unit or largest packet length that the interface will +allow — of either 1,500 bytes or else a more specific value copied from +the Docker host's interface that supports its default route. These +options are configurable at server startup:

+
    +
  • +

    --bip=CIDR — supply a specific IP address and netmask for the + docker0 bridge, using standard CIDR notation like + 192.168.1.5/24.

    +
  • +
  • +

    --fixed-cidr=CIDR — restrict the IP range from the docker0 subnet, + using the standard CIDR notation like 172.167.1.0/28. This range must + be and IPv4 range for fixed IPs (ex: 10.20.0.0/16) and must be a subset + of the bridge IP range (docker0 or set using --bridge). For example + with --fixed-cidr=192.168.1.0/25, IPs for your containers will be chosen + from the first half of 192.168.1.0/24 subnet.

    +
  • +
  • +

    --mtu=BYTES — override the maximum packet length on docker0.

    +
  • +
+

On Ubuntu you would add these to the DOCKER_OPTS setting in +/etc/default/docker on your Docker host and restarting the Docker +service.

+

Once you have one or more containers up and running, you can confirm +that Docker has properly connected them to the docker0 bridge by +running the brctl command on the host machine and looking at the +interfaces column of the output. Here is a host with two different +containers connected:

+
# Display bridge info
+
+$ sudo brctl show
+bridge name     bridge id               STP enabled     interfaces
+docker0         8000.3a1d7362b4ee       no              veth65f9
+                                                        vethdda6
+
+

If the brctl command is not installed on your Docker host, then on +Ubuntu you should be able to run sudo apt-get install bridge-utils to +install it.

+

Finally, the docker0 Ethernet bridge settings are used every time you +create a new container. Docker selects a free IP address from the range +available on the bridge each time you docker run a new container, and +configures the container's eth0 interface with that IP address and the +bridge's netmask. The Docker host's own IP address on the bridge is +used as the default gateway by which each container reaches the rest of +the Internet.

+
# The network, as seen from a container
+
+$ sudo docker run -i -t --rm base /bin/bash
+
+$$ ip addr show eth0
+24: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
+    link/ether 32:6f:e0:35:57:91 brd ff:ff:ff:ff:ff:ff
+    inet 172.17.0.3/16 scope global eth0
+       valid_lft forever preferred_lft forever
+    inet6 fe80::306f:e0ff:fe35:5791/64 scope link
+       valid_lft forever preferred_lft forever
+
+$$ ip route
+default via 172.17.42.1 dev eth0
+172.17.0.0/16 dev eth0  proto kernel  scope link  src 172.17.0.3
+
+$$ exit
+
+

Remember that the Docker host will not be willing to forward container +packets out on to the Internet unless its ip_forward system setting is +1 — see the section above on Communication between +containers for details.

+

Building your own bridge

+

+

If you want to take Docker out of the business of creating its own +Ethernet bridge entirely, you can set up your own bridge before starting +Docker and use -b BRIDGE or --bridge=BRIDGE to tell Docker to use +your bridge instead. If you already have Docker up and running with its +old docker0 still configured, you will probably want to begin by +stopping the service and removing the interface:

+
# Stopping Docker and removing docker0
+
+$ sudo service docker stop
+$ sudo ip link set dev docker0 down
+$ sudo brctl delbr docker0
+$ sudo iptables -t nat -F POSTROUTING
+
+

Then, before starting the Docker service, create your own bridge and +give it whatever configuration you want. Here we will create a simple +enough bridge that we really could just have used the options in the +previous section to customize docker0, but it will be enough to +illustrate the technique.

+
# Create our own bridge
+
+$ sudo brctl addbr bridge0
+$ sudo ip addr add 192.168.5.1/24 dev bridge0
+$ sudo ip link set dev bridge0 up
+
+# Confirming that our bridge is up and running
+
+$ ip addr show bridge0
+4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
+    link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
+    inet 192.168.5.1/24 scope global bridge0
+       valid_lft forever preferred_lft forever
+
+# Tell Docker about it and restart (on Ubuntu)
+
+$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
+$ sudo service docker start
+
+# Confirming new outgoing NAT masquerade is set up
+
+$ sudo iptables -t nat -L -n
+...
+Chain POSTROUTING (policy ACCEPT)
+target     prot opt source               destination
+MASQUERADE  all  --  192.168.5.0/24      0.0.0.0/0
+
+

The result should be that the Docker server starts successfully and is +now prepared to bind containers to the new bridge. After pausing to +verify the bridge's configuration, try creating a container — you will +see that its IP address is in your new IP address range, which Docker +will have auto-detected.

+

Just as we learned in the previous section, you can use the brctl show +command to see Docker add and remove interfaces from the bridge as you +start and stop containers, and can run ip addr and ip route inside a +container to see that it has been given an address in the bridge's IP +address range and has been told to use the Docker host's IP address on +the bridge as its default gateway to the rest of the Internet.

+

How Docker networks a container

+

+

While Docker is under active development and continues to tweak and +improve its network configuration logic, the shell commands in this +section are rough equivalents to the steps that Docker takes when +configuring networking for each new container.

+

Let's review a few basics.

+

To communicate using the Internet Protocol (IP), a machine needs access +to at least one network interface at which packets can be sent and +received, and a routing table that defines the range of IP addresses +reachable through that interface. Network interfaces do not have to be +physical devices. In fact, the lo loopback interface available on +every Linux machine (and inside each Docker container) is entirely +virtual — the Linux kernel simply copies loopback packets directly from +the sender's memory into the receiver's memory.

+

Docker uses special virtual interfaces to let containers communicate +with the host machine — pairs of virtual interfaces called “peers” that +are linked inside of the host machine's kernel so that packets can +travel between them. They are simple to create, as we will see in a +moment.

+

The steps with which Docker configures a container are:

+
    +
  1. +

    Create a pair of peer virtual interfaces.

    +
  2. +
  3. +

    Give one of them a unique name like veth65f9, keep it inside of + the main Docker host, and bind it to docker0 or whatever bridge + Docker is supposed to be using.

    +
  4. +
  5. +

    Toss the other interface over the wall into the new container (which + will already have been provided with an lo interface) and rename + it to the much prettier name eth0 since, inside of the container's + separate and unique network interface namespace, there are no + physical interfaces with which this name could collide.

    +
  6. +
  7. +

    Set the interface's MAC address according to the --mac-address + parameter or generate a random one.

    +
  8. +
  9. +

    Give the container's eth0 a new IP address from within the + bridge's range of network addresses, and set its default route to + the IP address that the Docker host owns on the bridge. If available + the IP address is generated from the MAC address. This prevents ARP + cache invalidation problems, when a new container comes up with an + IP used in the past by another container with another MAC.

    +
  10. +
+

With these steps complete, the container now possesses an eth0 +(virtual) network card and will find itself able to communicate with +other containers and the rest of the Internet.

+

You can opt out of the above process for a particular container by +giving the --net= option to docker run, which takes four possible +values.

+
    +
  • +

    --net=bridge — The default action, that connects the container to + the Docker bridge as described above.

    +
  • +
  • +

    --net=host — Tells Docker to skip placing the container inside of + a separate network stack. In essence, this choice tells Docker to + not containerize the container's networking! While container + processes will still be confined to their own filesystem and process + list and resource limits, a quick ip addr command will show you + that, network-wise, they live “outside” in the main Docker host and + have full access to its network interfaces. Note that this does + not let the container reconfigure the host network stack — that + would require --privileged=true — but it does let container + processes open low-numbered ports like any other root process. + It also allows the container to access local network services + like D-bus. This can lead to processes in the container being + able to do unexpected things like + restart your computer. + You should use this option with caution.

    +
  • +
  • +

    --net=container:NAME_or_ID — Tells Docker to put this container's + processes inside of the network stack that has already been created + inside of another container. The new container's processes will be + confined to their own filesystem and process list and resource + limits, but will share the same IP address and port numbers as the + first container, and processes on the two containers will be able to + connect to each other over the loopback interface.

    +
  • +
  • +

    --net=none — Tells Docker to put the container inside of its own + network stack but not to take any steps to configure its network, + leaving you free to build any of the custom configurations explored + in the last few sections of this document.

    +
  • +
+

To get an idea of the steps that are necessary if you use --net=none +as described in that last bullet point, here are the commands that you +would run to reach roughly the same configuration as if you had let +Docker do all of the configuration:

+
# At one shell, start a container and
+# leave its shell idle and running
+
+$ sudo docker run -i -t --rm --net=none base /bin/bash
+root@63f36fc01b5f:/#
+
+# At another shell, learn the container process ID
+# and create its namespace entry in /var/run/netns/
+# for the "ip netns" command we will be using below
+
+$ sudo docker inspect -f '{{.State.Pid}}' 63f36fc01b5f
+2778
+$ pid=2778
+$ sudo mkdir -p /var/run/netns
+$ sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid
+
+# Check the bridge's IP address and netmask
+
+$ ip addr show docker0
+21: docker0: ...
+inet 172.17.42.1/16 scope global docker0
+...
+
+# Create a pair of "peer" interfaces A and B,
+# bind the A end to the bridge, and bring it up
+
+$ sudo ip link add A type veth peer name B
+$ sudo brctl addif docker0 A
+$ sudo ip link set A up
+
+# Place B inside the container's network namespace,
+# rename to eth0, and activate it with a free IP
+
+$ sudo ip link set B netns $pid
+$ sudo ip netns exec $pid ip link set dev B name eth0
+$ sudo ip netns exec $pid ip link set eth0 address 12:34:56:78:9a:bc
+$ sudo ip netns exec $pid ip link set eth0 up
+$ sudo ip netns exec $pid ip addr add 172.17.42.99/16 dev eth0
+$ sudo ip netns exec $pid ip route add default via 172.17.42.1
+
+

At this point your container should be able to perform networking +operations as usual.

+

When you finally exit the shell and Docker cleans up the container, the +network namespace is destroyed along with our virtual eth0 — whose +destruction in turn destroys interface A out in the Docker host and +automatically un-registers it from the docker0 bridge. So everything +gets cleaned up without our having to run any extra commands! Well, +almost everything:

+
# Clean up dangling symlinks in /var/run/netns
+
+find -L /var/run/netns -type l -delete
+
+

Also note that while the script above used modern ip command instead +of old deprecated wrappers like ipconfig and route, these older +commands would also have worked inside of our container. The ip addr +command can be typed as ip a if you are in a hurry.

+

Finally, note the importance of the ip netns exec command, which let +us reach inside and configure a network namespace as root. The same +commands would not have worked if run inside of the container, because +part of safe containerization is that Docker strips container processes +of the right to configure their own networks. Using ip netns exec is +what let us finish up the configuration without having to take the +dangerous step of running the container itself with --privileged=true.

+

Tools and Examples

+

Before diving into the following sections on custom network topologies, +you might be interested in glancing at a few external tools or examples +of the same kinds of configuration. Here are two:

+
    +
  • +

    Jérôme Petazzoni has created a pipework shell script to help you + connect together containers in arbitrarily complex scenarios: + https://github.com/jpetazzo/pipework

    +
  • +
  • +

    Brandon Rhodes has created a whole network topology of Docker + containers for the next edition of Foundations of Python Network + Programming that includes routing, NAT'd firewalls, and servers that + offer HTTP, SMTP, POP, IMAP, Telnet, SSH, and FTP: + https://github.com/brandon-rhodes/fopnp/tree/m/playground

    +
  • +
+

Both tools use networking commands very much like the ones you saw in +the previous section, and will see in the following sections.

+

Building a point-to-point connection

+

+

By default, Docker attaches all containers to the virtual subnet +implemented by docker0. You can create containers that are each +connected to some different virtual subnet by creating your own bridge +as shown in Building your own bridge, starting each +container with docker run --net=none, and then attaching the +containers to your bridge with the shell commands shown in How Docker +networks a container.

+

But sometimes you want two particular containers to be able to +communicate directly without the added complexity of both being bound to +a host-wide Ethernet bridge.

+

The solution is simple: when you create your pair of peer interfaces, +simply throw both of them into containers, and configure them as +classic point-to-point links. The two containers will then be able to +communicate directly (provided you manage to tell each container the +other's IP address, of course). You might adjust the instructions of +the previous section to go something like this:

+
# Start up two containers in two terminal windows
+
+$ sudo docker run -i -t --rm --net=none base /bin/bash
+root@1f1f4c1f931a:/#
+
+$ sudo docker run -i -t --rm --net=none base /bin/bash
+root@12e343489d2f:/#
+
+# Learn the container process IDs
+# and create their namespace entries
+
+$ sudo docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
+2989
+$ sudo docker inspect -f '{{.State.Pid}}' 12e343489d2f
+3004
+$ sudo mkdir -p /var/run/netns
+$ sudo ln -s /proc/2989/ns/net /var/run/netns/2989
+$ sudo ln -s /proc/3004/ns/net /var/run/netns/3004
+
+# Create the "peer" interfaces and hand them out
+
+$ sudo ip link add A type veth peer name B
+
+$ sudo ip link set A netns 2989
+$ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A
+$ sudo ip netns exec 2989 ip link set A up
+$ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A
+
+$ sudo ip link set B netns 3004
+$ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B
+$ sudo ip netns exec 3004 ip link set B up
+$ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B
+
+

The two containers should now be able to ping each other and make +connections successfully. Point-to-point links like this do not depend +on a subnet nor a netmask, but on the bare assertion made by ip route +that some other single IP address is connected to a particular network +interface.

+

Note that point-to-point links can be safely combined with other kinds +of network connectivity — there is no need to start the containers with +--net=none if you want point-to-point links to be an addition to the +container's normal networking instead of a replacement.

+

A final permutation of this pattern is to create the point-to-point link +between the Docker host and one container, which would allow the host to +communicate with that one container on some single IP address and thus +communicate “out-of-band” of the bridge that connects the other, more +usual containers. But unless you have very specific networking needs +that drive you to such a solution, it is probably far preferable to use +--icc=false to lock down inter-container communication, as we explored +earlier.

+

Editing networking config files

+

Starting with Docker v.1.2.0, you can now edit /etc/hosts, /etc/hostname +and /etc/resolve.conf in a running container. This is useful if you need +to install bind or other services that might override one of those files.

+

Note, however, that changes to these files will not be saved by +docker commit, nor will they be saved during docker run. +That means they won't be saved in the image, nor will they persist when a +container is restarted; they will only "stick" in a running container.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/puppet.md~ b/articles/puppet.md~ new file mode 100644 index 0000000000..d9a7ceb70e --- /dev/null +++ b/articles/puppet.md~ @@ -0,0 +1,93 @@ +page_title: Puppet Usage +page_description: Installating and using Puppet +page_keywords: puppet, installation, usage, docker, documentation + +# Using Puppet + +> *Note:* Please note this is a community contributed installation path. The +> only `official` installation is using the +> [*Ubuntu*](/installation/ubuntulinux) installation +> path. This version may sometimes be out of date. + +## Requirements + +To use this guide you'll need a working installation of Puppet from +[Puppet Labs](https://puppetlabs.com) . + +The module also currently uses the official PPA so only works with +Ubuntu. + +## Installation + +The module is available on the [Puppet +Forge](https://forge.puppetlabs.com/garethr/docker/) and can be +installed using the built-in module tool. + + $ puppet module install garethr/docker + +It can also be found on +[GitHub](https://github.com/garethr/garethr-docker) if you would rather +download the source. + +## Usage + +The module provides a puppet class for installing Docker and two defined +types for managing images and containers. + +### Installation + + include 'docker' + +### Images + +The next step is probably to install a Docker image. For this, we have a +defined type which can be used like so: + + docker::image { 'ubuntu': } + +This is equivalent to running: + + $ sudo docker pull ubuntu + +Note that it will only be downloaded if an image of that name does not +already exist. This is downloading a large binary so on first run can +take a while. For that reason this define turns off the default 5 minute +timeout for the exec type. Note that you can also remove images you no +longer need with: + + docker::image { 'ubuntu': + ensure => 'absent', + } + +### Containers + +Now you have an image where you can run commands within a container +managed by Docker. + + docker::run { 'helloworld': + image => 'ubuntu', + command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"', + } + +This is equivalent to running the following command, but under upstart: + + $ sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" + +Run also contains a number of optional parameters: + + docker::run { 'helloworld': + image => 'ubuntu', + command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"', + ports => ['4444', '4555'], + volumes => ['/var/lib/couchdb', '/var/log'], + volumes_from => '6446ea52fbc9', + memory_limit => 10485760, # bytes + username => 'example', + hostname => 'example.com', + env => ['FOO=BAR', 'FOO2=BAR2'], + dns => ['8.8.8.8', '8.8.4.4'], + } + +> *Note:* +> The `ports`, `env`, `dns` and `volumes` attributes can be set with either a single +> string or as above with an array of values. diff --git a/articles/puppet/index.html b/articles/puppet/index.html new file mode 100644 index 0000000000..29013b9d7e --- /dev/null +++ b/articles/puppet/index.html @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using Puppet - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Using Puppet

+
+

Note: Please note this is a community contributed installation path. The +only official installation is using the +Ubuntu installation +path. This version may sometimes be out of date.

+
+

Requirements

+

To use this guide you'll need a working installation of Puppet from +Puppet Labs .

+

The module also currently uses the official PPA so only works with +Ubuntu.

+

Installation

+

The module is available on the Puppet +Forge and can be +installed using the built-in module tool.

+
$ puppet module install garethr/docker
+
+

It can also be found on +GitHub if you would rather +download the source.

+

Usage

+

The module provides a puppet class for installing Docker and two defined +types for managing images and containers.

+

Installation

+
include 'docker'
+
+

Images

+

The next step is probably to install a Docker image. For this, we have a +defined type which can be used like so:

+
docker::image { 'ubuntu': }
+
+

This is equivalent to running:

+
$ sudo docker pull ubuntu
+
+

Note that it will only be downloaded if an image of that name does not +already exist. This is downloading a large binary so on first run can +take a while. For that reason this define turns off the default 5 minute +timeout for the exec type. Note that you can also remove images you no +longer need with:

+
docker::image { 'ubuntu':
+  ensure => 'absent',
+}
+
+

Containers

+

Now you have an image where you can run commands within a container +managed by Docker.

+
docker::run { 'helloworld':
+  image   => 'ubuntu',
+  command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
+}
+
+

This is equivalent to running the following command, but under upstart:

+
$ sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
+
+

Run also contains a number of optional parameters:

+
docker::run { 'helloworld':
+  image        => 'ubuntu',
+  command      => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
+  ports        => ['4444', '4555'],
+  volumes      => ['/var/lib/couchdb', '/var/log'],
+  volumes_from => '6446ea52fbc9',
+  memory_limit => 10485760, # bytes
+  username     => 'example',
+  hostname     => 'example.com',
+  env          => ['FOO=BAR', 'FOO2=BAR2'],
+  dns          => ['8.8.8.8', '8.8.4.4'],
+}
+
+
+

Note: +The ports, env, dns and volumes attributes can be set with either a single +string or as above with an array of values.

+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/registry_mirror.md~ b/articles/registry_mirror.md~ new file mode 100644 index 0000000000..a7493e9aec --- /dev/null +++ b/articles/registry_mirror.md~ @@ -0,0 +1,83 @@ +page_title: Run a local registry mirror +page_description: How to set up and run a local registry mirror +page_keywords: docker, registry, mirror, examples + +# Run a local registry mirror + +## Why? + +If you have multiple instances of Docker running in your environment +(e.g., multiple physical or virtual machines, all running the Docker +daemon), each time one of them requires an image that it doesn't have +it will go out to the internet and fetch it from the public Docker +registry. By running a local registry mirror, you can keep most of the +image fetch traffic on your local network. + +## How does it work? + +The first time you request an image from your local registry mirror, +it pulls the image from the public Docker registry and stores it locally +before handing it back to you. On subsequent requests, the local registry +mirror is able to serve the image from its own storage. + +## How do I set up a local registry mirror? + +There are two steps to set up and use a local registry mirror. + +### Step 1: Configure your Docker daemons to use the local registry mirror + +You will need to pass the `--registry-mirror` option to your Docker daemon on +startup: + + sudo docker --registry-mirror=http:// -d + +For example, if your mirror is serving on `http://10.0.0.2:5000`, you would run: + + sudo docker --registry-mirror=http://10.0.0.2:5000 -d + +**NOTE:** +Depending on your local host setup, you may be able to add the +`--registry-mirror` options to the `DOCKER_OPTS` variable in +`/etc/default/docker`. + +### Step 2: Run the local registry mirror + +You will need to start a local registry mirror service. The +[`registry` image](https://registry.hub.docker.com/_/registry/) provides this +functionality. For example, to run a local registry mirror that serves on +port `5000` and mirrors the content at `registry-1.docker.io`: + + sudo docker run -p 5000:5000 \ + -e STANDALONE=false \ + -e MIRROR_SOURCE=https://registry-1.docker.io \ + -e MIRROR_SOURCE_INDEX=https://index.docker.io registry + +## Test it out + +With your mirror running, pull an image that you haven't pulled before (using +`time` to time it): + + $ time sudo docker pull node:latest + Pulling repository node + [...] + + real 1m14.078s + user 0m0.176s + sys 0m0.120s + +Now, remove the image from your local machine: + + $ sudo docker rmi node:latest + +Finally, re-pull the image: + + $ time sudo docker pull node:latest + Pulling repository node + [...] + + real 0m51.376s + user 0m0.120s + sys 0m0.116s + +The second time around, the local registry mirror served the image from storage, +avoiding a trip out to the internet to refetch it. diff --git a/articles/registry_mirror/index.html b/articles/registry_mirror/index.html new file mode 100644 index 0000000000..6f8ca9febd --- /dev/null +++ b/articles/registry_mirror/index.html @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + + Run a local registry mirror - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Run a local registry mirror

+

Why?

+

If you have multiple instances of Docker running in your environment +(e.g., multiple physical or virtual machines, all running the Docker +daemon), each time one of them requires an image that it doesn't have +it will go out to the internet and fetch it from the public Docker +registry. By running a local registry mirror, you can keep most of the +image fetch traffic on your local network.

+

How does it work?

+

The first time you request an image from your local registry mirror, +it pulls the image from the public Docker registry and stores it locally +before handing it back to you. On subsequent requests, the local registry +mirror is able to serve the image from its own storage.

+

How do I set up a local registry mirror?

+

There are two steps to set up and use a local registry mirror.

+

Step 1: Configure your Docker daemons to use the local registry mirror

+

You will need to pass the --registry-mirror option to your Docker daemon on +startup:

+
sudo docker --registry-mirror=http://<my-docker-mirror-host> -d
+
+

For example, if your mirror is serving on http://10.0.0.2:5000, you would run:

+
sudo docker --registry-mirror=http://10.0.0.2:5000 -d
+
+

NOTE: +Depending on your local host setup, you may be able to add the +--registry-mirror options to the DOCKER_OPTS variable in +/etc/default/docker.

+

Step 2: Run the local registry mirror

+

You will need to start a local registry mirror service. The +registry image provides this +functionality. For example, to run a local registry mirror that serves on +port 5000 and mirrors the content at registry-1.docker.io:

+
sudo docker run -p 5000:5000 \
+    -e STANDALONE=false \
+    -e MIRROR_SOURCE=https://registry-1.docker.io \
+    -e MIRROR_SOURCE_INDEX=https://index.docker.io registry
+
+

Test it out

+

With your mirror running, pull an image that you haven't pulled before (using +time to time it):

+
$ time sudo docker pull node:latest
+Pulling repository node
+[...]
+
+real   1m14.078s
+user   0m0.176s
+sys    0m0.120s
+
+

Now, remove the image from your local machine:

+
$ sudo docker rmi node:latest
+
+

Finally, re-pull the image:

+
$ time sudo docker pull node:latest
+Pulling repository node
+[...]
+
+real   0m51.376s
+user   0m0.120s
+sys    0m0.116s
+
+

The second time around, the local registry mirror served the image from storage, +avoiding a trip out to the internet to refetch it.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/runmetrics.md~ b/articles/runmetrics.md~ new file mode 100644 index 0000000000..3276409697 --- /dev/null +++ b/articles/runmetrics.md~ @@ -0,0 +1,438 @@ +page_title: Runtime Metrics +page_description: Measure the behavior of running containers +page_keywords: docker, metrics, CPU, memory, disk, IO, run, runtime + +# Runtime Metrics + +Linux Containers rely on [control groups]( +https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt) +which not only track groups of processes, but also expose metrics about +CPU, memory, and block I/O usage. You can access those metrics and +obtain network usage metrics as well. This is relevant for "pure" LXC +containers, as well as for Docker containers. + +## Control Groups + +Control groups are exposed through a pseudo-filesystem. In recent +distros, you should find this filesystem under `/sys/fs/cgroup`. Under +that directory, you will see multiple sub-directories, called devices, +freezer, blkio, etc.; each sub-directory actually corresponds to a different +cgroup hierarchy. + +On older systems, the control groups might be mounted on `/cgroup`, without +distinct hierarchies. In that case, instead of seeing the sub-directories, +you will see a bunch of files in that directory, and possibly some directories +corresponding to existing containers. + +To figure out where your control groups are mounted, you can run: + + $ grep cgroup /proc/mounts + +## Enumerating Cgroups + +You can look into `/proc/cgroups` to see the different control group subsystems +known to the system, the hierarchy they belong to, and how many groups they contain. + +You can also look at `/proc//cgroup` to see which control groups a process +belongs to. The control group will be shown as a path relative to the root of +the hierarchy mountpoint; e.g., `/` means “this process has not been assigned into +a particular group”, while `/lxc/pumpkin` means that the process is likely to be +a member of a container named `pumpkin`. + +## Finding the Cgroup for a Given Container + +For each container, one cgroup will be created in each hierarchy. On +older systems with older versions of the LXC userland tools, the name of +the cgroup will be the name of the container. With more recent versions +of the LXC tools, the cgroup will be `lxc/.` + +For Docker containers using cgroups, the container name will be the full +ID or long ID of the container. If a container shows up as ae836c95b4c3 +in `docker ps`, its long ID might be something like +`ae836c95b4c3c9e9179e0e91015512da89fdec91612f63cebae57df9a5444c79`. You can +look it up with `docker inspect` or `docker ps --no-trunc`. + +Putting everything together to look at the memory metrics for a Docker +container, take a look at `/sys/fs/cgroup/memory/lxc//`. + +## Metrics from Cgroups: Memory, CPU, Block IO + +For each subsystem (memory, CPU, and block I/O), you will find one or +more pseudo-files containing statistics. + +### Memory Metrics: `memory.stat` + +Memory metrics are found in the "memory" cgroup. Note that the memory +control group adds a little overhead, because it does very fine-grained +accounting of the memory usage on your host. Therefore, many distros +chose to not enable it by default. Generally, to enable it, all you have +to do is to add some kernel command-line parameters: +`cgroup_enable=memory swapaccount=1`. + +The metrics are in the pseudo-file `memory.stat`. +Here is what it will look like: + + cache 11492564992 + rss 1930993664 + mapped_file 306728960 + pgpgin 406632648 + pgpgout 403355412 + swap 0 + pgfault 728281223 + pgmajfault 1724 + inactive_anon 46608384 + active_anon 1884520448 + inactive_file 7003344896 + active_file 4489052160 + unevictable 32768 + hierarchical_memory_limit 9223372036854775807 + hierarchical_memsw_limit 9223372036854775807 + total_cache 11492564992 + total_rss 1930993664 + total_mapped_file 306728960 + total_pgpgin 406632648 + total_pgpgout 403355412 + total_swap 0 + total_pgfault 728281223 + total_pgmajfault 1724 + total_inactive_anon 46608384 + total_active_anon 1884520448 + total_inactive_file 7003344896 + total_active_file 4489052160 + total_unevictable 32768 + +The first half (without the `total_` prefix) contains statistics relevant +to the processes within the cgroup, excluding sub-cgroups. The second half +(with the `total_` prefix) includes sub-cgroups as well. + +Some metrics are "gauges", i.e., values that can increase or decrease +(e.g., swap, the amount of swap space used by the members of the cgroup). +Some others are "counters", i.e., values that can only go up, because +they represent occurrences of a specific event (e.g., pgfault, which +indicates the number of page faults which happened since the creation of +the cgroup; this number can never decrease). + + + - **cache:** + the amount of memory used by the processes of this control group + that can be associated precisely with a block on a block device. + When you read from and write to files on disk, this amount will + increase. This will be the case if you use "conventional" I/O + (`open`, `read`, + `write` syscalls) as well as mapped files (with + `mmap`). It also accounts for the memory used by + `tmpfs` mounts, though the reasons are unclear. + + - **rss:** + the amount of memory that *doesn't* correspond to anything on disk: + stacks, heaps, and anonymous memory maps. + + - **mapped_file:** + indicates the amount of memory mapped by the processes in the + control group. It doesn't give you information about *how much* + memory is used; it rather tells you *how* it is used. + + - **pgfault and pgmajfault:** + indicate the number of times that a process of the cgroup triggered + a "page fault" and a "major fault", respectively. A page fault + happens when a process accesses a part of its virtual memory space + which is nonexistent or protected. The former can happen if the + process is buggy and tries to access an invalid address (it will + then be sent a `SIGSEGV` signal, typically + killing it with the famous `Segmentation fault` + message). The latter can happen when the process reads from a memory + zone which has been swapped out, or which corresponds to a mapped + file: in that case, the kernel will load the page from disk, and let + the CPU complete the memory access. It can also happen when the + process writes to a copy-on-write memory zone: likewise, the kernel + will preempt the process, duplicate the memory page, and resume the + write operation on the process` own copy of the page. "Major" faults + happen when the kernel actually has to read the data from disk. When + it just has to duplicate an existing page, or allocate an empty + page, it's a regular (or "minor") fault. + + - **swap:** + the amount of swap currently used by the processes in this cgroup. + + - **active_anon and inactive_anon:** + the amount of *anonymous* memory that has been identified has + respectively *active* and *inactive* by the kernel. "Anonymous" + memory is the memory that is *not* linked to disk pages. In other + words, that's the equivalent of the rss counter described above. In + fact, the very definition of the rss counter is **active_anon** + + **inactive_anon** - **tmpfs** (where tmpfs is the amount of memory + used up by `tmpfs` filesystems mounted by this + control group). Now, what's the difference between "active" and + "inactive"? Pages are initially "active"; and at regular intervals, + the kernel sweeps over the memory, and tags some pages as + "inactive". Whenever they are accessed again, they are immediately + retagged "active". When the kernel is almost out of memory, and time + comes to swap out to disk, the kernel will swap "inactive" pages. + + - **active_file and inactive_file:** + cache memory, with *active* and *inactive* similar to the *anon* + memory above. The exact formula is cache = **active_file** + + **inactive_file** + **tmpfs**. The exact rules used by the kernel + to move memory pages between active and inactive sets are different + from the ones used for anonymous memory, but the general principle + is the same. Note that when the kernel needs to reclaim memory, it + is cheaper to reclaim a clean (=non modified) page from this pool, + since it can be reclaimed immediately (while anonymous pages and + dirty/modified pages have to be written to disk first). + + - **unevictable:** + the amount of memory that cannot be reclaimed; generally, it will + account for memory that has been "locked" with `mlock`. + It is often used by crypto frameworks to make sure that + secret keys and other sensitive material never gets swapped out to + disk. + + - **memory and memsw limits:** + These are not really metrics, but a reminder of the limits applied + to this cgroup. The first one indicates the maximum amount of + physical memory that can be used by the processes of this control + group; the second one indicates the maximum amount of RAM+swap. + +Accounting for memory in the page cache is very complex. If two +processes in different control groups both read the same file +(ultimately relying on the same blocks on disk), the corresponding +memory charge will be split between the control groups. It's nice, but +it also means that when a cgroup is terminated, it could increase the +memory usage of another cgroup, because they are not splitting the cost +anymore for those memory pages. + +### CPU metrics: `cpuacct.stat` + +Now that we've covered memory metrics, everything else will look very +simple in comparison. CPU metrics will be found in the +`cpuacct` controller. + +For each container, you will find a pseudo-file `cpuacct.stat`, +containing the CPU usage accumulated by the processes of the container, +broken down between `user` and `system` time. If you're not familiar +with the distinction, `user` is the time during which the processes were +in direct control of the CPU (i.e., executing process code), and `system` +is the time during which the CPU was executing system calls on behalf of +those processes. + +Those times are expressed in ticks of 1/100th of a second. Actually, +they are expressed in "user jiffies". There are `USER_HZ` +*"jiffies"* per second, and on x86 systems, +`USER_HZ` is 100. This used to map exactly to the +number of scheduler "ticks" per second; but with the advent of higher +frequency scheduling, as well as [tickless kernels]( +http://lwn.net/Articles/549580/), the number of kernel ticks +wasn't relevant anymore. It stuck around anyway, mainly for legacy and +compatibility reasons. + +### Block I/O metrics + +Block I/O is accounted in the `blkio` controller. +Different metrics are scattered across different files. While you can +find in-depth details in the [blkio-controller]( +https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt) +file in the kernel documentation, here is a short list of the most +relevant ones: + + + - **blkio.sectors:** + contain the number of 512-bytes sectors read and written by the + processes member of the cgroup, device by device. Reads and writes + are merged in a single counter. + + - **blkio.io_service_bytes:** + indicates the number of bytes read and written by the cgroup. It has + 4 counters per device, because for each device, it differentiates + between synchronous vs. asynchronous I/O, and reads vs. writes. + + - **blkio.io_serviced:** + the number of I/O operations performed, regardless of their size. It + also has 4 counters per device. + + - **blkio.io_queued:** + indicates the number of I/O operations currently queued for this + cgroup. In other words, if the cgroup isn't doing any I/O, this will + be zero. Note that the opposite is not true. In other words, if + there is no I/O queued, it does not mean that the cgroup is idle + (I/O-wise). It could be doing purely synchronous reads on an + otherwise quiescent device, which is therefore able to handle them + immediately, without queuing. Also, while it is helpful to figure + out which cgroup is putting stress on the I/O subsystem, keep in + mind that is is a relative quantity. Even if a process group does + not perform more I/O, its queue size can increase just because the + device load increases because of other devices. + +## Network Metrics + +Network metrics are not exposed directly by control groups. There is a +good explanation for that: network interfaces exist within the context +of *network namespaces*. The kernel could probably accumulate metrics +about packets and bytes sent and received by a group of processes, but +those metrics wouldn't be very useful. You want per-interface metrics +(because traffic happening on the local `lo` +interface doesn't really count). But since processes in a single cgroup +can belong to multiple network namespaces, those metrics would be harder +to interpret: multiple network namespaces means multiple `lo` +interfaces, potentially multiple `eth0` +interfaces, etc.; so this is why there is no easy way to gather network +metrics with control groups. + +Instead we can gather network metrics from other sources: + +### IPtables + +IPtables (or rather, the netfilter framework for which iptables is just +an interface) can do some serious accounting. + +For instance, you can setup a rule to account for the outbound HTTP +traffic on a web server: + + $ iptables -I OUTPUT -p tcp --sport 80 + +There is no `-j` or `-g` flag, +so the rule will just count matched packets and go to the following +rule. + +Later, you can check the values of the counters, with: + + $ iptables -nxvL OUTPUT + +Technically, `-n` is not required, but it will +prevent iptables from doing DNS reverse lookups, which are probably +useless in this scenario. + +Counters include packets and bytes. If you want to setup metrics for +container traffic like this, you could execute a `for` +loop to add two `iptables` rules per +container IP address (one in each direction), in the `FORWARD` +chain. This will only meter traffic going through the NAT +layer; you will also have to add traffic going through the userland +proxy. + +Then, you will need to check those counters on a regular basis. If you +happen to use `collectd`, there is a [nice plugin](https://collectd.org/wiki/index.php/Plugin:IPTables) +to automate iptables counters collection. + +### Interface-level counters + +Since each container has a virtual Ethernet interface, you might want to +check directly the TX and RX counters of this interface. You will notice +that each container is associated to a virtual Ethernet interface in +your host, with a name like `vethKk8Zqi`. Figuring +out which interface corresponds to which container is, unfortunately, +difficult. + +But for now, the best way is to check the metrics *from within the +containers*. To accomplish this, you can run an executable from the host +environment within the network namespace of a container using **ip-netns +magic**. + +The `ip-netns exec` command will let you execute any +program (present in the host system) within any network namespace +visible to the current process. This means that your host will be able +to enter the network namespace of your containers, but your containers +won't be able to access the host, nor their sibling containers. +Containers will be able to “see” and affect their sub-containers, +though. + +The exact format of the command is: + + $ ip netns exec + +For example: + + $ ip netns exec mycontainer netstat -i + +`ip netns` finds the "mycontainer" container by +using namespaces pseudo-files. Each process belongs to one network +namespace, one PID namespace, one `mnt` namespace, +etc., and those namespaces are materialized under +`/proc//ns/`. For example, the network +namespace of PID 42 is materialized by the pseudo-file +`/proc/42/ns/net`. + +When you run `ip netns exec mycontainer ...`, it +expects `/var/run/netns/mycontainer` to be one of +those pseudo-files. (Symlinks are accepted.) + +In other words, to execute a command within the network namespace of a +container, we need to: + +- Find out the PID of any process within the container that we want to investigate; +- Create a symlink from `/var/run/netns/` to `/proc//ns/net` +- Execute `ip netns exec ....` + +Please review [*Enumerating Cgroups*](#enumerating-cgroups) to learn how to find +the cgroup of a process running in the container of which you want to +measure network usage. From there, you can examine the pseudo-file named +`tasks`, which contains the PIDs that are in the +control group (i.e., in the container). Pick any one of them. + +Putting everything together, if the "short ID" of a container is held in +the environment variable `$CID`, then you can do this: + + $ TASKS=/sys/fs/cgroup/devices/$CID*/tasks + $ PID=$(head -n 1 $TASKS) + $ mkdir -p /var/run/netns + $ ln -sf /proc/$PID/ns/net /var/run/netns/$CID + $ ip netns exec $CID netstat -i + +## Tips for high-performance metric collection + +Note that running a new process each time you want to update metrics is +(relatively) expensive. If you want to collect metrics at high +resolutions, and/or over a large number of containers (think 1000 +containers on a single host), you do not want to fork a new process each +time. + +Here is how to collect metrics from a single process. You will have to +write your metric collector in C (or any language that lets you do +low-level system calls). You need to use a special system call, +`setns()`, which lets the current process enter any +arbitrary namespace. It requires, however, an open file descriptor to +the namespace pseudo-file (remember: that's the pseudo-file in +`/proc//ns/net`). + +However, there is a catch: you must not keep this file descriptor open. +If you do, when the last process of the control group exits, the +namespace will not be destroyed, and its network resources (like the +virtual interface of the container) will stay around for ever (or until +you close that file descriptor). + +The right approach would be to keep track of the first PID of each +container, and re-open the namespace pseudo-file each time. + +## Collecting metrics when a container exits + +Sometimes, you do not care about real time metric collection, but when a +container exits, you want to know how much CPU, memory, etc. it has +used. + +Docker makes this difficult because it relies on `lxc-start`, which +carefully cleans up after itself, but it is still possible. It is +usually easier to collect metrics at regular intervals (e.g., every +minute, with the collectd LXC plugin) and rely on that instead. + +But, if you'd still like to gather the stats when a container stops, +here is how: + +For each container, start a collection process, and move it to the +control groups that you want to monitor by writing its PID to the tasks +file of the cgroup. The collection process should periodically re-read +the tasks file to check if it's the last process of the control group. +(If you also want to collect network statistics as explained in the +previous section, you should also move the process to the appropriate +network namespace.) + +When the container exits, `lxc-start` will try to +delete the control groups. It will fail, since the control group is +still in use; but that's fine. You process should now detect that it is +the only one remaining in the group. Now is the right time to collect +all the metrics you need! + +Finally, your process should move itself back to the root control group, +and remove the container control group. To remove a control group, just +`rmdir` its directory. It's counter-intuitive to +`rmdir` a directory as it still contains files; but +remember that this is a pseudo-filesystem, so usual rules don't apply. +After the cleanup is done, the collection process can exit safely. diff --git a/articles/runmetrics/index.html b/articles/runmetrics/index.html new file mode 100644 index 0000000000..13daf8b1ad --- /dev/null +++ b/articles/runmetrics/index.html @@ -0,0 +1,1254 @@ + + + + + + + + + + + + + + + + + + + + + + + + Runtime metrics - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Runtime Metrics

+

Linux Containers rely on control groups +which not only track groups of processes, but also expose metrics about +CPU, memory, and block I/O usage. You can access those metrics and +obtain network usage metrics as well. This is relevant for "pure" LXC +containers, as well as for Docker containers.

+

Control Groups

+

Control groups are exposed through a pseudo-filesystem. In recent +distros, you should find this filesystem under /sys/fs/cgroup. Under +that directory, you will see multiple sub-directories, called devices, +freezer, blkio, etc.; each sub-directory actually corresponds to a different +cgroup hierarchy.

+

On older systems, the control groups might be mounted on /cgroup, without +distinct hierarchies. In that case, instead of seeing the sub-directories, +you will see a bunch of files in that directory, and possibly some directories +corresponding to existing containers.

+

To figure out where your control groups are mounted, you can run:

+
$ grep cgroup /proc/mounts
+
+

Enumerating Cgroups

+

You can look into /proc/cgroups to see the different control group subsystems +known to the system, the hierarchy they belong to, and how many groups they contain.

+

You can also look at /proc/<pid>/cgroup to see which control groups a process +belongs to. The control group will be shown as a path relative to the root of +the hierarchy mountpoint; e.g., / means “this process has not been assigned into +a particular group”, while /lxc/pumpkin means that the process is likely to be +a member of a container named pumpkin.

+

Finding the Cgroup for a Given Container

+

For each container, one cgroup will be created in each hierarchy. On +older systems with older versions of the LXC userland tools, the name of +the cgroup will be the name of the container. With more recent versions +of the LXC tools, the cgroup will be lxc/<container_name>.

+

For Docker containers using cgroups, the container name will be the full +ID or long ID of the container. If a container shows up as ae836c95b4c3 +in docker ps, its long ID might be something like +ae836c95b4c3c9e9179e0e91015512da89fdec91612f63cebae57df9a5444c79. You can +look it up with docker inspect or docker ps --no-trunc.

+

Putting everything together to look at the memory metrics for a Docker +container, take a look at /sys/fs/cgroup/memory/lxc/<longid>/.

+

Metrics from Cgroups: Memory, CPU, Block IO

+

For each subsystem (memory, CPU, and block I/O), you will find one or +more pseudo-files containing statistics.

+

Memory Metrics: memory.stat

+

Memory metrics are found in the "memory" cgroup. Note that the memory +control group adds a little overhead, because it does very fine-grained +accounting of the memory usage on your host. Therefore, many distros +chose to not enable it by default. Generally, to enable it, all you have +to do is to add some kernel command-line parameters: +cgroup_enable=memory swapaccount=1.

+

The metrics are in the pseudo-file memory.stat. +Here is what it will look like:

+
cache 11492564992
+rss 1930993664
+mapped_file 306728960
+pgpgin 406632648
+pgpgout 403355412
+swap 0
+pgfault 728281223
+pgmajfault 1724
+inactive_anon 46608384
+active_anon 1884520448
+inactive_file 7003344896
+active_file 4489052160
+unevictable 32768
+hierarchical_memory_limit 9223372036854775807
+hierarchical_memsw_limit 9223372036854775807
+total_cache 11492564992
+total_rss 1930993664
+total_mapped_file 306728960
+total_pgpgin 406632648
+total_pgpgout 403355412
+total_swap 0
+total_pgfault 728281223
+total_pgmajfault 1724
+total_inactive_anon 46608384
+total_active_anon 1884520448
+total_inactive_file 7003344896
+total_active_file 4489052160
+total_unevictable 32768
+
+

The first half (without the total_ prefix) contains statistics relevant +to the processes within the cgroup, excluding sub-cgroups. The second half +(with the total_ prefix) includes sub-cgroups as well.

+

Some metrics are "gauges", i.e., values that can increase or decrease +(e.g., swap, the amount of swap space used by the members of the cgroup). +Some others are "counters", i.e., values that can only go up, because +they represent occurrences of a specific event (e.g., pgfault, which +indicates the number of page faults which happened since the creation of +the cgroup; this number can never decrease).

+
    +
  • +

    cache:
    + the amount of memory used by the processes of this control group + that can be associated precisely with a block on a block device. + When you read from and write to files on disk, this amount will + increase. This will be the case if you use "conventional" I/O + (open, read, + write syscalls) as well as mapped files (with + mmap). It also accounts for the memory used by + tmpfs mounts, though the reasons are unclear.

    +
  • +
  • +

    rss:
    + the amount of memory that doesn't correspond to anything on disk: + stacks, heaps, and anonymous memory maps.

    +
  • +
  • +

    mapped_file:
    + indicates the amount of memory mapped by the processes in the + control group. It doesn't give you information about how much + memory is used; it rather tells you how it is used.

    +
  • +
  • +

    pgfault and pgmajfault:
    + indicate the number of times that a process of the cgroup triggered + a "page fault" and a "major fault", respectively. A page fault + happens when a process accesses a part of its virtual memory space + which is nonexistent or protected. The former can happen if the + process is buggy and tries to access an invalid address (it will + then be sent a SIGSEGV signal, typically + killing it with the famous Segmentation fault + message). The latter can happen when the process reads from a memory + zone which has been swapped out, or which corresponds to a mapped + file: in that case, the kernel will load the page from disk, and let + the CPU complete the memory access. It can also happen when the + process writes to a copy-on-write memory zone: likewise, the kernel + will preempt the process, duplicate the memory page, and resume the + write operation on the process` own copy of the page. "Major" faults + happen when the kernel actually has to read the data from disk. When + it just has to duplicate an existing page, or allocate an empty + page, it's a regular (or "minor") fault.

    +
  • +
  • +

    swap:
    + the amount of swap currently used by the processes in this cgroup.

    +
  • +
  • +

    active_anon and inactive_anon:
    + the amount of anonymous memory that has been identified has + respectively active and inactive by the kernel. "Anonymous" + memory is the memory that is not linked to disk pages. In other + words, that's the equivalent of the rss counter described above. In + fact, the very definition of the rss counter is active_anon + + inactive_anon - tmpfs (where tmpfs is the amount of memory + used up by tmpfs filesystems mounted by this + control group). Now, what's the difference between "active" and + "inactive"? Pages are initially "active"; and at regular intervals, + the kernel sweeps over the memory, and tags some pages as + "inactive". Whenever they are accessed again, they are immediately + retagged "active". When the kernel is almost out of memory, and time + comes to swap out to disk, the kernel will swap "inactive" pages.

    +
  • +
  • +

    active_file and inactive_file:
    + cache memory, with active and inactive similar to the anon + memory above. The exact formula is cache = active_file + + inactive_file + tmpfs. The exact rules used by the kernel + to move memory pages between active and inactive sets are different + from the ones used for anonymous memory, but the general principle + is the same. Note that when the kernel needs to reclaim memory, it + is cheaper to reclaim a clean (=non modified) page from this pool, + since it can be reclaimed immediately (while anonymous pages and + dirty/modified pages have to be written to disk first).

    +
  • +
  • +

    unevictable:
    + the amount of memory that cannot be reclaimed; generally, it will + account for memory that has been "locked" with mlock. + It is often used by crypto frameworks to make sure that + secret keys and other sensitive material never gets swapped out to + disk.

    +
  • +
  • +

    memory and memsw limits:
    + These are not really metrics, but a reminder of the limits applied + to this cgroup. The first one indicates the maximum amount of + physical memory that can be used by the processes of this control + group; the second one indicates the maximum amount of RAM+swap.

    +
  • +
+

Accounting for memory in the page cache is very complex. If two +processes in different control groups both read the same file +(ultimately relying on the same blocks on disk), the corresponding +memory charge will be split between the control groups. It's nice, but +it also means that when a cgroup is terminated, it could increase the +memory usage of another cgroup, because they are not splitting the cost +anymore for those memory pages.

+

CPU metrics: cpuacct.stat

+

Now that we've covered memory metrics, everything else will look very +simple in comparison. CPU metrics will be found in the +cpuacct controller.

+

For each container, you will find a pseudo-file cpuacct.stat, +containing the CPU usage accumulated by the processes of the container, +broken down between user and system time. If you're not familiar +with the distinction, user is the time during which the processes were +in direct control of the CPU (i.e., executing process code), and system +is the time during which the CPU was executing system calls on behalf of +those processes.

+

Those times are expressed in ticks of 1/100th of a second. Actually, +they are expressed in "user jiffies". There are USER_HZ +"jiffies" per second, and on x86 systems, +USER_HZ is 100. This used to map exactly to the +number of scheduler "ticks" per second; but with the advent of higher +frequency scheduling, as well as tickless kernels, the number of kernel ticks +wasn't relevant anymore. It stuck around anyway, mainly for legacy and +compatibility reasons.

+

Block I/O metrics

+

Block I/O is accounted in the blkio controller. +Different metrics are scattered across different files. While you can +find in-depth details in the blkio-controller +file in the kernel documentation, here is a short list of the most +relevant ones:

+
    +
  • +

    blkio.sectors:
    + contain the number of 512-bytes sectors read and written by the + processes member of the cgroup, device by device. Reads and writes + are merged in a single counter.

    +
  • +
  • +

    blkio.io_service_bytes:
    + indicates the number of bytes read and written by the cgroup. It has + 4 counters per device, because for each device, it differentiates + between synchronous vs. asynchronous I/O, and reads vs. writes.

    +
  • +
  • +

    blkio.io_serviced:
    + the number of I/O operations performed, regardless of their size. It + also has 4 counters per device.

    +
  • +
  • +

    blkio.io_queued:
    + indicates the number of I/O operations currently queued for this + cgroup. In other words, if the cgroup isn't doing any I/O, this will + be zero. Note that the opposite is not true. In other words, if + there is no I/O queued, it does not mean that the cgroup is idle + (I/O-wise). It could be doing purely synchronous reads on an + otherwise quiescent device, which is therefore able to handle them + immediately, without queuing. Also, while it is helpful to figure + out which cgroup is putting stress on the I/O subsystem, keep in + mind that is is a relative quantity. Even if a process group does + not perform more I/O, its queue size can increase just because the + device load increases because of other devices.

    +
  • +
+

Network Metrics

+

Network metrics are not exposed directly by control groups. There is a +good explanation for that: network interfaces exist within the context +of network namespaces. The kernel could probably accumulate metrics +about packets and bytes sent and received by a group of processes, but +those metrics wouldn't be very useful. You want per-interface metrics +(because traffic happening on the local lo +interface doesn't really count). But since processes in a single cgroup +can belong to multiple network namespaces, those metrics would be harder +to interpret: multiple network namespaces means multiple lo +interfaces, potentially multiple eth0 +interfaces, etc.; so this is why there is no easy way to gather network +metrics with control groups.

+

Instead we can gather network metrics from other sources:

+

IPtables

+

IPtables (or rather, the netfilter framework for which iptables is just +an interface) can do some serious accounting.

+

For instance, you can setup a rule to account for the outbound HTTP +traffic on a web server:

+
$ iptables -I OUTPUT -p tcp --sport 80
+
+

There is no -j or -g flag, +so the rule will just count matched packets and go to the following +rule.

+

Later, you can check the values of the counters, with:

+
$ iptables -nxvL OUTPUT
+
+

Technically, -n is not required, but it will +prevent iptables from doing DNS reverse lookups, which are probably +useless in this scenario.

+

Counters include packets and bytes. If you want to setup metrics for +container traffic like this, you could execute a for +loop to add two iptables rules per +container IP address (one in each direction), in the FORWARD +chain. This will only meter traffic going through the NAT +layer; you will also have to add traffic going through the userland +proxy.

+

Then, you will need to check those counters on a regular basis. If you +happen to use collectd, there is a nice plugin +to automate iptables counters collection.

+

Interface-level counters

+

Since each container has a virtual Ethernet interface, you might want to +check directly the TX and RX counters of this interface. You will notice +that each container is associated to a virtual Ethernet interface in +your host, with a name like vethKk8Zqi. Figuring +out which interface corresponds to which container is, unfortunately, +difficult.

+

But for now, the best way is to check the metrics from within the +containers. To accomplish this, you can run an executable from the host +environment within the network namespace of a container using ip-netns +magic.

+

The ip-netns exec command will let you execute any +program (present in the host system) within any network namespace +visible to the current process. This means that your host will be able +to enter the network namespace of your containers, but your containers +won't be able to access the host, nor their sibling containers. +Containers will be able to “see” and affect their sub-containers, +though.

+

The exact format of the command is:

+
$ ip netns exec <nsname> <command...>
+
+

For example:

+
$ ip netns exec mycontainer netstat -i
+
+

ip netns finds the "mycontainer" container by +using namespaces pseudo-files. Each process belongs to one network +namespace, one PID namespace, one mnt namespace, +etc., and those namespaces are materialized under +/proc/<pid>/ns/. For example, the network +namespace of PID 42 is materialized by the pseudo-file +/proc/42/ns/net.

+

When you run ip netns exec mycontainer ..., it +expects /var/run/netns/mycontainer to be one of +those pseudo-files. (Symlinks are accepted.)

+

In other words, to execute a command within the network namespace of a +container, we need to:

+
    +
  • Find out the PID of any process within the container that we want to investigate;
  • +
  • Create a symlink from /var/run/netns/<somename> to /proc/<thepid>/ns/net
  • +
  • Execute ip netns exec <somename> ....
  • +
+

Please review Enumerating Cgroups to learn how to find +the cgroup of a process running in the container of which you want to +measure network usage. From there, you can examine the pseudo-file named +tasks, which contains the PIDs that are in the +control group (i.e., in the container). Pick any one of them.

+

Putting everything together, if the "short ID" of a container is held in +the environment variable $CID, then you can do this:

+
$ TASKS=/sys/fs/cgroup/devices/$CID*/tasks
+$ PID=$(head -n 1 $TASKS)
+$ mkdir -p /var/run/netns
+$ ln -sf /proc/$PID/ns/net /var/run/netns/$CID
+$ ip netns exec $CID netstat -i
+
+

Tips for high-performance metric collection

+

Note that running a new process each time you want to update metrics is +(relatively) expensive. If you want to collect metrics at high +resolutions, and/or over a large number of containers (think 1000 +containers on a single host), you do not want to fork a new process each +time.

+

Here is how to collect metrics from a single process. You will have to +write your metric collector in C (or any language that lets you do +low-level system calls). You need to use a special system call, +setns(), which lets the current process enter any +arbitrary namespace. It requires, however, an open file descriptor to +the namespace pseudo-file (remember: that's the pseudo-file in +/proc/<pid>/ns/net).

+

However, there is a catch: you must not keep this file descriptor open. +If you do, when the last process of the control group exits, the +namespace will not be destroyed, and its network resources (like the +virtual interface of the container) will stay around for ever (or until +you close that file descriptor).

+

The right approach would be to keep track of the first PID of each +container, and re-open the namespace pseudo-file each time.

+

Collecting metrics when a container exits

+

Sometimes, you do not care about real time metric collection, but when a +container exits, you want to know how much CPU, memory, etc. it has +used.

+

Docker makes this difficult because it relies on lxc-start, which +carefully cleans up after itself, but it is still possible. It is +usually easier to collect metrics at regular intervals (e.g., every +minute, with the collectd LXC plugin) and rely on that instead.

+

But, if you'd still like to gather the stats when a container stops, +here is how:

+

For each container, start a collection process, and move it to the +control groups that you want to monitor by writing its PID to the tasks +file of the cgroup. The collection process should periodically re-read +the tasks file to check if it's the last process of the control group. +(If you also want to collect network statistics as explained in the +previous section, you should also move the process to the appropriate +network namespace.)

+

When the container exits, lxc-start will try to +delete the control groups. It will fail, since the control group is +still in use; but that's fine. You process should now detect that it is +the only one remaining in the group. Now is the right time to collect +all the metrics you need!

+

Finally, your process should move itself back to the root control group, +and remove the container control group. To remove a control group, just +rmdir its directory. It's counter-intuitive to +rmdir a directory as it still contains files; but +remember that this is a pseudo-filesystem, so usual rules don't apply. +After the cleanup is done, the collection process can exit safely.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/security.md~ b/articles/security.md~ new file mode 100644 index 0000000000..a26f79cf9b --- /dev/null +++ b/articles/security.md~ @@ -0,0 +1,276 @@ +page_title: Docker Security +page_description: Review of the Docker Daemon attack surface +page_keywords: Docker, Docker documentation, security + +# Docker Security + +There are three major areas to consider when reviewing Docker security: + + - the intrinsic security of the kernel and its support for + namespaces and cgroups; + - the attack surface of the Docker daemon itself; + - loopholes in the container configuration profile, either by default, + or when customized by users. + - the "hardening" security features of the kernel and how they + interact with containers. + +## Kernel Namespaces + +Docker containers are very similar to LXC containers, and they have +similar security features. When you start a container with `docker +run`, behind the scenes Docker creates a set of namespaces and control +groups for the container. + +**Namespaces provide the first and most straightforward form of +isolation**: processes running within a container cannot see, and even +less affect, processes running in another container, or in the host +system. + +**Each container also gets its own network stack**, meaning that a +container doesn't get privileged access to the sockets or interfaces +of another container. Of course, if the host system is setup +accordingly, containers can interact with each other through their +respective network interfaces — just like they can interact with +external hosts. When you specify public ports for your containers or use +[*links*](/userguide/dockerlinks) +then IP traffic is allowed between containers. They can ping each other, +send/receive UDP packets, and establish TCP connections, but that can be +restricted if necessary. From a network architecture point of view, all +containers on a given Docker host are sitting on bridge interfaces. This +means that they are just like physical machines connected through a +common Ethernet switch; no more, no less. + +How mature is the code providing kernel namespaces and private +networking? Kernel namespaces were introduced [between kernel version +2.6.15 and +2.6.26](http://lxc.sourceforge.net/index.php/about/kernel-namespaces/). +This means that since July 2008 (date of the 2.6.26 release, now 5 years +ago), namespace code has been exercised and scrutinized on a large +number of production systems. And there is more: the design and +inspiration for the namespaces code are even older. Namespaces are +actually an effort to reimplement the features of [OpenVZ]( +http://en.wikipedia.org/wiki/OpenVZ) in such a way that they could be +merged within the mainstream kernel. And OpenVZ was initially released +in 2005, so both the design and the implementation are pretty mature. + +## Control Groups + +Control Groups are another key component of Linux Containers. They +implement resource accounting and limiting. They provide many +useful metrics, but they also help ensure that each container gets +its fair share of memory, CPU, disk I/O; and, more importantly, that a +single container cannot bring the system down by exhausting one of those +resources. + +So while they do not play a role in preventing one container from +accessing or affecting the data and processes of another container, they +are essential to fend off some denial-of-service attacks. They are +particularly important on multi-tenant platforms, like public and +private PaaS, to guarantee a consistent uptime (and performance) even +when some applications start to misbehave. + +Control Groups have been around for a while as well: the code was +started in 2006, and initially merged in kernel 2.6.24. + +## Docker Daemon Attack Surface + +Running containers (and applications) with Docker implies running the +Docker daemon. This daemon currently requires `root` privileges, and you +should therefore be aware of some important details. + +First of all, **only trusted users should be allowed to control your +Docker daemon**. This is a direct consequence of some powerful Docker +features. Specifically, Docker allows you to share a directory between +the Docker host and a guest container; and it allows you to do so +without limiting the access rights of the container. This means that you +can start a container where the `/host` directory will be the `/` directory +on your host; and the container will be able to alter your host filesystem +without any restriction. This is similar to how virtualization systems +allow filesystem resource sharing. Nothing prevents you from sharing your +root filesystem (or even your root block device) with a virtual machine. + +This has a strong security implication: for example, if you instrument Docker +from a web server to provision containers through an API, you should be +even more careful than usual with parameter checking, to make sure that +a malicious user cannot pass crafted parameters causing Docker to create +arbitrary containers. + +For this reason, the REST API endpoint (used by the Docker CLI to +communicate with the Docker daemon) changed in Docker 0.5.2, and now +uses a UNIX socket instead of a TCP socket bound on 127.0.0.1 (the +latter being prone to cross-site-scripting attacks if you happen to run +Docker directly on your local machine, outside of a VM). You can then +use traditional UNIX permission checks to limit access to the control +socket. + +You can also expose the REST API over HTTP if you explicitly decide so. +However, if you do that, being aware of the above mentioned security +implication, you should ensure that it will be reachable only from a +trusted network or VPN; or protected with e.g., `stunnel` and client SSL +certificates. You can also secure them with [HTTPS and +certificates](/articles/https/). + +The daemon is also potentially vulnerable to other inputs, such as image +loading from either disk with 'docker load', or from the network with +'docker pull'. This has been a focus of improvement in the community, +especially for 'pull' security. While these overlap, it should be noted +that 'docker load' is a mechanism for backup and restore and is not +currently considered a secure mechanism for loading images. As of +Docker 1.3.2, images are now extracted in a chrooted subprocess on +Linux/Unix platforms, being the first-step in a wider effort toward +privilege separation. + +Eventually, it is expected that the Docker daemon will run restricted +privileges, delegating operations well-audited sub-processes, +each with its own (very limited) scope of Linux capabilities, +virtual network setup, filesystem management, etc. That is, most likely, +pieces of the Docker engine itself will run inside of containers. + +Finally, if you run Docker on a server, it is recommended to run +exclusively Docker in the server, and move all other services within +containers controlled by Docker. Of course, it is fine to keep your +favorite admin tools (probably at least an SSH server), as well as +existing monitoring/supervision processes (e.g., NRPE, collectd, etc). + +## Linux Kernel Capabilities + +By default, Docker starts containers with a restricted set of +capabilities. What does that mean? + +Capabilities turn the binary "root/non-root" dichotomy into a +fine-grained access control system. Processes (like web servers) that +just need to bind on a port below 1024 do not have to run as root: they +can just be granted the `net_bind_service` capability instead. And there +are many other capabilities, for almost all the specific areas where root +privileges are usually needed. + +This means a lot for container security; let's see why! + +Your average server (bare metal or virtual machine) needs to run a bunch +of processes as root. Those typically include SSH, cron, syslogd; +hardware management tools (e.g., load modules), network configuration +tools (e.g., to handle DHCP, WPA, or VPNs), and much more. A container is +very different, because almost all of those tasks are handled by the +infrastructure around the container: + + - SSH access will typically be managed by a single server running on + the Docker host; + - `cron`, when necessary, should run as a user + process, dedicated and tailored for the app that needs its + scheduling service, rather than as a platform-wide facility; + - log management will also typically be handed to Docker, or by + third-party services like Loggly or Splunk; + - hardware management is irrelevant, meaning that you never need to + run `udevd` or equivalent daemons within + containers; + - network management happens outside of the containers, enforcing + separation of concerns as much as possible, meaning that a container + should never need to perform `ifconfig`, + `route`, or ip commands (except when a container + is specifically engineered to behave like a router or firewall, of + course). + +This means that in most cases, containers will not need "real" root +privileges *at all*. And therefore, containers can run with a reduced +capability set; meaning that "root" within a container has much less +privileges than the real "root". For instance, it is possible to: + + - deny all "mount" operations; + - deny access to raw sockets (to prevent packet spoofing); + - deny access to some filesystem operations, like creating new device + nodes, changing the owner of files, or altering attributes (including + the immutable flag); + - deny module loading; + - and many others. + +This means that even if an intruder manages to escalate to root within a +container, it will be much harder to do serious damage, or to escalate +to the host. + +This won't affect regular web apps; but malicious users will find that +the arsenal at their disposal has shrunk considerably! By default Docker +drops all capabilities except [those +needed](https://github.com/docker/docker/blob/master/daemon/execdriver/native/template/default_template.go), +a whitelist instead of a blacklist approach. You can see a full list of +available capabilities in [Linux +manpages](http://man7.org/linux/man-pages/man7/capabilities.7.html). + +One primary risk with running Docker containers is that the default set +of capabilities and mounts given to a container may provide incomplete +isolation, either independently, or when used in combination with +kernel vulnerabilities. + +Docker supports the addition and removal of capabilities, allowing use +of a non-default profile. This may make Docker more secure through +capability removal, or less secure through the addition of capabilities. +The best practice for users would be to remove all capabilities except +those explicitly required for their processes. + +## Other Kernel Security Features + +Capabilities are just one of the many security features provided by +modern Linux kernels. It is also possible to leverage existing, +well-known systems like TOMOYO, AppArmor, SELinux, GRSEC, etc. with +Docker. + +While Docker currently only enables capabilities, it doesn't interfere +with the other systems. This means that there are many different ways to +harden a Docker host. Here are a few examples. + + - You can run a kernel with GRSEC and PAX. This will add many safety + checks, both at compile-time and run-time; it will also defeat many + exploits, thanks to techniques like address randomization. It doesn't + require Docker-specific configuration, since those security features + apply system-wide, independent of containers. + - If your distribution comes with security model templates for + Docker containers, you can use them out of the box. For instance, we + ship a template that works with AppArmor and Red Hat comes with SELinux + policies for Docker. These templates provide an extra safety net (even + though it overlaps greatly with capabilities). + - You can define your own policies using your favorite access control + mechanism. + +Just like there are many third-party tools to augment Docker containers +with e.g., special network topologies or shared filesystems, you can +expect to see tools to harden existing Docker containers without +affecting Docker's core. + +Recent improvements in Linux namespaces will soon allow to run +full-featured containers without root privileges, thanks to the new user +namespace. This is covered in detail [here]( +http://s3hh.wordpress.com/2013/07/19/creating-and-using-containers-without-privilege/). +Moreover, this will solve the problem caused by sharing filesystems +between host and guest, since the user namespace allows users within +containers (including the root user) to be mapped to other users in the +host system. + +Today, Docker does not directly support user namespaces, but they +may still be utilized by Docker containers on supported kernels, +by directly using the clone syscall, or utilizing the 'unshare' +utility. Using this, some users may find it possible to drop +more capabilities from their process as user namespaces provide +an artifical capabilities set. Likewise, however, this artifical +capabilities set may require use of 'capsh' to restrict the +user-namespace capabilities set when using 'unshare'. + +Eventually, it is expected that Docker will direct, native support +for user-namespaces, simplifying the process of hardening containers. + +## Conclusions + +Docker containers are, by default, quite secure; especially if you take +care of running your processes inside the containers as non-privileged +users (i.e., non-`root`). + +You can add an extra layer of safety by enabling Apparmor, SELinux, +GRSEC, or your favorite hardening solution. + +Last but not least, if you see interesting security features in other +containerization systems, these are simply kernels features that may +be implemented in Docker as well. We welcome users to submit issues, +pull requests, and communicate via the mailing list. + +References: +* [Docker Containers: How Secure Are They? (2013)]( +http://blog.docker.com/2013/08/containers-docker-how-secure-are-they/). +* [On the Security of Containers (2014)](https://medium.com/@ewindisch/on-the-security-of-containers-2c60ffe25a9e). diff --git a/articles/security/index.html b/articles/security/index.html new file mode 100644 index 0000000000..ebff630cad --- /dev/null +++ b/articles/security/index.html @@ -0,0 +1,1083 @@ + + + + + + + + + + + + + + + + + + + + + + + + Security - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Docker Security

+

There are three major areas to consider when reviewing Docker security:

+
    +
  • the intrinsic security of the kernel and its support for + namespaces and cgroups;
  • +
  • the attack surface of the Docker daemon itself;
  • +
  • loopholes in the container configuration profile, either by default, + or when customized by users.
  • +
  • the "hardening" security features of the kernel and how they + interact with containers.
  • +
+

Kernel Namespaces

+

Docker containers are very similar to LXC containers, and they have +similar security features. When you start a container with docker +run, behind the scenes Docker creates a set of namespaces and control +groups for the container.

+

Namespaces provide the first and most straightforward form of +isolation: processes running within a container cannot see, and even +less affect, processes running in another container, or in the host +system.

+

Each container also gets its own network stack, meaning that a +container doesn't get privileged access to the sockets or interfaces +of another container. Of course, if the host system is setup +accordingly, containers can interact with each other through their +respective network interfaces — just like they can interact with +external hosts. When you specify public ports for your containers or use +links +then IP traffic is allowed between containers. They can ping each other, +send/receive UDP packets, and establish TCP connections, but that can be +restricted if necessary. From a network architecture point of view, all +containers on a given Docker host are sitting on bridge interfaces. This +means that they are just like physical machines connected through a +common Ethernet switch; no more, no less.

+

How mature is the code providing kernel namespaces and private +networking? Kernel namespaces were introduced between kernel version +2.6.15 and +2.6.26. +This means that since July 2008 (date of the 2.6.26 release, now 5 years +ago), namespace code has been exercised and scrutinized on a large +number of production systems. And there is more: the design and +inspiration for the namespaces code are even older. Namespaces are +actually an effort to reimplement the features of OpenVZ in such a way that they could be +merged within the mainstream kernel. And OpenVZ was initially released +in 2005, so both the design and the implementation are pretty mature.

+

Control Groups

+

Control Groups are another key component of Linux Containers. They +implement resource accounting and limiting. They provide many +useful metrics, but they also help ensure that each container gets +its fair share of memory, CPU, disk I/O; and, more importantly, that a +single container cannot bring the system down by exhausting one of those +resources.

+

So while they do not play a role in preventing one container from +accessing or affecting the data and processes of another container, they +are essential to fend off some denial-of-service attacks. They are +particularly important on multi-tenant platforms, like public and +private PaaS, to guarantee a consistent uptime (and performance) even +when some applications start to misbehave.

+

Control Groups have been around for a while as well: the code was +started in 2006, and initially merged in kernel 2.6.24.

+

Docker Daemon Attack Surface

+

Running containers (and applications) with Docker implies running the +Docker daemon. This daemon currently requires root privileges, and you +should therefore be aware of some important details.

+

First of all, only trusted users should be allowed to control your +Docker daemon. This is a direct consequence of some powerful Docker +features. Specifically, Docker allows you to share a directory between +the Docker host and a guest container; and it allows you to do so +without limiting the access rights of the container. This means that you +can start a container where the /host directory will be the / directory +on your host; and the container will be able to alter your host filesystem +without any restriction. This is similar to how virtualization systems +allow filesystem resource sharing. Nothing prevents you from sharing your +root filesystem (or even your root block device) with a virtual machine.

+

This has a strong security implication: for example, if you instrument Docker +from a web server to provision containers through an API, you should be +even more careful than usual with parameter checking, to make sure that +a malicious user cannot pass crafted parameters causing Docker to create +arbitrary containers.

+

For this reason, the REST API endpoint (used by the Docker CLI to +communicate with the Docker daemon) changed in Docker 0.5.2, and now +uses a UNIX socket instead of a TCP socket bound on 127.0.0.1 (the +latter being prone to cross-site-scripting attacks if you happen to run +Docker directly on your local machine, outside of a VM). You can then +use traditional UNIX permission checks to limit access to the control +socket.

+

You can also expose the REST API over HTTP if you explicitly decide so. +However, if you do that, being aware of the above mentioned security +implication, you should ensure that it will be reachable only from a +trusted network or VPN; or protected with e.g., stunnel and client SSL +certificates. You can also secure them with HTTPS and +certificates.

+

The daemon is also potentially vulnerable to other inputs, such as image +loading from either disk with 'docker load', or from the network with +'docker pull'. This has been a focus of improvement in the community, +especially for 'pull' security. While these overlap, it should be noted +that 'docker load' is a mechanism for backup and restore and is not +currently considered a secure mechanism for loading images. As of +Docker 1.3.2, images are now extracted in a chrooted subprocess on +Linux/Unix platforms, being the first-step in a wider effort toward +privilege separation.

+

Eventually, it is expected that the Docker daemon will run restricted +privileges, delegating operations well-audited sub-processes, +each with its own (very limited) scope of Linux capabilities, +virtual network setup, filesystem management, etc. That is, most likely, +pieces of the Docker engine itself will run inside of containers.

+

Finally, if you run Docker on a server, it is recommended to run +exclusively Docker in the server, and move all other services within +containers controlled by Docker. Of course, it is fine to keep your +favorite admin tools (probably at least an SSH server), as well as +existing monitoring/supervision processes (e.g., NRPE, collectd, etc).

+

Linux Kernel Capabilities

+

By default, Docker starts containers with a restricted set of +capabilities. What does that mean?

+

Capabilities turn the binary "root/non-root" dichotomy into a +fine-grained access control system. Processes (like web servers) that +just need to bind on a port below 1024 do not have to run as root: they +can just be granted the net_bind_service capability instead. And there +are many other capabilities, for almost all the specific areas where root +privileges are usually needed.

+

This means a lot for container security; let's see why!

+

Your average server (bare metal or virtual machine) needs to run a bunch +of processes as root. Those typically include SSH, cron, syslogd; +hardware management tools (e.g., load modules), network configuration +tools (e.g., to handle DHCP, WPA, or VPNs), and much more. A container is +very different, because almost all of those tasks are handled by the +infrastructure around the container:

+
    +
  • SSH access will typically be managed by a single server running on + the Docker host;
  • +
  • cron, when necessary, should run as a user + process, dedicated and tailored for the app that needs its + scheduling service, rather than as a platform-wide facility;
  • +
  • log management will also typically be handed to Docker, or by + third-party services like Loggly or Splunk;
  • +
  • hardware management is irrelevant, meaning that you never need to + run udevd or equivalent daemons within + containers;
  • +
  • network management happens outside of the containers, enforcing + separation of concerns as much as possible, meaning that a container + should never need to perform ifconfig, + route, or ip commands (except when a container + is specifically engineered to behave like a router or firewall, of + course).
  • +
+

This means that in most cases, containers will not need "real" root +privileges at all. And therefore, containers can run with a reduced +capability set; meaning that "root" within a container has much less +privileges than the real "root". For instance, it is possible to:

+
    +
  • deny all "mount" operations;
  • +
  • deny access to raw sockets (to prevent packet spoofing);
  • +
  • deny access to some filesystem operations, like creating new device + nodes, changing the owner of files, or altering attributes (including + the immutable flag);
  • +
  • deny module loading;
  • +
  • and many others.
  • +
+

This means that even if an intruder manages to escalate to root within a +container, it will be much harder to do serious damage, or to escalate +to the host.

+

This won't affect regular web apps; but malicious users will find that +the arsenal at their disposal has shrunk considerably! By default Docker +drops all capabilities except those +needed, +a whitelist instead of a blacklist approach. You can see a full list of +available capabilities in Linux +manpages.

+

One primary risk with running Docker containers is that the default set +of capabilities and mounts given to a container may provide incomplete +isolation, either independently, or when used in combination with +kernel vulnerabilities.

+

Docker supports the addition and removal of capabilities, allowing use +of a non-default profile. This may make Docker more secure through +capability removal, or less secure through the addition of capabilities. +The best practice for users would be to remove all capabilities except +those explicitly required for their processes.

+

Other Kernel Security Features

+

Capabilities are just one of the many security features provided by +modern Linux kernels. It is also possible to leverage existing, +well-known systems like TOMOYO, AppArmor, SELinux, GRSEC, etc. with +Docker.

+

While Docker currently only enables capabilities, it doesn't interfere +with the other systems. This means that there are many different ways to +harden a Docker host. Here are a few examples.

+
    +
  • You can run a kernel with GRSEC and PAX. This will add many safety + checks, both at compile-time and run-time; it will also defeat many + exploits, thanks to techniques like address randomization. It doesn't + require Docker-specific configuration, since those security features + apply system-wide, independent of containers.
  • +
  • If your distribution comes with security model templates for + Docker containers, you can use them out of the box. For instance, we + ship a template that works with AppArmor and Red Hat comes with SELinux + policies for Docker. These templates provide an extra safety net (even + though it overlaps greatly with capabilities).
  • +
  • You can define your own policies using your favorite access control + mechanism.
  • +
+

Just like there are many third-party tools to augment Docker containers +with e.g., special network topologies or shared filesystems, you can +expect to see tools to harden existing Docker containers without +affecting Docker's core.

+

Recent improvements in Linux namespaces will soon allow to run +full-featured containers without root privileges, thanks to the new user +namespace. This is covered in detail here. +Moreover, this will solve the problem caused by sharing filesystems +between host and guest, since the user namespace allows users within +containers (including the root user) to be mapped to other users in the +host system.

+

Today, Docker does not directly support user namespaces, but they +may still be utilized by Docker containers on supported kernels, +by directly using the clone syscall, or utilizing the 'unshare' +utility. Using this, some users may find it possible to drop +more capabilities from their process as user namespaces provide +an artifical capabilities set. Likewise, however, this artifical +capabilities set may require use of 'capsh' to restrict the +user-namespace capabilities set when using 'unshare'.

+

Eventually, it is expected that Docker will direct, native support +for user-namespaces, simplifying the process of hardening containers.

+

Conclusions

+

Docker containers are, by default, quite secure; especially if you take +care of running your processes inside the containers as non-privileged +users (i.e., non-root).

+

You can add an extra layer of safety by enabling Apparmor, SELinux, +GRSEC, or your favorite hardening solution.

+

Last but not least, if you see interesting security features in other +containerization systems, these are simply kernels features that may +be implemented in Docker as well. We welcome users to submit issues, +pull requests, and communicate via the mailing list.

+

References: + Docker Containers: How Secure Are They? (2013). + On the Security of Containers (2014).

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/systemd.md~ b/articles/systemd.md~ new file mode 100644 index 0000000000..fddd146b07 --- /dev/null +++ b/articles/systemd.md~ @@ -0,0 +1,105 @@ +page_title: Controlling and configuring Docker using Systemd +page_description: Controlling and configuring Docker using Systemd +page_keywords: docker, daemon, systemd, configuration + +# Controlling and configuring Docker using Systemd + +Many Linux distributions use systemd to start the Docker daemon. This document +shows a few examples of how to customise Docker's settings. + +## Starting the Docker daemon + +Once Docker is installed, you will need to start the Docker daemon. + + $ sudo systemctl start docker + # or on older distributions, you may need to use + $ sudo service docker start + +If you want Docker to start at boot, you should also: + + $ sudo systemctl enable docker + # or on older distributions, you may need to use + $ sudo chkconfig docker on + +## Custom Docker daemon options + +There are a number of ways to configure the daemon flags and environment variables +for your Docker daemon. + +If the `docker.service` file is set to use an `EnvironmentFile` +(often pointing to `/etc/sysconfig/docker`) then you can modify the +referenced file. + +Or, you may need to edit the `docker.service` file, which can be in `/usr/lib/systemd/system` +or `/etc/systemd/service`. + +### Runtime directory and storage driver + +You may want to control the disk space used for Docker images, containers +and volumes by moving it to a separate partition. + +In this example, we'll assume that your `docker.service` file looks something like: + + [Unit] + Description=Docker Application Container Engine + Documentation=http://docs.docker.com + After=network.target docker.socket + Requires=docker.socket + + [Service] + Type=notify + EnvironmentFile=-/etc/sysconfig/docker + ExecStart=/usr/bin/docker -d -H fd:// $OPTIONS + LimitNOFILE=1048576 + LimitNPROC=1048576 + + [Install] + Also=docker.socket + +This will allow us to add extra flags to the `/etc/sysconfig/docker` file by +setting `OPTIONS`: + + OPTIONS="--graph /mnt/docker-data --storage-driver btrfs" + +You can also set other environment variables in this file, for example, the +`HTTP_PROXY` environment variables described below. + +### HTTP Proxy + +This example overrides the default `docker.service` file. + +If you are behind a HTTP proxy server, for example in corporate settings, +you will need to add this configuration in the Docker systemd service file. + +First, create a systemd drop-in directory for the docker service: + + mkdir /etc/systemd/system/docker.service.d + +Now create a file called `/etc/systemd/system/docker.service.d/http-proxy.conf` +that adds the `HTTP_PROXY` environment variable: + + [Service] + Environment="HTTP_PROXY=http://proxy.example.com:80/" + +If you have internal Docker registries that you need to contact without +proxying you can specify them via the `NO_PROXY` environment variable: + + Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com" + +Flush changes: + + $ sudo systemctl daemon-reload + +Restart Docker: + + $ sudo systemctl restart docker + +## Manually creating the systemd unit files + +When installing the binary without a package, you may want +to integrate Docker with systemd. For this, simply install the two unit files +(service and socket) from [the github +repository](https://github.com/docker/docker/tree/master/contrib/init/systemd) +to `/etc/systemd/system`. + + diff --git a/articles/systemd/index.html b/articles/systemd/index.html new file mode 100644 index 0000000000..7ffee10fa5 --- /dev/null +++ b/articles/systemd/index.html @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + Controlling and configuring Docker using Systemd - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Controlling and configuring Docker using Systemd

+

Many Linux distributions use systemd to start the Docker daemon. This document +shows a few examples of how to customise Docker's settings.

+

Starting the Docker daemon

+

Once Docker is installed, you will need to start the Docker daemon.

+
$ sudo systemctl start docker
+# or on older distributions, you may need to use
+$ sudo service docker start
+
+

If you want Docker to start at boot, you should also:

+
$ sudo systemctl enable docker
+# or on older distributions, you may need to use
+$ sudo chkconfig docker on
+
+

Custom Docker daemon options

+

There are a number of ways to configure the daemon flags and environment variables +for your Docker daemon.

+

If the docker.service file is set to use an EnvironmentFile +(often pointing to /etc/sysconfig/docker) then you can modify the +referenced file.

+

Or, you may need to edit the docker.service file, which can be in /usr/lib/systemd/system +or /etc/systemd/service.

+

Runtime directory and storage driver

+

You may want to control the disk space used for Docker images, containers +and volumes by moving it to a separate partition.

+

In this example, we'll assume that your docker.service file looks something like:

+
[Unit]
+Description=Docker Application Container Engine
+Documentation=http://docs.docker.com
+After=network.target docker.socket
+Requires=docker.socket
+
+[Service]
+Type=notify
+EnvironmentFile=-/etc/sysconfig/docker
+ExecStart=/usr/bin/docker -d -H fd:// $OPTIONS
+LimitNOFILE=1048576
+LimitNPROC=1048576
+
+[Install]
+Also=docker.socket
+
+

This will allow us to add extra flags to the /etc/sysconfig/docker file by +setting OPTIONS:

+
OPTIONS="--graph /mnt/docker-data --storage-driver btrfs"
+
+

You can also set other environment variables in this file, for example, the +HTTP_PROXY environment variables described below.

+

HTTP Proxy

+

This example overrides the default docker.service file.

+

If you are behind a HTTP proxy server, for example in corporate settings, +you will need to add this configuration in the Docker systemd service file.

+

First, create a systemd drop-in directory for the docker service:

+
mkdir /etc/systemd/system/docker.service.d
+
+

Now create a file called /etc/systemd/system/docker.service.d/http-proxy.conf +that adds the HTTP_PROXY environment variable:

+
[Service]
+Environment="HTTP_PROXY=http://proxy.example.com:80/"
+
+

If you have internal Docker registries that you need to contact without +proxying you can specify them via the NO_PROXY environment variable:

+
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"
+
+

Flush changes:

+
$ sudo systemctl daemon-reload
+
+

Restart Docker:

+
$ sudo systemctl restart docker
+
+

Manually creating the systemd unit files

+

When installing the binary without a package, you may want +to integrate Docker with systemd. For this, simply install the two unit files +(service and socket) from the github +repository +to /etc/systemd/system.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/articles/using_supervisord.md~ b/articles/using_supervisord.md~ new file mode 100644 index 0000000000..5806707ee6 --- /dev/null +++ b/articles/using_supervisord.md~ @@ -0,0 +1,112 @@ +page_title: Using Supervisor with Docker +page_description: How to use Supervisor process management with Docker +page_keywords: docker, supervisor, process management + +# Using Supervisor with Docker + +> **Note**: +> - **If you don't like sudo** then see [*Giving non-root +> access*](/installation/binaries/#giving-non-root-access) + +Traditionally a Docker container runs a single process when it is +launched, for example an Apache daemon or a SSH server daemon. Often +though you want to run more than one process in a container. There are a +number of ways you can achieve this ranging from using a simple Bash +script as the value of your container's `CMD` instruction to installing +a process management tool. + +In this example we're going to make use of the process management tool, +[Supervisor](http://supervisord.org/), to manage multiple processes in +our container. Using Supervisor allows us to better control, manage, and +restart the processes we want to run. To demonstrate this we're going to +install and manage both an SSH daemon and an Apache daemon. + +## Creating a Dockerfile + +Let's start by creating a basic `Dockerfile` for our +new image. + + FROM ubuntu:13.04 + MAINTAINER examples@docker.com + +## Installing Supervisor + +We can now install our SSH and Apache daemons as well as Supervisor in +our container. + + RUN apt-get update && apt-get install -y openssh-server apache2 supervisor + RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor + +Here we're installing the `openssh-server`, +`apache2` and `supervisor` +(which provides the Supervisor daemon) packages. We're also creating four +new directories that are needed to run our SSH daemon and Supervisor. + +## Adding Supervisor's configuration file + +Now let's add a configuration file for Supervisor. The default file is +called `supervisord.conf` and is located in +`/etc/supervisor/conf.d/`. + + COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf + +Let's see what is inside our `supervisord.conf` +file. + + [supervisord] + nodaemon=true + + [program:sshd] + command=/usr/sbin/sshd -D + + [program:apache2] + command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND" + +The `supervisord.conf` configuration file contains +directives that configure Supervisor and the processes it manages. The +first block `[supervisord]` provides configuration +for Supervisor itself. We're using one directive, `nodaemon` +which tells Supervisor to run interactively rather than +daemonize. + +The next two blocks manage the services we wish to control. Each block +controls a separate process. The blocks contain a single directive, +`command`, which specifies what command to run to +start each process. + +## Exposing ports and running Supervisor + +Now let's finish our `Dockerfile` by exposing some +required ports and specifying the `CMD` instruction +to start Supervisor when our container launches. + + EXPOSE 22 80 + CMD ["/usr/bin/supervisord"] + +Here We've exposed ports 22 and 80 on the container and we're running +the `/usr/bin/supervisord` binary when the container +launches. + +## Building our image + +We can now build our new image. + + $ sudo docker build -t /supervisord . + +## Running our Supervisor container + +Once We've got a built image we can launch a container from it. + + $ sudo docker run -p 22 -p 80 -t -i /supervisord + 2013-11-25 18:53:22,312 CRIT Supervisor running as root (no user in config file) + 2013-11-25 18:53:22,312 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing + 2013-11-25 18:53:22,342 INFO supervisord started with pid 1 + 2013-11-25 18:53:23,346 INFO spawned: 'sshd' with pid 6 + 2013-11-25 18:53:23,349 INFO spawned: 'apache2' with pid 7 + . . . + +We've launched a new container interactively using the `docker run` command. +That container has run Supervisor and launched the SSH and Apache daemons with +it. We've specified the `-p` flag to expose ports 22 and 80. From here we can +now identify the exposed ports and connect to one or both of the SSH and Apache +daemons. diff --git a/articles/using_supervisord/index.html b/articles/using_supervisord/index.html new file mode 100644 index 0000000000..c20220a089 --- /dev/null +++ b/articles/using_supervisord/index.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using Supervisor - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Using Supervisor with Docker

+
+

Note: +- If you don't like sudo then see Giving non-root + access

+
+

Traditionally a Docker container runs a single process when it is +launched, for example an Apache daemon or a SSH server daemon. Often +though you want to run more than one process in a container. There are a +number of ways you can achieve this ranging from using a simple Bash +script as the value of your container's CMD instruction to installing +a process management tool.

+

In this example we're going to make use of the process management tool, +Supervisor, to manage multiple processes in +our container. Using Supervisor allows us to better control, manage, and +restart the processes we want to run. To demonstrate this we're going to +install and manage both an SSH daemon and an Apache daemon.

+

Creating a Dockerfile

+

Let's start by creating a basic Dockerfile for our +new image.

+
FROM ubuntu:13.04
+MAINTAINER examples@docker.com
+
+

Installing Supervisor

+

We can now install our SSH and Apache daemons as well as Supervisor in +our container.

+
RUN apt-get update && apt-get install -y openssh-server apache2 supervisor
+RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor
+
+

Here we're installing the openssh-server, +apache2 and supervisor +(which provides the Supervisor daemon) packages. We're also creating four +new directories that are needed to run our SSH daemon and Supervisor.

+

Adding Supervisor's configuration file

+

Now let's add a configuration file for Supervisor. The default file is +called supervisord.conf and is located in +/etc/supervisor/conf.d/.

+
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
+
+

Let's see what is inside our supervisord.conf +file.

+
[supervisord]
+nodaemon=true
+
+[program:sshd]
+command=/usr/sbin/sshd -D
+
+[program:apache2]
+command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
+
+

The supervisord.conf configuration file contains +directives that configure Supervisor and the processes it manages. The +first block [supervisord] provides configuration +for Supervisor itself. We're using one directive, nodaemon +which tells Supervisor to run interactively rather than +daemonize.

+

The next two blocks manage the services we wish to control. Each block +controls a separate process. The blocks contain a single directive, +command, which specifies what command to run to +start each process.

+

Exposing ports and running Supervisor

+

Now let's finish our Dockerfile by exposing some +required ports and specifying the CMD instruction +to start Supervisor when our container launches.

+
EXPOSE 22 80
+CMD ["/usr/bin/supervisord"]
+
+

Here We've exposed ports 22 and 80 on the container and we're running +the /usr/bin/supervisord binary when the container +launches.

+

Building our image

+

We can now build our new image.

+
$ sudo docker build -t <yourname>/supervisord .
+
+

Running our Supervisor container

+

Once We've got a built image we can launch a container from it.

+
$ sudo docker run -p 22 -p 80 -t -i <yourname>/supervisord
+2013-11-25 18:53:22,312 CRIT Supervisor running as root (no user in config file)
+2013-11-25 18:53:22,312 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
+2013-11-25 18:53:22,342 INFO supervisord started with pid 1
+2013-11-25 18:53:23,346 INFO spawned: 'sshd' with pid 6
+2013-11-25 18:53:23,349 INFO spawned: 'apache2' with pid 7
+. . .
+
+

We've launched a new container interactively using the docker run command. +That container has run Supervisor and launched the SSH and Apache daemons with +it. We've specified the -p flag to expose ports 22 and 80. From here we can +now identify the exposed ports and connect to one or both of the SSH and Apache +daemons.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/cli.md.old b/compose/cli.md.old new file mode 100644 index 0000000000..30f8217714 --- /dev/null +++ b/compose/cli.md.old @@ -0,0 +1,181 @@ +page_title: Compose CLI reference +page_description: Compose CLI reference +page_keywords: fig, composition, compose, docker, orchestration, cli, reference + + +# CLI reference + +Most Docker Compose commands are run against one or more services. If +the service is not specified, the command will apply to all services. + +For full usage information, run `docker-compose [COMMAND] --help`. + +## Commands + +### build + +Builds or rebuilds services. + +Services are built once and then tagged as `project_service`, e.g., +`composetest_db`. If you change a service's Dockerfile or the contents of its +build directory, run `docker-compose build` to rebuild it. + +### help + +Displays help and usage instructions for a command. + +### kill + +Forces running containers to stop by sending a `SIGKILL` signal. Optionally the +signal can be passed, for example: + + $ docker-compose kill -s SIGINT + +### logs + +Displays log output from services. + +### port + +Prints the public port for a port binding + +### ps + +Lists containers. + +### pull + +Pulls service images. + +### rm + +Removes stopped service containers. + + +### run + +Runs a one-off command on a service. + +For example, + + $ docker-compose run web python manage.py shell + +will start the `web` service and then run `manage.py shell` in python. +Note that by default, linked services will also be started, unless they are +already running. + +One-off commands are started in new containers with the same configuration as a +normal container for that service, so volumes, links, etc will all be created as +expected. When using `run`, there are two differences from bringing up a +container normally: + +1. the command will be overridden with the one specified. So, if you run +`docker-compose run web bash`, the container's web command (which could default +to, e.g., `python app.py`) will be overridden to `bash` + +2. by default no ports will be created in case they collide with already opened +ports. + +Links are also created between one-off commands and the other containers which +are part of that service. So, for example, you could run: + + $ docker-compose run db psql -h db -U docker + +This would open up an interactive PostgreSQL shell for the linked `db` container +(which would get created or started as needed). + +If you do not want linked containers to start when running the one-off command, +specify the `--no-deps` flag: + + $ docker-compose run --no-deps web python manage.py shell + +Similarly, if you do want the service's ports to be created and mapped to the +host, specify the `--service-ports` flag: + $ docker-compose run --service-ports web python manage.py shell + +### scale + +Sets the number of containers to run for a service. + +Numbers are specified as arguments in the form `service=num`. For example: + + $ docker-compose scale web=2 worker=3 + +### start + +Starts existing containers for a service. + +### stop + +Stops running containers without removing them. They can be started again with +`docker-compose start`. + +### up + +Builds, (re)creates, starts, and attaches to containers for a service. + +Linked services will be started, unless they are already running. + +By default, `docker-compose up` will aggregate the output of each container and, +when it exits, all containers will be stopped. Running `docker-compose up -d`, +will start the containers in the background and leave them running. + +By default, if there are existing containers for a service, `docker-compose up` will stop and recreate them (preserving mounted volumes with [volumes-from]), so that changes in `docker-compose.yml` are picked up. If you do not want containers stopped and recreated, use `docker-compose up --no-recreate`. This will still start any stopped containers, if needed. + +[volumes-from]: http://docs.docker.io/en/latest/use/working_with_volumes/ + +## Options + +### --verbose + + Shows more output + +### --version + + Prints version and exits + +### -f, --file FILE + + Specifies an alternate Compose yaml file (default: `docker-compose.yml`) + +### -p, --project-name NAME + + Specifies an alternate project name (default: current directory name) + + +## Environment Variables + +Several environment variables are available for you to configure Compose's behaviour. + +Variables starting with `DOCKER_` are the same as those used to configure the +Docker command-line client. If you're using boot2docker, `$(boot2docker shellinit)` +will set them to their correct values. + +### COMPOSE\_PROJECT\_NAME + +Sets the project name, which is prepended to the name of every container started by Compose. Defaults to the `basename` of the current working directory. + +### COMPOSE\_FILE + +Sets the path to the `docker-compose.yml` to use. Defaults to `docker-compose.yml` in the current working directory. + +### DOCKER\_HOST + +Sets the URL of the docker daemon. As with the Docker client, defaults to `unix:///var/run/docker.sock`. + +### DOCKER\_TLS\_VERIFY + +When set to anything other than an empty string, enables TLS communication with +the daemon. + +### DOCKER\_CERT\_PATH + +Configures the path to the `ca.pem`, `cert.pem`, and `key.pem` files used for TLS verification. Defaults to `~/.docker`. + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/cli.md~ b/compose/cli.md~ new file mode 100644 index 0000000000..fb270f4471 --- /dev/null +++ b/compose/cli.md~ @@ -0,0 +1,181 @@ +no_version_dropdown: truepage_title: Compose CLI reference +page_description: Compose CLI reference +page_keywords: fig, composition, compose, docker, orchestration, cli, reference + + +# CLI reference + +Most Docker Compose commands are run against one or more services. If +the service is not specified, the command will apply to all services. + +For full usage information, run `docker-compose [COMMAND] --help`. + +## Commands + +### build + +Builds or rebuilds services. + +Services are built once and then tagged as `project_service`, e.g., +`composetest_db`. If you change a service's Dockerfile or the contents of its +build directory, run `docker-compose build` to rebuild it. + +### help + +Displays help and usage instructions for a command. + +### kill + +Forces running containers to stop by sending a `SIGKILL` signal. Optionally the +signal can be passed, for example: + + $ docker-compose kill -s SIGINT + +### logs + +Displays log output from services. + +### port + +Prints the public port for a port binding + +### ps + +Lists containers. + +### pull + +Pulls service images. + +### rm + +Removes stopped service containers. + + +### run + +Runs a one-off command on a service. + +For example, + + $ docker-compose run web python manage.py shell + +will start the `web` service and then run `manage.py shell` in python. +Note that by default, linked services will also be started, unless they are +already running. + +One-off commands are started in new containers with the same configuration as a +normal container for that service, so volumes, links, etc will all be created as +expected. When using `run`, there are two differences from bringing up a +container normally: + +1. the command will be overridden with the one specified. So, if you run +`docker-compose run web bash`, the container's web command (which could default +to, e.g., `python app.py`) will be overridden to `bash` + +2. by default no ports will be created in case they collide with already opened +ports. + +Links are also created between one-off commands and the other containers which +are part of that service. So, for example, you could run: + + $ docker-compose run db psql -h db -U docker + +This would open up an interactive PostgreSQL shell for the linked `db` container +(which would get created or started as needed). + +If you do not want linked containers to start when running the one-off command, +specify the `--no-deps` flag: + + $ docker-compose run --no-deps web python manage.py shell + +Similarly, if you do want the service's ports to be created and mapped to the +host, specify the `--service-ports` flag: + $ docker-compose run --service-ports web python manage.py shell + +### scale + +Sets the number of containers to run for a service. + +Numbers are specified as arguments in the form `service=num`. For example: + + $ docker-compose scale web=2 worker=3 + +### start + +Starts existing containers for a service. + +### stop + +Stops running containers without removing them. They can be started again with +`docker-compose start`. + +### up + +Builds, (re)creates, starts, and attaches to containers for a service. + +Linked services will be started, unless they are already running. + +By default, `docker-compose up` will aggregate the output of each container and, +when it exits, all containers will be stopped. Running `docker-compose up -d`, +will start the containers in the background and leave them running. + +By default, if there are existing containers for a service, `docker-compose up` will stop and recreate them (preserving mounted volumes with [volumes-from]), so that changes in `docker-compose.yml` are picked up. If you do not want containers stopped and recreated, use `docker-compose up --no-recreate`. This will still start any stopped containers, if needed. + +[volumes-from]: http://docs.docker.io/en/latest/use/working_with_volumes/ + +## Options + +### --verbose + + Shows more output + +### --version + + Prints version and exits + +### -f, --file FILE + + Specifies an alternate Compose yaml file (default: `docker-compose.yml`) + +### -p, --project-name NAME + + Specifies an alternate project name (default: current directory name) + + +## Environment Variables + +Several environment variables are available for you to configure Compose's behaviour. + +Variables starting with `DOCKER_` are the same as those used to configure the +Docker command-line client. If you're using boot2docker, `$(boot2docker shellinit)` +will set them to their correct values. + +### COMPOSE\_PROJECT\_NAME + +Sets the project name, which is prepended to the name of every container started by Compose. Defaults to the `basename` of the current working directory. + +### COMPOSE\_FILE + +Sets the path to the `docker-compose.yml` to use. Defaults to `docker-compose.yml` in the current working directory. + +### DOCKER\_HOST + +Sets the URL of the docker daemon. As with the Docker client, defaults to `unix:///var/run/docker.sock`. + +### DOCKER\_TLS\_VERIFY + +When set to anything other than an empty string, enables TLS communication with +the daemon. + +### DOCKER\_CERT\_PATH + +Configures the path to the `ca.pem`, `cert.pem`, and `key.pem` files used for TLS verification. Defaults to `~/.docker`. + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/cli/index.html b/compose/cli/index.html new file mode 100644 index 0000000000..d9c5a97fdc --- /dev/null +++ b/compose/cli/index.html @@ -0,0 +1,980 @@ + + + + + + + + + + + + + + + + + + + + + + + + Compose command line - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

CLI reference

+

Most Docker Compose commands are run against one or more services. If +the service is not specified, the command will apply to all services.

+

For full usage information, run docker-compose [COMMAND] --help.

+

Commands

+

build

+

Builds or rebuilds services.

+

Services are built once and then tagged as project_service, e.g., +composetest_db. If you change a service's Dockerfile or the contents of its +build directory, run docker-compose build to rebuild it.

+

help

+

Displays help and usage instructions for a command.

+

kill

+

Forces running containers to stop by sending a SIGKILL signal. Optionally the +signal can be passed, for example:

+
$ docker-compose kill -s SIGINT
+
+

logs

+

Displays log output from services.

+

port

+

Prints the public port for a port binding

+

ps

+

Lists containers.

+

pull

+

Pulls service images.

+

rm

+

Removes stopped service containers.

+

run

+

Runs a one-off command on a service.

+

For example,

+
$ docker-compose run web python manage.py shell
+
+

will start the web service and then run manage.py shell in python. +Note that by default, linked services will also be started, unless they are +already running.

+

One-off commands are started in new containers with the same configuration as a +normal container for that service, so volumes, links, etc will all be created as +expected. When using run, there are two differences from bringing up a +container normally:

+
    +
  1. +

    the command will be overridden with the one specified. So, if you run +docker-compose run web bash, the container's web command (which could default +to, e.g., python app.py) will be overridden to bash

    +
  2. +
  3. +

    by default no ports will be created in case they collide with already opened +ports.

    +
  4. +
+

Links are also created between one-off commands and the other containers which +are part of that service. So, for example, you could run:

+
$ docker-compose run db psql -h db -U docker
+
+

This would open up an interactive PostgreSQL shell for the linked db container +(which would get created or started as needed).

+

If you do not want linked containers to start when running the one-off command, +specify the --no-deps flag:

+
$ docker-compose run --no-deps web python manage.py shell
+
+

Similarly, if you do want the service's ports to be created and mapped to the +host, specify the --service-ports flag: + $ docker-compose run --service-ports web python manage.py shell

+

scale

+

Sets the number of containers to run for a service.

+

Numbers are specified as arguments in the form service=num. For example:

+
$ docker-compose scale web=2 worker=3
+
+

start

+

Starts existing containers for a service.

+

stop

+

Stops running containers without removing them. They can be started again with +docker-compose start.

+

up

+

Builds, (re)creates, starts, and attaches to containers for a service.

+

Linked services will be started, unless they are already running.

+

By default, docker-compose up will aggregate the output of each container and, +when it exits, all containers will be stopped. Running docker-compose up -d, +will start the containers in the background and leave them running.

+

By default, if there are existing containers for a service, docker-compose up will stop and recreate them (preserving mounted volumes with volumes-from), so that changes in docker-compose.yml are picked up. If you do not want containers stopped and recreated, use docker-compose up --no-recreate. This will still start any stopped containers, if needed.

+

Options

+

--verbose

+

Shows more output

+

--version

+

Prints version and exits

+

-f, --file FILE

+

Specifies an alternate Compose yaml file (default: docker-compose.yml)

+

-p, --project-name NAME

+

Specifies an alternate project name (default: current directory name)

+

Environment Variables

+

Several environment variables are available for you to configure Compose's behaviour.

+

Variables starting with DOCKER_ are the same as those used to configure the +Docker command-line client. If you're using boot2docker, $(boot2docker shellinit) +will set them to their correct values.

+

COMPOSE_PROJECT_NAME

+

Sets the project name, which is prepended to the name of every container started by Compose. Defaults to the basename of the current working directory.

+

COMPOSE_FILE

+

Sets the path to the docker-compose.yml to use. Defaults to docker-compose.yml in the current working directory.

+

DOCKER_HOST

+

Sets the URL of the docker daemon. As with the Docker client, defaults to unix:///var/run/docker.sock.

+

DOCKER_TLS_VERIFY

+

When set to anything other than an empty string, enables TLS communication with +the daemon.

+

DOCKER_CERT_PATH

+

Configures the path to the ca.pem, cert.pem, and key.pem files used for TLS verification. Defaults to ~/.docker.

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/completion.md.old b/compose/completion.md.old new file mode 100644 index 0000000000..d9b94f6cf1 --- /dev/null +++ b/compose/completion.md.old @@ -0,0 +1,41 @@ +--- +layout: default +title: Command Completion +--- + +Command Completion +================== + +Compose comes with [command completion](http://en.wikipedia.org/wiki/Command-line_completion) +for the bash shell. + +Installing Command Completion +----------------------------- + +Make sure bash completion is installed. If you use a current Linux in a non-minimal installation, bash completion should be available. +On a Mac, install with `brew install bash-completion` + +Place the completion script in `/etc/bash_completion.d/` (`/usr/local/etc/bash_completion.d/` on a Mac), using e.g. + + curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose + +Completion will be available upon next login. + +Available completions +--------------------- +Depending on what you typed on the command line so far, it will complete + + - available docker-compose commands + - options that are available for a particular command + - service names that make sense in a given context (e.g. services with running or stopped instances or services based on images vs. services based on Dockerfiles). For `docker-compose scale`, completed service names will automatically have "=" appended. + - arguments for selected options, e.g. `docker-compose kill -s` will complete some signals like SIGHUP and SIGUSR1. + +Enjoy working with Compose faster and with less typos! + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) diff --git a/compose/completion.md~ b/compose/completion.md~ new file mode 100644 index 0000000000..c17f3173dc --- /dev/null +++ b/compose/completion.md~ @@ -0,0 +1,41 @@ +no_version_dropdown: true--- +layout: default +title: Command Completion +--- + +Command Completion +================== + +Compose comes with [command completion](http://en.wikipedia.org/wiki/Command-line_completion) +for the bash shell. + +Installing Command Completion +----------------------------- + +Make sure bash completion is installed. If you use a current Linux in a non-minimal installation, bash completion should be available. +On a Mac, install with `brew install bash-completion` + +Place the completion script in `/etc/bash_completion.d/` (`/usr/local/etc/bash_completion.d/` on a Mac), using e.g. + + curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose + +Completion will be available upon next login. + +Available completions +--------------------- +Depending on what you typed on the command line so far, it will complete + + - available docker-compose commands + - options that are available for a particular command + - service names that make sense in a given context (e.g. services with running or stopped instances or services based on images vs. services based on Dockerfiles). For `docker-compose scale`, completed service names will automatically have "=" appended. + - arguments for selected options, e.g. `docker-compose kill -s` will complete some signals like SIGHUP and SIGUSR1. + +Enjoy working with Compose faster and with less typos! + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) diff --git a/compose/completion/index.html b/compose/completion/index.html new file mode 100644 index 0000000000..a50d4fbbc0 --- /dev/null +++ b/compose/completion/index.html @@ -0,0 +1,832 @@ + + + + + + + + + + + + + + + + + + + + + + + + Compose commandline completion - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Command Completion

+

Compose comes with command completion +for the bash shell.

+

Installing Command Completion

+

Make sure bash completion is installed. If you use a current Linux in a non-minimal installation, bash completion should be available. +On a Mac, install with brew install bash-completion

+

Place the completion script in /etc/bash_completion.d/ (/usr/local/etc/bash_completion.d/ on a Mac), using e.g.

+
 curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
+
+

Completion will be available upon next login.

+

Available completions +Depending on what you typed on the command line so far, it will complete

+
    +
  • available docker-compose commands
  • +
  • options that are available for a particular command
  • +
  • service names that make sense in a given context (e.g. services with running or stopped instances or services based on images vs. services based on Dockerfiles). For docker-compose scale, completed service names will automatically have "=" appended.
  • +
  • arguments for selected options, e.g. docker-compose kill -s will complete some signals like SIGHUP and SIGUSR1.
  • +
+

Enjoy working with Compose faster and with less typos!

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/django.md.old b/compose/django.md.old new file mode 100644 index 0000000000..48d3e6d01d --- /dev/null +++ b/compose/django.md.old @@ -0,0 +1,99 @@ +--- +layout: default +title: Getting started with Compose and Django +--- + +Getting started with Compose and Django +=================================== + +Let's use Compose to set up and run a Django/PostgreSQL app. Before starting, you'll need to have [Compose installed](install.md). + +Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called `Dockerfile`. It'll contain this to start with: + + FROM python:2.7 + ENV PYTHONUNBUFFERED 1 + RUN mkdir /code + WORKDIR /code + ADD requirements.txt /code/ + RUN pip install -r requirements.txt + ADD . /code/ + +That'll install our application inside an image with Python installed alongside all of our Python dependencies. For more information on how to write Dockerfiles, see the [Docker user guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) and the [Dockerfile reference](http://docs.docker.com/reference/builder/). + +Second, we define our Python dependencies in a file called `requirements.txt`: + + Django + psycopg2 + +Simple enough. Finally, this is all tied together with a file called `docker-compose.yml`. It describes the services that our app comprises of (a web server and database), what Docker images they use, how they link together, what volumes will be mounted inside the containers and what ports they expose. + + db: + image: postgres + web: + build: . + command: python manage.py runserver 0.0.0.0:8000 + volumes: + - .:/code + ports: + - "8000:8000" + links: + - db + +See the [`docker-compose.yml` reference](yml.html) for more information on how it works. + +We can now start a Django project using `docker-compose run`: + + $ docker-compose run web django-admin.py startproject composeexample . + +First, Compose will build an image for the `web` service using the `Dockerfile`. It will then run `django-admin.py startproject composeexample .` inside a container using that image. + +This will generate a Django app inside the current directory: + + $ ls + Dockerfile docker-compose.yml composeexample manage.py requirements.txt + +First thing we need to do is set up the database connection. Replace the `DATABASES = ...` definition in `composeexample/settings.py` to read: + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'postgres', + 'USER': 'postgres', + 'HOST': 'db', + 'PORT': 5432, + } + } + +These settings are determined by the [postgres](https://registry.hub.docker.com/_/postgres/) Docker image we are using. + +Then, run `docker-compose up`: + + Recreating myapp_db_1... + Recreating myapp_web_1... + Attaching to myapp_db_1, myapp_web_1 + myapp_db_1 | + myapp_db_1 | PostgreSQL stand-alone backend 9.1.11 + myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: database system is ready to accept connections + myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: autovacuum launcher started + myapp_web_1 | Validating models... + myapp_web_1 | + myapp_web_1 | 0 errors found + myapp_web_1 | January 27, 2014 - 12:12:40 + myapp_web_1 | Django version 1.6.1, using settings 'composeexample.settings' + myapp_web_1 | Starting development server at http://0.0.0.0:8000/ + myapp_web_1 | Quit the server with CONTROL-C. + +And your Django app should be running at port 8000 on your docker daemon (if you're using boot2docker, `boot2docker ip` will tell you its address). + +You can also run management commands with Docker. To set up your database, for example, run `docker-compose up` and in another terminal run: + + $ docker-compose run web python manage.py syncdb + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/django.md~ b/compose/django.md~ new file mode 100644 index 0000000000..816c6e8a33 --- /dev/null +++ b/compose/django.md~ @@ -0,0 +1,99 @@ +no_version_dropdown: true--- +layout: default +title: Getting started with Compose and Django +--- + +Getting started with Compose and Django +=================================== + +Let's use Compose to set up and run a Django/PostgreSQL app. Before starting, you'll need to have [Compose installed](install.md). + +Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called `Dockerfile`. It'll contain this to start with: + + FROM python:2.7 + ENV PYTHONUNBUFFERED 1 + RUN mkdir /code + WORKDIR /code + ADD requirements.txt /code/ + RUN pip install -r requirements.txt + ADD . /code/ + +That'll install our application inside an image with Python installed alongside all of our Python dependencies. For more information on how to write Dockerfiles, see the [Docker user guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) and the [Dockerfile reference](http://docs.docker.com/reference/builder/). + +Second, we define our Python dependencies in a file called `requirements.txt`: + + Django + psycopg2 + +Simple enough. Finally, this is all tied together with a file called `docker-compose.yml`. It describes the services that our app comprises of (a web server and database), what Docker images they use, how they link together, what volumes will be mounted inside the containers and what ports they expose. + + db: + image: postgres + web: + build: . + command: python manage.py runserver 0.0.0.0:8000 + volumes: + - .:/code + ports: + - "8000:8000" + links: + - db + +See the [`docker-compose.yml` reference](yml.html) for more information on how it works. + +We can now start a Django project using `docker-compose run`: + + $ docker-compose run web django-admin.py startproject composeexample . + +First, Compose will build an image for the `web` service using the `Dockerfile`. It will then run `django-admin.py startproject composeexample .` inside a container using that image. + +This will generate a Django app inside the current directory: + + $ ls + Dockerfile docker-compose.yml composeexample manage.py requirements.txt + +First thing we need to do is set up the database connection. Replace the `DATABASES = ...` definition in `composeexample/settings.py` to read: + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'postgres', + 'USER': 'postgres', + 'HOST': 'db', + 'PORT': 5432, + } + } + +These settings are determined by the [postgres](https://registry.hub.docker.com/_/postgres/) Docker image we are using. + +Then, run `docker-compose up`: + + Recreating myapp_db_1... + Recreating myapp_web_1... + Attaching to myapp_db_1, myapp_web_1 + myapp_db_1 | + myapp_db_1 | PostgreSQL stand-alone backend 9.1.11 + myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: database system is ready to accept connections + myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: autovacuum launcher started + myapp_web_1 | Validating models... + myapp_web_1 | + myapp_web_1 | 0 errors found + myapp_web_1 | January 27, 2014 - 12:12:40 + myapp_web_1 | Django version 1.6.1, using settings 'composeexample.settings' + myapp_web_1 | Starting development server at http://0.0.0.0:8000/ + myapp_web_1 | Quit the server with CONTROL-C. + +And your Django app should be running at port 8000 on your docker daemon (if you're using boot2docker, `boot2docker ip` will tell you its address). + +You can also run management commands with Docker. To set up your database, for example, run `docker-compose up` and in another terminal run: + + $ docker-compose run web python manage.py syncdb + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/django/index.html b/compose/django/index.html new file mode 100644 index 0000000000..28815fd455 --- /dev/null +++ b/compose/django/index.html @@ -0,0 +1,884 @@ + + + + + + + + + + + + + + + + + + + + + + + + Getting started with Compose and Django - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Getting started with Compose and Django

+

Let's use Compose to set up and run a Django/PostgreSQL app. Before starting, you'll need to have Compose installed.

+

Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called Dockerfile. It'll contain this to start with:

+
FROM python:2.7
+ENV PYTHONUNBUFFERED 1
+RUN mkdir /code
+WORKDIR /code
+ADD requirements.txt /code/
+RUN pip install -r requirements.txt
+ADD . /code/
+
+

That'll install our application inside an image with Python installed alongside all of our Python dependencies. For more information on how to write Dockerfiles, see the Docker user guide and the Dockerfile reference.

+

Second, we define our Python dependencies in a file called requirements.txt:

+
Django
+psycopg2
+
+

Simple enough. Finally, this is all tied together with a file called docker-compose.yml. It describes the services that our app comprises of (a web server and database), what Docker images they use, how they link together, what volumes will be mounted inside the containers and what ports they expose.

+
db:
+  image: postgres
+web:
+  build: .
+  command: python manage.py runserver 0.0.0.0:8000
+  volumes:
+    - .:/code
+  ports:
+    - "8000:8000"
+  links:
+    - db
+
+

See the docker-compose.yml reference for more information on how it works.

+

We can now start a Django project using docker-compose run:

+
$ docker-compose run web django-admin.py startproject composeexample .
+
+

First, Compose will build an image for the web service using the Dockerfile. It will then run django-admin.py startproject composeexample . inside a container using that image.

+

This will generate a Django app inside the current directory:

+
$ ls
+Dockerfile       docker-compose.yml          composeexample       manage.py        requirements.txt
+
+

First thing we need to do is set up the database connection. Replace the DATABASES = ... definition in composeexample/settings.py to read:

+
DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.postgresql_psycopg2',
+        'NAME': 'postgres',
+        'USER': 'postgres',
+        'HOST': 'db',
+        'PORT': 5432,
+    }
+}
+
+

These settings are determined by the postgres Docker image we are using.

+

Then, run docker-compose up:

+
Recreating myapp_db_1...
+Recreating myapp_web_1...
+Attaching to myapp_db_1, myapp_web_1
+myapp_db_1 |
+myapp_db_1 | PostgreSQL stand-alone backend 9.1.11
+myapp_db_1 | 2014-01-27 12:17:03 UTC LOG:  database system is ready to accept connections
+myapp_db_1 | 2014-01-27 12:17:03 UTC LOG:  autovacuum launcher started
+myapp_web_1 | Validating models...
+myapp_web_1 |
+myapp_web_1 | 0 errors found
+myapp_web_1 | January 27, 2014 - 12:12:40
+myapp_web_1 | Django version 1.6.1, using settings 'composeexample.settings'
+myapp_web_1 | Starting development server at http://0.0.0.0:8000/
+myapp_web_1 | Quit the server with CONTROL-C.
+
+

And your Django app should be running at port 8000 on your docker daemon (if you're using boot2docker, boot2docker ip will tell you its address).

+

You can also run management commands with Docker. To set up your database, for example, run docker-compose up and in another terminal run:

+
$ docker-compose run web python manage.py syncdb
+
+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/env.md.old b/compose/env.md.old new file mode 100644 index 0000000000..3fc7b95aac --- /dev/null +++ b/compose/env.md.old @@ -0,0 +1,41 @@ +--- +layout: default +title: Compose environment variables reference +--- + +Environment variables reference +=============================== + +**Note:** Environment variables are no longer the recommended method for connecting to linked services. Instead, you should use the link name (by default, the name of the linked service) as the hostname to connect to. See the [docker-compose.yml documentation](yml.md#links) for details. + +Compose uses [Docker links] to expose services' containers to one another. Each linked container injects a set of environment variables, each of which begins with the uppercase name of the container. + +To see what environment variables are available to a service, run `docker-compose run SERVICE env`. + +name\_PORT
+Full URL, e.g. `DB_PORT=tcp://172.17.0.5:5432` + +name\_PORT\_num\_protocol
+Full URL, e.g. `DB_PORT_5432_TCP=tcp://172.17.0.5:5432` + +name\_PORT\_num\_protocol\_ADDR
+Container's IP address, e.g. `DB_PORT_5432_TCP_ADDR=172.17.0.5` + +name\_PORT\_num\_protocol\_PORT
+Exposed port number, e.g. `DB_PORT_5432_TCP_PORT=5432` + +name\_PORT\_num\_protocol\_PROTO
+Protocol (tcp or udp), e.g. `DB_PORT_5432_TCP_PROTO=tcp` + +name\_NAME
+Fully qualified container name, e.g. `DB_1_NAME=/myapp_web_1/myapp_db_1` + +[Docker links]: http://docs.docker.com/userguide/dockerlinks/ + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose command line completion](completion.md) diff --git a/compose/env.md~ b/compose/env.md~ new file mode 100644 index 0000000000..9cc85ef8e5 --- /dev/null +++ b/compose/env.md~ @@ -0,0 +1,41 @@ +no_version_dropdown: true--- +layout: default +title: Compose environment variables reference +--- + +Environment variables reference +=============================== + +**Note:** Environment variables are no longer the recommended method for connecting to linked services. Instead, you should use the link name (by default, the name of the linked service) as the hostname to connect to. See the [docker-compose.yml documentation](yml.md#links) for details. + +Compose uses [Docker links] to expose services' containers to one another. Each linked container injects a set of environment variables, each of which begins with the uppercase name of the container. + +To see what environment variables are available to a service, run `docker-compose run SERVICE env`. + +name\_PORT
+Full URL, e.g. `DB_PORT=tcp://172.17.0.5:5432` + +name\_PORT\_num\_protocol
+Full URL, e.g. `DB_PORT_5432_TCP=tcp://172.17.0.5:5432` + +name\_PORT\_num\_protocol\_ADDR
+Container's IP address, e.g. `DB_PORT_5432_TCP_ADDR=172.17.0.5` + +name\_PORT\_num\_protocol\_PORT
+Exposed port number, e.g. `DB_PORT_5432_TCP_PORT=5432` + +name\_PORT\_num\_protocol\_PROTO
+Protocol (tcp or udp), e.g. `DB_PORT_5432_TCP_PROTO=tcp` + +name\_NAME
+Fully qualified container name, e.g. `DB_1_NAME=/myapp_web_1/myapp_db_1` + +[Docker links]: http://docs.docker.com/userguide/dockerlinks/ + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose command line completion](completion.md) diff --git a/compose/env/index.html b/compose/env/index.html new file mode 100644 index 0000000000..1701dd67ad --- /dev/null +++ b/compose/env/index.html @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + Compose ENV variables - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Environment variables reference

+

Note: Environment variables are no longer the recommended method for connecting to linked services. Instead, you should use the link name (by default, the name of the linked service) as the hostname to connect to. See the docker-compose.yml documentation for details.

+

Compose uses Docker links to expose services' containers to one another. Each linked container injects a set of environment variables, each of which begins with the uppercase name of the container.

+

To see what environment variables are available to a service, run docker-compose run SERVICE env.

+

name_PORT
+Full URL, e.g. DB_PORT=tcp://172.17.0.5:5432

+

name_PORT_num_protocol
+Full URL, e.g. DB_PORT_5432_TCP=tcp://172.17.0.5:5432

+

name_PORT_num_protocol_ADDR
+Container's IP address, e.g. DB_PORT_5432_TCP_ADDR=172.17.0.5

+

name_PORT_num_protocol_PORT
+Exposed port number, e.g. DB_PORT_5432_TCP_PORT=5432

+

name_PORT_num_protocol_PROTO
+Protocol (tcp or udp), e.g. DB_PORT_5432_TCP_PROTO=tcp

+

name_NAME
+Fully qualified container name, e.g. DB_1_NAME=/myapp_web_1/myapp_db_1

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/index.html b/compose/index.html new file mode 100644 index 0000000000..861c91a8f5 --- /dev/null +++ b/compose/index.html @@ -0,0 +1,973 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Compose - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +

Docker Compose

+

Compose is a tool for defining and running complex applications with Docker. +With Compose, you define a multi-container application in a single file, then +spin your application up in a single command which does everything that needs to +be done to get it running.

+

Compose is great for development environments, staging servers, and CI. We don't +recommend that you use it in production yet.

+

Using Compose is basically a three-step process.

+

First, you define your app's environment with a Dockerfile so it can be +reproduced anywhere:

+
FROM python:2.7
+WORKDIR /code
+ADD requirements.txt /code/
+RUN pip install -r requirements.txt
+ADD . /code
+CMD python app.py
+
+ +

Next, you define the services that make up your app in docker-compose.yml so +they can be run together in an isolated environment:

+
web:
+  build: .
+  links:
+   - db
+  ports:
+   - "8000:8000"
+db:
+  image: postgres
+
+ +

Lastly, run docker-compose up and Compose will start and run your entire app.

+

Compose has commands for managing the whole lifecycle of your application:

+
    +
  • Start, stop and rebuild services
  • +
  • View the status of running services
  • +
  • Stream the log output of running services
  • +
  • Run a one-off command on a service
  • +
+

Compose documentation

+ +

Quick start

+

Let's get started with a walkthrough of getting a simple Python web app running +on Compose. It assumes a little knowledge of Python, but the concepts +demonstrated here should be understandable even if you're not familiar with +Python.

+

Installation and set-up

+

First, install Docker and Compose.

+

Next, you'll want to make a directory for the project:

+
$ mkdir composetest
+$ cd composetest
+
+

Inside this directory, create app.py, a simple web app that uses the Flask +framework and increments a value in Redis:

+
from flask import Flask
+from redis import Redis
+import os
+app = Flask(__name__)
+redis = Redis(host='redis', port=6379)
+
+@app.route('/')
+def hello():
+    redis.incr('hits')
+    return 'Hello World! I have been seen %s times.' % redis.get('hits')
+
+if __name__ == "__main__":
+    app.run(host="0.0.0.0", debug=True)
+
+ +

Next, define the Python dependencies in a file called requirements.txt:

+
flask
+redis
+
+

Create a Docker image

+

Now, create a Docker image containing all of your app's dependencies. You +specify how to build the image using a file called +Dockerfile:

+
FROM python:2.7
+ADD . /code
+WORKDIR /code
+RUN pip install -r requirements.txt
+
+

This tells Docker to include Python, your code, and your Python dependencies in +a Docker image. For more information on how to write Dockerfiles, see the +Docker user +guide +and the +Dockerfile reference.

+

Define services

+

Next, define a set of services using docker-compose.yml:

+
web:
+  build: .
+  command: python app.py
+  ports:
+   - "5000:5000"
+  volumes:
+   - .:/code
+  links:
+   - redis
+redis:
+  image: redis
+
+

This defines two services:

+
    +
  • web, which is built from the Dockerfile in the current directory. It also + says to run the command python app.py inside the image, forward the exposed + port 5000 on the container to port 5000 on the host machine, connect up the + Redis service, and mount the current directory inside the container so we can + work on code without having to rebuild the image.
  • +
  • redis, which uses the public image + redis, which gets pulled from the + Docker Hub registry.
  • +
+

Build and run your app with Compose

+

Now, when you run docker-compose up, Compose will pull a Redis image, build an +image for your code, and start everything up:

+
$ docker-compose up
+Pulling image redis...
+Building web...
+Starting composetest_redis_1...
+Starting composetest_web_1...
+redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
+web_1   |  * Running on http://0.0.0.0:5000/
+
+

The web app should now be listening on port 5000 on your Docker daemon host (if +you're using Boot2docker, boot2docker ip will tell you its address).

+

If you want to run your services in the background, you can pass the -d flag +(for daemon mode) to docker-compose up and use docker-compose ps to see what +is currently running:

+
$ docker-compose up -d
+Starting composetest_redis_1...
+Starting composetest_web_1...
+$ docker-compose ps
+    Name                 Command            State       Ports
+-------------------------------------------------------------------
+composetest_redis_1   /usr/local/bin/run         Up
+composetest_web_1     /bin/sh -c python app.py   Up      5000->5000/tcp
+
+

The docker-compose run command allows you to run one-off commands for your +services. For example, to see what environment variables are available to the +web service:

+
$ docker-compose run web env
+
+

See docker-compose --help to see other available commands.

+

If you started Compose with docker-compose up -d, you'll probably want to stop +your services once you've finished with them:

+
$ docker-compose stop
+
+

At this point, you have seen the basics of how Compose works.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/index.md.old b/compose/index.md.old new file mode 100644 index 0000000000..b44adc8e28 --- /dev/null +++ b/compose/index.md.old @@ -0,0 +1,190 @@ +page_title: Compose: Multi-container orchestration for Docker +page_description: Introduction and Overview of Compose +page_keywords: documentation, docs, docker, compose, orchestration, containers + + +# Docker Compose + +Compose is a tool for defining and running complex applications with Docker. +With Compose, you define a multi-container application in a single file, then +spin your application up in a single command which does everything that needs to +be done to get it running. + +Compose is great for development environments, staging servers, and CI. We don't +recommend that you use it in production yet. + +Using Compose is basically a three-step process. + +First, you define your app's environment with a `Dockerfile` so it can be +reproduced anywhere: + +```Dockerfile +FROM python:2.7 +WORKDIR /code +ADD requirements.txt /code/ +RUN pip install -r requirements.txt +ADD . /code +CMD python app.py +``` + +Next, you define the services that make up your app in `docker-compose.yml` so +they can be run together in an isolated environment: + +```yaml +web: + build: . + links: + - db + ports: + - "8000:8000" +db: + image: postgres +``` + +Lastly, run `docker-compose up` and Compose will start and run your entire app. + +Compose has commands for managing the whole lifecycle of your application: + + * Start, stop and rebuild services + * View the status of running services + * Stream the log output of running services + * Run a one-off command on a service + +## Compose documentation + +- [Installing Compose](install.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) + +## Quick start + +Let's get started with a walkthrough of getting a simple Python web app running +on Compose. It assumes a little knowledge of Python, but the concepts +demonstrated here should be understandable even if you're not familiar with +Python. + +### Installation and set-up + +First, [install Docker and Compose](install.md). + +Next, you'll want to make a directory for the project: + + $ mkdir composetest + $ cd composetest + +Inside this directory, create `app.py`, a simple web app that uses the Flask +framework and increments a value in Redis: + +```python +from flask import Flask +from redis import Redis +import os +app = Flask(__name__) +redis = Redis(host='redis', port=6379) + +@app.route('/') +def hello(): + redis.incr('hits') + return 'Hello World! I have been seen %s times.' % redis.get('hits') + +if __name__ == "__main__": + app.run(host="0.0.0.0", debug=True) +``` + +Next, define the Python dependencies in a file called `requirements.txt`: + + flask + redis + +### Create a Docker image + +Now, create a Docker image containing all of your app's dependencies. You +specify how to build the image using a file called +[`Dockerfile`](http://docs.docker.com/reference/builder/): + + FROM python:2.7 + ADD . /code + WORKDIR /code + RUN pip install -r requirements.txt + +This tells Docker to include Python, your code, and your Python dependencies in +a Docker image. For more information on how to write Dockerfiles, see the +[Docker user +guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) +and the +[Dockerfile reference](http://docs.docker.com/reference/builder/). + +### Define services + +Next, define a set of services using `docker-compose.yml`: + + web: + build: . + command: python app.py + ports: + - "5000:5000" + volumes: + - .:/code + links: + - redis + redis: + image: redis + +This defines two services: + + - `web`, which is built from the `Dockerfile` in the current directory. It also + says to run the command `python app.py` inside the image, forward the exposed + port 5000 on the container to port 5000 on the host machine, connect up the + Redis service, and mount the current directory inside the container so we can + work on code without having to rebuild the image. + - `redis`, which uses the public image + [redis](https://registry.hub.docker.com/_/redis/), which gets pulled from the + Docker Hub registry. + +### Build and run your app with Compose + +Now, when you run `docker-compose up`, Compose will pull a Redis image, build an +image for your code, and start everything up: + + $ docker-compose up + Pulling image redis... + Building web... + Starting composetest_redis_1... + Starting composetest_web_1... + redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3 + web_1 | * Running on http://0.0.0.0:5000/ + +The web app should now be listening on port 5000 on your Docker daemon host (if +you're using Boot2docker, `boot2docker ip` will tell you its address). + +If you want to run your services in the background, you can pass the `-d` flag +(for daemon mode) to `docker-compose up` and use `docker-compose ps` to see what +is currently running: + + $ docker-compose up -d + Starting composetest_redis_1... + Starting composetest_web_1... + $ docker-compose ps + Name Command State Ports + ------------------------------------------------------------------- + composetest_redis_1 /usr/local/bin/run Up + composetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp + +The `docker-compose run` command allows you to run one-off commands for your +services. For example, to see what environment variables are available to the +`web` service: + + $ docker-compose run web env + +See `docker-compose --help` to see other available commands. + +If you started Compose with `docker-compose up -d`, you'll probably want to stop +your services once you've finished with them: + + $ docker-compose stop + +At this point, you have seen the basics of how Compose works. + + diff --git a/compose/index.md~ b/compose/index.md~ new file mode 100644 index 0000000000..a028143af5 --- /dev/null +++ b/compose/index.md~ @@ -0,0 +1,190 @@ +no_version_dropdown: truepage_title: Compose: Multi-container orchestration for Docker +page_description: Introduction and Overview of Compose +page_keywords: documentation, docs, docker, compose, orchestration, containers + + +# Docker Compose + +Compose is a tool for defining and running complex applications with Docker. +With Compose, you define a multi-container application in a single file, then +spin your application up in a single command which does everything that needs to +be done to get it running. + +Compose is great for development environments, staging servers, and CI. We don't +recommend that you use it in production yet. + +Using Compose is basically a three-step process. + +First, you define your app's environment with a `Dockerfile` so it can be +reproduced anywhere: + +```Dockerfile +FROM python:2.7 +WORKDIR /code +ADD requirements.txt /code/ +RUN pip install -r requirements.txt +ADD . /code +CMD python app.py +``` + +Next, you define the services that make up your app in `docker-compose.yml` so +they can be run together in an isolated environment: + +```yaml +web: + build: . + links: + - db + ports: + - "8000:8000" +db: + image: postgres +``` + +Lastly, run `docker-compose up` and Compose will start and run your entire app. + +Compose has commands for managing the whole lifecycle of your application: + + * Start, stop and rebuild services + * View the status of running services + * Stream the log output of running services + * Run a one-off command on a service + +## Compose documentation + +- [Installing Compose](install.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) + +## Quick start + +Let's get started with a walkthrough of getting a simple Python web app running +on Compose. It assumes a little knowledge of Python, but the concepts +demonstrated here should be understandable even if you're not familiar with +Python. + +### Installation and set-up + +First, [install Docker and Compose](install.md). + +Next, you'll want to make a directory for the project: + + $ mkdir composetest + $ cd composetest + +Inside this directory, create `app.py`, a simple web app that uses the Flask +framework and increments a value in Redis: + +```python +from flask import Flask +from redis import Redis +import os +app = Flask(__name__) +redis = Redis(host='redis', port=6379) + +@app.route('/') +def hello(): + redis.incr('hits') + return 'Hello World! I have been seen %s times.' % redis.get('hits') + +if __name__ == "__main__": + app.run(host="0.0.0.0", debug=True) +``` + +Next, define the Python dependencies in a file called `requirements.txt`: + + flask + redis + +### Create a Docker image + +Now, create a Docker image containing all of your app's dependencies. You +specify how to build the image using a file called +[`Dockerfile`](http://docs.docker.com/reference/builder/): + + FROM python:2.7 + ADD . /code + WORKDIR /code + RUN pip install -r requirements.txt + +This tells Docker to include Python, your code, and your Python dependencies in +a Docker image. For more information on how to write Dockerfiles, see the +[Docker user +guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) +and the +[Dockerfile reference](http://docs.docker.com/reference/builder/). + +### Define services + +Next, define a set of services using `docker-compose.yml`: + + web: + build: . + command: python app.py + ports: + - "5000:5000" + volumes: + - .:/code + links: + - redis + redis: + image: redis + +This defines two services: + + - `web`, which is built from the `Dockerfile` in the current directory. It also + says to run the command `python app.py` inside the image, forward the exposed + port 5000 on the container to port 5000 on the host machine, connect up the + Redis service, and mount the current directory inside the container so we can + work on code without having to rebuild the image. + - `redis`, which uses the public image + [redis](https://registry.hub.docker.com/_/redis/), which gets pulled from the + Docker Hub registry. + +### Build and run your app with Compose + +Now, when you run `docker-compose up`, Compose will pull a Redis image, build an +image for your code, and start everything up: + + $ docker-compose up + Pulling image redis... + Building web... + Starting composetest_redis_1... + Starting composetest_web_1... + redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3 + web_1 | * Running on http://0.0.0.0:5000/ + +The web app should now be listening on port 5000 on your Docker daemon host (if +you're using Boot2docker, `boot2docker ip` will tell you its address). + +If you want to run your services in the background, you can pass the `-d` flag +(for daemon mode) to `docker-compose up` and use `docker-compose ps` to see what +is currently running: + + $ docker-compose up -d + Starting composetest_redis_1... + Starting composetest_web_1... + $ docker-compose ps + Name Command State Ports + ------------------------------------------------------------------- + composetest_redis_1 /usr/local/bin/run Up + composetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp + +The `docker-compose run` command allows you to run one-off commands for your +services. For example, to see what environment variables are available to the +`web` service: + + $ docker-compose run web env + +See `docker-compose --help` to see other available commands. + +If you started Compose with `docker-compose up -d`, you'll probably want to stop +your services once you've finished with them: + + $ docker-compose stop + +At this point, you have seen the basics of how Compose works. + + diff --git a/compose/install.md.old b/compose/install.md.old new file mode 100644 index 0000000000..e78f4b48f6 --- /dev/null +++ b/compose/install.md.old @@ -0,0 +1,52 @@ +page_title: Installing Compose +page_description: How to intall Docker Compose +page_keywords: compose, orchestration, install, installation, docker, documentation + + +## Installing Compose + +To install Compose, you'll need to install Docker first. You'll then install +Compose with a `curl` command. + +### Install Docker + +First, you'll need to install Docker version 1.3 or greater. + +If you're on OS X, you can use the +[OS X installer](https://docs.docker.com/installation/mac/) to install both +Docker and the OSX helper app, boot2docker. Once boot2docker is running, set the +environment variables that'll configure Docker and Compose to talk to it: + + $(boot2docker shellinit) + +To persist the environment variables across shell sessions, add the above line +to your `~/.bashrc` file. + +For complete instructions, or if you are on another platform, consult Docker's +[installation instructions](https://docs.docker.com/installation/). + +### Install Compose + +To install Compose, run the following commands: + + curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose + +Optionally, you can also install [command completion](completion.md) for the +bash shell. + +Compose is available for OS X and 64-bit Linux. If you're on another platform, +Compose can also be installed as a Python package: + + $ sudo pip install -U docker-compose + +No further steps are required; Compose should now be successfully installed. +You can test the installation by running `docker-compose --version`. + +## Compose documentation + +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/install.md~ b/compose/install.md~ new file mode 100644 index 0000000000..c02e885665 --- /dev/null +++ b/compose/install.md~ @@ -0,0 +1,52 @@ +no_version_dropdown: truepage_title: Installing Compose +page_description: How to intall Docker Compose +page_keywords: compose, orchestration, install, installation, docker, documentation + + +## Installing Compose + +To install Compose, you'll need to install Docker first. You'll then install +Compose with a `curl` command. + +### Install Docker + +First, you'll need to install Docker version 1.3 or greater. + +If you're on OS X, you can use the +[OS X installer](https://docs.docker.com/installation/mac/) to install both +Docker and the OSX helper app, boot2docker. Once boot2docker is running, set the +environment variables that'll configure Docker and Compose to talk to it: + + $(boot2docker shellinit) + +To persist the environment variables across shell sessions, add the above line +to your `~/.bashrc` file. + +For complete instructions, or if you are on another platform, consult Docker's +[installation instructions](https://docs.docker.com/installation/). + +### Install Compose + +To install Compose, run the following commands: + + curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose + +Optionally, you can also install [command completion](completion.md) for the +bash shell. + +Compose is available for OS X and 64-bit Linux. If you're on another platform, +Compose can also be installed as a Python package: + + $ sudo pip install -U docker-compose + +No further steps are required; Compose should now be successfully installed. +You can test the installation by running `docker-compose --version`. + +## Compose documentation + +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/install/index.html b/compose/install/index.html new file mode 100644 index 0000000000..34c2f4cee6 --- /dev/null +++ b/compose/install/index.html @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Compose - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Installing Compose

+

To install Compose, you'll need to install Docker first. You'll then install +Compose with a curl command.

+

Install Docker

+

First, you'll need to install Docker version 1.3 or greater.

+

If you're on OS X, you can use the +OS X installer to install both +Docker and the OSX helper app, boot2docker. Once boot2docker is running, set the +environment variables that'll configure Docker and Compose to talk to it:

+
$(boot2docker shellinit)
+
+

To persist the environment variables across shell sessions, add the above line +to your ~/.bashrc file.

+

For complete instructions, or if you are on another platform, consult Docker's +installation instructions.

+

Install Compose

+

To install Compose, run the following commands:

+
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
+chmod +x /usr/local/bin/docker-compose
+
+

Optionally, you can also install command completion for the +bash shell.

+

Compose is available for OS X and 64-bit Linux. If you're on another platform, +Compose can also be installed as a Python package:

+
$ sudo pip install -U docker-compose
+
+

No further steps are required; Compose should now be successfully installed. +You can test the installation by running docker-compose --version.

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/rails.md.old b/compose/rails.md.old new file mode 100644 index 0000000000..67682cf592 --- /dev/null +++ b/compose/rails.md.old @@ -0,0 +1,105 @@ +--- +layout: default +title: Getting started with Compose and Rails +--- + +Getting started with Compose and Rails +================================== + +We're going to use Compose to set up and run a Rails/PostgreSQL app. Before starting, you'll need to have [Compose installed](install.md). + +Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called `Dockerfile`. It'll contain this to start with: + + FROM ruby:2.2.0 + RUN apt-get update -qq && apt-get install -y build-essential libpq-dev + RUN mkdir /myapp + WORKDIR /myapp + ADD Gemfile /myapp/Gemfile + RUN bundle install + ADD . /myapp + +That'll put our application code inside an image with Ruby, Bundler and all our dependencies. For more information on how to write Dockerfiles, see the [Docker user guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) and the [Dockerfile reference](http://docs.docker.com/reference/builder/). + +Next, we have a bootstrap `Gemfile` which just loads Rails. It'll be overwritten in a moment by `rails new`. + + source 'https://rubygems.org' + gem 'rails', '4.2.0' + +Finally, `docker-compose.yml` is where the magic happens. It describes what services our app comprises (a database and a web app), how to get each one's Docker image (the database just runs on a pre-made PostgreSQL image, and the web app is built from the current directory), and the configuration we need to link them together and expose the web app's port. + + db: + image: postgres + ports: + - "5432" + web: + build: . + command: bundle exec rails s -p 3000 -b '0.0.0.0' + volumes: + - .:/myapp + ports: + - "3000:3000" + links: + - db + +With those files in place, we can now generate the Rails skeleton app using `docker-compose run`: + + $ docker-compose run web rails new . --force --database=postgresql --skip-bundle + +First, Compose will build the image for the `web` service using the `Dockerfile`. Then it'll run `rails new` inside a new container, using that image. Once it's done, you should have a fresh app generated: + + $ ls + Dockerfile app docker-compose.yml tmp + Gemfile bin lib vendor + Gemfile.lock config log + README.rdoc config.ru public + Rakefile db test + +Uncomment the line in your new `Gemfile` which loads `therubyracer`, so we've got a Javascript runtime: + + gem 'therubyracer', platforms: :ruby + +Now that we've got a new `Gemfile`, we need to build the image again. (This, and changes to the Dockerfile itself, should be the only times you'll need to rebuild). + + $ docker-compose build + +The app is now bootable, but we're not quite there yet. By default, Rails expects a database to be running on `localhost` - we need to point it at the `db` container instead. We also need to change the database and username to align with the defaults set by the `postgres` image. + +Open up your newly-generated `database.yml`. Replace its contents with the following: + + development: &default + adapter: postgresql + encoding: unicode + database: postgres + pool: 5 + username: postgres + password: + host: db + + test: + <<: *default + database: myapp_test + +We can now boot the app. + + $ docker-compose up + +If all's well, you should see some PostgreSQL output, and then—after a few seconds—the familiar refrain: + + myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick 1.3.1 + myapp_web_1 | [2014-01-17 17:16:29] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux-gnu] + myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=3000 + +Finally, we just need to create the database. In another terminal, run: + + $ docker-compose run web rake db:create + +And we're rolling—your app should now be running on port 3000 on your docker daemon (if you're using boot2docker, `boot2docker ip` will tell you its address). + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/rails.md~ b/compose/rails.md~ new file mode 100644 index 0000000000..4b59a6fc9e --- /dev/null +++ b/compose/rails.md~ @@ -0,0 +1,105 @@ +no_version_dropdown: true--- +layout: default +title: Getting started with Compose and Rails +--- + +Getting started with Compose and Rails +================================== + +We're going to use Compose to set up and run a Rails/PostgreSQL app. Before starting, you'll need to have [Compose installed](install.md). + +Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called `Dockerfile`. It'll contain this to start with: + + FROM ruby:2.2.0 + RUN apt-get update -qq && apt-get install -y build-essential libpq-dev + RUN mkdir /myapp + WORKDIR /myapp + ADD Gemfile /myapp/Gemfile + RUN bundle install + ADD . /myapp + +That'll put our application code inside an image with Ruby, Bundler and all our dependencies. For more information on how to write Dockerfiles, see the [Docker user guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) and the [Dockerfile reference](http://docs.docker.com/reference/builder/). + +Next, we have a bootstrap `Gemfile` which just loads Rails. It'll be overwritten in a moment by `rails new`. + + source 'https://rubygems.org' + gem 'rails', '4.2.0' + +Finally, `docker-compose.yml` is where the magic happens. It describes what services our app comprises (a database and a web app), how to get each one's Docker image (the database just runs on a pre-made PostgreSQL image, and the web app is built from the current directory), and the configuration we need to link them together and expose the web app's port. + + db: + image: postgres + ports: + - "5432" + web: + build: . + command: bundle exec rails s -p 3000 -b '0.0.0.0' + volumes: + - .:/myapp + ports: + - "3000:3000" + links: + - db + +With those files in place, we can now generate the Rails skeleton app using `docker-compose run`: + + $ docker-compose run web rails new . --force --database=postgresql --skip-bundle + +First, Compose will build the image for the `web` service using the `Dockerfile`. Then it'll run `rails new` inside a new container, using that image. Once it's done, you should have a fresh app generated: + + $ ls + Dockerfile app docker-compose.yml tmp + Gemfile bin lib vendor + Gemfile.lock config log + README.rdoc config.ru public + Rakefile db test + +Uncomment the line in your new `Gemfile` which loads `therubyracer`, so we've got a Javascript runtime: + + gem 'therubyracer', platforms: :ruby + +Now that we've got a new `Gemfile`, we need to build the image again. (This, and changes to the Dockerfile itself, should be the only times you'll need to rebuild). + + $ docker-compose build + +The app is now bootable, but we're not quite there yet. By default, Rails expects a database to be running on `localhost` - we need to point it at the `db` container instead. We also need to change the database and username to align with the defaults set by the `postgres` image. + +Open up your newly-generated `database.yml`. Replace its contents with the following: + + development: &default + adapter: postgresql + encoding: unicode + database: postgres + pool: 5 + username: postgres + password: + host: db + + test: + <<: *default + database: myapp_test + +We can now boot the app. + + $ docker-compose up + +If all's well, you should see some PostgreSQL output, and then—after a few seconds—the familiar refrain: + + myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick 1.3.1 + myapp_web_1 | [2014-01-17 17:16:29] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux-gnu] + myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=3000 + +Finally, we just need to create the database. In another terminal, run: + + $ docker-compose run web rake db:create + +And we're rolling—your app should now be running on port 3000 on your docker daemon (if you're using boot2docker, `boot2docker ip` will tell you its address). + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Yaml file reference](yml.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/rails/index.html b/compose/rails/index.html new file mode 100644 index 0000000000..ea7ccf2f9d --- /dev/null +++ b/compose/rails/index.html @@ -0,0 +1,889 @@ + + + + + + + + + + + + + + + + + + + + + + + + Getting started with Compose and Rails - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Getting started with Compose and Rails

+

We're going to use Compose to set up and run a Rails/PostgreSQL app. Before starting, you'll need to have Compose installed.

+

Let's set up the three files that'll get us started. First, our app is going to be running inside a Docker container which contains all of its dependencies. We can define what goes inside that Docker container using a file called Dockerfile. It'll contain this to start with:

+
FROM ruby:2.2.0
+RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
+RUN mkdir /myapp
+WORKDIR /myapp
+ADD Gemfile /myapp/Gemfile
+RUN bundle install
+ADD . /myapp
+
+

That'll put our application code inside an image with Ruby, Bundler and all our dependencies. For more information on how to write Dockerfiles, see the Docker user guide and the Dockerfile reference.

+

Next, we have a bootstrap Gemfile which just loads Rails. It'll be overwritten in a moment by rails new.

+
source 'https://rubygems.org'
+gem 'rails', '4.2.0'
+
+

Finally, docker-compose.yml is where the magic happens. It describes what services our app comprises (a database and a web app), how to get each one's Docker image (the database just runs on a pre-made PostgreSQL image, and the web app is built from the current directory), and the configuration we need to link them together and expose the web app's port.

+
db:
+  image: postgres
+  ports:
+    - "5432"
+web:
+  build: .
+  command: bundle exec rails s -p 3000 -b '0.0.0.0'
+  volumes:
+    - .:/myapp
+  ports:
+    - "3000:3000"
+  links:
+    - db
+
+

With those files in place, we can now generate the Rails skeleton app using docker-compose run:

+
$ docker-compose run web rails new . --force --database=postgresql --skip-bundle
+
+

First, Compose will build the image for the web service using the Dockerfile. Then it'll run rails new inside a new container, using that image. Once it's done, you should have a fresh app generated:

+
$ ls
+Dockerfile   app          docker-compose.yml      tmp
+Gemfile      bin          lib          vendor
+Gemfile.lock config       log
+README.rdoc  config.ru    public
+Rakefile     db           test
+
+

Uncomment the line in your new Gemfile which loads therubyracer, so we've got a Javascript runtime:

+
gem 'therubyracer', platforms: :ruby
+
+

Now that we've got a new Gemfile, we need to build the image again. (This, and changes to the Dockerfile itself, should be the only times you'll need to rebuild).

+
$ docker-compose build
+
+

The app is now bootable, but we're not quite there yet. By default, Rails expects a database to be running on localhost - we need to point it at the db container instead. We also need to change the database and username to align with the defaults set by the postgres image.

+

Open up your newly-generated database.yml. Replace its contents with the following:

+
development: &default
+  adapter: postgresql
+  encoding: unicode
+  database: postgres
+  pool: 5
+  username: postgres
+  password:
+  host: db
+
+test:
+  <<: *default
+  database: myapp_test
+
+

We can now boot the app.

+
$ docker-compose up
+
+

If all's well, you should see some PostgreSQL output, and then—after a few seconds—the familiar refrain:

+
myapp_web_1 | [2014-01-17 17:16:29] INFO  WEBrick 1.3.1
+myapp_web_1 | [2014-01-17 17:16:29] INFO  ruby 2.2.0 (2014-12-25) [x86_64-linux-gnu]
+myapp_web_1 | [2014-01-17 17:16:29] INFO  WEBrick::HTTPServer#start: pid=1 port=3000
+
+

Finally, we just need to create the database. In another terminal, run:

+
$ docker-compose run web rake db:create
+
+

And we're rolling—your app should now be running on port 3000 on your docker daemon (if you're using boot2docker, boot2docker ip will tell you its address).

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/wordpress.md.old b/compose/wordpress.md.old new file mode 100644 index 0000000000..1fa1d9e33e --- /dev/null +++ b/compose/wordpress.md.old @@ -0,0 +1,100 @@ +--- +layout: default +title: Getting started with Compose and Wordpress +--- + +Getting started with Compose and Wordpress +====================================== + +Compose makes it nice and easy to run Wordpress in an isolated environment. [Install Compose](install.md), then download Wordpress into the current directory: + + $ curl https://wordpress.org/latest.tar.gz | tar -xvzf - + +This will create a directory called `wordpress`, which you can rename to the name of your project if you wish. Inside that directory, we create `Dockerfile`, a file that defines what environment your app is going to run in: + +``` +FROM orchardup/php5 +ADD . /code +``` + +This instructs Docker on how to build an image that contains PHP and Wordpress. For more information on how to write Dockerfiles, see the [Docker user guide](https://docs.docker.com/userguide/dockerimages/#building-an-image-from-a-dockerfile) and the [Dockerfile reference](http://docs.docker.com/reference/builder/). + +Next up, `docker-compose.yml` starts our web service and a separate MySQL instance: + +``` +web: + build: . + command: php -S 0.0.0.0:8000 -t /code + ports: + - "8000:8000" + links: + - db + volumes: + - .:/code +db: + image: orchardup/mysql + environment: + MYSQL_DATABASE: wordpress +``` + +Two supporting files are needed to get this working - first up, `wp-config.php` is the standard Wordpress config file with a single change to point the database configuration at the `db` container: + +``` + + + + + + + + + + + + + + + + + + + + + + + + Getting started with Compose and Wordpress - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

Getting started with Compose and Wordpress

+

Compose makes it nice and easy to run Wordpress in an isolated environment. Install Compose, then download Wordpress into the current directory:

+
$ curl https://wordpress.org/latest.tar.gz | tar -xvzf -
+
+

This will create a directory called wordpress, which you can rename to the name of your project if you wish. Inside that directory, we create Dockerfile, a file that defines what environment your app is going to run in:

+
FROM orchardup/php5
+ADD . /code
+
+ +

This instructs Docker on how to build an image that contains PHP and Wordpress. For more information on how to write Dockerfiles, see the Docker user guide and the Dockerfile reference.

+

Next up, docker-compose.yml starts our web service and a separate MySQL instance:

+
web:
+  build: .
+  command: php -S 0.0.0.0:8000 -t /code
+  ports:
+    - "8000:8000"
+  links:
+    - db
+  volumes:
+    - .:/code
+db:
+  image: orchardup/mysql
+  environment:
+    MYSQL_DATABASE: wordpress
+
+ +

Two supporting files are needed to get this working - first up, wp-config.php is the standard Wordpress config file with a single change to point the database configuration at the db container:

+
<?php
+define('DB_NAME', 'wordpress');
+define('DB_USER', 'root');
+define('DB_PASSWORD', '');
+define('DB_HOST', "db:3306");
+define('DB_CHARSET', 'utf8');
+define('DB_COLLATE', '');
+
+define('AUTH_KEY',         'put your unique phrase here');
+define('SECURE_AUTH_KEY',  'put your unique phrase here');
+define('LOGGED_IN_KEY',    'put your unique phrase here');
+define('NONCE_KEY',        'put your unique phrase here');
+define('AUTH_SALT',        'put your unique phrase here');
+define('SECURE_AUTH_SALT', 'put your unique phrase here');
+define('LOGGED_IN_SALT',   'put your unique phrase here');
+define('NONCE_SALT',       'put your unique phrase here');
+
+$table_prefix  = 'wp_';
+define('WPLANG', '');
+define('WP_DEBUG', false);
+
+if ( !defined('ABSPATH') )
+    define('ABSPATH', dirname(__FILE__) . '/');
+
+require_once(ABSPATH . 'wp-settings.php');
+
+ +

Finally, router.php tells PHP's built-in web server how to run Wordpress:

+
<?php
+
+$root = $_SERVER['DOCUMENT_ROOT'];
+chdir($root);
+$path = '/'.ltrim(parse_url($_SERVER['REQUEST_URI'])['path'],'/');
+set_include_path(get_include_path().':'.__DIR__);
+if(file_exists($root.$path))
+{
+    if(is_dir($root.$path) && substr($path,strlen($path) - 1, 1) !== '/')
+        $path = rtrim($path,'/').'/index.php';
+    if(strpos($path,'.php') === false) return false;
+    else {
+        chdir(dirname($root.$path));
+        require_once $root.$path;
+    }
+}else include_once 'index.php';
+
+ +

With those four files in place, run docker-compose up inside your Wordpress directory and it'll pull and build the images we need, and then start the web and database containers. You'll then be able to visit Wordpress at port 8000 on your docker daemon (if you're using boot2docker, boot2docker ip will tell you its address).

+

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/compose/yml.md.old b/compose/yml.md.old new file mode 100644 index 0000000000..035a99e921 --- /dev/null +++ b/compose/yml.md.old @@ -0,0 +1,249 @@ +--- +layout: default +title: docker-compose.yml reference +page_title: docker-compose.yml reference +page_description: docker-compose.yml reference +page_keywords: fig, composition, compose, docker +--- + +# docker-compose.yml reference + +Each service defined in `docker-compose.yml` must specify exactly one of +`image` or `build`. Other keys are optional, and are analogous to their +`docker run` command-line counterparts. + +As with `docker run`, options specified in the Dockerfile (e.g., `CMD`, +`EXPOSE`, `VOLUME`, `ENV`) are respected by default - you don't need to +specify them again in `docker-compose.yml`. + +### image + +Tag or partial image ID. Can be local or remote - Compose will attempt to +pull if it doesn't exist locally. + +``` +image: ubuntu +image: orchardup/postgresql +image: a4bc65fd +``` + +### build + +Path to a directory containing a Dockerfile. This directory is also the +build context that is sent to the Docker daemon. + +Compose will build and tag it with a generated name, and use that image thereafter. + +``` +build: /path/to/build/dir +``` + +### command + +Override the default command. + +``` +command: bundle exec thin -p 3000 +``` + + +### links + +Link to containers in another service. Either specify both the service name and +the link alias (`SERVICE:ALIAS`), or just the service name (which will also be +used for the alias). + +``` +links: + - db + - db:database + - redis +``` + +An entry with the alias' name will be created in `/etc/hosts` inside containers +for this service, e.g: + +``` +172.17.2.186 db +172.17.2.186 database +172.17.2.187 redis +``` + +Environment variables will also be created - see the [environment variable +reference](env.md) for details. + +### external_links + +Link to containers started outside this `docker-compose.yml` or even outside +of Compose, especially for containers that provide shared or common services. +`external_links` follow semantics similar to `links` when specifying both the +container name and the link alias (`CONTAINER:ALIAS`). + +``` +external_links: + - redis_1 + - project_db_1:mysql + - project_db_1:postgresql +``` + +### ports + +Expose ports. Either specify both ports (`HOST:CONTAINER`), or just the container +port (a random host port will be chosen). + +> **Note:** When mapping ports in the `HOST:CONTAINER` format, you may experience +> erroneous results when using a container port lower than 60, because YAML will +> parse numbers in the format `xx:yy` as sexagesimal (base 60). For this reason, +> we recommend always explicitly specifying your port mappings as strings. + +``` +ports: + - "3000" + - "8000:8000" + - "49100:22" + - "127.0.0.1:8001:8001" +``` + +### expose + +Expose ports without publishing them to the host machine - they'll only be +accessible to linked services. Only the internal port can be specified. + +``` +expose: + - "3000" + - "8000" +``` + +### volumes + +Mount paths as volumes, optionally specifying a path on the host machine +(`HOST:CONTAINER`), or an access mode (`HOST:CONTAINER:ro`). + +``` +volumes: + - /var/lib/mysql + - cache/:/tmp/cache + - ~/configs:/etc/configs/:ro +``` + +### volumes_from + +Mount all of the volumes from another service or container. + +``` +volumes_from: + - service_name + - container_name +``` + +### environment + +Add environment variables. You can use either an array or a dictionary. + +Environment variables with only a key are resolved to their values on the +machine Compose is running on, which can be helpful for secret or host-specific values. + +``` +environment: + RACK_ENV: development + SESSION_SECRET: + +environment: + - RACK_ENV=development + - SESSION_SECRET +``` + +### env_file + +Add environment variables from a file. Can be a single value or a list. + +Environment variables specified in `environment` override these values. + +``` +env_file: + - .env +``` + +``` +RACK_ENV: development +``` + +### net + +Networking mode. Use the same values as the docker client `--net` parameter. + +``` +net: "bridge" +net: "none" +net: "container:[name or id]" +net: "host" +``` + +### dns + +Custom DNS servers. Can be a single value or a list. + +``` +dns: 8.8.8.8 +dns: + - 8.8.8.8 + - 9.9.9.9 +``` + +### cap_add, cap_drop + +Add or drop container capabilities. +See `man 7 capabilities` for a full list. + +``` +cap_add: + - ALL + +cap_drop: + - NET_ADMIN + - SYS_ADMIN +``` + +### dns_search + +Custom DNS search domains. Can be a single value or a list. + +``` +dns_search: example.com +dns_search: + - dc1.example.com + - dc2.example.com +``` + +### working\_dir, entrypoint, user, hostname, domainname, mem\_limit, privileged, restart, stdin\_open, tty, cpu\_shares + +Each of these is a single value, analogous to its +[docker run](https://docs.docker.com/reference/run/) counterpart. + +``` +cpu_shares: 73 + +working_dir: /code +entrypoint: /code/entrypoint.sh +user: postgresql + +hostname: foo +domainname: foo.com + +mem_limit: 1000000000 +privileged: true + +restart: always + +stdin_open: true +tty: true +``` + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/yml.md~ b/compose/yml.md~ new file mode 100644 index 0000000000..a9c50a8436 --- /dev/null +++ b/compose/yml.md~ @@ -0,0 +1,249 @@ +no_version_dropdown: true--- +layout: default +title: docker-compose.yml reference +page_title: docker-compose.yml reference +page_description: docker-compose.yml reference +page_keywords: fig, composition, compose, docker +--- + +# docker-compose.yml reference + +Each service defined in `docker-compose.yml` must specify exactly one of +`image` or `build`. Other keys are optional, and are analogous to their +`docker run` command-line counterparts. + +As with `docker run`, options specified in the Dockerfile (e.g., `CMD`, +`EXPOSE`, `VOLUME`, `ENV`) are respected by default - you don't need to +specify them again in `docker-compose.yml`. + +### image + +Tag or partial image ID. Can be local or remote - Compose will attempt to +pull if it doesn't exist locally. + +``` +image: ubuntu +image: orchardup/postgresql +image: a4bc65fd +``` + +### build + +Path to a directory containing a Dockerfile. This directory is also the +build context that is sent to the Docker daemon. + +Compose will build and tag it with a generated name, and use that image thereafter. + +``` +build: /path/to/build/dir +``` + +### command + +Override the default command. + +``` +command: bundle exec thin -p 3000 +``` + + +### links + +Link to containers in another service. Either specify both the service name and +the link alias (`SERVICE:ALIAS`), or just the service name (which will also be +used for the alias). + +``` +links: + - db + - db:database + - redis +``` + +An entry with the alias' name will be created in `/etc/hosts` inside containers +for this service, e.g: + +``` +172.17.2.186 db +172.17.2.186 database +172.17.2.187 redis +``` + +Environment variables will also be created - see the [environment variable +reference](env.md) for details. + +### external_links + +Link to containers started outside this `docker-compose.yml` or even outside +of Compose, especially for containers that provide shared or common services. +`external_links` follow semantics similar to `links` when specifying both the +container name and the link alias (`CONTAINER:ALIAS`). + +``` +external_links: + - redis_1 + - project_db_1:mysql + - project_db_1:postgresql +``` + +### ports + +Expose ports. Either specify both ports (`HOST:CONTAINER`), or just the container +port (a random host port will be chosen). + +> **Note:** When mapping ports in the `HOST:CONTAINER` format, you may experience +> erroneous results when using a container port lower than 60, because YAML will +> parse numbers in the format `xx:yy` as sexagesimal (base 60). For this reason, +> we recommend always explicitly specifying your port mappings as strings. + +``` +ports: + - "3000" + - "8000:8000" + - "49100:22" + - "127.0.0.1:8001:8001" +``` + +### expose + +Expose ports without publishing them to the host machine - they'll only be +accessible to linked services. Only the internal port can be specified. + +``` +expose: + - "3000" + - "8000" +``` + +### volumes + +Mount paths as volumes, optionally specifying a path on the host machine +(`HOST:CONTAINER`), or an access mode (`HOST:CONTAINER:ro`). + +``` +volumes: + - /var/lib/mysql + - cache/:/tmp/cache + - ~/configs:/etc/configs/:ro +``` + +### volumes_from + +Mount all of the volumes from another service or container. + +``` +volumes_from: + - service_name + - container_name +``` + +### environment + +Add environment variables. You can use either an array or a dictionary. + +Environment variables with only a key are resolved to their values on the +machine Compose is running on, which can be helpful for secret or host-specific values. + +``` +environment: + RACK_ENV: development + SESSION_SECRET: + +environment: + - RACK_ENV=development + - SESSION_SECRET +``` + +### env_file + +Add environment variables from a file. Can be a single value or a list. + +Environment variables specified in `environment` override these values. + +``` +env_file: + - .env +``` + +``` +RACK_ENV: development +``` + +### net + +Networking mode. Use the same values as the docker client `--net` parameter. + +``` +net: "bridge" +net: "none" +net: "container:[name or id]" +net: "host" +``` + +### dns + +Custom DNS servers. Can be a single value or a list. + +``` +dns: 8.8.8.8 +dns: + - 8.8.8.8 + - 9.9.9.9 +``` + +### cap_add, cap_drop + +Add or drop container capabilities. +See `man 7 capabilities` for a full list. + +``` +cap_add: + - ALL + +cap_drop: + - NET_ADMIN + - SYS_ADMIN +``` + +### dns_search + +Custom DNS search domains. Can be a single value or a list. + +``` +dns_search: example.com +dns_search: + - dc1.example.com + - dc2.example.com +``` + +### working\_dir, entrypoint, user, hostname, domainname, mem\_limit, privileged, restart, stdin\_open, tty, cpu\_shares + +Each of these is a single value, analogous to its +[docker run](https://docs.docker.com/reference/run/) counterpart. + +``` +cpu_shares: 73 + +working_dir: /code +entrypoint: /code/entrypoint.sh +user: postgresql + +hostname: foo +domainname: foo.com + +mem_limit: 1000000000 +privileged: true + +restart: always + +stdin_open: true +tty: true +``` + +## Compose documentation + +- [Installing Compose](install.md) +- [User guide](index.md) +- [Command line reference](cli.md) +- [Compose environment variables](env.md) +- [Compose command line completion](completion.md) diff --git a/compose/yml/index.html b/compose/yml/index.html new file mode 100644 index 0000000000..afa2f34370 --- /dev/null +++ b/compose/yml/index.html @@ -0,0 +1,1086 @@ + + + + + + + + + + + + + + + + + + + + + + + + Compose yml - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +

docker-compose.yml reference

+

Each service defined in docker-compose.yml must specify exactly one of +image or build. Other keys are optional, and are analogous to their +docker run command-line counterparts.

+

As with docker run, options specified in the Dockerfile (e.g., CMD, +EXPOSE, VOLUME, ENV) are respected by default - you don't need to +specify them again in docker-compose.yml.

+

image

+

Tag or partial image ID. Can be local or remote - Compose will attempt to +pull if it doesn't exist locally.

+
image: ubuntu
+image: orchardup/postgresql
+image: a4bc65fd
+
+ +

build

+

Path to a directory containing a Dockerfile. This directory is also the +build context that is sent to the Docker daemon.

+

Compose will build and tag it with a generated name, and use that image thereafter.

+
build: /path/to/build/dir
+
+ +

command

+

Override the default command.

+
command: bundle exec thin -p 3000
+
+ +

+ +

Link to containers in another service. Either specify both the service name and +the link alias (SERVICE:ALIAS), or just the service name (which will also be +used for the alias).

+
links:
+ - db
+ - db:database
+ - redis
+
+ +

An entry with the alias' name will be created in /etc/hosts inside containers +for this service, e.g:

+
172.17.2.186  db
+172.17.2.186  database
+172.17.2.187  redis
+
+ +

Environment variables will also be created - see the environment variable +reference for details.

+ +

Link to containers started outside this docker-compose.yml or even outside +of Compose, especially for containers that provide shared or common services. +external_links follow semantics similar to links when specifying both the +container name and the link alias (CONTAINER:ALIAS).

+
external_links:
+ - redis_1
+ - project_db_1:mysql
+ - project_db_1:postgresql
+
+ +

ports

+

Expose ports. Either specify both ports (HOST:CONTAINER), or just the container +port (a random host port will be chosen).

+
+

Note: When mapping ports in the HOST:CONTAINER format, you may experience +erroneous results when using a container port lower than 60, because YAML will +parse numbers in the format xx:yy as sexagesimal (base 60). For this reason, +we recommend always explicitly specifying your port mappings as strings.

+
+
ports:
+ - "3000"
+ - "8000:8000"
+ - "49100:22"
+ - "127.0.0.1:8001:8001"
+
+ +

expose

+

Expose ports without publishing them to the host machine - they'll only be +accessible to linked services. Only the internal port can be specified.

+
expose:
+ - "3000"
+ - "8000"
+
+ +

volumes

+

Mount paths as volumes, optionally specifying a path on the host machine +(HOST:CONTAINER), or an access mode (HOST:CONTAINER:ro).

+
volumes:
+ - /var/lib/mysql
+ - cache/:/tmp/cache
+ - ~/configs:/etc/configs/:ro
+
+ +

volumes_from

+

Mount all of the volumes from another service or container.

+
volumes_from:
+ - service_name
+ - container_name
+
+ +

environment

+

Add environment variables. You can use either an array or a dictionary.

+

Environment variables with only a key are resolved to their values on the +machine Compose is running on, which can be helpful for secret or host-specific values.

+
environment:
+  RACK_ENV: development
+  SESSION_SECRET:
+
+environment:
+  - RACK_ENV=development
+  - SESSION_SECRET
+
+ +

env_file

+

Add environment variables from a file. Can be a single value or a list.

+

Environment variables specified in environment override these values.

+
env_file:
+  - .env
+
+ +
RACK_ENV: development
+
+ +

net

+

Networking mode. Use the same values as the docker client --net parameter.

+
net: "bridge"
+net: "none"
+net: "container:[name or id]"
+net: "host"
+
+ +

dns

+

Custom DNS servers. Can be a single value or a list.

+
dns: 8.8.8.8
+dns:
+  - 8.8.8.8
+  - 9.9.9.9
+
+ +

cap_add, cap_drop

+

Add or drop container capabilities. +See man 7 capabilities for a full list.

+
cap_add:
+  - ALL
+
+cap_drop:
+  - NET_ADMIN
+  - SYS_ADMIN
+
+ + +

Custom DNS search domains. Can be a single value or a list.

+
dns_search: example.com
+dns_search:
+  - dc1.example.com
+  - dc2.example.com
+
+ +

working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares

+

Each of these is a single value, analogous to its +docker run counterpart.

+
cpu_shares: 73
+
+working_dir: /code
+entrypoint: /code/entrypoint.sh
+user: postgresql
+
+hostname: foo
+domainname: foo.com
+
+mem_limit: 1000000000
+privileged: true
+
+restart: always
+
+stdin_open: true
+tty: true
+
+ +

Compose documentation

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/contributing/contributing/index.html b/contributing/contributing/index.html new file mode 100644 index 0000000000..b67d911f0d --- /dev/null +++ b/contributing/contributing/index.html @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + + + + + + + + + + Contributing - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Contributing to Docker

+

Want to hack on Docker? Awesome!

+

The repository includes all the instructions you need to get started.

+

The developer environment Dockerfile +specifies the tools and versions used to test and build Docker.

+

If you're making changes to the documentation, see the README.md.

+

The documentation environment Dockerfile +specifies the tools and versions used to build the Documentation.

+

Further interesting details can be found in the Packaging hints.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/contributing/devenvironment/index.html b/contributing/devenvironment/index.html new file mode 100644 index 0000000000..3c6460bcc6 --- /dev/null +++ b/contributing/devenvironment/index.html @@ -0,0 +1,895 @@ + + + + + + + + + + + + + + + + + + + + + + + + Development environment - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Setting Up a Dev Environment

+

To make it easier to contribute to Docker, we provide a standard +development environment. It is important that the same environment be +used for all tests, builds and releases. The standard development +environment defines all build dependencies: system libraries and +binaries, go environment, go dependencies, etc.

+

Things you need:

+
    +
  • Docker
  • +
  • git
  • +
  • make
  • +
+

Install Docker

+

Docker's build environment itself is a Docker container, so the first +step is to install Docker on your system.

+

You can follow the install instructions most relevant to your +system. Make sure you +have a working, up-to-date docker installation, then continue to the +next step.

+

Install tools used for this tutorial

+

Install git; honest, it's very good. You can use +other ways to get the Docker source, but they're not anywhere near as +easy.

+

Install make. This tutorial uses our base Makefile +to kick off the docker containers in a repeatable and consistent way. +Again, you can do it in other ways but you need to do more work.

+

Check out the Source

+
$ git clone https://git@github.com/docker/docker
+$ cd docker
+
+

To checkout a different revision just use git checkout +with the name of branch or revision number.

+

Build the Environment

+

This following command builds a development environment using the +Dockerfile in the current directory. Essentially, it installs all +the build and runtime dependencies necessary to build and test Docker. +Your first build will take some time to complete. On Linux systems and on Mac +OS X from within the boot2docker shell:

+
$ make build
+
+
+

Note: +On Mac OS X, the Docker make targets such as build, binary, and test +should not be built by the 'root' user. Therefore, you shouldn't use sudo when +running these commands on OS X. +On Linux, we suggest you add your current user to the docker group via +these +instructions.

+
+

If the build is successful, congratulations! You have produced a clean +build of docker, neatly encapsulated in a standard build environment.

+

Build the Docker Binary

+

To create the Docker binary, run this command:

+
$ make binary
+
+

This will create the Docker binary in ./bundles/<version>-dev/binary/. If you +do not see files in the ./bundles directory in your host, your BINDDIR +setting is not set quite right. You want to run the following command:

+
$ make BINDDIR=. binary
+
+

If you are on a non-Linux platform, e.g., OSX, you'll want to run make cross +or make BINDDIR=. cross.

+

Using your built Docker binary

+

The binary is available outside the container in the directory +./bundles/<version>-dev/binary/. You can swap your +host docker executable with this binary for live testing - for example, +on ubuntu:

+
$ sudo service docker stop ; sudo cp $(which docker) $(which docker)_ ; sudo cp ./bundles/<version>-dev/binary/docker-<version>-dev $(which docker);sudo service docker start
+
+
+

Note: +Its safer to run the tests below before swapping your hosts docker binary.

+
+

Run the Tests

+

To execute the test cases, run this command:

+
$ make test
+
+

If the test are successful then the tail of the output should look +something like this

+
--- PASS: TestWriteBroadcaster (0.00 seconds)
+=== RUN TestRaceWriteBroadcaster
+--- PASS: TestRaceWriteBroadcaster (0.00 seconds)
+=== RUN TestTruncIndex
+--- PASS: TestTruncIndex (0.00 seconds)
+=== RUN TestCompareKernelVersion
+--- PASS: TestCompareKernelVersion (0.00 seconds)
+=== RUN TestHumanSize
+--- PASS: TestHumanSize (0.00 seconds)
+=== RUN TestParseHost
+--- PASS: TestParseHost (0.00 seconds)
+=== RUN TestParseRepositoryTag
+--- PASS: TestParseRepositoryTag (0.00 seconds)
+=== RUN TestGetResolvConf
+--- PASS: TestGetResolvConf (0.00 seconds)
+=== RUN TestParseRelease
+--- PASS: TestParseRelease (0.00 seconds)
+=== RUN TestDependencyGraphCircular
+--- PASS: TestDependencyGraphCircular (0.00 seconds)
+=== RUN TestDependencyGraph
+--- PASS: TestDependencyGraph (0.00 seconds)
+PASS
+ok      github.com/docker/docker/utils        0.017s
+
+

If $TESTFLAGS is set in the environment, it is passed as extra arguments +to go test. You can use this to select certain tests to run, e.g.,

+
$ TESTFLAGS='-test.run \^TestBuild\$' make test
+
+

If the output indicates "FAIL" and you see errors like this:

+
server.go:1302 Error: Insertion failed because database is full: database or disk is full
+
+utils_test.go:179: Error copy: exit status 1 (cp: writing '/tmp/docker-testd5c9-[...]': No space left on device
+
+

Then you likely don't have enough memory available the test suite. 2GB +is recommended.

+

Use Docker

+

You can run an interactive session in the newly built container:

+
$ make shell
+
+# type 'exit' or Ctrl-D to exit
+
+

Build And View The Documentation

+

If you want to read the documentation from a local website, or are +making changes to it, you can build the documentation and then serve it +by:

+
$ make docs
+
+# when its done, you can point your browser to http://yourdockerhost:8000
+# type Ctrl-C to exit
+
+

Need More Help?

+

If you need more help then hop on to the #docker-dev IRC +channel or post a message on the +Docker developer mailing +list.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/contributing/docs_style-guide/index.html b/contributing/docs_style-guide/index.html new file mode 100644 index 0000000000..30811ca435 --- /dev/null +++ b/contributing/docs_style-guide/index.html @@ -0,0 +1,986 @@ + + + + + + + + + + + + + + + + + + + + + + + + Documentation style guide - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Docker documentation: style & grammar conventions

+

Style standards

+

Over time, different publishing communities have written standards for the style +and grammar they prefer in their publications. These standards are called +style guides. Generally, Docker’s +documentation uses the standards described in the +Associated Press's (AP) style guide. +If a question about syntactical, grammatical, or lexical practice comes up, +refer to the AP guide first. If you don’t have a copy of (or online subscription +to) the AP guide, you can almost always find an answer to a specific question by +searching the web. If you can’t find an answer, please ask a +maintainer and +we will find the answer.

+

That said, please don't get too hung up on using correct style. We'd rather have +you submit good information that doesn't conform to the guide than no +information at all. Docker's tech writers are always happy to help you with the +prose, and we promise not to judge or use a red pen!

+
+

Note: +The documentation is written with paragraphs wrapped at 80 column lines to +make it easier for terminal use. You can probably set up your favorite text +editor to do this automatically for you.

+
+

Prose style

+

In general, try to write simple, declarative prose. We prefer short, +single-clause sentences and brief three-to-five sentence paragraphs. Try to +choose vocabulary that is straightforward and precise. Avoid creating new terms, +using obscure terms or, in particular, using a lot of jargon. For example, use +"use" instead of leveraging "leverage".

+

That said, don’t feel like you have to write for localization or for +English-as-a-second-language (ESL) speakers specifically. Assume you are writing +for an ordinary speaker of English with a basic university education. If your +prose is simple, clear, and straightforward it will translate readily.

+

One way to think about this is to assume Docker’s users are generally university +educated and read at at least a "16th" grade level (meaning they have a +university degree). You can use a readability +tester to help guide your judgement. For +example, the readability score for the phrase "Containers should be ephemeral" +is around the 13th grade level (first year at university), and so is acceptable.

+

In all cases, we prefer clear, concise communication over stilted, formal +language. Don't feel like you have to write documentation that "sounds like +technical writing."

+

Metaphor and figurative language

+

One exception to the "don’t write directly for ESL" rule is to avoid the use of +metaphor or other +figurative language to +describe things. There are too many cultural and social issues that can prevent +a reader from correctly interpreting a metaphor.

+

Specific conventions

+

Below are some specific recommendations (and a few deviations) from AP style +that we use in our docs.

+

Contractions

+

As long as your prose does not become too slangy or informal, it's perfectly +acceptable to use contractions in our documentation. Make sure to use +apostrophes correctly.

+

Use of dashes in a sentence.

+

Dashes refers to the en dash (–) and the em dash (—). Dashes can be used to +separate parenthetical material.

+

Usage Example: This is an example of a Docker client – which uses the Big Widget +to run – and does x, y, and z.

+

Use dashes cautiously and consider whether commas or parentheses would work just +as well. We always emphasize short, succinct sentences.

+

More info from the always handy Grammar Girl site.

+

Pronouns

+

It's okay to use first and second person pronouns. Specifically, use "we" to +refer to Docker and "you" to refer to the user. For example, "We built the +exec command so you can resize a TTY session."

+

As much as possible, avoid using gendered pronouns ("he" and "she", etc.). +Either recast the sentence so the pronoun is not needed or, less preferably, +use "they" instead. If you absolutely can't get around using a gendered pronoun, +pick one and stick to it. Which one you choose is up to you. One common +convention is to use the pronoun of the author's gender, but if you prefer to +default to "he" or "she", that's fine too.

+

Capitalization

+

In general

+

Only proper nouns should be capitalized in body text. In general, strive to be +as strict as possible in applying this rule. Avoid using capitals for emphasis +or to denote "specialness".

+

The word "Docker" should always be capitalized when referring to either the +company or the technology. The only exception is when the term appears in a code +sample.

+

Starting sentences

+

Because code samples should always be written exactly as they would appear +on-screen, you should avoid starting sentences with a code sample.

+

In headings

+

Headings take sentence capitalization, meaning that only the first letter is +capitalized (and words that would normally be capitalized in a sentence, e.g., +"Docker"). Do not use Title Case (i.e., capitalizing every word) for headings. Generally, we adhere to AP style +for titles.

+

Periods

+

We prefer one space after a period at the end of a sentence, not two.

+

See lists below for how to punctuate list items.

+

Abbreviations and acronyms

+
    +
  • +

    Exempli gratia (e.g.) and id est ( i.e.): these should always have periods and +are always followed by a comma.

    +
  • +
  • +

    Acronyms are pluralized by simply adding "s", e.g., PCs, OSs.

    +
  • +
  • +

    On first use on a given page, the complete term should be used, with the +abbreviation or acronym in parentheses. E.g., Red Hat Enterprise Linux (RHEL). +The exception is common, non-technical acronyms like AKA or ASAP. Note that +acronyms other than i.e. and e.g. are capitalized.

    +
  • +
  • +

    Other than "e.g." and "i.e." (as discussed above), acronyms do not take +periods, PC not P.C.

    +
  • +
+

Lists

+

When writing lists, keep the following in mind:

+

Use bullets when the items being listed are independent of each other and the +order of presentation is not important.

+

Use numbers for steps that have to happen in order or if you have mentioned the +list in introductory text. For example, if you wrote "There are three config +settings available for SSL, as follows:", you would number each config setting +in the subsequent list.

+

In all lists, if an item is a complete sentence, it should end with a +period. Otherwise, we prefer no terminal punctuation for list items. +Each item in a list should start with a capital.

+

Numbers

+

Write out numbers in body text and titles from one to ten. From 11 on, use numerals.

+

Notes

+

Use notes sparingly and only to bring things to the reader's attention that are +critical or otherwise deserving of being called out from the body text. Please +format all notes as follows:

+
> **Note:**
+> One line of note text
+> another line of note text
+
+

Avoid excess use of "i.e."

+

Minimize your use of "i.e.". It can add an unnecessary interpretive burden on +the reader. Avoid writing "This is a thing, i.e., it is like this". Just +say what it is: "This thing is …"

+

Preferred usages

+

Login vs. log in.

+

A "login" is a noun (one word), as in "Enter your login". "Log in" is a compound +verb (two words), as in "Log in to the terminal".

+

Oxford comma

+

One way in which we differ from AP style is that Docker’s docs use the Oxford +comma in all cases. That’s our +position on this controversial topic, we won't change our mind, and that’s that!

+

Code and UI text styling

+

We require code font styling (monospace, sans-serif) for all text that refers +to a command or other input or output from the CLI. This includes file paths +(e.g., /etc/hosts/docker.conf). If you enclose text in backticks (`) markdown +will style the text as code.

+

Text from a CLI should be quoted verbatim, even if it contains errors or its +style contradicts this guide. You can add "(sic)" after the quote to indicate +the errors are in the quote and are not errors in our docs.

+

Text taken from a GUI (e.g., menu text or button text) should appear in "double +quotes". The text should take the exact same capitalisation, etc. as appears in +the GUI. E.g., Click "Continue" to save the settings.

+

Text that refers to a keyboard command or hotkey is capitalized (e.g., Ctrl-D).

+

When writing CLI examples, give the user hints by making the examples resemble +exactly what they see in their shell:

+
    +
  • Indent shell examples by 4 spaces so they get rendered as code blocks.
  • +
  • Start typed commands with $ (dollar space), so that they are easily +differentiated from program output.
  • +
  • Program output has no prefix.
  • +
  • Comments begin with # (hash space).
  • +
  • In-container shell commands, begin with $$ (dollar dollar space).
  • +
+

Please test all code samples to ensure that they are correct and functional so +that users can successfully cut-and-paste samples directly into the CLI.

+

Pull requests

+

The pull request (PR) process is in place so that we can ensure changes made to +the docs are the best changes possible. A good PR will do some or all of the +following:

+
    +
  • Explain why the change is needed
  • +
  • Point out potential issues or questions
  • +
  • Ask for help from experts in the company or the community
  • +
  • Encourage feedback from core developers and others involved in creating the +software being documented.
  • +
+

Writing a PR that is singular in focus and has clear objectives will encourage +all of the above. Done correctly, the process allows reviewers (maintainers and +community members) to validate the claims of the documentation and identify +potential problems in communication or presentation.

+

Commit messages

+

In order to write clear, useful commit messages, please follow these +recommendations.

+ +

For accessibility and usability reasons, avoid using phrases such as "click +here" for link text. Recast your sentence so that the link text describes the +content of the link, as we did in the +"Commit messages" section above.

+

You can use relative links (../linkeditem) to link to other pages in Docker's +documentation.

+

Graphics

+

When you need to add a graphic, try to make the file-size as small as possible. +If you need help reducing file-size of a high-resolution image, feel free to +contact us for help. +Usually, graphics should go in the same directory as the .md file that +references them, or in a subdirectory for images if one already exists.

+

The preferred file format for graphics is PNG, but GIF and JPG are also +acceptable.

+

If you are referring to a specific part of the UI in an image, use +call-outs (circles and arrows or lines) to highlight what you’re referring to. +Line width for call-outs should not exceed five pixels. The preferred color for +call-outs is red.

+

Be sure to include descriptive alt-text for the graphic. This greatly helps +users with accessibility issues.

+

Lastly, be sure you have permission to use any included graphics.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/contributing/index.html b/contributing/index.html new file mode 100644 index 0000000000..89dd3ddaef --- /dev/null +++ b/contributing/index.html @@ -0,0 +1,1019 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Table of Contents

+

About

+ +

Installation

+ +

User Guide

+ +

Docker Hub

+ +

Examples

+ +

Articles

+ +

Reference

+ +

Contribute

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/css/animate-custom.css b/css/animate-custom.css new file mode 100644 index 0000000000..b100e5f18a --- /dev/null +++ b/css/animate-custom.css @@ -0,0 +1,283 @@ +/* Some awesome custom aninations, taken from https://daneden.me/animate/build/ */ + + +.animated{-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}.animated.hinge{-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}@-webkit-keyframes flash { + 0%, 50%, 100% {opacity: 1;} 25%, 75% {opacity: 0;} +} + +@-moz-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-o-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +.flash { + -webkit-animation-name: flash; + -moz-animation-name: flash; + -o-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-30px);} + 60% {-webkit-transform: translateY(-15px);} +} + +@-moz-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} + 40% {-moz-transform: translateY(-30px);} + 60% {-moz-transform: translateY(-15px);} +} + +@-o-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} + 40% {-o-transform: translateY(-30px);} + 60% {-o-transform: translateY(-15px);} +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-30px);} + 60% {transform: translateY(-15px);} +} + +.bounce { + -webkit-animation-name: bounce; + -moz-animation-name: bounce; + -o-animation-name: bounce; + animation-name: bounce; +} +@-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} +} + +@-moz-keyframes tada { + 0% {-moz-transform: scale(1);} + 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} + 100% {-moz-transform: scale(1) rotate(0);} +} + +@-o-keyframes tada { + 0% {-o-transform: scale(1);} + 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} + 100% {-o-transform: scale(1) rotate(0);} +} + +@keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} +} + +.tada { + -webkit-animation-name: tada; + -moz-animation-name: tada; + -o-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } +} + +@-moz-keyframes swing { + 20% { -moz-transform: rotate(15deg); } + 40% { -moz-transform: rotate(-10deg); } + 60% { -moz-transform: rotate(5deg); } + 80% { -moz-transform: rotate(-5deg); } + 100% { -moz-transform: rotate(0deg); } +} + +@-o-keyframes swing { + 20% { -o-transform: rotate(15deg); } + 40% { -o-transform: rotate(-10deg); } + 60% { -o-transform: rotate(5deg); } + 80% { -o-transform: rotate(-5deg); } + 100% { -o-transform: rotate(0deg); } +} + +@keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } +} + +.swing { + -webkit-transform-origin: top center; + -moz-transform-origin: top center; + -o-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + -moz-animation-name: swing; + -o-animation-name: swing; + animation-name: swing; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } +} + +@-moz-keyframes wobble { + 0% { -moz-transform: translateX(0%); } + 15% { -moz-transform: translateX(-25%) rotate(-5deg); } + 30% { -moz-transform: translateX(20%) rotate(3deg); } + 45% { -moz-transform: translateX(-15%) rotate(-3deg); } + 60% { -moz-transform: translateX(10%) rotate(2deg); } + 75% { -moz-transform: translateX(-5%) rotate(-1deg); } + 100% { -moz-transform: translateX(0%); } +} + +@-o-keyframes wobble { + 0% { -o-transform: translateX(0%); } + 15% { -o-transform: translateX(-25%) rotate(-5deg); } + 30% { -o-transform: translateX(20%) rotate(3deg); } + 45% { -o-transform: translateX(-15%) rotate(-3deg); } + 60% { -o-transform: translateX(10%) rotate(2deg); } + 75% { -o-transform: translateX(-5%) rotate(-1deg); } + 100% { -o-transform: translateX(0%); } +} + +@keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } +} + +.wobble { + -webkit-animation-name: wobble; + -moz-animation-name: wobble; + -o-animation-name: wobble; + animation-name: wobble; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } +} +@-moz-keyframes pulse { + 0% { -moz-transform: scale(1); } + 50% { -moz-transform: scale(1.1); } + 100% { -moz-transform: scale(1); } +} +@-o-keyframes pulse { + 0% { -o-transform: scale(1); } + 50% { -o-transform: scale(1.1); } + 100% { -o-transform: scale(1); } +} +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } +} + +.pulse { + -webkit-animation-name: pulse; + -moz-animation-name: pulse; + -o-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 100% { -webkit-transform: translateY(700px); opacity: 0; } +} + +@-moz-keyframes hinge { + 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 100% { -moz-transform: translateY(700px); opacity: 0; } +} + +@-o-keyframes hinge { + 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 100% { -o-transform: translateY(700px); opacity: 0; } +} + +@keyframes hinge { + 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } + 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } + 100% { transform: translateY(700px); opacity: 0; } +} + +.hinge { + -webkit-animation-name: hinge; + -moz-animation-name: hinge; + -o-animation-name: hinge; + animation-name: hinge; +} \ No newline at end of file diff --git a/css/bootstrap-custom.css b/css/bootstrap-custom.css new file mode 100644 index 0000000000..825a858f34 --- /dev/null +++ b/css/bootstrap-custom.css @@ -0,0 +1,6784 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 11.7px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, +a:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + max-width: 100%; + /* Part 1: Set a maxium relative to the parent */ + width: auto\9; + /* IE7-8 need help adjusting responsive images */ + height: auto; + /* Part 2: Scale the height according to the width, otherwise you get stretching */ + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +#map_canvas img, +.google-maps img { + max-width: none; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.7; + color: #333333; + background-color: #f2f2f2; +} +a { + color: #213b8f; + text-decoration: none; +} +a:hover, +a:focus { + color: #2f55cd; + text-decoration: underline; +} +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, +.row:after { + display: table; + content: ""; + line-height: 0; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.span12 { + width: 940px; +} +.span11 { + width: 860px; +} +.span10 { + width: 780px; +} +.span9 { + width: 700px; +} +.span8 { + width: 620px; +} +.span7 { + width: 540px; +} +.span6 { + width: 460px; +} +.span5 { + width: 380px; +} +.span4 { + width: 300px; +} +.span3 { + width: 220px; +} +.span2 { + width: 140px; +} +.span1 { + width: 60px; +} +.offset12 { + margin-left: 980px; +} +.offset11 { + margin-left: 900px; +} +.offset10 { + margin-left: 820px; +} +.offset9 { + margin-left: 740px; +} +.offset8 { + margin-left: 660px; +} +.offset7 { + margin-left: 580px; +} +.offset6 { + margin-left: 500px; +} +.offset5 { + margin-left: 420px; +} +.offset4 { + margin-left: 340px; +} +.offset3 { + margin-left: 260px; +} +.offset2 { + margin-left: 180px; +} +.offset1 { + margin-left: 100px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.row-fluid:after { + clear: both; +} +.row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 11.7px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; +} +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} +.container:before, +.container:after { + display: table; + content: ""; + line-height: 0; +} +.container:after { + clear: both; +} +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.container-fluid:after { + clear: both; +} +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; + margin-top: 1px; +} +/* White icons with optional class, or on hover/focus/active states of certain elements */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("img/glyphicons-halflings-white.png"); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; + width: 16px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; + width: 16px; +} +.icon-folder-open { + background-position: -408px -120px; + width: 16px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.icon-hdd { + background-position: 0 -144px; +} +.icon-bullhorn { + background-position: -24px -144px; +} +.icon-bell { + background-position: -48px -144px; +} +.icon-certificate { + background-position: -72px -144px; +} +.icon-thumbs-up { + background-position: -96px -144px; +} +.icon-thumbs-down { + background-position: -120px -144px; +} +.icon-hand-right { + background-position: -144px -144px; +} +.icon-hand-left { + background-position: -168px -144px; +} +.icon-hand-up { + background-position: -192px -144px; +} +.icon-hand-down { + background-position: -216px -144px; +} +.icon-circle-arrow-right { + background-position: -240px -144px; +} +.icon-circle-arrow-left { + background-position: -264px -144px; +} +.icon-circle-arrow-up { + background-position: -288px -144px; +} +.icon-circle-arrow-down { + background-position: -312px -144px; +} +.icon-globe { + background-position: -336px -144px; +} +.icon-wrench { + background-position: -360px -144px; +} +.icon-tasks { + background-position: -384px -144px; +} +.icon-filter { + background-position: -408px -144px; +} +.icon-briefcase { + background-position: -432px -144px; +} +.icon-fullscreen { + background-position: -456px -144px; +} +p { + margin: 0 0 0.85; +} +.lead { + margin-bottom: 1.7; + font-size: 21px; + font-weight: 200; + line-height: 2.55; +} +small { + font-size: 85%; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +cite { + font-style: normal; +} +.muted { + color: #999999; +} +a.muted:hover, +a.muted:focus { + color: #808080; +} +.text-warning { + color: #c09853; +} +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} +.text-error { + color: #b94a48; +} +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} +.text-info { + color: #3a87ad; +} +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} +.text-success { + color: #468847; +} +a.text-success:hover, +a.text-success:focus { + color: #356635; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0.85 0; + font-family: inherit; + font-weight: 400; + line-height: 1.7; + color: #394d54; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} +h1, +h2, +h3 { + line-height: 3.4; +} +h1 { + font-size: 38.5px; +} +h2 { + font-size: 31.5px; +} +h3 { + font-size: 24.5px; +} +h4 { + font-size: 17.5px; +} +h5 { + font-size: 14px; +} +h6 { + font-size: 11.9px; +} +h1 small { + font-size: 24.5px; +} +h2 small { + font-size: 17.5px; +} +h3 small { + font-size: 14px; +} +h4 small { + font-size: 14px; +} +.page-header { + padding-bottom: -0.15000000000000002; + margin: 1.7 0 2.55; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + padding: 0; + margin: 0 0 0.85 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +li { + line-height: 1.7; +} +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-bottom: 1.7; +} +dt, +dd { + line-height: 1.7; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0.85; +} +.dl-horizontal { + *zoom: 1; +} +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + content: ""; + line-height: 0; +} +.dl-horizontal:after { + clear: both; +} +.dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.dl-horizontal dd { + margin-left: 180px; +} +hr { + margin: 1.7 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 1.7; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +blockquote small { + display: block; + line-height: 1.7; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} +blockquote.pull-right small:before { + content: ''; +} +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 1.7; + font-style: normal; + line-height: 1.7; +} +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; +} +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + white-space: nowrap; +} +pre { + display: block; + padding: 0.35; + margin: 0 0 0.85; + font-size: 13px; + line-height: 1.7; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); +} +pre.prettyprint { + margin-bottom: 1.7; +} +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +form { + margin: 0 0 1.7; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 1.7; + font-size: 21px; + line-height: 3.4; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +legend small { + font-size: 1.275; + color: #999999; +} +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 1.7; +} +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +label { + display: block; + margin-bottom: 5px; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 1.7; + padding: 4px 6px; + margin-bottom: 0.85; + font-size: 14px; + line-height: 1.7; + color: #555555; + vertical-align: middle; +} +input, +textarea, +.uneditable-input { + width: 206px; +} +textarea { + height: auto; +} +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; +} +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + *margin-top: 0; + /* IE7 */ + margin-top: 1px \9; + /* IE8-9 */ + line-height: normal; +} +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} +select, +input[type="file"] { + height: 11.7px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + line-height: 11.7px; +} +select { + width: 220px; + border: 1px solid #cccccc; + background-color: #ffffff; +} +select[multiple], +select[size] { + height: auto; +} +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.uneditable-input, +.uneditable-textarea { + color: #999999; + background-color: #fcfcfc; + border-color: #cccccc; + cursor: not-allowed; +} +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.uneditable-textarea { + width: auto; + height: auto; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} +.radio, +.checkbox { + min-height: 1.7; + padding-left: 20px; +} +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} +input, +textarea, +.uneditable-input { + margin-left: 0; +} +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} +.controls-row { + *zoom: 1; +} +.controls-row:before, +.controls-row:after { + display: table; + content: ""; + line-height: 0; +} +.controls-row:after { + clear: both; +} +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; +} +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; +} +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; +} +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; +} +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; +} +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; +} +.form-actions { + padding: 0.7 20px 1.7; + margin-top: 1.7; + margin-bottom: 1.7; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.form-actions:before, +.form-actions:after { + display: table; + content: ""; + line-height: 0; +} +.form-actions:after { + clear: both; +} +.help-block, +.help-inline { + color: #595959; +} +.help-block { + display: block; + margin-bottom: 0.85; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + vertical-align: middle; + padding-left: 5px; +} +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 0.85; + vertical-align: middle; + font-size: 0; + white-space: nowrap; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; +} +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 1.7; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 1.7; + text-align: center; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; +} +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} +.input-append input, +.input-append select, +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; +} +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; +} +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + margin-bottom: 0; +} +/* Allow for input prepend/append in search forms */ +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} +.control-group { + margin-bottom: 0.85; +} +legend + .control-group { + margin-top: 1.7; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 1.7; + *zoom: 1; +} +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; + line-height: 0; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} +.form-horizontal .controls:first-child { + *padding-left: 180px; +} +.form-horizontal .help-block { + margin-bottom: 0; +} +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 0.85; +} +.form-horizontal .form-actions { + padding-left: 180px; +} +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 1.7; +} +.table th, +.table td { + padding: 8px; + line-height: 1.7; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} +.table .table { + background-color: #f2f2f2; +} +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; +} +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} +.table tbody tr.success > td { + background-color: #dff0d8; +} +.table tbody tr.error > td { + background-color: #f2dede; +} +.table tbody tr.warning > td { + background-color: #fcf8e3; +} +.table tbody tr.info > td { + background-color: #d9edf7; +} +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} +/*! + * Font Awesome 3.1.0 + * the iconic font designed for Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fontawesome.io + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License v1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 License - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + + * Contact + * ------------------------------------------------------- + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('font/fontawesome-webfont.eot?v=3.1.0'); + src: url('font/fontawesome-webfont.eot?#iefix&v=3.1.0') format('embedded-opentype'), url('font/fontawesome-webfont.woff?v=3.1.0') format('woff'), url('font/fontawesome-webfont.ttf?v=3.1.0') format('truetype'), url('font/fontawesome-webfont.svg#fontawesomeregular?v=3.1.0') format('svg'); + font-weight: normal; + font-style: normal; +} +/* FONT AWESOME CORE + * -------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + *margin-right: .3em; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"], +a [class^="icon-"]:before, +a [class*=" icon-"]:before { + display: inline; +} +/* increased font size for icon-large */ +[class^="icon-"].icon-fixed-width, +[class*=" icon-"].icon-fixed-width { + display: inline-block; + width: 1.2857142857142858em; + text-align: center; +} +[class^="icon-"].icon-fixed-width.icon-large, +[class*=" icon-"].icon-fixed-width.icon-large { + width: 1.5714285714285714em; +} +ul.icons-ul { + list-style-type: none; + text-indent: -0.7142857142857143em; + margin-left: 2.142857142857143em; +} +ul.icons-ul > li .icon-li { + width: 0.7142857142857143em; + display: inline-block; + text-align: center; +} +[class^="icon-"].hide, +[class*=" icon-"].hide { + display: none; +} +.icon-muted { + color: #eeeeee; +} +.icon-light { + color: #ffffff; +} +.icon-dark { + color: #333333; +} +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.icon-2x { + font-size: 2em; +} +.icon-2x.icon-border { + border-width: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.icon-3x { + font-size: 3em; +} +.icon-3x.icon-border { + border-width: 3px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.icon-4x { + font-size: 4em; +} +.icon-4x.icon-border { + border-width: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.icon-5x { + font-size: 5em; +} +.icon-5x.icon-border { + border-width: 5px; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; +} +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; +} +/* BOOTSTRAP SPECIFIC CLASSES + * -------------------------- */ +/* Bootstrap 2.0 sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none; + background-position: 0% 0%; + background-repeat: repeat; + margin-top: 0; +} +/* more sprites.less reset */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: none; +} +/* keeps Bootstrap styles with and without icons the same */ +.btn [class^="icon-"].icon-large, +.nav [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].icon-spin, +.nav [class^="icon-"].icon-spin, +.btn [class*=" icon-"].icon-spin, +.nav [class*=" icon-"].icon-spin { + display: inline-block; +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"], +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].pull-left.icon-2x, +.btn [class*=" icon-"].pull-left.icon-2x, +.btn [class^="icon-"].pull-right.icon-2x, +.btn [class*=" icon-"].pull-right.icon-2x { + margin-top: .18em; +} +.btn [class^="icon-"].icon-spin.icon-large, +.btn [class*=" icon-"].icon-spin.icon-large { + line-height: .8em; +} +.btn.btn-small [class^="icon-"].pull-left.icon-2x, +.btn.btn-small [class*=" icon-"].pull-left.icon-2x, +.btn.btn-small [class^="icon-"].pull-right.icon-2x, +.btn.btn-small [class*=" icon-"].pull-right.icon-2x { + margin-top: .25em; +} +.btn.btn-large [class^="icon-"], +.btn.btn-large [class*=" icon-"] { + margin-top: 0; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x, +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-top: .05em; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x { + margin-right: .2em; +} +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-left: .2em; +} +/* EXTRAS + * -------------------------- */ +/* Stacked and layered icon */ +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: -35%; +} +.icon-stack [class^="icon-"], +.icon-stack [class*=" icon-"] { + display: block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; + font-size: 1em; + line-height: inherit; + *line-height: 2em; +} +.icon-stack .icon-stack-base { + font-size: 2em; + *line-height: 1em; +} +/* Animated rotating icon */ +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Icon rotations and mirroring */ +.icon-rotate-90:before { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); +} +.icon-rotate-180:before { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); +} +.icon-rotate-270:before { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} +.icon-flip-horizontal:before { + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical:before { + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-empty:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-ok:before { + content: "\f00c"; +} +.icon-remove:before { + content: "\f00d"; +} +.icon-zoom-in:before { + content: "\f00e"; +} +.icon-zoom-out:before { + content: "\f010"; +} +.icon-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-cog:before { + content: "\f013"; +} +.icon-trash:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file:before { + content: "\f016"; +} +.icon-time:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download-alt:before { + content: "\f019"; +} +.icon-download:before { + content: "\f01a"; +} +.icon-upload:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle:before { + content: "\f01d"; +} +.icon-repeat:before, +.icon-rotate-right:before { + content: "\f01e"; +} +/* F020 doesn't work in Safari. all shifted one down */ +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-indent-left:before { + content: "\f03b"; +} +.icon-indent-right:before { + content: "\f03c"; +} +.icon-facetime-video:before { + content: "\f03d"; +} +.icon-picture:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before { + content: "\f044"; +} +.icon-share:before { + content: "\f045"; +} +.icon-check:before { + content: "\f046"; +} +.icon-move:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-sign:before { + content: "\f055"; +} +.icon-minus-sign:before { + content: "\f056"; +} +.icon-remove-sign:before { + content: "\f057"; +} +.icon-ok-sign:before { + content: "\f058"; +} +.icon-question-sign:before { + content: "\f059"; +} +.icon-info-sign:before { + content: "\f05a"; +} +.icon-screenshot:before { + content: "\f05b"; +} +.icon-remove-circle:before { + content: "\f05c"; +} +.icon-ok-circle:before { + content: "\f05d"; +} +.icon-ban-circle:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-share-alt:before, +.icon-mail-forward:before { + content: "\f064"; +} +.icon-resize-full:before { + content: "\f065"; +} +.icon-resize-small:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-sign:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye-open:before { + content: "\f06e"; +} +.icon-eye-close:before { + content: "\f070"; +} +.icon-warning-sign:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder-close:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-resize-vertical:before { + content: "\f07d"; +} +.icon-resize-horizontal:before { + content: "\f07e"; +} +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-sign:before { + content: "\f081"; +} +.icon-facebook-sign:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-up:before { + content: "\f087"; +} +.icon-thumbs-down:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-empty:before { + content: "\f08a"; +} +.icon-signout:before { + content: "\f08b"; +} +.icon-linkedin-sign:before { + content: "\f08c"; +} +.icon-pushpin:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-signin:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-sign:before { + content: "\f092"; +} +.icon-upload-alt:before { + content: "\f093"; +} +.icon-lemon:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-check-empty:before { + content: "\f096"; +} +.icon-bookmark-empty:before { + content: "\f097"; +} +.icon-phone-sign:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0a2"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-right:before { + content: "\f0a4"; +} +.icon-hand-left:before { + content: "\f0a5"; +} +.icon-hand-up:before { + content: "\f0a6"; +} +.icon-hand-down:before { + content: "\f0a7"; +} +.icon-circle-arrow-left:before { + content: "\f0a8"; +} +.icon-circle-arrow-right:before { + content: "\f0a9"; +} +.icon-circle-arrow-up:before { + content: "\f0aa"; +} +.icon-circle-arrow-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-fullscreen:before { + content: "\f0b2"; +} +.icon-group:before { + content: "\f0c0"; +} +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-beaker:before { + content: "\f0c3"; +} +.icon-cut:before { + content: "\f0c4"; +} +.icon-copy:before { + content: "\f0c5"; +} +.icon-paper-clip:before { + content: "\f0c6"; +} +.icon-save:before { + content: "\f0c7"; +} +.icon-sign-blank:before { + content: "\f0c8"; +} +.icon-reorder:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-sign:before { + content: "\f0d3"; +} +.icon-google-plus-sign:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before { + content: "\f0dd"; +} +.icon-sort-up:before { + content: "\f0de"; +} +.icon-envelope-alt:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-undo:before, +.icon-rotate-left:before { + content: "\f0e2"; +} +.icon-legal:before { + content: "\f0e3"; +} +.icon-dashboard:before { + content: "\f0e4"; +} +.icon-comment-alt:before { + content: "\f0e5"; +} +.icon-comments-alt:before { + content: "\f0e6"; +} +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before { + content: "\f0ea"; +} +.icon-lightbulb:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-alt:before { + content: "\f0f3"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-food:before { + content: "\f0f5"; +} +.icon-file-alt:before { + content: "\f0f6"; +} +.icon-building:before { + content: "\f0f7"; +} +.icon-hospital:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-sign:before { + content: "\f0fd"; +} +.icon-plus-sign-alt:before { + content: "\f0fe"; +} +.icon-double-angle-left:before { + content: "\f100"; +} +.icon-double-angle-right:before { + content: "\f101"; +} +.icon-double-angle-up:before { + content: "\f102"; +} +.icon-double-angle-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before { + content: "\f10b"; +} +.icon-circle-blank:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-reply:before, +.icon-mail-reply:before { + content: "\f112"; +} +.icon-folder-close-alt:before { + content: "\f114"; +} +.icon-folder-open-alt:before { + content: "\f115"; +} +.icon-expand-alt:before { + content: "\f116"; +} +.icon-collapse-alt:before { + content: "\f117"; +} +.icon-smile:before { + content: "\f118"; +} +.icon-frown:before { + content: "\f119"; +} +.icon-meh:before { + content: "\f11a"; +} +.icon-gamepad:before { + content: "\f11b"; +} +.icon-keyboard:before { + content: "\f11c"; +} +.icon-flag-alt:before { + content: "\f11d"; +} +.icon-flag-checkered:before { + content: "\f11e"; +} +.icon-terminal:before { + content: "\f120"; +} +.icon-code:before { + content: "\f121"; +} +.icon-reply-all:before { + content: "\f122"; +} +.icon-mail-reply-all:before { + content: "\f122"; +} +.icon-star-half-full:before, +.icon-star-half-empty:before { + content: "\f123"; +} +.icon-location-arrow:before { + content: "\f124"; +} +.icon-crop:before { + content: "\f125"; +} +.icon-code-fork:before { + content: "\f126"; +} +.icon-unlink:before { + content: "\f127"; +} +.icon-question:before { + content: "\f128"; +} +.icon-info:before { + content: "\f129"; +} +.icon-exclamation:before { + content: "\f12a"; +} +.icon-superscript:before { + content: "\f12b"; +} +.icon-subscript:before { + content: "\f12c"; +} +.icon-eraser:before { + content: "\f12d"; +} +.icon-puzzle-piece:before { + content: "\f12e"; +} +.icon-microphone:before { + content: "\f130"; +} +.icon-microphone-off:before { + content: "\f131"; +} +.icon-shield:before { + content: "\f132"; +} +.icon-calendar-empty:before { + content: "\f133"; +} +.icon-fire-extinguisher:before { + content: "\f134"; +} +.icon-rocket:before { + content: "\f135"; +} +.icon-maxcdn:before { + content: "\f136"; +} +.icon-chevron-sign-left:before { + content: "\f137"; +} +.icon-chevron-sign-right:before { + content: "\f138"; +} +.icon-chevron-sign-up:before { + content: "\f139"; +} +.icon-chevron-sign-down:before { + content: "\f13a"; +} +.icon-html5:before { + content: "\f13b"; +} +.icon-css3:before { + content: "\f13c"; +} +.icon-anchor:before { + content: "\f13d"; +} +.icon-unlock-alt:before { + content: "\f13e"; +} +.icon-bullseye:before { + content: "\f140"; +} +.icon-ellipsis-horizontal:before { + content: "\f141"; +} +.icon-ellipsis-vertical:before { + content: "\f142"; +} +.icon-rss-sign:before { + content: "\f143"; +} +.icon-play-sign:before { + content: "\f144"; +} +.icon-ticket:before { + content: "\f145"; +} +.icon-minus-sign-alt:before { + content: "\f146"; +} +.icon-check-minus:before { + content: "\f147"; +} +.icon-level-up:before { + content: "\f148"; +} +.icon-level-down:before { + content: "\f149"; +} +.icon-check-sign:before { + content: "\f14a"; +} +.icon-edit-sign:before { + content: "\f14b"; +} +.icon-external-link-sign:before { + content: "\f14c"; +} +.icon-share-sign:before { + content: "\f14d"; +} +/*! + * Font Awesome 3.1.0 + * the iconic font designed for Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fontawesome.io + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License v1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 License - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + + * Contact + * ------------------------------------------------------- + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */ +.icon-large { + font-size: 1.3333333333333333em; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; + vertical-align: middle; +} +.nav [class^="icon-"], +.nav [class*=" icon-"] { + vertical-align: inherit; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; +} +.nav [class^="icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + vertical-align: -25%; +} +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large { + line-height: .75em; + margin-top: -7px; + padding-top: 5px; + margin-bottom: -5px; + padding-bottom: 4px; +} +ul.icons-ul { + text-indent: -1em; + margin-left: 2.142857142857143em; +} +ul.icons-ul > li .icon-li { + width: 1em; + margin-right: 0; +} +.btn [class^="icon-"].pull-left, +.btn [class*=" icon-"].pull-left, +.btn [class^="icon-"].pull-right, +.btn [class*=" icon-"].pull-right { + vertical-align: inherit; +} +.btn [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large { + margin-top: -0.5em; +} +a [class^="icon-"], +a [class*=" icon-"] { + cursor: pointer; +} +.icon-glass { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-music { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-search { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-film { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-large { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-in { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-out { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cog { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trash { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-home { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-time { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-road { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-inbox { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-repeat { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-refresh { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-headphones { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-qrcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-barcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tags { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-book { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-print { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-font { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bold { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-italic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-height { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-width { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-center { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-justify { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facetime-video { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-picture { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pencil { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-map-marker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-adjust { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tint { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-edit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-move { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pause { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eject { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-question-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-info-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-screenshot { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ban-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-full { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-small { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-asterisk { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exclamation-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gift { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-leaf { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fire { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-warning-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plane { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-calendar { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-random { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magnet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-retweet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-shopping-cart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-vertical { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-horizontal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bar-chart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera-retro { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-key { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cogs { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signout { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pushpin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-external-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trophy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lemon { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-credit-card { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rss { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hdd { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bullhorn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-certificate { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-globe { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-wrench { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tasks { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-filter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-briefcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fullscreen { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-group { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beaker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cut { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-copy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paper-clip { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-save { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sign-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reorder { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ul { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ol { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-strikethrough { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-underline { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-table { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-truck { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-money { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-columns { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-undo { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-legal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dashboard { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bolt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sitemap { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-umbrella { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paste { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lightbulb { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exchange { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user-md { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stethoscope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-suitcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-coffee { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-food { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-building { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hospital { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ambulance { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-medkit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fighter-jet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beer { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-h-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-desktop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-laptop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tablet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mobile-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-spinner { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reply { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-expand-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-collapse-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-smile { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-frown { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-meh { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gamepad { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-keyboard { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag-checkered { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-terminal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-code { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reply-all { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mail-reply-all { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half-full, +.icon-star-half-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-location-arrow { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-crop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-code-fork { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlink { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-question { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-info { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exclamation { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-superscript { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-subscript { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eraser { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-puzzle-piece { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-microphone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-microphone-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-shield { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-calendar-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fire-extinguisher { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rocket { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-maxcdn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-html5 { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-css3 { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-anchor { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlock-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bullseye { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ellipsis-horizontal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ellipsis-vertical { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rss-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ticket { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus-sign-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-minus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-level-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-level-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-edit-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-external-link-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: -0.15000000000000002 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.7; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + text-decoration: none; + color: #333333; + background-color: #e9e9e9; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #333333; + text-decoration: none; + outline: 0; + background-color: #e9e9e9; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: default; +} +.open { + *z-index: 1000; +} +.open > .dropdown-menu { + display: block; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; +} +.dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} +.dropdown-submenu:hover > a:after { + border-left-color: #333333; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; +} +.dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} +.typeahead { + z-index: 1051; + margin-top: 2px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-large { + padding: 24px; +} +.well-small { + padding: 9px; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 1.7; + color: #000000; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.btn { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + padding: 4px 12px; + margin-bottom: 0; + font-size: 14px; + line-height: 1.7; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #333333; + background-color: #f5f5f5; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e6e6e6; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #cccccc; + *border: 0; + border-bottom-color: #b3b3b3; + *margin-left: .3em; +} +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} +.btn:active, +.btn.active { + background-color: #cccccc \9; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, +.btn:active { + background-image: none; + outline: 0; +} +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); +} +.btn-large { + padding: 11px 19px; + font-size: 18px; +} +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} +.btn-small { + padding: 2px 10px; + font-size: 13px; +} +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} +.btn-mini { + padding: 0 6px; + font-size: 10.5px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + color: #ffffff; + background-color: #25318f; + border-color: #2c218f #2c218f #191351; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #2c218f; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #2c218f; + *background-color: #251c7a; +} +.btn-primary:active, +.btn-primary.active { + background-color: #1f1766 \9; +} +.btn-warning { + color: #ffffff; + background-color: #faa732; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #f89406; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + color: #ffffff; + background-color: #b52d2b; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #bd362f; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + color: #ffffff; + background-color: #5bb75b; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} +.btn-info { + color: #ffffff; + background-color: #49afcd; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #2f96b4; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} +.btn-inverse { + color: #ffffff; + background-color: #363636; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #222222; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; +} +.btn-link { + border-color: transparent; + cursor: pointer; + color: #213b8f; +} +.btn-link:hover, +.btn-link:focus { + color: #2f55cd; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} +.btn-group { + position: relative; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + font-size: 0; + vertical-align: middle; + white-space: nowrap; + *margin-left: .3em; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + font-size: 0; + margin-top: 0.85; + margin-bottom: 0.85; +} +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} +.btn-group > .btn { + position: relative; +} +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} +.btn-group > .btn-mini { + font-size: 10.5px; +} +.btn-group > .btn-small { + font-size: 13px; +} +.btn-group > .btn-large { + font-size: 18px; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn.large:first-child { + margin-left: 0; +} +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group > .btn-mini + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; +} +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; +} +.btn-group.open .dropdown-toggle { + background-image: none; +} +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #2c218f; +} +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} +.btn .caret { + margin-top: 8px; + margin-left: 0; +} +.btn-large .caret { + margin-top: 6px; +} +.btn-large .caret { + border-left-width: 5px; + border-right-width: 5px; + border-top-width: 5px; +} +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} +.dropup .btn-large .caret { + border-bottom-width: 5px; +} +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; +} +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; +} +.btn-group-vertical > .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 1.7; + background-color: #fcf8e3; + border: 1px solid #fbeed5; +} +.alert, +.alert h4 { + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 1.7; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-success h4 { + color: #468847; +} +.alert-danger, +.alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-info h4 { + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 1.7; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li > a > img { + max-width: none; +} +.nav > .pull-right { + float: right; +} +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 1.7; + color: #999999; + text-transform: uppercase; +} +.nav li + .nav-header { + margin-top: 9px; +} +.nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.nav-list > li > a, +.nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; +} +.nav-list > li > a { + padding: 3px 15px; +} +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + background-color: #213b8f; +} +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} +.nav-list .divider { + *width: 100%; + height: 1px; + margin: -0.15000000000000002 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.nav-tabs, +.nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; + line-height: 0; +} +.nav-tabs:after, +.nav-pills:after { + clear: both; +} +.nav-tabs > li, +.nav-pills > li { + float: left; +} +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 1.7; + border: 1px solid transparent; +} +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + background-color: #f2f2f2; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #213b8f; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; +} +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav .dropdown-toggle .caret { + border-top-color: #213b8f; + border-bottom-color: #213b8f; + margin-top: 6px; +} +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #2f55cd; + border-bottom-color: #2f55cd; +} +/* move down carets for tabs */ +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, +.tabbable:after { + display: table; + content: ""; + line-height: 0; +} +.tabbable:after { + clear: both; +} +.tab-content { + overflow: auto; +} +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; +} +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; +} +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.nav > .disabled > a { + color: #999999; +} +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + cursor: default; +} +.navbar { + overflow: visible; + margin-bottom: 1.7; + *position: relative; + *z-index: 2; +} +.navbar-inner { + min-height: 55px; + padding-left: 20px; + padding-right: 20px; + background-color: #ededed; + border: 1px solid #c7c7c7; + *zoom: 1; +} +.navbar-inner:before, +.navbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-inner:after { + clear: both; +} +.navbar .container { + width: auto; +} +.nav-collapse.collapse { + height: auto; + overflow: visible; +} +.navbar .brand { + float: left; + display: block; + padding: 26.65px 20px 26.65px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #ffffff; +} +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} +.navbar-text { + margin-bottom: 0; + line-height: 55px; + color: #777777; +} +.navbar-link { + color: #253237; +} +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} +.navbar .divider-vertical { + height: 55px; + margin: 0 9px; + border-left: 1px solid #e5e5e5; + border-right: 1px solid #f2f2f2; +} +.navbar .btn, +.navbar .btn-group { + margin-top: 12.5px; +} +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 12.5px; +} +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: 12.5px; + margin-bottom: 0; +} +.navbar-search .search-query { + margin-bottom: 0; + padding: 4px 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; +} +.navbar-static-top { + position: static; + margin-bottom: 0; +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; +} +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} +.navbar .nav > li { + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 26.65px 15px 26.65px; + color: #253237; + text-decoration: none; +} +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + background-color: transparent; + color: #333333; + text-decoration: none; +} +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #d8d8d8; +} +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + color: #ffffff; + background-color: #e0e0e0; + border-color: #d8d8d8 #d8d8d8 #b2b2b2; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #d8d8d8; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #d8d8d8; + *background-color: #cccccc; +} +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #bfbfbf \9; +} +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.navbar .nav > li > .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .nav > li > .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #d8d8d8; + color: #555555; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #253237; + border-bottom-color: #253237; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; +} +.navbar-inverse .navbar-inner { + background-color: #1f2129; + border-color: #252525; +} +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; +} +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} +.navbar-inverse .brand { + color: #999999; +} +.navbar-inverse .navbar-text { + color: #999999; +} +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + background-color: transparent; + color: #ffffff; +} +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #1b2033; +} +.navbar-inverse .navbar-link { + color: #999999; +} +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} +.navbar-inverse .divider-vertical { + border-left-color: #1b2033; + border-right-color: #222222; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #1b2033; + color: #ffffff; +} +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #475486; + border-color: #1b2033; + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + background-color: #ffffff; + border: 0; + outline: 0; +} +.navbar-inverse .btn-navbar { + color: #ffffff; + background-color: #14151a; + border-color: #121622 #121622 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #121622; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #121622; + *background-color: #090b12; +} +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #010101 \9; +} +.breadcrumb { + padding: 8px 15px; + margin: 0 0 1.7; + list-style: none; + background-color: #f5f5f5; +} +.breadcrumb > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; +} +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} +.breadcrumb > .active { + color: #999999; +} +.pagination { + margin: 1.7 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + margin-left: 0; + margin-bottom: 0; +} +.pagination ul > li { + display: inline; +} +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 1.7; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 18px; +} +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 13px; +} +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} +.pager { + margin: 1.7 0; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, +.pager:after { + display: table; + content: ""; + line-height: 0; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + background-color: #fff; + cursor: default; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + outline: none; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 10%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-header h3 { + margin: 0; + line-height: 30px; +} +.modal-body { + position: relative; + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + *zoom: 1; +} +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; + line-height: 0; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; +} +.popover-title:empty { + display: none; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; + line-height: 0; +} +.thumbnails:after { + clear: both; +} +.row-fluid .thumbnails { + margin-left: 0; +} +.thumbnails > li { + float: left; + margin-bottom: 1.7; + margin-left: 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1.7; + border: 1px solid #ddd; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #213b8f; +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: #555555; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-object { + display: block; +} +.media-heading { + margin: 0 0 5px; +} +.media > .pull-left { + margin-right: 10px; +} +.media > .pull-right { + margin-left: 10px; +} +.media-list { + margin-left: 0; + list-style: none; +} +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + vertical-align: baseline; + white-space: nowrap; + background-color: #999999; +} +.badge { + padding-left: 9px; + padding-right: 9px; +} +.label:empty, +.badge:empty { + display: none; +} +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label-important, +.badge-important { + background-color: #b94a48; +} +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} +.label-warning, +.badge-warning { + background-color: #f89406; +} +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} +.label-success, +.badge-success { + background-color: #468847; +} +.label-success[href], +.badge-success[href] { + background-color: #356635; +} +.label-info, +.badge-info { + background-color: #3a87ad; +} +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} +.label-inverse, +.badge-inverse { + background-color: #333333; +} +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} +.btn-mini .label, +.btn-mini .badge { + top: 0; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 1.7; + margin-bottom: 1.7; + background-color: #f7f7f7; +} +.progress .bar { + width: 0%; + height: 100%; + color: #ffffff; + float: left; + font-size: 12px; + text-align: center; + background-color: #0e90d2; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; +} +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; +} +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; +} +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; +} +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.accordion { + margin-bottom: 1.7; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-toggle { + cursor: pointer; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 1.7; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); +} +.carousel-indicators .active { + background-color: #fff; +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; + line-height: 1.7; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 2.55; + color: inherit; + background-color: #eeeeee; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.hero-unit li { + line-height: 2.55; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} +.affix { + position: fixed; +} \ No newline at end of file diff --git a/css/dockerfile_tutorial.css b/css/dockerfile_tutorial.css new file mode 100644 index 0000000000..ac3f538f3e --- /dev/null +++ b/css/dockerfile_tutorial.css @@ -0,0 +1,63 @@ +pre { + background-color: #F5F5F5; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px 4px 4px 4px; + display: block; + font-size: 13px; + line-height: 20px; + margin: 0 0 10px; + padding: 9.5px; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; +} +code, pre { + border-radius: 3px 3px 3px 3px; + color: #333333; + font-family: Monaco,Menlo,Consolas,"Courier New",monospace; + font-size: 12px; + padding: 0 3px 2px; +} + +.terminal { + color: #AAAAAA; + background-color: black; +} + +.terminal span.command { + color: white; + font-weight: bold; +} + +.error_input { + border-color: #B94A48 !important; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important; +} + +input.level { + width: 150px; + height: 2.5em; + display: inline-block; +} +div.level_error { + width: 300px; + display: inline-block; + padding: 7px 12px; +} +.alert { + text-align:center; +} +#check_level_questions { + margin-top: 10px; +} +.form-inline input.l_fill { + height: 20px; + border-radius: 0; + width: 90px; + margin-right: 0; + padding: 0 0 2px 0; +} +.dockerfile.back { + display: block; + margin-top: 5px; +} \ No newline at end of file diff --git a/css/docs.css b/css/docs.css new file mode 100644 index 0000000000..4e31d04cd1 --- /dev/null +++ b/css/docs.css @@ -0,0 +1,449 @@ +#top-header { + margin-top: 26px; + margin-bottom: 10px; +} + +#top-header .header2 { + font-weight: 400; +} + +#usernav > ul { + margin-top: 10px; + z-index: 99999; +} + +.menu-caption { + padding-bottom: 10px; +} + +#toc_table { + margin-top: 10px; +} + +#leftnav { + height: 100%; + overflow: hidden; +} + +#leftnav .nav ul { + line-height: 1; + margin: 10px 10px 0px 16px; + padding: 0; + list-style: none; +} +#leftnav .nav li ul a, +#leftnav .nav li ul a:hover { + margin: 0 !important; + padding: 0 !important; + font-size: 13px; + font-weight: 400; + color: #394d54; +} +#leftnav .nav li ul a:hover { + color: #24b8eb; +} + +#leftnav .nav.nav-tabs li a, +#leftnav .nav.nav-tabs li li { + line-height: 1.1 !important; +} + +#leftnav li { + margin-top: 20px; + // text-indent: -16px; + padding-left: 10px; + padding-right: 10px; +} +#leftnav .nav-tabs.nav ul li { + margin-top: 5px; +} + +.content-body { + padding: 0px 0px 0px 20px; +} + +ol { + padding-left: 22px; +} + +ol li { + margin: 8px; +} + +pre { + font-size: 12px; + line-height: 1.5; +} + +/* Main Navigation */ +#nav_menu > #docsnav { + width: 940px; + margin: 0 auto; +} +#nav_menu > #docsnav > #nav_search { + margin-top: 10px; +} +.search_input:focus { + background: #fff; + outline: none; +} +#nav_menu > #docsnav > #main-nav { + height: 50px; + margin: 0px; + padding: 0em; +} +#nav_menu > #docsnav > #main-nav > li > a { + color: #253237; +} +#nav_menu > #docsnav > #main-nav > li.dd_on_hover { + background: #d3f1fb; + color: #253237; +} +#nav_menu > #docsnav > #main-nav > li > span > b { + border-top-color: #b1d5df !important; +} +#nav_menu > #docsnav > #main-nav > li.dd_on_hover > span > b { + border-top-color: #71afc0 !important; +} +#nav_menu > #docsnav > #main-nav > li form { + margin-top: -12px; +} +#nav_menu > #docsnav > #main-nav > li.home > a { + color: #fff; +} +#nav_menu > #docsnav > #main-nav > li.home:hover { + background: #b1d5df; +} +#nav_menu > #docsnav > #main-nav > li.home:hover > a { + color: #5992a3; +} +#nav_menu { + background: #E8E8E8; + position: relative; + width: 100%; + height: 54px; + z-index: 1000; + top: auto; + padding: 0px 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +#nav_menu #docsnav #main-nav > li { + font-size: 15px; + font-weight: 400; + color: #253237; + line-height: 2em; + display: block; + padding: 0 12px 0 12px; + line-height: 54px; + height: 54px; +} +#nav_menu #docsnav #main-nav > li.active { + background: #ade5f9; /* url("../img/nav/caret-down-subnav-icon.svg") no-repeat 87% 50%;*/ +} +#nav_menu #docsnav #main-nav > li.dd_on_hover { + /*background: #ade5f9 url("../img/nav/caret-down-subnav-icon.svg") no-repeat 87% 50%;*/ +} +#nav_search { + padding-top: 2px; +} +#nav_search input[type="text"] { + width: 220px; + height: 30px; + margin: 0; + background: #ffffff url("../img/nav/search-icon.svg") no-repeat 95% 50%; +} +/* Navigation Submenu */ +.dd_menu { + cursor: pointer; +} +.dd_menu .dd_submenu { + display: none; + position: absolute; + top: 54px; + list-style: none; + margin: 0px; + margin-left: -12px; + overflow: hidden; + overflow-y: auto; + background: #fff; + border: 1px solid #ccc; + border-top: none; + border-bottom: 3px solid #ccc; + -webkit-border-radius: 0px 0px 4px 4px; + -moz-border-radius: 0px 0px 4px 4px; + border-radius: 0px 0px 4px 4px; + padding: 0px; +} +.dd_menu.dd_on_hover .dd_submenu { + display: block; +} +.dd_menu.dd_on_hover .dd_submenu > li:first-child { + border: none; +} +.dd_menu.dd_on_hover .dd_submenu > li { + border-top: 1px solid #ddd; +} +.dd_menu.dd_on_hover .dd_submenu > li.active > a { + border-color: #b1d5df; + color: #FF8100 !important; +} +.dd_menu.dd_on_hover .dd_submenu > li > a { + padding: 0.6em 0.8em 0.4em 0.8em; + width: 100%; + display: block; +} +.dd_menu li a { + font-size: 15px; + font-weight: 400; + color: #005976; +} +.dd_menu li a:hover { + text-decoration: none; + font-size: 15px; + font-weight: 400; + color: #24b8eb; +} + +/* Search Page */ +#tipue_search_input { + height: 30px; + margin: 0; + background: #ffffff url("../img/nav/search-icon.svg") no-repeat 95% 50%; +} + +.alert-red-block { + margin: 10px 0px; + background: #edd3d7; + border: none; + margin-bottom: 20px; +} + +.content-body ul { + padding: 10px 0px 10px 20px; + list-style-position: inherit; + list-style: circle; +} + +.content-body ul li { + padding-bottom: 5px; +} + +.content-body ul ul { + padding: 10px 0px 10px 40px; +} + +.content-body h1 { + display: block !important; + font-size: 27px; + font-weight: 400; + color: #394d54; + line-height: 1.33; + margin-bottom: 8px; + margin-top: 6px; +} + +.content-body h2 { + font-size: 21px; + font-weight: 400; + color: #394d54; + line-height: 1.7; + margin-bottom: 4px; + margin-top: 10px; +} + +.content-body h3 { + font-size: 18px; + font-weight: 400; + color: #394d54; + line-height: 1.7; + margin-bottom: 4px; + margin-top: 10px; +} + +.content-body h4 { + font-size: 16px; + font-weight: 400; + color: #394d54; + line-height: 1.7; + margin-bottom: 4px; + margin-top: 10px; +} + +.content-body p { + font-size: 14px; + font-weight: 400; + color: #394d54; + line-height: 1.7; +} + +.content-body p code { + background-color: #FCFCFC; + border-radius: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border: 1px solid #dbdde0; + color: #394d54; + padding-left: 6px; + padding-right: 6px; + margin-bottom: 2px; +} + +.content-body blockquote { + margin: 0px !important; + margin-bottom: 20px !important; + margin-top: 20px !important; + font-size: 14px; + font-weight: 400; + color: #394d54; + line-height: 1.7; + font-style: italic; + border: none; + border-left: 4px solid #ade5f9; + padding: 10px; + padding-left: 15px; +} + +.content-body ul { + margin-top: 0px !important; +} + +.content-body blockquote a { + color: #24b8eb; +} + +.content-body blockquote a:hover { + color: #008bb8; +} + +.content-body ul { + margin-top: 0px !important; +} + +.content-body pre { + font-family: Monaco, Consolas, "Lucida Console", monospace; + background-color: #FCFCFC; + margin-bottom: 20px; + border-radius: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + overflow-x: auto; +} +.content-body pre code { + overflow-wrap: normal; + white-space: pre; +} + +.content-body strong { + font-weight: bold; +} + +@media (max-width: 767px) { + #leftnav { + display: none !important; + } + + .content-body { + padding: 0; + } + + #content { + width: 100%; + } + + #content .row { + margin: 0; + padding: 0 15px; + } + + #content [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } +} + +/* Tables */ +.content-body table { + box-sizing: border-box; + margin-bottom: 20px; + width: 100%; + word-break: normal; +} + +.content-body thead { + background-color: #e8e8e8; +} + +.content-body tr { + border-top: 1px solid #ccc; + vertical-align: top; +} + +.content-body tr:nth-child(2n) { + background-color:#f8f8f8; +} + +.content-body th, +.content-body td +{ + padding: 6px 13px; +} + +.content-body td { + border: 1px solid #ddd; +} + +.content-body th { + background-color: #c0c0c0; + border: 1px solid #c0c0c0; + text-align: left; +} + +/* + * Table used for showing code and CLI output, not using borders + * font-styling and background-color is the same as
 blocks.
+ */
+.content-body table.code {
+  font-family: Monaco, Consolas, "Lucida Console", monospace;
+  font-size: 11px;
+}
+
+.content-body table.code,
+.content-body table.code tr,
+.content-body table.code th,
+.content-body table.code td
+{
+  background-color: #FCFCFC;
+  border: none;
+  font-weight: normal;
+}
+
+/* Logged-in/out header */
+.topmostnav_loggedin {
+  display: none;
+}
+#topmostnav.public .brand {
+  padding-left: 0px !important;
+}
+.navbar #usernav .nav li {
+  padding-top: 0px !important;
+}
+table.table tr td img {
+    width:100%;
+}
+#versionnav ul {
+    list-style: none outside none;
+}
+#versionnav ul ul {
+    padding: 0;
+}
+
+/* over-ride the prettyPrint colouring */
+
+.str, .atv { color: #48484C; }
diff --git a/css/font/FontAwesome.otf b/css/font/FontAwesome.otf
new file mode 100644
index 0000000000..4dfe30ac7a
Binary files /dev/null and b/css/font/FontAwesome.otf differ
diff --git a/css/font/fontawesome-webfont.eot b/css/font/fontawesome-webfont.eot
new file mode 100644
index 0000000000..e054c93d18
Binary files /dev/null and b/css/font/fontawesome-webfont.eot differ
diff --git a/css/font/fontawesome-webfont.svg b/css/font/fontawesome-webfont.svg
new file mode 100644
index 0000000000..36d43b844a
--- /dev/null
+++ b/css/font/fontawesome-webfont.svg
@@ -0,0 +1,414 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
\ No newline at end of file
diff --git a/css/font/fontawesome-webfont.ttf b/css/font/fontawesome-webfont.ttf
new file mode 100644
index 0000000000..7ec2e1de89
Binary files /dev/null and b/css/font/fontawesome-webfont.ttf differ
diff --git a/css/font/fontawesome-webfont.woff b/css/font/fontawesome-webfont.woff
new file mode 100644
index 0000000000..27d80b123d
Binary files /dev/null and b/css/font/fontawesome-webfont.woff differ
diff --git a/css/img/glyphicons-halflings-white.png b/css/img/glyphicons-halflings-white.png
new file mode 100644
index 0000000000..3bf6484a29
Binary files /dev/null and b/css/img/glyphicons-halflings-white.png differ
diff --git a/css/img/glyphicons-halflings.png b/css/img/glyphicons-halflings.png
new file mode 100644
index 0000000000..686433b297
Binary files /dev/null and b/css/img/glyphicons-halflings.png differ
diff --git a/css/main.css b/css/main.css
new file mode 100644
index 0000000000..270c220fd5
--- /dev/null
+++ b/css/main.css
@@ -0,0 +1,2176 @@
+/* some core mixins*/
+/* core shared with other docker projects */
+/* ******************************
+ Core Docker style file
+
+ used on
+  www.docker.com
+  docker-index
+****************************** */
+/* this is about 10% darker, but slightly different */
+.debug {
+  border: 2px dotted red !important;
+}
+.debugbg {
+  background-color: rgba(255, 207, 139, 0.5) !important;
+}
+.highlight1 {
+  color: green !important;
+}
+.highlight2 {
+  color: red !important;
+}
+body {
+  margin: 0;
+  color: #394d54;
+  background-color: #fff;
+}
+.content {
+  padding-top: 20px;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-size: 18px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1;
+  line-height: 1.4;
+}
+h4,
+h5,
+h6 {
+  font-size: 16px;
+}
+p {
+  margin: 0 0 1em 0;
+  font-size: 14px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1.7;
+}
+p strong {
+  font-size: 14px;
+  font-weight: 500;
+  color: #394d54;
+  line-height: 1.7;
+}
+p a {
+  text-decoration: underline;
+}
+p a.btn {
+  text-decoration: none;
+}
+.time {
+  font-size: 14px;
+  font-weight: 400;
+  color: #949da7;
+}
+span.read-more {
+  margin-left: 15px;
+  white-space: nowrap;
+}
+div[class*='span'] {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.borderRadiusCode {
+  border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+}
+.box {
+  padding: 18px;
+  margin-bottom: 20px;
+  border: 1px solid #dbdde0;
+  border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+}
+.box h1,
+.box h2,
+.box h3,
+.box h4 {
+  font-weight: 700;
+  font-size: 18px;
+  line-height: 18px;
+  margin: 0 0 10px 0;
+}
+.tbox.full {
+  margin: -18px;
+}
+.fleft {
+  position: relative;
+  float: left;
+}
+.fright {
+  position: relative;
+  float: right;
+}
+.nested {
+  padding: 18px;
+  margin-left: 0px;
+}
+.paper {
+  background-color: white;
+  padding-top: 30px;
+  padding-bottom: 30px;
+}
+.float-left {
+  float: left;
+  margin-right: 15px;
+  margin-bottom: 15px;
+}
+.float-right {
+  float: right;
+  margin-left: 15px;
+  margin-bottom: 15px;
+}
+.textcenter {
+  text-align: center;
+}
+.textright {
+  text-align: right;
+}
+.textsmaller {
+  font-size: 13px;
+}
+.modal-backdrop {
+  opacity: 0.4;
+}
+.placeholder-empty {
+  width: 100%;
+  color: grey;
+  min-height: 100px;
+  font-size: larger;
+  display: -webkit-flex;
+  display: -moz-flex;
+  display: flex;
+  -webkit-flex-flow: row;
+  flex-flow: row;
+  -webkit-align-items: center;
+  align-items: center;
+  -webkit-justify-content: center;
+  justify-content: center;
+}
+.span4andahalf {
+  width: 340px !important;
+}
+code {
+  white-space: pre-line;
+}
+.btn {
+  padding: 6px 15px;
+  line-height: 1.7;
+}
+.btn-primary,
+.btn-danger {
+  padding: 6px 15px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #008bb8;
+  font-size: 14px;
+  font-weight: 400;
+  color: #fff;
+  box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.16);
+}
+.btn-primary:hover,
+.btn-danger:hover,
+.btn-primary:active,
+.btn-danger:active,
+.btn-primary:focus,
+.btn-danger:focus {
+  background-color: #24b8eb;
+}
+.btn-primary.disabled,
+.btn-danger.disabled {
+  background-color: #676668;
+}
+.btn-danger {
+  background-color: #b74b4b !important;
+}
+.btn-danger:hover,
+.btn-danger:active,
+.btn-danger:focus {
+  background-color: #edd3d7 !important;
+}
+.btn-mini {
+  padding: 1px 7px !important;
+  font-size: 13px !important;
+}
+.nav-button1 {
+  padding: 5px 24px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #ff8100;
+  font-size: 14px;
+  font-weight: 700;
+  color: #fff;
+}
+.nav-button1:hover,
+.nav-button1:active,
+.nav-button1:focus {
+  background-color: #ffa141;
+}
+.btn.nav-button2 {
+  border: 1px solid #253237 !important;
+  padding: 5px 24px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 700;
+  color: #253237;
+}
+.btn.nav-button2:hover,
+.btn.nav-button2:active,
+.btn.nav-button2:focus {
+  border-color: #24b8eb !important;
+  font-size: 14px;
+  font-weight: 700;
+  color: #24b8eb;
+}
+.primary-cta-button1 {
+  padding: 9px 24px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #ff8100;
+  font-size: 18px;
+  font-weight: 700;
+  color: #fff;
+}
+.primary-cta-button1:hover,
+.primary-cta-button1:active,
+.primary-cta-button1:focus {
+  background-color: #ffa141;
+}
+.primary-cta-button2 {
+  padding: 9px 24px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #005976;
+  font-size: 18px;
+  font-weight: 700;
+  color: #fff;
+}
+.primary-cta-button2:hover,
+.primary-cta-button2:active,
+.primary-cta-button2:focus {
+  background-color: #24b8eb;
+}
+.btn,
+.btn-group {
+  border: none;
+  border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+}
+.btn:hover,
+.btn-group:hover,
+.btn:active,
+.btn-group:active,
+.btn:focus,
+.btn-group:focus {
+  color: #fff;
+}
+.add-repository .docker-caret {
+  display: inline-block;
+  background-color: yellow;
+  width: 15px;
+  height: 15px;
+  background: url("../img/dashboard/caret-down-create-new-icon.svg") no-repeat 70% 86%;
+}
+.add-repository .btn.open {
+  background-color: #005976;
+}
+/* =======================
+   Sticky footer
+======================= */
+html,
+body {
+  height: 100%;
+  /* The html and body elements cannot have any padding or margin. */
+}
+/* Wrapper for page content to push down footer */
+#wrap {
+  /* Negative indent footer by it's height */
+  margin: 0 auto -379px;
+}
+/* Set the fixed height of the footer here */
+#push-footer,
+#footer {
+  height: 379px;
+  background: #253237;
+}
+#footer {
+  padding-top: 36px;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  /* Social */
+}
+#footer .copyright {
+  margin-top: 40px;
+}
+#footer .primary-button:hover {
+  color: #eeeeee;
+  text-decoration: none;
+}
+#footer ul {
+  margin-top: 0px;
+}
+#footer form {
+  display: inline-block;
+  width: 220px;
+}
+#footer .search span {
+  margin-bottom: 5px;
+  display: block;
+}
+#footer .search label {
+  display: none;
+}
+#footer .search ul {
+  display: none;
+}
+#footer .search form input {
+  background: #253237;
+  border-color: #ade5f9;
+  width: 220px;
+  height: 37px;
+  margin: 0px 0px 12px 0px !important;
+}
+#footer .search form button {
+  position: absolute;
+  display: block;
+  margin: -44px 220px;
+  background: none !important;
+  border: none;
+  outline: none;
+  color: #999999;
+}
+#footer .search form button:hover {
+  color: #eeeeee !important;
+}
+#footer a {
+  color: #949da7;
+}
+#footer a:hover {
+  text-decoration: none;
+  color: #eeeeee;
+}
+#footer .social {
+  width: 100px;
+  float: left;
+}
+#footer .social li a {
+  padding-left: 28px;
+}
+#footer .social li span {
+  float: left;
+  width: 24px;
+  height: 25px;
+  position: absolute;
+  margin: 1px 0px 2px -28px;
+}
+#footer .social .blog {
+  background: url(../img/footer/docker-blog-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .twitter {
+  background: url(../img/footer/twitter-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .googleplus {
+  background: url(../img/footer/googleplus-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .facebook {
+  background: url(../img/footer/facebook-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .youtube {
+  background: url(../img/footer/youtube-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .slideshare {
+  background: url(../img/footer/slideshare-24.png) no-repeat;
+  background-position: 0px -3px;
+}
+#footer .social .linkedin {
+  background: url(../img/footer/sprites-small_360.png) no-repeat;
+  background-position: -168px -3px;
+}
+#footer .social .github {
+  background: url(../img/footer/sprites-small_360.png) no-repeat;
+  background-position: -48px -3px;
+}
+#footer .social .reddit {
+  background: url(../img/footer/sprites-small_360.png) no-repeat;
+  background-position: -192px -3px;
+}
+#footer .social .angellist {
+  background: url(../img/footer/angellist-white.svg) no-repeat;
+  background-position: 5px;
+  height: 20px;
+}
+/* Social Links */
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  #footer .social .blog {
+    background: url(../img/footer/docker-blog-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+  #footer .social .twitter {
+    background: url(../img/footer/twitter-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+  #footer .social .googleplus {
+    background: url(../img/footer/googleplus-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+  #footer .social .facebook {
+    background: url(../img/footer/facebook-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+  #footer .social .youtube {
+    background: url(../img/footer/youtube-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+  #footer .social .slideshare {
+    background: url(../img/footer/slideshare-48.png) no-repeat;
+    background-size: 24px;
+    background-position: 0px -3px;
+  }
+}
+label {
+  font-size: 14px;
+  font-weight: 700;
+  color: #253237;
+}
+input[type="text"],
+input[type="password"],
+input[type="url"],
+input[type="email"],
+textarea,
+select,
+.bootstrap-select button {
+  width: 530px;
+  padding: 0 14px;
+  line-height: 11.7px;
+  height: 11.7px;
+  font-size: 14px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1.7;
+  border: 1px solid #cccccc;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+input[type="text"][disabled],
+input[type="password"][disabled],
+input[type="url"][disabled],
+input[type="email"][disabled],
+textarea[disabled],
+select[disabled],
+.bootstrap-select button[disabled] {
+  font-size: 14px;
+  font-weight: 400;
+  color: #949da7;
+  background-color: #eeeeee;
+}
+input[type="text"]:invalid,
+input[type="password"]:invalid,
+input[type="url"]:invalid,
+input[type="email"]:invalid,
+textarea:invalid,
+select:invalid,
+.bootstrap-select button:invalid {
+  font-size: 14px;
+  font-weight: 400;
+  color: #b74b4b;
+  line-height: 1.7;
+  border-color: #b74b4b;
+  background-color: #edd3d7;
+}
+textarea {
+  padding: 12px 14px;
+  height: 100px;
+  line-height: 1.7;
+}
+.bootstrap-select button {
+  height: 13.7px;
+  background-color: #ffffff;
+}
+.bootstrap-select button:active,
+.bootstrap-select button:focus,
+.bootstrap-select button:hover {
+  background-color: #ffffff;
+}
+.bootstrap-select .dropdown-menu {
+  margin-top: 0;
+}
+.btn-group.open .btn.dropdown-toggle {
+  background-color: #ffffff;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-menu > li > a:active {
+  background-color: #ffffff;
+  color: #24b8eb;
+  outline: none;
+}
+.input-append .add-on,
+.input-prepend .add-on {
+  border: none;
+  background-color: #f2f2f2;
+  line-height: 6.7px;
+  height: 6.7px;
+}
+.control-group.error label {
+  font-size: 14px;
+  font-weight: 400;
+  color: #b74b4b;
+  line-height: 1.7;
+}
+.control-group.success label {
+  font-size: 14px;
+  font-weight: 700;
+  color: #91c5c5;
+  line-height: 1.7;
+}
+.control-group.success input[type="text"],
+.control-group.success input[type="password"] {
+  background: url("../img/icons/check-mark-green.svg") no-repeat 95% 50%;
+}
+input[type="submit"] {
+  line-height: 1.7;
+  border: none;
+  padding: 6px 15px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  background-color: #008bb8;
+  font-size: 14px;
+  font-weight: 400;
+  color: #fff;
+  box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.16);
+}
+input[type="submit"]:hover,
+input[type="submit"]:active,
+input[type="submit"]:focus {
+  color: #fff;
+}
+input[type="submit"]:hover,
+input[type="submit"]:active,
+input[type="submit"]:focus {
+  background-color: #24b8eb;
+}
+input[type="submit"].disabled {
+  background-color: #676668;
+}
+input[type="radio"],
+input[type="checkbox"] {
+  margin: 0 0.5em 0 0;
+  position: relative;
+  vertical-align: middle;
+  bottom: 1px;
+}
+input[type="reset"] {
+  font-size: 14px;
+  font-weight: 400;
+  color: #005976;
+  border: none;
+  background-color: #fff;
+}
+input[type="reset"]:hover {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+}
+.input-prepend .btn-group .dropdown-toggle {
+  font-size: 15px;
+  font-weight: 400;
+  color: #394d54;
+  background-image: url("../img/caret-down-user-icon.svg");
+}
+.btn-group.open .btn-primary.dropdown-toggle {
+  background-color: #24b8eb;
+}
+.alert {
+  padding: 8px 14px 8px 14px;
+  border: none;
+  /* &.alert-block {
+    line-height: 46px !important;
+    padding: 0 14px;
+    width: 532px;
+    .border-radius;
+  }*/
+}
+.alert ul {
+  margin-top: 0;
+}
+.alert.alert-error {
+  font-size: 14px;
+  font-weight: 400;
+  color: #b74b4b;
+  line-height: 1.7;
+  background-color: #edd3d7;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.alert.alert-error a {
+  font-size: 14px;
+  font-weight: 700;
+  color: #b74b4b;
+  line-height: 1.7;
+}
+.alert.alert-info {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+  line-height: 1.7;
+  background-color: #d3f1fb;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.alert.alert-info a {
+  font-size: 14px;
+  font-weight: 700;
+  color: #005976;
+  line-height: 1.7;
+}
+.alert.alert-success {
+  font-size: 14px;
+  font-weight: 400;
+  color: #91c5c5;
+  line-height: 1.7;
+  background-color: #e0f0d9;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.alert.alert-success a {
+  font-size: 14px;
+  font-weight: 700;
+  color: #91c5c5;
+  line-height: 1.7;
+}
+form dl {
+  margin: 0;
+}
+form dd {
+  margin: 0;
+}
+form dd.helptext {
+  margin-top: 3px;
+}
+form dd.helptext + dd {
+  margin-top: 22px;
+}
+form dt {
+  margin: 32px 0 8px 0;
+}
+form dt:first-child {
+  margin-top: 0;
+}
+form dt .error {
+  display: inline-block;
+  margin-bottom: 12px;
+  border-color: #b74b4b;
+  font-size: 14px;
+  font-weight: 400;
+  color: #b74b4b;
+  line-height: 1.7;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+form dt .error a {
+  font-size: 14px;
+  font-weight: 700;
+  color: #b74b4b;
+  line-height: 1.7;
+}
+.form-inline label {
+  margin: 0 15px 0 0;
+}
+.form-inline input[type="text"],
+.form-inline input[type="password"],
+.form-inline input[type="url"],
+.form-inline input[type="email"],
+.form-inline textarea {
+  width: 360px;
+  margin: 0 15px 0 0;
+}
+.form-inline input[type="submit"] {
+  margin: 0;
+}
+.form-inline select {
+  height: 11.7px;
+}
+div + .form-inline {
+  margin-top: 20px;
+}
+.form-inline + hr {
+  margin-top: 20px;
+}
+#stickynav .navbar-inner {
+  background-color: #3a4855;
+  border: none;
+  height: 30px;
+  min-height: 30px;
+  color: white;
+  text-align: right;
+}
+#stickynav .nav li a {
+  padding: 5px 14px;
+  color: #eeeeee;
+}
+#topmostnav {
+  border-bottom: 1px solid #dbdde0;
+}
+#topmostnav li a {
+  font-size: 14px;
+  font-weight: 700;
+  color: #253237;
+  line-height: 55px;
+  padding: 0 20px;
+}
+#topmostnav li a:hover {
+  font-size: 14px;
+  font-weight: 700;
+  color: #24b8eb;
+}
+#topmostnav li.active a {
+  background-color: #E8E8E8;
+}
+#topmostnav .brand {
+  margin: 8px 20px 0 8px;
+  padding: 0;
+}
+#topmostnav .navbar-index-search {
+  position: relative;
+  float: left;
+  margin: 13px 20px 0 0;
+  /* firefox 18- */
+  /* firefox 19+ */
+  /* ie */
+}
+#topmostnav .navbar-index-search ::-webkit-input-placeholder {
+  padding-top: 0;
+}
+#topmostnav .navbar-index-search :-moz-placeholder {
+  padding-top: 0;
+}
+#topmostnav .navbar-index-search ::-moz-placeholder {
+  padding-top: 0;
+}
+#topmostnav .navbar-index-search :-ms-input-placeholder {
+  padding-top: 0;
+}
+#topmostnav .navbar-index-search input[type="text"] {
+  height: 27px;
+  margin-top: 0;
+  font-size: 14px;
+  font-weight: 400;
+  color: #949da7;
+  background: #ffffff url("../img/nav/search-icon.svg") no-repeat 95% 50%;
+  border-color: #dbdde0;
+  border-radius: 0;
+}
+#topmostnav .navbar-index-search .search-query {
+  -webkit-transition: box-shadow linear 0.2s, background linear 0.3s, width linear 0.3s;
+  -moz-transition: box-shadow linear 0.2s, background linear 0.3s, width linear 0.3s;
+  -ms-transition: box-shadow linear 0.2s, background linear 0.3s, width linear 0.3s;
+  -o-transition: box-shadow linear 0.2s, background linear 0.3s, width linear 0.3s;
+  transition: box-shadow linear 0.2s, background linear 0.3s, width linear 0.3s;
+  width: 140px;
+}
+#topmostnav.public {
+  border-bottom: none;
+  height: 80px;
+}
+#topmostnav.public .nav {
+  margin-right: 0;
+}
+#topmostnav.public li a {
+  line-height: 80px;
+  padding: 0 15px;
+}
+#topmostnav.public li.active a {
+  background-color: #E8E8E8;
+}
+#topmostnav.public #usernav .btn {
+  margin: 24px 0 0 13px;
+}
+#topmostnav.public .brand {
+  padding-left: 10px;
+  margin: 18px 15px 0 0;
+}
+.brand.logo a {
+  text-decoration: none;
+}
+.brand.logo a {
+  text-decoration: none;
+}
+.navbar .navbar-inner {
+  padding-right: 0px;
+  padding-left: 0px;
+}
+.navbar .brand {
+  margin-left: 0px;
+  float: left;
+  display: block;
+}
+.navbar .brand.logo {
+  padding-top: 0;
+  padding-bottom: 0;
+}
+.navbar .nav li a {
+  padding: 0;
+}
+.nav-underline {
+  height: 6px;
+  background-color: #71afc0;
+}
+.nav-login li a {
+  color: white;
+  padding: 10px 15px 10px;
+}
+.inline-icon {
+  margin-bottom: 6px;
+}
+.float-left {
+  float: left;
+  margin-right: 15px;
+  margin-bottom: 15px;
+}
+.float-right {
+  float: right;
+  margin-left: 15px;
+  margin-bottom: 15px;
+}
+.navbar #usernav .nav img {
+  margin-right: 8px;
+}
+.navbar #usernav .nav li {
+  padding-top: 15px;
+}
+.navbar #usernav .nav li a,
+#versionnav .nav li a.dropdown-toggle {
+  font-size: 14px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1.7;
+  line-height: 30px;
+  padding: 0 20px 0 0;
+  background: url("../img/nav/caret-down-user-icon.svg") no-repeat 100% 50%;
+}
+.navbar #usernav .nav li a:hover,
+#versionnav .nav li a.dropdown-toggle:hover {
+  background-image: url("../img/nav/caret-down-user-icon-over.svg");
+}
+.navbar #usernav .nav li ul li,
+#versionnav .version {
+  padding: 0;
+  margin: 0;
+  height: 28px;
+}
+.navbar #usernav .nav li ul li a {
+  padding: 0 0 0 12px;
+  background-image: none;
+  line-height: 28px;
+}
+.navbar #usernav .nav li ul li a:hover {
+  background-image: none;
+}
+.navbar-index-search input[type="text"] {
+  background-color: #fff;
+  border-color: #dbdde0;
+}
+/*
+#usernav > a {
+  padding: 0 20px 0 0;
+  background: url(../img/caret-down-user-icon.svg) no-repeat 100% 50%;
+}
+#usernav > a:hover {
+  background-image: url(../img/caret-down-user-icon-over.svg);
+}
+*/
+#leftnav ul a {
+  padding: 0 0 0 19px;
+  font-size: 14px;
+  font-weight: 400;
+  color: #005976;
+}
+#leftnav ul a:hover {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+  text-decoration: none;
+}
+#leftnav div:first-child {
+  border: 1px solid #dbdde0;
+  margin-bottom: 22px;
+}
+#leftnav .nav {
+  margin: 0, 0, 20px, 0;
+}
+#leftnav .nav > li > a {
+  line-height: 22px;
+  font-size: 16px;
+  font-weight: 500;
+  color: #005976;
+}
+#leftnav .nav > li > a:hover {
+  font-size: 16px;
+  font-weight: 500;
+  color: #24b8eb;
+  text-decoration: none;
+  background-color: inherit;
+}
+#leftnav .nav.nav-tabs > li > a.dropdown-toggle,
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a {
+  background: url("../img/nav/caret-down-subnav-icon.svg") no-repeat 90% 50%;
+  font-size: 16px;
+  font-weight: 500;
+  color: #949da7;
+  line-height: 69px ;
+  height: 69px;
+}
+#leftnav .nav.nav-tabs > li > a.dropdown-toggle img,
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a img {
+  margin-right: 11px;
+}
+#leftnav .nav.nav-tabs > li > a.dropdown-toggle img.profile,
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a img.profile {
+  -webkit-border-radius: 20px;
+  -moz-border-radius: 20px;
+  border-radius: 20px;
+}
+#leftnav .nav.nav-tabs > li > a.dropdown-toggle:hover,
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a:hover {
+  font-size: 16px;
+  font-weight: 500;
+  color: #24b8eb;
+  text-decoration: none;
+}
+#leftnav .nav.nav-tabs > li > a.dropdown-toggle:focus,
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a:focus {
+  outline: none;
+}
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu {
+  width: 100%;
+  margin: 0;
+  padding: 0;
+  border-style: solid;
+  border-color: #dbdde0;
+  border-width: 0 1px 1px 1px;
+  left: -1px;
+  top: 68px;
+}
+#leftnav .nav.nav-tabs li.dropdown .dropdown-menu li a {
+  background-image: none;
+  border-top: 1px solid #dbdde0;
+}
+#leftnav .nav.nav-tabs.nav-stacked > li > a {
+  border: 0;
+}
+Killwithfire #leftnav .nav.nav-tabs li.active a {
+  font-size: 16px;
+  font-weight: 500;
+  color: #394d54;
+  line-height: 2;
+  line-height: 48px;
+  background-color: #d3f1fb;
+  border-left: 10px solid #ade5f9;
+  padding-left: 9px;
+}
+Killwithfire #leftnav .nav.nav-tabs li.active a:hover {
+  font-size: 16px;
+  font-weight: 500;
+  color: #24b8eb;
+  text-decoration: none;
+  cursor: pointer;
+}
+Killwithfire #leftnav .nav.nav-tabs li.active a:focus {
+  outline: none;
+}
+#leftnav .nav.nav-tabs > li > a {
+  line-height: 48px;
+  font-size: 16px;
+  font-weight: 500;
+  color: #005976;
+}
+#leftnav .nav.nav-tabs > li > a:hover {
+  font-size: 16px;
+  font-weight: 500;
+  color: #24b8eb;
+  text-decoration: none;
+}
+#leftnav .nav.nav-tabs > li > a:focus {
+  outline: none;
+}
+#leftnav h3 {
+  font-size: 16px;
+  font-weight: 700;
+  color: #394d54;
+  line-height: 2;
+  margin: 23px 0 3px 0;
+  padding-left: 20px;
+}
+#leftnav .progress {
+  margin-left: 20px;
+  margin-right: 20px;
+  margin-bottom: 12px;
+}
+#leftnav #profile_badge {
+  margin-bottom: 0px;
+}
+#leftnav #profile_badge #profile_name {
+  text-align: left;
+  padding: .6em;
+  padding-bottom: .1em;
+  font-size: 1.3em;
+  font-weight: bolder;
+}
+#leftnav #profile_badge #profile_details ul {
+  padding: 0px;
+  padding-left: .6em;
+}
+#leftnav #profile_badge #profile_details ul li {
+  list-style-type: none;
+}
+#leftnav #subnav {
+  margin: 0 20px;
+}
+#leftnav #subnav h1 {
+  margin-bottom: 2px;
+  margin-top: 12px;
+}
+#leftnav #subnav ul li {
+  list-style-type: none;
+}
+#leftnav #subnav #billing_info .progress {
+  margin: 0px;
+}
+#leftnav #subnav #repo_count {
+  float: right;
+  color: #949da7;
+  font-style: oblique;
+  font-size: .8em;
+}
+#leftnav #subnav .buy-button {
+  margin-top: 8px;
+}
+.large-note {
+  font-size: 20px;
+  font-weight: 300;
+  color: #394d54;
+}
+.large-header {
+  font-size: 20px;
+  font-weight: 400;
+  color: #394d54;
+}
+.profile-link {
+  font-size: 20px;
+  font-weight: 400;
+  color: #005976;
+}
+.profile-link-hover {
+  font-size: 20px;
+  font-weight: 400;
+  color: #24b8eb;
+}
+.tile-number {
+  font-size: 20px;
+  font-weight: 500;
+  color: #949da7;
+}
+.subhead {
+  font-size: 18px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1;
+}
+.secondary-nav-header {
+  font-size: 18px;
+  font-weight: 500;
+  color: #394d54;
+}
+.body-header {
+  font-size: 18px;
+  font-weight: 700;
+  color: #394d54;
+  line-height: 1.33;
+}
+.tab-link {
+  font-size: 18px;
+  font-weight: 500;
+  color: #005976;
+}
+.tab-hover {
+  font-size: 18px;
+  font-weight: 500;
+  color: #24b8eb;
+}
+.footer-title {
+  font-size: 18px;
+  font-weight: 400;
+  color: #ade5f9;
+  line-height: 1.8;
+}
+.primary-cta {
+  font-size: 18px;
+  font-weight: 700;
+  color: #fff;
+}
+.home-body-header {
+  font-size: 16px;
+  font-weight: 400;
+  color: #253237;
+}
+.tile-private {
+  font-size: 16px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 2;
+}
+.tile-medium {
+  font-size: 16px;
+  font-weight: 500;
+  color: #394d54;
+  line-height: 2;
+}
+.tile-header {
+  font-size: 16px;
+  font-weight: 700;
+  color: #394d54;
+  line-height: 2;
+}
+.secondary-nav {
+  font-size: 16px;
+  font-weight: 500;
+  color: #005976;
+}
+.secondary-nav-hover {
+  font-size: 16px;
+  font-weight: 500;
+  color: #24b8eb;
+  text-decoration: none;
+}
+.eyebrow {
+  font-size: 16px;
+  font-weight: 500;
+  color: #949da7;
+}
+.details-header {
+  font-size: 15px;
+  font-weight: 400;
+  color: #394d54;
+}
+.tertiary-nav {
+  font-size: 14px;
+  font-weight: 400;
+  color: #005976;
+}
+.tertiary-nav-hover {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+  text-decoration: none;
+}
+.home-body3 {
+  font-size: 14px;
+  font-weight: 400;
+  color: #253237;
+  line-height: 2;
+}
+.home-body1 {
+  font-size: 14px;
+  font-weight: 500;
+  color: #253237;
+  line-height: 2;
+}
+.emphasis1 {
+  font-size: 14px;
+  font-weight: 700;
+  color: #253237;
+}
+.body {
+  font-size: 14px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 1.7;
+}
+.body-bold {
+  font-size: 14px;
+  font-weight: 500;
+  color: #394d54;
+  line-height: 1.7;
+}
+.home-link3 {
+  font-size: 14px;
+  font-weight: 400;
+  color: #005976;
+}
+.home-link3-hover {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+}
+.emphasis1-hover {
+  font-size: 14px;
+  font-weight: 700;
+  color: #24b8eb;
+}
+.grey-body {
+  font-size: 14px;
+  font-weight: 400;
+  color: #949da7;
+}
+.primary-button {
+  font-size: 14px;
+  font-weight: 400;
+  color: #fff;
+}
+.nav-button {
+  font-size: 14px;
+  font-weight: 700;
+  color: #fff;
+}
+.emphasis2 {
+  font-size: 13px;
+  font-weight: 500;
+  color: #253237;
+}
+.small-body {
+  font-size: 13px;
+  font-weight: 400;
+  color: #394d54;
+  line-height: 2;
+}
+.header1 {
+  font-size: 44px;
+  font-weight: 500;
+  color: #253237;
+  line-height: 1.891;
+}
+.eyebrow-header {
+  font-size: 44px;
+  font-weight: 100;
+  color: #253237;
+  line-height: 1.891;
+}
+.header2 {
+  font-size: 32px;
+  font-weight: 300;
+  color: #394d54;
+}
+.header3 {
+  font-size: 26px;
+  font-weight: 300;
+  color: #394d54;
+  line-height: 1.3;
+}
+.header5 {
+  font-size: 21px;
+  font-weight: 300;
+  color: #394d54;
+}
+.alert-red-body {
+  font-size: 14px;
+  font-weight: 400;
+  color: #b74b4b;
+  line-height: 1.7;
+}
+.alert-red-link {
+  font-size: 14px;
+  font-weight: 700;
+  color: #b74b4b;
+  line-height: 1.7;
+}
+.alert-green-body {
+  font-size: 14px;
+  font-weight: 400;
+  color: #91c5c5;
+  line-height: 1.7;
+}
+.alert-green-link {
+  font-size: 14px;
+  font-weight: 700;
+  color: #91c5c5;
+  line-height: 1.7;
+}
+.alert-blue-body {
+  font-size: 14px;
+  font-weight: 400;
+  color: #24b8eb;
+  line-height: 1.7;
+}
+.alert-blue-link {
+  font-size: 14px;
+  font-weight: 700;
+  color: #005976;
+  line-height: 1.7;
+}
+/* specific pages */
+/* Home */
+#homepage {
+  /* Three Functional Blocks */
+  /* What Is Docker? */
+  /* How Is It Used? */
+  /* What's Trending? */
+  /* What Are They Saying? */
+}
+#homepage h1 {
+  display: block !important;
+}
+#homepage h2 {
+  margin: 0 !important;
+}
+#homepage a {
+  color: #24b8eb;
+}
+#homepage a:hover {
+  color: #008bb8;
+  text-decoration: none;
+}
+#homepage #three {
+  padding-top: 86px;
+  text-align: center;
+}
+#homepage #three .header2 {
+  display: block;
+  margin-bottom: 8px !important;
+}
+#homepage #three .img {
+  height: 98px;
+  background-repeat: no-repeat !important;
+  display: block;
+  margin: 0 auto;
+  background-position: center;
+}
+#homepage #three #stack-icon {
+  background: url("../img/homepage/developer-stack-icon.png");
+  background-size: 91px 77px;
+  width: 91px;
+}
+#homepage #three #container-icon {
+  background: url("../img/homepage/container-icon.png");
+  background-size: 108px 83px;
+  width: 108px;
+}
+#homepage #three #rack-icon {
+  background: url("../img/homepage/server-rack-icon.png");
+  background-size: 108px 83px;
+  width: 108px;
+}
+#homepage #three .home-body1 {
+  display: block;
+  height: 180px;
+}
+#homepage #what-is-docker {
+  padding-top: 70px;
+  padding-bottom: 102px;
+  text-align: center;
+  background: #f2fcff;
+}
+#homepage #what-is-docker #section-title h3 {
+  margin: 0 !important;
+}
+#homepage #what-is-docker #body {
+  background-image: url("../img/homepage/what-is-docker-arrow-loop.png");
+  background-position: center;
+  background-repeat: no-repeat;
+  height: 404px;
+}
+#homepage #what-is-docker #body .halfling {
+  padding-top: 92px;
+  width: 260px;
+}
+#homepage #use .content {
+  margin-bottom: 36px;
+}
+#homepage #use #section-title {
+  margin-top: 62px;
+  margin-bottom: 46px;
+}
+#homepage #use #see-more {
+  text-align: center;
+  margin: 0px !important;
+  margin-top: 46px !important;
+  margin-bottom: 82px !important;
+}
+#homepage #whats-trending {
+  text-align: center;
+  background: #f2fcff;
+  padding-bottom: 76px;
+}
+#homepage #whats-trending #section-title {
+  margin: 52px 0px;
+}
+#homepage #whats-trending #body {
+  margin-bottom: 36px;
+}
+#homepage #whats-trending #body .bucket {
+  background: #ffffff;
+  border-top: 4px solid #ade5f9;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  height: 346px;
+  margin-top: 24px !important;
+}
+#homepage #whats-trending #body .bucket .content {
+  text-align: left;
+  height: 290px;
+  max-height: 290px;
+  margin: 0 !important;
+  margin-left: 15px !important;
+  margin-right: 19px !important;
+  overflow: hidden;
+  padding-top: 17px !important;
+}
+#homepage #whats-trending #body .bucket .view-more {
+  margin-right: 10px;
+  margin-bottom: 15px;
+}
+#homepage #whats-trending .official-repo {
+  height: 100px;
+  overflow: hidden;
+}
+#homepage #whats-trending .official-repo .repo-img {
+  margin-top: 8px;
+}
+#homepage #whats-trending .official-repo .repo-info {
+  width: 220px;
+  padding-left: 10px;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+#homepage #whats-trending .official-repo .repo-info .home-body-header {
+  margin-right: 6px;
+}
+#homepage #whats-trending .contributor {
+  height: 38px;
+  margin-bottom: 12px;
+  margin-top: 5px;
+}
+#homepage #whats-trending .contributor .avatar {
+  width: 36px;
+  height: 36px;
+}
+#homepage #whats-trending .contributor .name {
+  padding-left: 10px;
+  line-height: 38px;
+}
+#homepage #whats-trending .contributor .points {
+  padding-left: 10px;
+  line-height: 38px;
+  background: url("../img/homepage/homepage-cloud-upload-icon.svg");
+  background-position: center left;
+  background-repeat: no-repeat;
+  width: 46px;
+  text-align: right;
+}
+#homepage #whats-trending .popular-repo {
+  margin-bottom: 48px;
+}
+#homepage #whats-trending .popular-repo .link {
+  height: 20px;
+  overflow: hidden;
+  margin-bottom: 1px;
+}
+#homepage #whats-trending .popular-repo .downloads {
+  padding-left: 34px;
+  line-height: 38px;
+  background: url("../img/homepage/homepage-cloud-download-icon.svg");
+  background-position: center left;
+  background-repeat: no-repeat;
+  text-align: left;
+  margin-right: 15px;
+}
+#homepage #whats-trending .popular-repo .stars {
+  padding-left: 34px;
+  line-height: 38px;
+  background: url("../img/homepage/homepage-star-icon.svg");
+  background-position: center left;
+  background-repeat: no-repeat;
+  text-align: left;
+}
+#homepage #what-are-they-saying {
+  padding-bottom: 74px;
+}
+#homepage #what-are-they-saying #section-title {
+  margin: 72px 0px 64px 0px;
+}
+#homepage #what-are-they-saying #tweets {
+  width: 930px;
+}
+#homepage #what-are-they-saying #tweets .who {
+  line-height: 16px;
+}
+#homepage #what-are-they-saying #tweets .who .tweet-name {
+  font-weight: bold;
+}
+#homepage #what-are-they-saying #tweets .who .tweet-body {
+  padding-left: 6px;
+}
+#homepage #what-are-they-saying #tweets .row {
+  margin-top: 12px;
+  margin-bottom: 24px;
+}
+#homepage #what-are-they-saying #tweets .avatar {
+  width: 30px;
+  height: 30px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+#homepage #what-are-they-saying .home-body-header {
+  line-height: 16px;
+}
+#homepage #what-are-they-saying .tile-private {
+  line-height: 16px;
+}
+#homepage #what-are-they-saying #up-down {
+  position: absolute !important;
+  margin-left: 950px;
+  width: 20px;
+}
+#homepage #what-are-they-saying #up-down span {
+  display: none;
+}
+#homepage #what-are-they-saying #up-down #up {
+  display: block;
+  height: 11px;
+  width: 20px;
+  margin-bottom: 180px;
+  background-image: url("../img/homepage/arrow-up-icon.svg");
+}
+#homepage #what-are-they-saying #up-down #up:hover {
+  background-image: url("../img/homepage/arrow-up-icon-over.svg");
+}
+#homepage #what-are-they-saying #up-down #down {
+  display: block;
+  height: 11px;
+  width: 20px;
+  background-image: url("../img/homepage/arrow-down-icon.svg");
+}
+#homepage #what-are-they-saying #up-down #down:hover {
+  background-image: url("../img/homepage/arrow-down-icon-over.svg");
+}
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  #home-banner #logo-block {
+    background: url("../img/homepage/docker-whale-home-logo+@2x.png");
+    background-size: 459px 261px;
+  }
+  #three #stack-icon {
+    background: url("../img/homepage/developer-stack-icon+@2x.png");
+    background-size: 91px 77px;
+  }
+  #three #container-icon {
+    background: url("../img/homepage/container-icon+@2x.png");
+    background-size: 108px 83px;
+  }
+  #three #rack-icon {
+    background: url("../img/homepage/server-rack-icon+@2x.png");
+    background-size: 108px 83px;
+  }
+  #what-is-docker #body {
+    background-image: url("../img/homepage/what-is-docker-arrow-loop+@2x.png");
+    background-position: center;
+    background-repeat: no-repeat;
+    background-size: 764px 276px;
+  }
+}
+/* What is Docker? */
+#what-is-docker #banner-block {
+  height: 454px;
+  background-color: #f2fcff;
+}
+#what-is-docker #banner-block h1 {
+  margin: 0;
+  margin-top: 52px;
+}
+#what-is-docker #banner-block #video-block {
+  margin-top: 76px;
+}
+#what-is-docker #why-block #visual-block {
+  padding-top: 192px;
+  /* 89px */
+  padding-left: 32px;
+}
+#what-is-docker #why-block #visual-block #devs-like-icon {
+  margin: 0 auto;
+  height: 114px;
+  width: 134px;
+  background-image: url("../img/what_is_docker/devs-like-icon.png");
+  background-size: 134px 114px;
+  background-repeat: no-repeat;
+  background-position: center;
+}
+#what-is-docker #why-block #visual-block #devs-like-icon span {
+  display: none;
+}
+#what-is-docker #why-block #visual-block #dotted-line-arrow {
+  margin: 0 auto;
+  margin-top: 26px !important;
+  /* 0  */
+  margin-bottom: 32px !important;
+  /* 19 */
+  height: 261px;
+  width: 107px;
+  background-image: url("../img/what_is_docker/dotted-line-arrow.png");
+  background-size: 107px 261px;
+  background-repeat: no-repeat;
+  background-position: center;
+}
+#what-is-docker #why-block #visual-block #dotted-line-arrow span {
+  display: none;
+}
+#what-is-docker #why-block #visual-block #sysadmins-like-icon {
+  margin: 0 auto;
+  height: 129px;
+  width: 121px;
+  background-image: url("../img/what_is_docker/sysadmins-like-icon.png");
+  background-size: 121px 129px;
+  background-repeat: no-repeat;
+  background-position: center;
+}
+#what-is-docker #why-block #visual-block #sysadmins-like-icon span {
+  display: none;
+}
+#what-is-docker #why-block #copy-block {
+  padding-top: 106px;
+  padding-left: 28px;
+}
+#what-is-docker #why-block #copy-block h2 {
+  margin: 0;
+}
+#what-is-docker #why-block #copy-block #copy2 {
+  margin-top: 84px;
+  margin-bottom: 94px;
+}
+#what-is-docker #compare-block {
+  background-color: #f2fcff;
+  padding-top: 103px;
+  padding-bottom: 100px;
+}
+#what-is-docker #compare-block h1 {
+  margin: 0;
+}
+#what-is-docker #compare-block #copy-block {
+  max-width: 360px;
+}
+#what-is-docker #compare-block #copy-block #copy1 {
+  margin-top: 128px;
+}
+#what-is-docker #compare-block #copy-block #copy2 {
+  margin-top: 153px;
+  margin-bottom: 50px;
+}
+#what-is-docker #compare-block #curly-brace-large {
+  margin-top: 72px;
+  background-image: url("../img/what_is_docker/curly-brace-large.png");
+  background-size: 33px 142px;
+  background-repeat: no-repeat;
+  background-position: center;
+  height: 142px;
+  width: 33px;
+}
+#what-is-docker #compare-block #curly-brace-small {
+  margin-top: 208px;
+  background-image: url("../img/what_is_docker/curly-brace-small.png");
+  background-size: 27px 65px;
+  background-repeat: no-repeat;
+  background-position: center;
+  height: 65px;
+  width: 27px;
+}
+#what-is-docker #compare-block #visual-block {
+  max-width: 220px;
+}
+#what-is-docker #compare-block #visual-block * {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  text-align: center;
+}
+#what-is-docker #compare-block #visual-block .base-block {
+  background: #394d54;
+  margin-top: 4px;
+  height: 31px;
+  line-height: 31px;
+  color: #ffffff;
+}
+#what-is-docker #compare-block #visual-block .docker-block {
+  background: #24b8eb;
+  margin-top: 4px;
+  height: 31px;
+  line-height: 31px;
+  color: #ffffff;
+}
+#what-is-docker #compare-block #visual-block .twin-block .left,
+#what-is-docker #compare-block #visual-block .twin-block .right {
+  width: 108px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .left div {
+  background: #91c5c5;
+  color: #ffffff;
+}
+#what-is-docker #compare-block #visual-block .twin-block .left .half-block1 {
+  height: 40px;
+  line-height: 40px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .left .half-block2 {
+  height: 29px;
+  line-height: 29px;
+  margin: 4px 0px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .left .half-block3 {
+  height: 63px;
+  line-height: 63px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .right {
+  border: 3px solid #ffa141;
+}
+#what-is-docker #compare-block #visual-block .twin-block .right div {
+  background: #e0f0d9;
+}
+#what-is-docker #compare-block #visual-block .twin-block .right .half-block1 {
+  height: 37px;
+  line-height: 37px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .right .half-block2 {
+  height: 29px;
+  line-height: 29px;
+  margin: 4px 0px;
+}
+#what-is-docker #compare-block #visual-block .twin-block .right .half-block3 {
+  height: 60px;
+  line-height: 60px;
+}
+#what-is-docker #compare-block #visual-block #visual1 {
+  margin-top: 73px;
+}
+#what-is-docker #compare-block #visual-block #visual2 {
+  margin-top: 102px;
+}
+#what-is-docker #compare-block #visual-block #visual2 .half-block2 {
+  margin-bottom: 0;
+}
+#what-is-docker #compare-block #visual-block #visual2 .right .half-block2 {
+  height: 26px;
+  line-height: 26px;
+}
+#what-is-docker #compare-block #buttons a {
+  margin-right: 20px;
+}
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  #what-is-docker #why-block #visual-block #devs-like-icon {
+    background-image: url("../img/what_is_docker/devs-like-icon-@2x.png");
+    background-size: 134px 114px;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+  #what-is-docker #why-block #visual-block #dotted-line-arrow {
+    background-image: url("../img/what_is_docker/dotted-line-arrow+@2x.png");
+    background-size: 107px 261px;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+  #what-is-docker #why-block #visual-block #sysadmins-like-icon {
+    background-image: url("../img/what_is_docker/sysadmins-like-icon+2x.png");
+    background-size: 121px 129px;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+  #what-is-docker #compare-block #curly-brace-large {
+    background-image: url("../img/what_is_docker/curly-brace-large+@2x.png");
+    background-size: 33px 142px;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+  #what-is-docker #compare-block #curly-brace-small {
+    background-image: url("../img/what_is_docker/curly-brace-small+@2x.png");
+    background-size: 27px 65px;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+}
+.partners-list {
+  margin-top: 32px;
+}
+.partners-list > .row-fluid {
+  margin: 20px 0px;
+}
+.partners-list > .row-fluid > .partners-logo {
+  padding-right: 20px;
+  text-align: center;
+}
+.partners-list > .row-fluid > .partners-logo > img {
+  max-height: 70px;
+}
+/* Plans - Pricing Block */
+#plans .row .span2 {
+  margin-left: 0;
+}
+#plans #features {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  text-align: right;
+  width: 144px;
+  height: 435px;
+  padding-top: 84px;
+  padding-bottom: 12px;
+}
+#plans #features .feature-label {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  height: 42px;
+  margin-bottom: 8px;
+  padding-top: 6px;
+  padding-right: 8px;
+}
+#plans #free {
+  background-color: #f2fcff;
+}
+#plans .plan {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  margin: 0px 6px 0px 0px;
+  background: #d3f1fb;
+  width: 105px;
+  height: 435px;
+  text-align: center;
+}
+#plans .plan .plan-name {
+  padding: 10px;
+  height: 60px;
+  line-height: 62px;
+}
+#plans .plan .plan-feature {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  height: 42px;
+  line-height: 30px;
+  margin-bottom: 8px;
+  padding: 6px;
+}
+#plans .plan .plan-feature .feature-yes {
+  display: block;
+  height: 23px;
+  background-image: url("../img/universal/docker-logo-pin.png");
+  background-position: center;
+  background-repeat: no-repeat;
+  background-size: 22px 16px;
+}
+#display-table .row .span2 {
+  margin-left: 0;
+}
+#display-table #labels {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  padding-right: 22px;
+  text-align: right;
+  padding-top: 84px;
+  padding-bottom: 12px;
+}
+#display-table #labels .column-label {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  height: 42px;
+  margin-bottom: 8px;
+  padding-top: 6px;
+}
+#display-table #labels .column-label-high {
+  height: 100px !important;
+}
+#display-table .bg-dark {
+  background-color: #f2fcff;
+}
+#display-table .bg-light {
+  background-color: #d3f1fb;
+}
+#display-table .column-large {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  margin: 0px 16px 0px 0px;
+  width: 216px;
+  text-align: center;
+}
+#display-table .column-large .column-name {
+  padding: 10px;
+  height: 60px;
+  line-height: 62px;
+}
+#display-table .column-large .column-feature {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  height: 42px;
+  line-height: 30px;
+  margin-bottom: 8px;
+  padding: 6px;
+}
+#display-table .column-large .column-feature .feature-yes {
+  display: block;
+  height: 23px;
+  background-image: url("../img/universal/docker-logo-pin.png");
+  background-position: center;
+  background-repeat: no-repeat;
+  background-size: 22px 16px;
+}
+#display-table .column-large .column-feature-high {
+  padding-left: 12px;
+  text-align: left;
+  height: 100px !important;
+}
+/* Usecases */
+#usecases .target-link {
+  text-align: right;
+}
+#usecases .row-fluid {
+  margin-top: 15px;
+  margin-bottom: 45px;
+}
+/* listing teams & people */
+/* Listing people (team, contributors etc.) */
+.list-people .team-member {
+  position: relative;
+  float: left;
+  margin: 0px 10px 10px 0;
+  box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  background-color: #f2fcff;
+  border: 2px solid #d3f1fb;
+  max-width: 570px;
+}
+.list-people .team-member img {
+  width: 130px;
+  height: 130px;
+}
+.list-people .team-member .name {
+  position: absolute;
+  float: center;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  margin-right: auto;
+  margin-left: auto;
+  text-align: center;
+  line-height: 18px;
+  font-size: 16px;
+  padding: 10px 8px;
+  color: #ffffff;
+  background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 65%, rgba(0, 0, 0, 0.65) 99%);
+  /* FF3.6+ */
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(65%, rgba(0, 0, 0, 0.65)), color-stop(99%, rgba(0, 0, 0, 0.65)));
+  /* Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 65%, rgba(0, 0, 0, 0.65) 99%);
+  /* Chrome10+,Safari5.1+ */
+  background: -o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 65%, rgba(0, 0, 0, 0.65) 99%);
+  /* Opera 11.10+ */
+  background: -ms-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 65%, rgba(0, 0, 0, 0.65) 99%);
+  /* IE10+ */
+  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 65%, rgba(0, 0, 0, 0.65) 99%);
+  /* W3C */
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#a6000000', GradientType=0);
+  /* IE6-9 */
+}
+.list-people .team-member .bio {
+  display: none;
+}
+.entries h3 {
+  margin: 10px 0px 20px 0px !important;
+}
+.entries .event {
+  margin-bottom: 15px !important;
+}
+.entries .event .event-date {
+  margin: 0px !important;
+}
+.entries .event .event-event-title {
+  margin: 0px !important;
+}
+.entries .event p {
+  margin: 0px !important;
+}
+/* patches */
+#content {
+  padding-bottom: 100px;
+}
+ul {
+  list-style-position: inside;
+}
+h1 {
+  display: none;
+}
+h1,
+h2,
+h3 {
+  margin: 0;
+}
+a {
+  color: #24b8eb;
+  text-decoration: none !important;
+}
+a:hover {
+  color: #008bb8;
+  text-decoration: none;
+}
+.primary-cta-button1,
+.primary-cta-button2 {
+  color: #ffffff !important;
+  padding: 6px 12px !important;
+}
+.action-buttons {
+  margin-top: 75px;
+}
+.header2,
+.header3 {
+  display: block;
+}
+.center-cta-btn {
+  margin-top: 30px;
+  margin-left: 110px;
+}
+.expand {
+  min-height: 700px;
+  height: 100%;
+}
+.menu-caption {
+  display: block;
+  padding: 10px;
+  padding-bottom: 0;
+}
+.bg-clr-blue7 {
+  background-color: #f2fcff;
+}
+.bg-clr-blue11 {
+  background-color: #d3f1fb;
+}
+.padded {
+  border-collapse: separate;
+  border-spacing: 10px 10px;
+  border: 1px solid #fff;
+}
+/* Blocks for community/participate */
+#community-blocks {
+  text-align: center;
+  font-weight: bold;
+  font-size: 12px;
+}
+#community-blocks a {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  display: inline-block;
+  width: 125px;
+  height: 125px;
+  padding: 8px;
+  margin: 0 auto;
+  background-color: #f2fcff;
+  border: 2px solid #d3f1fb;
+}
+#community-blocks a span {
+  display: block;
+}
+.margin-section {
+  margin: 30px 0px;
+}
+/* Logo - copy banner */
+#wrapping-banner {
+  text-align: center;
+  position: relative;
+  left: 0;
+  right: 0;
+  background: #ffffff;
+  /* Old browsers */
+  background: -moz-linear-gradient(top, #ffffff 0%, #b8edff 50%, #83dfff 100%);
+  /* FF3.6+ */
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(50%, #b8edff), color-stop(100%, #83dfff));
+  /* Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, #ffffff 0%, #b8edff 50%, #83dfff 100%);
+  /* Chrome10+,Safari5.1+ */
+  background: -o-linear-gradient(top, #ffffff 0%, #b8edff 50%, #83dfff 100%);
+  /* Opera 11.10+ */
+  background: -ms-linear-gradient(top, #ffffff 0%, #b8edff 50%, #83dfff 100%);
+  /* IE10+ */
+  background: linear-gradient(to bottom, #ffffff 0%, #b8edff 50%, #83dfff 100%);
+  /* W3C */
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#83dfff', GradientType=0);
+  /* IE6-9 */
+}
+#wrapping-banner h1,
+#wrapping-banner h2,
+#wrapping-banner h3 {
+  display: block;
+}
+#wrapping-banner h2 {
+  display: block;
+  margin-top: 20px !important;
+  margin-bottom: 20px !important;
+}
+#wrapping-banner .primary-cta-button1,
+#wrapping-banner .primary-cta-button2 {
+  min-width: 180px;
+}
+#wrapping-banner #copy-block {
+  width: 425px;
+  margin-left: 26px;
+  margin-bottom: 104px;
+  margin-top: 74px !important;
+}
+#wrapping-banner #logo-block {
+  height: 261px;
+  width: 459px;
+  margin-top: 57px;
+  margin-bottom: 86px;
+  background: url("../img/homepage/docker-whale-home-logo+.png");
+  background-size: 459px 261px;
+  background-repeat: no-repeat;
+}
+#wrapping-banner .eyebrow-header {
+  line-height: 46px;
+}
+#wrapping-banner .header1 {
+  line-height: 46px;
+}
+#wrapping-banner .subhead {
+  margin-top: 20px;
+  margin-bottom: 20px;
+  line-height: 30px;
+}
+#wrapping-banner .email-form {
+  margin-top: 18px;
+}
+#wrapping-banner .email-form label {
+  display: none;
+}
+#wrapping-banner .email-form ul[class=errorlist] {
+  list-style: none;
+}
+#wrapping-banner .email-form input[class=form-control] {
+  width: 300px;
+}
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  #wrapping-banner #logo-block {
+    background: url("../img/homepage/docker-whale-home-logo+@2x.png");
+    background-size: 459px 261px;
+  }
+}
diff --git a/css/prettify-1.0.css b/css/prettify-1.0.css
new file mode 100644
index 0000000000..e0df245523
--- /dev/null
+++ b/css/prettify-1.0.css
@@ -0,0 +1,28 @@
+.com { color: #93a1a1; }
+.lit { color: #195f91; }
+.pun, .opn, .clo { color: #93a1a1; }
+.fun { color: #dc322f; }
+.str, .atv { color: #D14; }
+.kwd, .prettyprint .tag { color: #1e347b; }
+.typ, .atn, .dec, .var { color: teal; }
+.pln { color: #48484c; }
+
+.prettyprint {
+    padding: 8px;
+}
+.prettyprint.linenums {
+  -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+     -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+          box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin: 0 0 0 33px; /* IE indents via margin-left */
+}
+ol.linenums li {
+  padding-left: 12px;
+  color: #bebec5;
+  line-height: 20px;
+  text-shadow: 0 1px 0 #fff;
+}
diff --git a/docker-hub-enterprise/install-config.md~ b/docker-hub-enterprise/install-config.md~
new file mode 100644
index 0000000000..0b7bcfd6fe
--- /dev/null
+++ b/docker-hub-enterprise/install-config.md~
@@ -0,0 +1,8 @@
+page_title: Using Docker Hub Enterprise Installation
+page_description: Docker Hub Enterprise Installation
+page_keywords: docker hub enterprise
+
+# Docker Hub Enterprise Installation
+
+Documenation coming soon.
+
diff --git a/docker-hub-enterprise/usage.md~ b/docker-hub-enterprise/usage.md~
new file mode 100644
index 0000000000..252223ef70
--- /dev/null
+++ b/docker-hub-enterprise/usage.md~
@@ -0,0 +1,9 @@
+page_title: Using Docker Hub Enterprise
+page_description: Docker Hub Enterprise
+page_keywords: docker hub enterprise
+
+# Docker Hub Enterprise
+
+Documenation coming soon.
+
+
diff --git a/docker-hub/accounts.md~ b/docker-hub/accounts.md~
new file mode 100644
index 0000000000..e4623f9980
--- /dev/null
+++ b/docker-hub/accounts.md~
@@ -0,0 +1,54 @@
+page_title: Accounts on Docker Hub
+page_description: Docker Hub accounts
+page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, docs, documentation
+
+# Accounts on Docker Hub
+
+## Docker Hub Accounts
+
+You can `search` for Docker images and `pull` them from [Docker
+Hub](https://hub.docker.com) without signing in or even having an
+account. However, in order to `push` images, leave comments or to *star*
+a repository, you are going to need a [Docker
+Hub](https://hub.docker.com) account.
+
+### Registration for a Docker Hub Account
+
+You can get a [Docker Hub](https://hub.docker.com) account by
+[signing up for one here](https://hub.docker.com/account/signup/). A valid
+email address is required to register, which you will need to verify for
+account activation.
+
+### Email activation process
+
+You need to have at least one verified email address to be able to use your
+[Docker Hub](https://hub.docker.com) account. If you can't find the validation email,
+you can request another by visiting the [Resend Email Confirmation](
+https://hub.docker.com/account/resend-email-confirmation/) page.
+
+### Password reset process
+
+If you can't access your account for some reason, you can reset your password
+from the [*Password Reset*](https://hub.docker.com/account/forgot-password/)
+page.
+
+## Organizations & Groups
+
+Also available on the Docker Hub are organizations and groups that allow
+you to collaborate across your organization or team. You can see what
+organizations [you belong to and add new organizations](
+https://hub.docker.com/account/organizations/) from the Account Settings
+tab. They are also listed below your user name on your repositories page and in your account profile.
+
+![organizations](/docker-hub/hub-images/orgs.png)
+
+From within your organizations you can create groups that allow you to
+further manage who can interact with your repositories.
+
+![groups](/docker-hub/hub-images/groups.png)
+
+You can add or invite users to join groups by clicking on the organization and then clicking the edit button for the group to which you want to add members. Enter a user-name (for current Hub users) or email address (if they are not yet Hub users) for the person you want to invite. They will receive an email invitation to join the group.
+
+![invite members](/docker-hub/hub-images/invite.png)
+
+
diff --git a/docker-hub/accounts/index.html b/docker-hub/accounts/index.html
new file mode 100644
index 0000000000..42760b1094
--- /dev/null
+++ b/docker-hub/accounts/index.html
@@ -0,0 +1,864 @@
+
+
+
+  
+  
+  
+  
+  
+  
+  
+  
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  Accounts - Docker Documentation
+  
+  
+  
+  
+  
+
+
+
+
+
+
+
+ +
+
+ + +
+ + + +
+ +
+ +

Accounts on Docker Hub

+

Docker Hub Accounts

+

You can search for Docker images and pull them from Docker +Hub without signing in or even having an +account. However, in order to push images, leave comments or to star +a repository, you are going to need a Docker +Hub account.

+

Registration for a Docker Hub Account

+

You can get a Docker Hub account by +signing up for one here. A valid +email address is required to register, which you will need to verify for +account activation.

+

Email activation process

+

You need to have at least one verified email address to be able to use your +Docker Hub account. If you can't find the validation email, +you can request another by visiting the Resend Email Confirmation page.

+

Password reset process

+

If you can't access your account for some reason, you can reset your password +from the Password Reset +page.

+

Organizations & Groups

+

Also available on the Docker Hub are organizations and groups that allow +you to collaborate across your organization or team. You can see what +organizations you belong to and add new organizations from the Account Settings +tab. They are also listed below your user name on your repositories page and in your account profile.

+

organizations

+

From within your organizations you can create groups that allow you to +further manage who can interact with your repositories.

+

groups

+

You can add or invite users to join groups by clicking on the organization and then clicking the edit button for the group to which you want to add members. Enter a user-name (for current Hub users) or email address (if they are not yet Hub users) for the person you want to invite. They will receive an email invitation to join the group.

+

invite members

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docker-hub/builds.md~ b/docker-hub/builds.md~ new file mode 100644 index 0000000000..164018e827 --- /dev/null +++ b/docker-hub/builds.md~ @@ -0,0 +1,350 @@ +page_title: Automated Builds on Docker Hub +page_description: Docker Hub Automated Builds +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, docs, documentation, trusted, builds, trusted builds, automated builds + +# Automated Builds on Docker Hub + +## About Automated Builds + +*Automated Builds* are a special feature of Docker Hub which allow you to +use [Docker Hub's](https://hub.docker.com) build clusters to automatically +create images from a specified `Dockerfile` and a GitHub or Bitbucket repository +(or "context"). The system will clone your repository and build the image +described by the `Dockerfile` using the repository as the context. The +resulting automated image will then be uploaded to the Docker Hub registry +and marked as an *Automated Build*. + +Automated Builds have several advantages: + +* Users of *your* Automated Build can trust that the resulting +image was built exactly as specified. + +* The `Dockerfile` will be available to anyone with access to +your repository on the Docker Hub registry. + +* Because the process is automated, Automated Builds help to +make sure that your repository is always up to date. + +Automated Builds are supported for both public and private repositories +on both [GitHub](http://github.com) and [Bitbucket](https://bitbucket.org/). + +To use Automated Builds, you must have an [account on Docker Hub]( +http://docs.docker.com/userguide/dockerhub/#creating-a-docker-hub-account) +and on GitHub and/or Bitbucket. In either case, the account needs +to be properly validated and activated before you can link to it. + +## Setting up Automated Builds with GitHub + +In order to set up an Automated Build, you need to first link your +[Docker Hub](https://hub.docker.com) account with a GitHub account. +This will allow the registry to see your repositories. + +> *Note:* +> Automated Builds currently require *read* and *write* access since +> [Docker Hub](https://hub.docker.com) needs to setup a GitHub service +> hook. We have no choice here, this is how GitHub manages permissions, sorry! +> We do guarantee nothing else will be touched in your account. + +To get started, log into your Docker Hub account and click the +"+ Add Repository" button at the upper right of the screen. Then select +[Automated Build](https://registry.hub.docker.com/builds/add/). + +Select the [GitHub service](https://registry.hub.docker.com/associate/github/). + +Then follow the onscreen instructions to authorize and link your +GitHub account to Docker Hub. Once it is linked, you'll be able to +choose a repo from which to create the Automatic Build. + +### Creating an Automated Build + +You can [create an Automated Build]( +https://registry.hub.docker.com/builds/github/select/) from any of your +public or private GitHub repositories with a `Dockerfile`. + +### GitHub Submodules + +If your GitHub repository contains links to private submodules, you'll +need to add a deploy key from your Docker Hub repository. + +Your Docker Hub deploy key is located under the "Build Details" +menu on the Automated Build's main page in the Hub. Add this key +to your GitHub submodule by visiting the Settings page for the +repository on GitHub and selecting "Deploy keys". + + + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.Your automated build's deploy key is in the "Build Details" menu +under "Deploy keys".
2.In your GitHub submodule's repository Settings page, add the +deploy key from your Docker Hub Automated Build.
+ +### GitHub Organizations + +GitHub organizations will appear once your membership to that organization is +made public on GitHub. To verify, you can look at the members tab for your +organization on GitHub. + +### GitHub Service Hooks + +Follow the steps below to configure the GitHub service +hooks for your Automated Build: + + + + + + + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.Log in to Github.com, and go to your Repository page. Click on "Settings" on + the right side of the page. You must have admin privileges to the repository in order to do this.
2.Webhooks & ServicesClick on "Webhooks & Services" on the left side of the page.
3.Find the service labeled DockerFind the service labeled "Docker" and click on it.
4.Activate Service HooksMake sure the "Active" checkbox is selected and click the "Update service" button to save your changes.
+ +## Setting up Automated Builds with Bitbucket + +In order to setup an Automated Build, you need to first link your +[Docker Hub](https://hub.docker.com) account with a Bitbucket account. +This will allow the registry to see your repositories. + +To get started, log into your Docker Hub account and click the +"+ Add Repository" button at the upper right of the screen. Then +select [Automated Build](https://registry.hub.docker.com/builds/add/). + +Select the [Bitbucket source]( +https://registry.hub.docker.com/associate/bitbucket/). + +Then follow the onscreen instructions to authorize and link your +Bitbucket account to Docker Hub. Once it is linked, you'll be able +to choose a repository from which to create the Automatic Build. + +### Creating an Automated Build + +You can [create an Automated Build]( +https://registry.hub.docker.com/builds/bitbucket/select/) from any of your +public or private Bitbucket repositories with a `Dockerfile`. + +### Adding a Hook + +When you link your Docker Hub account, a `POST` hook should get automatically +added to your Bitbucket repository. Follow the steps below to confirm or modify the +Bitbucket hooks for your Automated Build: + + + + + + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.SettingsLog in to Bitbucket.org and go to your Repository page. Click on "Settings" on + the far left side of the page, under "Navigation". You must have admin privileges + to the repository in order to do this.
2.HooksClick on "Hooks" on the near left side of the page, under "Settings".
3.Docker Post HookYou should now see a list of hooks associated with the repo, including a POST hook that points at + registry.hub.docker.com/hooks/bitbucket.
+ + +## The Dockerfile and Automated Builds + +During the build process, Docker will copy the contents of your `Dockerfile`. +It will also add it to the [Docker Hub](https://hub.docker.com) for the Docker +community (for public repositories) or approved team members/orgs (for private +repositories) to see on the repository page. + +### README.md + +If you have a `README.md` file in your repository, it will be used as the +repository's full description.The build process will look for a +`README.md` in the same directory as your `Dockerfile`. + +> **Warning:** +> If you change the full description after a build, it will be +> rewritten the next time the Automated Build has been built. To make changes, +> modify the `README.md` from the Git repository. + +## Remote Build triggers + +If you need a way to trigger Automated Builds outside of GitHub or Bitbucket, +you can set up a build trigger. When you turn on the build trigger for an +Automated Build, it will give you a URL to which you can send POST requests. +This will trigger the Automated Build, much as with a GitHub webhook. + +Build triggers are available under the Settings menu of each Automated Build +repository on the Docker Hub. + +![Build trigger screen](/docker-hub/hub-images/build-trigger.png) + +You can use `curl` to trigger a build: + +``` +$ curl --data "build=true" -X POST https://registry.hub.docker.com/u/svendowideit/testhook/trigger/be579c +82-7c0e-11e4-81c4-0242ac110020/ +OK +``` + +> **Note:** +> You can only trigger one build at a time and no more than one +> every five minutes. If you already have a build pending, or if you +> recently submitted a build request, those requests *will be ignored*. +> To verify everything is working correctly, check the logs of last +> ten triggers on the settings page . + +## Webhooks + +Automated Builds also include a Webhooks feature. Webhooks can be called +after a successful repository push is made. This includes when a new tag is added +to an existing image. + +The webhook call will generate a HTTP POST with the following JSON +payload: + +``` +{ + "callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/", + "push_data": { + "images": [ + "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3", + "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c", + ... + ], + "pushed_at": 1.417566161e+09, + "pusher": "trustedbuilder" + }, + "repository": { + "comment_count": 0, + "date_created": 1.417494799e+09, + "description": "", + "dockerfile": "#\n# BUILD\u0009\u0009docker build -t svendowideit/apt-cacher .\n# RUN\u0009\u0009docker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \u0009\u0009docker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\u0009\u0009ubuntu\nMAINTAINER\u0009SvenDowideit@home.org.au\n\n\nVOLUME\u0009\u0009[\"/var/cache/apt-cacher-ng\"]\nRUN\u0009\u0009apt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \u0009\u00093142\nCMD\u0009\u0009chmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n", + "full_description": "Docker Hub based automated build from a GitHub repo", + "is_official": false, + "is_private": true, + "is_trusted": true, + "name": "testhook", + "namespace": "svendowideit", + "owner": "svendowideit", + "repo_name": "svendowideit/testhook", + "repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/", + "star_count": 0, + "status": "Active" + } +} +``` + +Webhooks are available under the Settings menu of each Repository. + +> **Note:** If you want to test your webhook out we recommend using +> a tool like [requestb.in](http://requestb.in/). + +> **Note**: The Docker Hub servers are currently in the IP range +> `162.242.195.64 - 162.242.195.127`, so you can restrict your webhooks to +> accept webhook requests from that set of IP addresses. + +### Webhook chains + +Webhook chains allow you to chain calls to multiple services. For example, +you can use this to trigger a deployment of your container only after +it has been successfully tested, then update a separate Changelog once the +deployment is complete. +After clicking the "Add webhook" button, simply add as many URLs as necessary +in your chain. + +The first webhook in a chain will be called after a successful push. Subsequent +URLs will be contacted after the callback has been validated. + +### Validating a callback + +In order to validate a callback in a webhook chain, you need to + +1. Retrieve the `callback_url` value in the request's JSON payload. +1. Send a POST request to this URL containing a valid JSON body. + +> **Note**: A chain request will only be considered complete once the last +> callback has been validated. + +To help you debug or simply view the results of your webhook(s), +view the "History" of the webhook available on its settings page. + +### Callback JSON data + +The following parameters are recognized in callback data: + +* `state` (required): Accepted values are `success`, `failure` and `error`. + If the state isn't `success`, the webhook chain will be interrupted. +* `description`: A string containing miscellaneous information that will be + available on the Docker Hub. Maximum 255 characters. +* `context`: A string containing the context of the operation. Can be retrieved + from the Docker Hub. Maximum 100 characters. +* `target_url`: The URL where the results of the operation can be found. Can be + retrieved on the Docker Hub. + +*Example callback payload:* + + { + "state": "success", + "description": "387 tests PASSED", + "context": "Continuous integration by Acme CI", + "target_url": "http://ci.acme.com/results/afd339c1c3d27" + } + +## Repository links + +Repository links are a way to associate one Automated Build with +another. If one gets updated,the linking system triggers a rebuild +for the other Automated Build. This makes it easy to keep all your +Automated Builds up to date. + +To add a link, go to the repository for the Automated Build you want to +link to and click on *Repository Links* under the Settings menu at +right. Then, enter the name of the repository that you want have linked. + +> **Warning:** +> You can add more than one repository link, however, you should +> do so very carefully. Creating a two way relationship between Automated Builds will +> cause an endless build loop. diff --git a/docker-hub/builds/index.html b/docker-hub/builds/index.html new file mode 100644 index 0000000000..81c93b10ba --- /dev/null +++ b/docker-hub/builds/index.html @@ -0,0 +1,1175 @@ + + + + + + + + + + + + + + + + + + + + + + + + Automated Builds - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Automated Builds on Docker Hub

+

About Automated Builds

+

Automated Builds are a special feature of Docker Hub which allow you to +use Docker Hub's build clusters to automatically +create images from a specified Dockerfile and a GitHub or Bitbucket repository +(or "context"). The system will clone your repository and build the image +described by the Dockerfile using the repository as the context. The +resulting automated image will then be uploaded to the Docker Hub registry +and marked as an Automated Build.

+

Automated Builds have several advantages:

+
    +
  • +

    Users of your Automated Build can trust that the resulting +image was built exactly as specified.

    +
  • +
  • +

    The Dockerfile will be available to anyone with access to +your repository on the Docker Hub registry.

    +
  • +
  • +

    Because the process is automated, Automated Builds help to +make sure that your repository is always up to date.

    +
  • +
+

Automated Builds are supported for both public and private repositories +on both GitHub and Bitbucket.

+

To use Automated Builds, you must have an account on Docker Hub +and on GitHub and/or Bitbucket. In either case, the account needs +to be properly validated and activated before you can link to it.

+

Setting up Automated Builds with GitHub

+

In order to set up an Automated Build, you need to first link your +Docker Hub account with a GitHub account. +This will allow the registry to see your repositories.

+
+

Note: +Automated Builds currently require read and write access since +Docker Hub needs to setup a GitHub service +hook. We have no choice here, this is how GitHub manages permissions, sorry! +We do guarantee nothing else will be touched in your account.

+
+

To get started, log into your Docker Hub account and click the +"+ Add Repository" button at the upper right of the screen. Then select +Automated Build.

+

Select the GitHub service.

+

Then follow the onscreen instructions to authorize and link your +GitHub account to Docker Hub. Once it is linked, you'll be able to +choose a repo from which to create the Automatic Build.

+

Creating an Automated Build

+

You can create an Automated Build from any of your +public or private GitHub repositories with a Dockerfile.

+

GitHub Submodules

+

If your GitHub repository contains links to private submodules, you'll +need to add a deploy key from your Docker Hub repository.

+

Your Docker Hub deploy key is located under the "Build Details" +menu on the Automated Build's main page in the Hub. Add this key +to your GitHub submodule by visiting the Settings page for the +repository on GitHub and selecting "Deploy keys".

+ + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.Your automated build's deploy key is in the "Build Details" menu +under "Deploy keys".
2.In your GitHub submodule's repository Settings page, add the +deploy key from your Docker Hub Automated Build.
+ +

GitHub Organizations

+

GitHub organizations will appear once your membership to that organization is +made public on GitHub. To verify, you can look at the members tab for your +organization on GitHub.

+

GitHub Service Hooks

+

Follow the steps below to configure the GitHub service +hooks for your Automated Build:

+ + + + + + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.Log in to Github.com, and go to your Repository page. Click on "Settings" on + the right side of the page. You must have admin privileges to the repository in order to do this.
2.Webhooks & ServicesClick on "Webhooks & Services" on the left side of the page.
3.Find the service labeled DockerFind the service labeled "Docker" and click on it.
4.Activate Service HooksMake sure the "Active" checkbox is selected and click the "Update service" button to save your changes.
+ +

Setting up Automated Builds with Bitbucket

+

In order to setup an Automated Build, you need to first link your +Docker Hub account with a Bitbucket account. +This will allow the registry to see your repositories.

+

To get started, log into your Docker Hub account and click the +"+ Add Repository" button at the upper right of the screen. Then +select Automated Build.

+

Select the Bitbucket source.

+

Then follow the onscreen instructions to authorize and link your +Bitbucket account to Docker Hub. Once it is linked, you'll be able +to choose a repository from which to create the Automatic Build.

+

Creating an Automated Build

+

You can create an Automated Build from any of your +public or private Bitbucket repositories with a Dockerfile.

+

Adding a Hook

+

When you link your Docker Hub account, a POST hook should get automatically +added to your Bitbucket repository. Follow the steps below to confirm or modify the +Bitbucket hooks for your Automated Build:

+ + + + + + + + + + + + + + + + + + + + + + + +
StepScreenshotDescription
1.SettingsLog in to Bitbucket.org and go to your Repository page. Click on "Settings" on + the far left side of the page, under "Navigation". You must have admin privileges + to the repository in order to do this.
2.HooksClick on "Hooks" on the near left side of the page, under "Settings".
3.Docker Post HookYou should now see a list of hooks associated with the repo, including a POST hook that points at + registry.hub.docker.com/hooks/bitbucket.
+ +

The Dockerfile and Automated Builds

+

During the build process, Docker will copy the contents of your Dockerfile. +It will also add it to the Docker Hub for the Docker +community (for public repositories) or approved team members/orgs (for private +repositories) to see on the repository page.

+

README.md

+

If you have a README.md file in your repository, it will be used as the +repository's full description.The build process will look for a +README.md in the same directory as your Dockerfile.

+
+

Warning: +If you change the full description after a build, it will be +rewritten the next time the Automated Build has been built. To make changes, +modify the README.md from the Git repository.

+
+

Remote Build triggers

+

If you need a way to trigger Automated Builds outside of GitHub or Bitbucket, +you can set up a build trigger. When you turn on the build trigger for an +Automated Build, it will give you a URL to which you can send POST requests. +This will trigger the Automated Build, much as with a GitHub webhook.

+

Build triggers are available under the Settings menu of each Automated Build +repository on the Docker Hub.

+

Build trigger screen

+

You can use curl to trigger a build:

+
$ curl --data "build=true" -X POST https://registry.hub.docker.com/u/svendowideit/testhook/trigger/be579c
+82-7c0e-11e4-81c4-0242ac110020/
+OK
+
+ +
+

Note: +You can only trigger one build at a time and no more than one +every five minutes. If you already have a build pending, or if you +recently submitted a build request, those requests will be ignored. +To verify everything is working correctly, check the logs of last +ten triggers on the settings page .

+
+

Webhooks

+

Automated Builds also include a Webhooks feature. Webhooks can be called +after a successful repository push is made. This includes when a new tag is added +to an existing image.

+

The webhook call will generate a HTTP POST with the following JSON +payload:

+
{
+  "callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
+  "push_data": {
+    "images": [
+        "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3",
+        "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c",
+        ...
+    ],
+    "pushed_at": 1.417566161e+09,
+    "pusher": "trustedbuilder"
+  },
+  "repository": {
+    "comment_count": 0,
+    "date_created": 1.417494799e+09,
+    "description": "",
+    "dockerfile": "#\n# BUILD\u0009\u0009docker build -t svendowideit/apt-cacher .\n# RUN\u0009\u0009docker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \u0009\u0009docker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\u0009\u0009ubuntu\nMAINTAINER\u0009SvenDowideit@home.org.au\n\n\nVOLUME\u0009\u0009[\"/var/cache/apt-cacher-ng\"]\nRUN\u0009\u0009apt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \u0009\u00093142\nCMD\u0009\u0009chmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n",
+    "full_description": "Docker Hub based automated build from a GitHub repo",
+    "is_official": false,
+    "is_private": true,
+    "is_trusted": true,
+    "name": "testhook",
+    "namespace": "svendowideit",
+    "owner": "svendowideit",
+    "repo_name": "svendowideit/testhook",
+    "repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
+    "star_count": 0,
+    "status": "Active"
+  }
+}
+
+ +

Webhooks are available under the Settings menu of each Repository.

+
+

Note: If you want to test your webhook out we recommend using +a tool like requestb.in.

+

Note: The Docker Hub servers are currently in the IP range +162.242.195.64 - 162.242.195.127, so you can restrict your webhooks to +accept webhook requests from that set of IP addresses.

+
+

Webhook chains

+

Webhook chains allow you to chain calls to multiple services. For example, +you can use this to trigger a deployment of your container only after +it has been successfully tested, then update a separate Changelog once the +deployment is complete. +After clicking the "Add webhook" button, simply add as many URLs as necessary +in your chain.

+

The first webhook in a chain will be called after a successful push. Subsequent +URLs will be contacted after the callback has been validated.

+

Validating a callback

+

In order to validate a callback in a webhook chain, you need to

+
    +
  1. Retrieve the callback_url value in the request's JSON payload.
  2. +
  3. Send a POST request to this URL containing a valid JSON body.
  4. +
+
+

Note: A chain request will only be considered complete once the last +callback has been validated.

+
+

To help you debug or simply view the results of your webhook(s), +view the "History" of the webhook available on its settings page.

+

Callback JSON data

+

The following parameters are recognized in callback data:

+
    +
  • state (required): Accepted values are success, failure and error. + If the state isn't success, the webhook chain will be interrupted.
  • +
  • description: A string containing miscellaneous information that will be + available on the Docker Hub. Maximum 255 characters.
  • +
  • context: A string containing the context of the operation. Can be retrieved + from the Docker Hub. Maximum 100 characters.
  • +
  • target_url: The URL where the results of the operation can be found. Can be + retrieved on the Docker Hub.
  • +
+

Example callback payload:

+
{
+  "state": "success",
+  "description": "387 tests PASSED",
+  "context": "Continuous integration by Acme CI",
+  "target_url": "http://ci.acme.com/results/afd339c1c3d27"
+}
+
+ +

Repository links are a way to associate one Automated Build with +another. If one gets updated,the linking system triggers a rebuild +for the other Automated Build. This makes it easy to keep all your +Automated Builds up to date.

+

To add a link, go to the repository for the Automated Build you want to +link to and click on Repository Links under the Settings menu at +right. Then, enter the name of the repository that you want have linked.

+
+

Warning: +You can add more than one repository link, however, you should +do so very carefully. Creating a two way relationship between Automated Builds will +cause an endless build loop.

+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docker-hub/groups.png b/docker-hub/groups.png new file mode 100644 index 0000000000..0c6430efab Binary files /dev/null and b/docker-hub/groups.png differ diff --git a/docker-hub/home.md~ b/docker-hub/home.md~ new file mode 100644 index 0000000000..15baf7b83a --- /dev/null +++ b/docker-hub/home.md~ @@ -0,0 +1,13 @@ +page_title: The Docker Hub Registry Help +page_description: The Docker Registry help documentation home +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, docs, documentation + +# The Docker Hub Registry Help + +## Introduction + +For your questions about the [Docker Hub](https://hub.docker.com) registry you +can use [this documentation](docs.md). + +If you can not find something you are looking for, please feel free to +[contact us](https://docker.com/resources/support/). diff --git a/docker-hub/hub-images/bb_hooks.png b/docker-hub/hub-images/bb_hooks.png new file mode 100644 index 0000000000..9efe4907f5 Binary files /dev/null and b/docker-hub/hub-images/bb_hooks.png differ diff --git a/docker-hub/hub-images/bb_menu.png b/docker-hub/hub-images/bb_menu.png new file mode 100644 index 0000000000..fba1a03a5d Binary files /dev/null and b/docker-hub/hub-images/bb_menu.png differ diff --git a/docker-hub/hub-images/bb_post-hook.png b/docker-hub/hub-images/bb_post-hook.png new file mode 100644 index 0000000000..53100dbbce Binary files /dev/null and b/docker-hub/hub-images/bb_post-hook.png differ diff --git a/docker-hub/hub-images/build-trigger.png b/docker-hub/hub-images/build-trigger.png new file mode 100644 index 0000000000..ea4e99b453 Binary files /dev/null and b/docker-hub/hub-images/build-trigger.png differ diff --git a/docker-hub/hub-images/deploy_key.png b/docker-hub/hub-images/deploy_key.png new file mode 100644 index 0000000000..f1d8d92d22 Binary files /dev/null and b/docker-hub/hub-images/deploy_key.png differ diff --git a/docker-hub/hub-images/gh_docker-service.png b/docker-hub/hub-images/gh_docker-service.png new file mode 100644 index 0000000000..7a84c81b7e Binary files /dev/null and b/docker-hub/hub-images/gh_docker-service.png differ diff --git a/docker-hub/hub-images/gh_menu.png b/docker-hub/hub-images/gh_menu.png new file mode 100644 index 0000000000..84458a445f Binary files /dev/null and b/docker-hub/hub-images/gh_menu.png differ diff --git a/docker-hub/hub-images/gh_service_hook.png b/docker-hub/hub-images/gh_service_hook.png new file mode 100644 index 0000000000..c344c24afc Binary files /dev/null and b/docker-hub/hub-images/gh_service_hook.png differ diff --git a/docker-hub/hub-images/gh_settings.png b/docker-hub/hub-images/gh_settings.png new file mode 100644 index 0000000000..2af9cb5138 Binary files /dev/null and b/docker-hub/hub-images/gh_settings.png differ diff --git a/docker-hub/hub-images/github_deploy_key.png b/docker-hub/hub-images/github_deploy_key.png new file mode 100644 index 0000000000..a0ec6a918f Binary files /dev/null and b/docker-hub/hub-images/github_deploy_key.png differ diff --git a/docker-hub/hub-images/groups.png b/docker-hub/hub-images/groups.png new file mode 100644 index 0000000000..0c6430efab Binary files /dev/null and b/docker-hub/hub-images/groups.png differ diff --git a/docker-hub/hub-images/hub.png b/docker-hub/hub-images/hub.png new file mode 100644 index 0000000000..16840e0547 Binary files /dev/null and b/docker-hub/hub-images/hub.png differ diff --git a/docker-hub/hub-images/invite.png b/docker-hub/hub-images/invite.png new file mode 100644 index 0000000000..0a157ffbf0 Binary files /dev/null and b/docker-hub/hub-images/invite.png differ diff --git a/docker-hub/hub-images/orgs.png b/docker-hub/hub-images/orgs.png new file mode 100644 index 0000000000..604ed95a09 Binary files /dev/null and b/docker-hub/hub-images/orgs.png differ diff --git a/docker-hub/hub-images/repos.png b/docker-hub/hub-images/repos.png new file mode 100644 index 0000000000..f25bb3a48d Binary files /dev/null and b/docker-hub/hub-images/repos.png differ diff --git a/docker-hub/hub.png b/docker-hub/hub.png new file mode 100644 index 0000000000..16840e0547 Binary files /dev/null and b/docker-hub/hub.png differ diff --git a/docker-hub/index.html b/docker-hub/index.html new file mode 100644 index 0000000000..428b16b287 --- /dev/null +++ b/docker-hub/index.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Hub - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Docker Hub

+

DockerHub

+

Accounts

+

Learn how to create a Docker Hub +account and manage your organizations and groups.

+

Repositories

+

Find out how to share your Docker images in Docker Hub +repositories and how to store and manage private images.

+

Automated Builds

+

Learn how to automate your build and deploy pipeline with Automated +Builds

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docker-hub/index.md~ b/docker-hub/index.md~ new file mode 100644 index 0000000000..c29a5f7873 --- /dev/null +++ b/docker-hub/index.md~ @@ -0,0 +1,23 @@ +page_title: The Docker Hub Help +page_description: The Docker Help documentation home +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, docs, documentation, accounts, organizations, repositories, groups + +# Docker Hub + +![DockerHub](/docker-hub/hub-images/hub.png) + +## [Accounts](accounts/) + +[Learn how to create](accounts/) a [Docker Hub](https://hub.docker.com) +account and manage your organizations and groups. + +## [Repositories](repos/) + +Find out how to share your Docker images in [Docker Hub +repositories](repos/) and how to store and manage private images. + +## [Automated Builds](builds/) + +Learn how to automate your build and deploy pipeline with [Automated +Builds](builds/) + diff --git a/docker-hub/invite.png b/docker-hub/invite.png new file mode 100644 index 0000000000..5534d2b888 Binary files /dev/null and b/docker-hub/invite.png differ diff --git a/docker-hub/official_repos.md~ b/docker-hub/official_repos.md~ new file mode 100644 index 0000000000..4ec431238b --- /dev/null +++ b/docker-hub/official_repos.md~ @@ -0,0 +1,189 @@ +page_title: Guidelines for Official Repositories on Docker Hub +page_description: Guidelines for Official Repositories on Docker Hub +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, docs, official, image, documentation + +# Guidelines for Creating and Documenting Official Repositories + +## Introduction + +You’ve been given the job of creating an image for an Official Repository +hosted on [Docker Hub Registry](https://registry.hub.docker.com/). These are +our guidelines for getting that task done. Even if you’re not +planning to create an Official Repo, you can think of these guidelines as best +practices for image creation generally. + +This document consists of two major sections: + +* A list of expected files, resources and supporting items for your image, +along with best practices for creating those items +* Examples embodying those practices + +## Expected Files & Resources + +### A Git repository + +Your image needs to live in a Git repository, preferably on GitHub. (If you’d +like to use a different provider, please [contact us](mailto:feedback@docker.com) +directly.) Docker **strongly** recommends that this repo be publicly +accessible. + +If the repo is private or has otherwise limited access, you must provide a +means of at least “read-only” access for both general users and for the +docker-library maintainers, who need access for review and building purposes. + +### A Dockerfile + +Complete information on `Dockerfile`s can be found in the [Reference section](https://docs.docker.com/reference/builder/). +We also have a page discussing [best practices for writing `Dockerfile`s](/articles/dockerfile_best-practices). +Your `Dockerfile` should adhere to the following: + +* It must be written either by using `FROM scratch` or be based on another, +established Official Image. +* It must follow `Dockerfile` best practices. These are discussed on the +[best practices page](/articles/dockerfile_best-practices). In addition, +Docker engineer Michael Crosby has some good tips for `Dockerfiles` in +this [blog post](http://crosbymichael.com/dockerfile-best-practices-take-2.html). + +While [`ONBUILD` triggers](https://docs.docker.com/reference/builder/#onbuild) +are not required, if you choose to use them you should: + +* Build both `ONBUILD` and non-`ONBUILD` images, with the `ONBUILD` image +built `FROM` the non-`ONBUILD` image. +* The `ONBUILD` image should be specifically tagged, for example, `ruby: +latest`and `ruby:onbuild`, or `ruby:2` and `ruby:2-onbuild` + +### A short description + +Include a brief description of your image (in plaintext). Only one description +is required; you don’t need additional descriptions for each tag. The file +should also: + +* Be named `README-short.txt` +* Reside in the repo for the “latest” tag +* Not exceed 100 characters + +### A logo + +Include a logo of your company or the product (png format preferred). Only one +logo is required; you don’t need additional logo files for each tag. The logo +file should have the following characteristics: + +* Be named `logo.png` +* Should reside in the repo for the “latest” tag +* Should fit inside a 200px square, maximized in one dimension (preferably the +width) +* Square or wide (landscape) is preferred over tall (portrait), but exceptions +can be made based on the logo needed + +### A long description + +Include a comprehensive description of your image (in Markdown format, GitHub +flavor preferred). Only one description is required; you don’t need additional +descriptions for each tag. The file should also: + +* Be named `README.md` +* Reside in the repo for the “latest” tag +* Be no longer than absolutely necessary, while still addressing all the +content requirements + +In terms of content, the long description must include the following sections: + +* Overview & links +* How-to/usage +* Issues & contributions + +#### Overview & links + +This section should provide: + +* an overview of the software contained in the image, similar to the +introduction in a Wikipedia entry + +* a selection of links to outside resources that help to describe the software + +* a *mandatory* link to the `Dockerfile` + +#### How-to/usage + +A section that describes how to run and use the image, including common use +cases and example `Dockerfile`s (if applicable). Try to provide clear, step-by- +step instructions wherever possible. + +##### Issues & contributions + +In this section, point users to any resources that can help them contribute to +the project. Include contribution guidelines and any specific instructions +related to your development practices. Include a link to +[Docker’s resources for contributors](https://docs.docker.com/contributing/contributing/). +Be sure to include contact info, handles, etc. for official maintainers. + +Also include information letting users know where they can go for help and how +they can file issues with the repo. Point them to any specific IRC channels, +issue trackers, contacts, additional “how-to” information or other resources. + +### License + +Include a file, `LICENSE`, of any applicable license. Docker recommends using +the license of the software contained in the image, provided it allows Docker, +Inc. to legally build and distribute the image. Otherwise, Docker recommends +adopting the [Expat license](http://directory.fsf.org/wiki/License:Expat) +(a.k.a., the MIT or X11 license). + +## Examples + +Below are sample short and long description files for an imaginary image +containing Ruby on Rails. + +### Short description + +`README-short.txt` + +`Ruby on Rails is an open-source application framework written in Ruby. It emphasizes best practices such as convention over configuration, active record pattern, and the model-view-controller pattern.` + +### Long description + +`README.md` + +```markdown +# What is Ruby on Rails + +Ruby on Rails, often simply referred to as Rails, is an open source web application framework which runs via the Ruby programming language. It is a full-stack framework: it allows creating pages and applications that gather information from the web server, talk to or query the database, and render templates out of the box. As a result, Rails features a routing system that is independent of the web server. + +> [wikipedia.org/wiki/Ruby_on_Rails](https://en.wikipedia.org/wiki/Ruby_on_Rails) + +# How to use this image + +## Create a `Dockerfile` in your rails app project + + FROM rails:onbuild + +Put this file in the root of your app, next to the `Gemfile`. + +This image includes multiple `ONBUILD` triggers so that should be all that you need for most applications. The build will `ADD . /usr/src/app`, `RUN bundle install`, `EXPOSE 3000`, and set the default command to `rails server`. + +Then build and run the Docker image. + + docker build -t my-rails-app . + docker run --name some-rails-app -d my-rails-app + +Test it by visiting `http://container-ip:3000` in a browser. On the other hand, if you need access outside the host on port 8080: + + docker run --name some-rails-app -p 8080:3000 -d my-rails-app + +Then go to `http://localhost:8080` or `http://host-ip:8080` in a browser. +``` + +For more examples, take a look at these repos: + +* [Go](https://github.com/docker-library/golang) +* [PostgreSQL](https://github.com/docker-library/postgres) +* [Buildpack-deps](https://github.com/docker-library/buildpack-deps) +* ["Hello World" minimal container](https://github.com/docker-library/hello-world) +* [Node](https://github.com/docker-library/node) + +## Submit your repo + +Once you've checked off everything in these guidelines, and are confident your +image is ready for primetime, please contact us at +[partners@docker.com](mailto:partners@docker.com) to have your project +considered for the Official Repos program. diff --git a/docker-hub/official_repos/index.html b/docker-hub/official_repos/index.html new file mode 100644 index 0000000000..204d8940b6 --- /dev/null +++ b/docker-hub/official_repos/index.html @@ -0,0 +1,1016 @@ + + + + + + + + + + + + + + + + + + + + + + + + Official Repo Guidelines - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Guidelines for Creating and Documenting Official Repositories

+

Introduction

+

You’ve been given the job of creating an image for an Official Repository +hosted on Docker Hub Registry. These are +our guidelines for getting that task done. Even if you’re not +planning to create an Official Repo, you can think of these guidelines as best +practices for image creation generally.

+

This document consists of two major sections:

+
    +
  • A list of expected files, resources and supporting items for your image, +along with best practices for creating those items
  • +
  • Examples embodying those practices
  • +
+

Expected Files & Resources

+

A Git repository

+

Your image needs to live in a Git repository, preferably on GitHub. (If you’d +like to use a different provider, please contact us +directly.) Docker strongly recommends that this repo be publicly +accessible.

+

If the repo is private or has otherwise limited access, you must provide a +means of at least “read-only” access for both general users and for the +docker-library maintainers, who need access for review and building purposes.

+

A Dockerfile

+

Complete information on Dockerfiles can be found in the Reference section. +We also have a page discussing best practices for writing Dockerfiles. +Your Dockerfile should adhere to the following:

+
    +
  • It must be written either by using FROM scratch or be based on another, +established Official Image.
  • +
  • It must follow Dockerfile best practices. These are discussed on the +best practices page. In addition, +Docker engineer Michael Crosby has some good tips for Dockerfiles in +this blog post.
  • +
+

While ONBUILD triggers +are not required, if you choose to use them you should:

+
    +
  • Build both ONBUILD and non-ONBUILD images, with the ONBUILD image +built FROM the non-ONBUILD image.
  • +
  • The ONBUILD image should be specifically tagged, for example, ruby: +latestand ruby:onbuild, or ruby:2 and ruby:2-onbuild
  • +
+

A short description

+

Include a brief description of your image (in plaintext). Only one description +is required; you don’t need additional descriptions for each tag. The file +should also:

+
    +
  • Be named README-short.txt
  • +
  • Reside in the repo for the “latest” tag
  • +
  • Not exceed 100 characters
  • +
+ +

Include a logo of your company or the product (png format preferred). Only one +logo is required; you don’t need additional logo files for each tag. The logo +file should have the following characteristics:

+
    +
  • Be named logo.png
  • +
  • Should reside in the repo for the “latest” tag
  • +
  • Should fit inside a 200px square, maximized in one dimension (preferably the +width)
  • +
  • Square or wide (landscape) is preferred over tall (portrait), but exceptions +can be made based on the logo needed
  • +
+

A long description

+

Include a comprehensive description of your image (in Markdown format, GitHub +flavor preferred). Only one description is required; you don’t need additional +descriptions for each tag. The file should also:

+
    +
  • Be named README.md
  • +
  • Reside in the repo for the “latest” tag
  • +
  • Be no longer than absolutely necessary, while still addressing all the +content requirements
  • +
+

In terms of content, the long description must include the following sections:

+
    +
  • Overview & links
  • +
  • How-to/usage
  • +
  • Issues & contributions
  • +
+ +

This section should provide:

+
    +
  • +

    an overview of the software contained in the image, similar to the +introduction in a Wikipedia entry

    +
  • +
  • +

    a selection of links to outside resources that help to describe the software

    +
  • +
  • +

    a mandatory link to the Dockerfile

    +
  • +
+

How-to/usage

+

A section that describes how to run and use the image, including common use +cases and example Dockerfiles (if applicable). Try to provide clear, step-by- +step instructions wherever possible.

+
Issues & contributions
+

In this section, point users to any resources that can help them contribute to +the project. Include contribution guidelines and any specific instructions +related to your development practices. Include a link to +Docker’s resources for contributors. +Be sure to include contact info, handles, etc. for official maintainers.

+

Also include information letting users know where they can go for help and how +they can file issues with the repo. Point them to any specific IRC channels, +issue trackers, contacts, additional “how-to” information or other resources.

+

License

+

Include a file, LICENSE, of any applicable license. Docker recommends using +the license of the software contained in the image, provided it allows Docker, +Inc. to legally build and distribute the image. Otherwise, Docker recommends +adopting the Expat license +(a.k.a., the MIT or X11 license).

+

Examples

+

Below are sample short and long description files for an imaginary image +containing Ruby on Rails.

+

Short description

+

README-short.txt

+

Ruby on Rails is an open-source application framework written in Ruby. It emphasizes best practices such as convention over configuration, active record pattern, and the model-view-controller pattern.

+

Long description

+

README.md

+
# What is Ruby on Rails
+
+Ruby on Rails, often simply referred to as Rails, is an open source web application framework which runs via the Ruby programming language. It is a full-stack framework: it allows creating pages and applications that gather information from the web server, talk to or query the database, and render templates out of the box. As a result, Rails features a routing system that is independent of the web server.
+
+> [wikipedia.org/wiki/Ruby_on_Rails](https://en.wikipedia.org/wiki/Ruby_on_Rails)
+
+# How to use this image
+
+## Create a `Dockerfile` in your rails app project
+
+    FROM rails:onbuild
+
+Put this file in the root of your app, next to the `Gemfile`.
+
+This image includes multiple `ONBUILD` triggers so that should be all that you need for most applications. The build will `ADD . /usr/src/app`, `RUN bundle install`, `EXPOSE 3000`, and set the default command to `rails server`.
+
+Then build and run the Docker image.
+
+    docker build -t my-rails-app .
+    docker run --name some-rails-app -d my-rails-app
+
+Test it by visiting `http://container-ip:3000` in a browser. On the other hand, if you need access outside the host on port 8080:
+
+    docker run --name some-rails-app -p 8080:3000 -d my-rails-app
+
+Then go to `http://localhost:8080` or `http://host-ip:8080` in a browser.
+
+ +

For more examples, take a look at these repos:

+ +

Submit your repo

+

Once you've checked off everything in these guidelines, and are confident your +image is ready for primetime, please contact us at +partners@docker.com to have your project +considered for the Official Repos program.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docker-hub/orgs.png b/docker-hub/orgs.png new file mode 100644 index 0000000000..6a49cc65dd Binary files /dev/null and b/docker-hub/orgs.png differ diff --git a/docker-hub/repos.md~ b/docker-hub/repos.md~ new file mode 100644 index 0000000000..576583584f --- /dev/null +++ b/docker-hub/repos.md~ @@ -0,0 +1,197 @@ +page_title: Repositories and Images on Docker Hub +page_description: Repositories and Images on Docker Hub +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker Hub, webhooks, docs, documentation + +# Repositories and Images on Docker Hub + +![repositories](/docker-hub/hub-images/repos.png) + +## Searching for repositories and images + +You can `search` for all the publicly available repositories and images using +Docker. + + $ sudo docker search ubuntu + +This will show you a list of the currently available repositories on the +Docker Hub which match the provided keyword. + +If a repository is private it won't be listed on the repository search +results. To see repository statuses, you can look at your [profile +page](https://hub.docker.com) on [Docker Hub](https://hub.docker.com). + +## Repositories + +Your Docker Hub repositories have a number of useful features. + +### Stars + +Your repositories can be starred and you can star repositories in +return. Stars are a way to show that you like a repository. They are +also an easy way of bookmarking your favorites. + +### Comments + +You can interact with other members of the Docker community and maintainers by +leaving comments on repositories. If you find any comments that are not +appropriate, you can flag them for review. + +### Collaborators and their role + +A collaborator is someone you want to give access to a private +repository. Once designated, they can `push` and `pull` to your +repositories. They will not be allowed to perform any administrative +tasks such as deleting the repository or changing its status from +private to public. + +> **Note:** +> A collaborator cannot add other collaborators. Only the owner of +> the repository has administrative access. + +You can also collaborate on Docker Hub with organizations and groups. +You can read more about that [here](accounts/). + +## Official Repositories + +The Docker Hub contains a number of [official +repositories](http://registry.hub.docker.com/official). These are +certified repositories from vendors and contributors to Docker. They +contain Docker images from vendors like Canonical, Oracle, and Red Hat +that you can use to build applications and services. + +If you use Official Repositories you know you're using a supported, +optimized and up-to-date image to power your applications. + +> **Note:** +> If you would like to contribute an official repository for your +> organization, product or team you can see more information +> [here](https://github.com/docker/stackbrew). + +## Private Repositories + +Private repositories allow you to have repositories that contain images +that you want to keep private, either to your own account or within an +organization or group. + +To work with a private repository on [Docker +Hub](https://hub.docker.com), you will need to add one via the [Add +Repository](https://registry.hub.docker.com/account/repositories/add/) +link. You get one private repository for free with your Docker Hub +account. If you need more accounts you can upgrade your [Docker +Hub](https://registry.hub.docker.com/plans/) plan. + +Once the private repository is created, you can `push` and `pull` images +to and from it using Docker. + +> *Note:* You need to be signed in and have access to work with a +> private repository. + +Private repositories are just like public ones. However, it isn't +possible to browse them or search their content on the public registry. +They do not get cached the same way as a public repository either. + +It is possible to give access to a private repository to those whom you +designate (i.e., collaborators) from its Settings page. From there, you +can also switch repository status (*public* to *private*, or +vice-versa). You will need to have an available private repository slot +open before you can do such a switch. If you don't have any available, +you can always upgrade your [Docker +Hub](https://registry.hub.docker.com/plans/) plan. + +## Webhooks + +You can configure webhooks for your repositories on the Repository +Settings page. A webhook is called only after a successful `push` is +made. The webhook calls are HTTP POST requests with a JSON payload +similar to the example shown below. + +*Example webhook JSON payload:* + +``` +{ + "callback_url": "https://registry.hub.docker.com/u/svendowideit/busybox/hook/2141bc0cdec4hebec411i4c1g40242eg110020/", + "push_data": { + "images": [ + "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3", + "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c", + ... + ], + "pushed_at": 1.417566822e+09, + "pusher": "svendowideit" + }, + "repository": { + "comment_count": 0, + "date_created": 1.417566665e+09, + "description": "", + "full_description": "webhook triggered from a 'docker push'", + "is_official": false, + "is_private": false, + "is_trusted": false, + "name": "busybox", + "namespace": "svendowideit", + "owner": "svendowideit", + "repo_name": "svendowideit/busybox", + "repo_url": "https://registry.hub.docker.com/u/svendowideit/busybox/", + "star_count": 0, + "status": "Active" +} +``` + +Webhooks allow you to notify people, services and other applications of +new updates to your images and repositories. To get started adding webhooks, +go to the desired repository in the Hub, and click "Webhooks" under the "Settings" +box. + +> **Note:** For testing, you can try an HTTP request tool like +> [requestb.in](http://requestb.in/). + +> **Note**: The Docker Hub servers are currently in the IP range +> `162.242.195.64 - 162.242.195.127`, so you can restrict your webhooks to +> accept webhook requests from that set of IP addresses. + +### Webhook chains + +Webhook chains allow you to chain calls to multiple services. For example, +you can use this to trigger a deployment of your container only after +it has been successfully tested, then update a separate Changelog once the +deployment is complete. +After clicking the "Add webhook" button, simply add as many URLs as necessary +in your chain. + +The first webhook in a chain will be called after a successful push. Subsequent +URLs will be contacted after the callback has been validated. + +#### Validating a callback + +In order to validate a callback in a webhook chain, you need to + +1. Retrieve the `callback_url` value in the request's JSON payload. +1. Send a POST request to this URL containing a valid JSON body. + +> **Note**: A chain request will only be considered complete once the last +> callback has been validated. + +To help you debug or simply view the results of your webhook(s), +view the "History" of the webhook available on its settings page. + +#### Callback JSON data + +The following parameters are recognized in callback data: + +* `state` (required): Accepted values are `success`, `failure` and `error`. + If the state isn't `success`, the webhook chain will be interrupted. +* `description`: A string containing miscellaneous information that will be + available on the Docker Hub. Maximum 255 characters. +* `context`: A string containing the context of the operation. Can be retrieved + from the Docker Hub. Maximum 100 characters. +* `target_url`: The URL where the results of the operation can be found. Can be + retrieved on the Docker Hub. + +*Example callback payload:* + + { + "state": "success", + "description": "387 tests PASSED", + "context": "Continuous integration by Acme CI", + "target_url": "http://ci.acme.com/results/afd339c1c3d27" + } diff --git a/docker-hub/repos.png b/docker-hub/repos.png new file mode 100644 index 0000000000..f25bb3a48d Binary files /dev/null and b/docker-hub/repos.png differ diff --git a/docker-hub/repos/index.html b/docker-hub/repos/index.html new file mode 100644 index 0000000000..795e41643c --- /dev/null +++ b/docker-hub/repos/index.html @@ -0,0 +1,1015 @@ + + + + + + + + + + + + + + + + + + + + + + + + Repositories - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+ +
+
+ + + +
+ +
+ +

Repositories and Images on Docker Hub

+

repositories

+

Searching for repositories and images

+

You can search for all the publicly available repositories and images using +Docker.

+
$ sudo docker search ubuntu
+
+

This will show you a list of the currently available repositories on the +Docker Hub which match the provided keyword.

+

If a repository is private it won't be listed on the repository search +results. To see repository statuses, you can look at your profile +page on Docker Hub.

+

Repositories

+

Your Docker Hub repositories have a number of useful features.

+

Stars

+

Your repositories can be starred and you can star repositories in +return. Stars are a way to show that you like a repository. They are +also an easy way of bookmarking your favorites.

+

Comments

+

You can interact with other members of the Docker community and maintainers by +leaving comments on repositories. If you find any comments that are not +appropriate, you can flag them for review.

+

Collaborators and their role

+

A collaborator is someone you want to give access to a private +repository. Once designated, they can push and pull to your +repositories. They will not be allowed to perform any administrative +tasks such as deleting the repository or changing its status from +private to public.

+
+

Note: +A collaborator cannot add other collaborators. Only the owner of +the repository has administrative access.

+
+

You can also collaborate on Docker Hub with organizations and groups. +You can read more about that here.

+

Official Repositories

+

The Docker Hub contains a number of official +repositories. These are +certified repositories from vendors and contributors to Docker. They +contain Docker images from vendors like Canonical, Oracle, and Red Hat +that you can use to build applications and services.

+

If you use Official Repositories you know you're using a supported, +optimized and up-to-date image to power your applications.

+
+

Note: +If you would like to contribute an official repository for your +organization, product or team you can see more information +here.

+
+

Private Repositories

+

Private repositories allow you to have repositories that contain images +that you want to keep private, either to your own account or within an +organization or group.

+

To work with a private repository on Docker +Hub, you will need to add one via the Add +Repository +link. You get one private repository for free with your Docker Hub +account. If you need more accounts you can upgrade your Docker +Hub plan.

+

Once the private repository is created, you can push and pull images +to and from it using Docker.

+
+

Note: You need to be signed in and have access to work with a +private repository.

+
+

Private repositories are just like public ones. However, it isn't +possible to browse them or search their content on the public registry. +They do not get cached the same way as a public repository either.

+

It is possible to give access to a private repository to those whom you +designate (i.e., collaborators) from its Settings page. From there, you +can also switch repository status (public to private, or +vice-versa). You will need to have an available private repository slot +open before you can do such a switch. If you don't have any available, +you can always upgrade your Docker +Hub plan.

+

Webhooks

+

You can configure webhooks for your repositories on the Repository +Settings page. A webhook is called only after a successful push is +made. The webhook calls are HTTP POST requests with a JSON payload +similar to the example shown below.

+

Example webhook JSON payload:

+
{
+  "callback_url": "https://registry.hub.docker.com/u/svendowideit/busybox/hook/2141bc0cdec4hebec411i4c1g40242eg110020/",
+  "push_data": {
+    "images": [
+        "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3",
+        "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c",
+        ...
+    ],
+    "pushed_at": 1.417566822e+09,
+    "pusher": "svendowideit"
+  },
+  "repository": {
+    "comment_count": 0,
+    "date_created": 1.417566665e+09,
+    "description": "",
+    "full_description": "webhook triggered from a 'docker push'",
+    "is_official": false,
+    "is_private": false,
+    "is_trusted": false,
+    "name": "busybox",
+    "namespace": "svendowideit",
+    "owner": "svendowideit",
+    "repo_name": "svendowideit/busybox",
+    "repo_url": "https://registry.hub.docker.com/u/svendowideit/busybox/",
+    "star_count": 0,
+    "status": "Active"
+}
+
+ +

Webhooks allow you to notify people, services and other applications of +new updates to your images and repositories. To get started adding webhooks, +go to the desired repository in the Hub, and click "Webhooks" under the "Settings" +box.

+
+

Note: For testing, you can try an HTTP request tool like +requestb.in.

+

Note: The Docker Hub servers are currently in the IP range +162.242.195.64 - 162.242.195.127, so you can restrict your webhooks to +accept webhook requests from that set of IP addresses.

+
+

Webhook chains

+

Webhook chains allow you to chain calls to multiple services. For example, +you can use this to trigger a deployment of your container only after +it has been successfully tested, then update a separate Changelog once the +deployment is complete. +After clicking the "Add webhook" button, simply add as many URLs as necessary +in your chain.

+

The first webhook in a chain will be called after a successful push. Subsequent +URLs will be contacted after the callback has been validated.

+

Validating a callback

+

In order to validate a callback in a webhook chain, you need to

+
    +
  1. Retrieve the callback_url value in the request's JSON payload.
  2. +
  3. Send a POST request to this URL containing a valid JSON body.
  4. +
+
+

Note: A chain request will only be considered complete once the last +callback has been validated.

+
+

To help you debug or simply view the results of your webhook(s), +view the "History" of the webhook available on its settings page.

+

Callback JSON data

+

The following parameters are recognized in callback data:

+
    +
  • state (required): Accepted values are success, failure and error. + If the state isn't success, the webhook chain will be interrupted.
  • +
  • description: A string containing miscellaneous information that will be + available on the Docker Hub. Maximum 255 characters.
  • +
  • context: A string containing the context of the operation. Can be retrieved + from the Docker Hub. Maximum 100 characters.
  • +
  • target_url: The URL where the results of the operation can be found. Can be + retrieved on the Docker Hub.
  • +
+

Example callback payload:

+
{
+  "state": "success",
+  "description": "387 tests PASSED",
+  "context": "Continuous integration by Acme CI",
+  "target_url": "http://ci.acme.com/results/afd339c1c3d27"
+}
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples.md~ b/examples.md~ new file mode 100644 index 0000000000..9dcd67a643 --- /dev/null +++ b/examples.md~ @@ -0,0 +1,9 @@ +# Examples + + - [Dockerizing a Node.js Web App](nodejs_web_app/) + - [Dockerizing a Redis Service](running_redis_service/) + - [Dockerizing an SSH Daemon Service](running_ssh_service/) + - [Dockerizing a CouchDB Service](couchdb_data_volumes/) + - [Dockerizing a PostgreSQL Service](postgresql_service/) + - [Dockerizing MongoDB](mongodb/) + - [Dockerizing a Riak Service](running_riak_service/) diff --git a/examples/apt-cacher-ng.Dockerfile b/examples/apt-cacher-ng.Dockerfile new file mode 100644 index 0000000000..d1f76572b9 --- /dev/null +++ b/examples/apt-cacher-ng.Dockerfile @@ -0,0 +1,15 @@ +# +# Build: docker build -t apt-cacher . +# Run: docker run -d -p 3142:3142 --name apt-cacher-run apt-cacher +# +# and then you can run containers with: +# docker run -t -i --rm -e http_proxy http://dockerhost:3142/ debian bash +# +FROM ubuntu +MAINTAINER SvenDowideit@docker.com + +VOLUME ["/var/cache/apt-cacher-ng"] +RUN apt-get update && apt-get install -y apt-cacher-ng + +EXPOSE 3142 +CMD chmod 777 /var/cache/apt-cacher-ng && /etc/init.d/apt-cacher-ng start && tail -f /var/log/apt-cacher-ng/* diff --git a/examples/apt-cacher-ng.md~ b/examples/apt-cacher-ng.md~ new file mode 100644 index 0000000000..cd92cb59a1 --- /dev/null +++ b/examples/apt-cacher-ng.md~ @@ -0,0 +1,107 @@ +page_title: Dockerizing an apt-cacher-ng service +page_description: Installing and running an apt-cacher-ng service +page_keywords: docker, example, package installation, networking, debian, ubuntu + +# Dockerizing an Apt-Cacher-ng Service + +> **Note**: +> - **If you don't like sudo** then see [*Giving non-root +> access*](/installation/binaries/#giving-non-root-access). +> - **If you're using OS X or docker via TCP** then you shouldn't use +> sudo. + +When you have multiple Docker servers, or build unrelated Docker +containers which can't make use of the Docker build cache, it can be +useful to have a caching proxy for your packages. This container makes +the second download of any package almost instant. + +Use the following Dockerfile: + + # + # Build: docker build -t apt-cacher . + # Run: docker run -d -p 3142:3142 --name apt-cacher-run apt-cacher + # + # and then you can run containers with: + # docker run -t -i --rm -e http_proxy http://dockerhost:3142/ debian bash + # + FROM ubuntu + MAINTAINER SvenDowideit@docker.com + + VOLUME ["/var/cache/apt-cacher-ng"] + RUN apt-get update && apt-get install -y apt-cacher-ng + + EXPOSE 3142 + CMD chmod 777 /var/cache/apt-cacher-ng && /etc/init.d/apt-cacher-ng start && tail -f /var/log/apt-cacher-ng/* + +To build the image using: + + $ sudo docker build -t eg_apt_cacher_ng . + +Then run it, mapping the exposed port to one on the host + + $ sudo docker run -d -p 3142:3142 --name test_apt_cacher_ng eg_apt_cacher_ng + +To see the logfiles that are `tailed` in the default command, you can +use: + + $ sudo docker logs -f test_apt_cacher_ng + +To get your Debian-based containers to use the proxy, you can do one of +three things + +1. Add an apt Proxy setting + `echo 'Acquire::http { Proxy "http://dockerhost:3142"; };' >> /etc/apt/conf.d/01proxy` +2. Set an environment variable: + `http_proxy=http://dockerhost:3142/` +3. Change your `sources.list` entries to start with + `http://dockerhost:3142/` + +**Option 1** injects the settings safely into your apt configuration in +a local version of a common base: + + FROM ubuntu + RUN echo 'Acquire::http { Proxy "http://dockerhost:3142"; };' >> /etc/apt/apt.conf.d/01proxy + RUN apt-get update && apt-get install -y vim git + + # docker build -t my_ubuntu . + +**Option 2** is good for testing, but will break other HTTP clients +which obey `http_proxy`, such as `curl`, `wget` and others: + + $ sudo docker run --rm -t -i -e http_proxy=http://dockerhost:3142/ debian bash + +**Option 3** is the least portable, but there will be times when you +might need to do it and you can do it from your `Dockerfile` +too. + +Apt-cacher-ng has some tools that allow you to manage the repository, +and they can be used by leveraging the `VOLUME` +instruction, and the image we built to run the service: + + $ sudo docker run --rm -t -i --volumes-from test_apt_cacher_ng eg_apt_cacher_ng bash + + $$ /usr/lib/apt-cacher-ng/distkill.pl + Scanning /var/cache/apt-cacher-ng, please wait... + Found distributions: + bla, taggedcount: 0 + 1. precise-security (36 index files) + 2. wheezy (25 index files) + 3. precise-updates (36 index files) + 4. precise (36 index files) + 5. wheezy-updates (18 index files) + + Found architectures: + 6. amd64 (36 index files) + 7. i386 (24 index files) + + WARNING: The removal action may wipe out whole directories containing + index files. Select d to see detailed list. + + (Number nn: tag distribution or architecture nn; 0: exit; d: show details; r: remove tagged; q: quit): q + +Finally, clean up after your test by stopping and removing the +container, and then removing the image. + + $ sudo docker stop test_apt_cacher_ng + $ sudo docker rm test_apt_cacher_ng + $ sudo docker rmi eg_apt_cacher_ng diff --git a/examples/apt-cacher-ng/index.html b/examples/apt-cacher-ng/index.html new file mode 100644 index 0000000000..75448de948 --- /dev/null +++ b/examples/apt-cacher-ng/index.html @@ -0,0 +1,909 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing an Apt-Cacher-ng service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Dockerizing an Apt-Cacher-ng Service

+
+

Note: +- If you don't like sudo then see Giving non-root + access. +- If you're using OS X or docker via TCP then you shouldn't use + sudo.

+
+

When you have multiple Docker servers, or build unrelated Docker +containers which can't make use of the Docker build cache, it can be +useful to have a caching proxy for your packages. This container makes +the second download of any package almost instant.

+

Use the following Dockerfile:

+
#
+# Build: docker build -t apt-cacher .
+# Run: docker run -d -p 3142:3142 --name apt-cacher-run apt-cacher
+#
+# and then you can run containers with:
+#   docker run -t -i --rm -e http_proxy http://dockerhost:3142/ debian bash
+#
+FROM        ubuntu
+MAINTAINER  SvenDowideit@docker.com
+
+VOLUME      ["/var/cache/apt-cacher-ng"]
+RUN     apt-get update && apt-get install -y apt-cacher-ng
+
+EXPOSE      3142
+CMD     chmod 777 /var/cache/apt-cacher-ng && /etc/init.d/apt-cacher-ng start && tail -f /var/log/apt-cacher-ng/*
+
+

To build the image using:

+
$ sudo docker build -t eg_apt_cacher_ng .
+
+

Then run it, mapping the exposed port to one on the host

+
$ sudo docker run -d -p 3142:3142 --name test_apt_cacher_ng eg_apt_cacher_ng
+
+

To see the logfiles that are tailed in the default command, you can +use:

+
$ sudo docker logs -f test_apt_cacher_ng
+
+

To get your Debian-based containers to use the proxy, you can do one of +three things

+
    +
  1. Add an apt Proxy setting + echo 'Acquire::http { Proxy "http://dockerhost:3142"; };' >> /etc/apt/conf.d/01proxy
  2. +
  3. Set an environment variable: + http_proxy=http://dockerhost:3142/
  4. +
  5. Change your sources.list entries to start with + http://dockerhost:3142/
  6. +
+

Option 1 injects the settings safely into your apt configuration in +a local version of a common base:

+
FROM ubuntu
+RUN  echo 'Acquire::http { Proxy "http://dockerhost:3142"; };' >> /etc/apt/apt.conf.d/01proxy
+RUN apt-get update && apt-get install -y vim git
+
+# docker build -t my_ubuntu .
+
+

Option 2 is good for testing, but will break other HTTP clients +which obey http_proxy, such as curl, wget and others:

+
$ sudo docker run --rm -t -i -e http_proxy=http://dockerhost:3142/ debian bash
+
+

Option 3 is the least portable, but there will be times when you +might need to do it and you can do it from your Dockerfile +too.

+

Apt-cacher-ng has some tools that allow you to manage the repository, +and they can be used by leveraging the VOLUME +instruction, and the image we built to run the service:

+
$ sudo docker run --rm -t -i --volumes-from test_apt_cacher_ng eg_apt_cacher_ng bash
+
+$$ /usr/lib/apt-cacher-ng/distkill.pl
+Scanning /var/cache/apt-cacher-ng, please wait...
+Found distributions:
+bla, taggedcount: 0
+     1. precise-security (36 index files)
+     2. wheezy (25 index files)
+     3. precise-updates (36 index files)
+     4. precise (36 index files)
+     5. wheezy-updates (18 index files)
+
+Found architectures:
+     6. amd64 (36 index files)
+     7. i386 (24 index files)
+
+WARNING: The removal action may wipe out whole directories containing
+         index files. Select d to see detailed list.
+
+(Number nn: tag distribution or architecture nn; 0: exit; d: show details; r: remove tagged; q: quit): q
+
+

Finally, clean up after your test by stopping and removing the +container, and then removing the image.

+
$ sudo docker stop test_apt_cacher_ng
+$ sudo docker rm test_apt_cacher_ng
+$ sudo docker rmi eg_apt_cacher_ng
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/couchdb_data_volumes.md~ b/examples/couchdb_data_volumes.md~ new file mode 100644 index 0000000000..8cd2408e44 --- /dev/null +++ b/examples/couchdb_data_volumes.md~ @@ -0,0 +1,43 @@ +page_title: Dockerizing a CouchDB Service +page_description: Sharing data between 2 couchdb databases +page_keywords: docker, example, package installation, networking, couchdb, data volumes + +# Dockerizing a CouchDB Service + +> **Note**: +> - **If you don't like sudo** then see [*Giving non-root +> access*](/installation/binaries/#giving-non-root-access) + +Here's an example of using data volumes to share the same data between +two CouchDB containers. This could be used for hot upgrades, testing +different versions of CouchDB on the same data, etc. + +## Create first database + +Note that we're marking `/var/lib/couchdb` as a data volume. + + $ COUCH1=$(sudo docker run -d -p 5984 -v /var/lib/couchdb shykes/couchdb:2013-05-03) + +## Add data to the first database + +We're assuming your Docker host is reachable at `localhost`. If not, +replace `localhost` with the public IP of your Docker host. + + $ HOST=localhost + $ URL="http://$HOST:$(sudo docker port $COUCH1 5984 | grep -o '[1-9][0-9]*$')/_utils/" + $ echo "Navigate to $URL in your browser, and use the couch interface to add data" + +## Create second database + +This time, we're requesting shared access to `$COUCH1`'s volumes. + + $ COUCH2=$(sudo docker run -d -p 5984 --volumes-from $COUCH1 shykes/couchdb:2013-05-03) + +## Browse data on the second database + + $ HOST=localhost + $ URL="http://$HOST:$(sudo docker port $COUCH2 5984 | grep -o '[1-9][0-9]*$')/_utils/" + $ echo "Navigate to $URL in your browser. You should see the same data as in the first database"'!' + +Congratulations, you are now running two Couchdb containers, completely +isolated from each other *except* for their data. diff --git a/examples/couchdb_data_volumes/index.html b/examples/couchdb_data_volumes/index.html new file mode 100644 index 0000000000..15031ad8a3 --- /dev/null +++ b/examples/couchdb_data_volumes/index.html @@ -0,0 +1,870 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing a CouchDB service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Dockerizing a CouchDB Service

+
+

Note: +- If you don't like sudo then see Giving non-root + access

+
+

Here's an example of using data volumes to share the same data between +two CouchDB containers. This could be used for hot upgrades, testing +different versions of CouchDB on the same data, etc.

+

Create first database

+

Note that we're marking /var/lib/couchdb as a data volume.

+
$ COUCH1=$(sudo docker run -d -p 5984 -v /var/lib/couchdb shykes/couchdb:2013-05-03)
+
+

Add data to the first database

+

We're assuming your Docker host is reachable at localhost. If not, +replace localhost with the public IP of your Docker host.

+
$ HOST=localhost
+$ URL="http://$HOST:$(sudo docker port $COUCH1 5984 | grep -o '[1-9][0-9]*$')/_utils/"
+$ echo "Navigate to $URL in your browser, and use the couch interface to add data"
+
+

Create second database

+

This time, we're requesting shared access to $COUCH1's volumes.

+
$ COUCH2=$(sudo docker run -d -p 5984 --volumes-from $COUCH1 shykes/couchdb:2013-05-03)
+
+

Browse data on the second database

+
$ HOST=localhost
+$ URL="http://$HOST:$(sudo docker port $COUCH2 5984 | grep -o '[1-9][0-9]*$')/_utils/"
+$ echo "Navigate to $URL in your browser. You should see the same data as in the first database"'!'
+
+

Congratulations, you are now running two Couchdb containers, completely +isolated from each other except for their data.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 0000000000..429c9fc491 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,1201 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Table of Contents

+

About

+ +

Installation

+ +

User Guide

+ +

Docker Hub

+ +

Examples

+ +

Articles

+ +

Reference

+ +

Contributor Guide

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/mongodb.md~ b/examples/mongodb.md~ new file mode 100644 index 0000000000..28f7824594 --- /dev/null +++ b/examples/mongodb.md~ @@ -0,0 +1,152 @@ +page_title: Dockerizing MongoDB +page_description: Creating a Docker image with MongoDB pre-installed using a Dockerfile and sharing the image on Docker Hub +page_keywords: docker, dockerize, dockerizing, article, example, docker.io, platform, package, installation, networking, mongodb, containers, images, image, sharing, dockerfile, build, auto-building, virtualization, framework + +# Dockerizing MongoDB + +## Introduction + +In this example, we are going to learn how to build a Docker image with +MongoDB pre-installed. We'll also see how to `push` that image to the +[Docker Hub registry](https://hub.docker.com) and share it with others! + +Using Docker and containers for deploying [MongoDB](https://www.mongodb.org/) +instances will bring several benefits, such as: + + - Easy to maintain, highly configurable MongoDB instances; + - Ready to run and start working within milliseconds; + - Based on globally accessible and shareable images. + +> **Note:** +> +> If you do **_not_** like `sudo`, you might want to check out: +> [*Giving non-root access*](/installation/binaries/#giving-non-root-access). + +## Creating a Dockerfile for MongoDB + +Let's create our `Dockerfile` and start building it: + + $ nano Dockerfile + +Although optional, it is handy to have comments at the beginning of a +`Dockerfile` explaining its purpose: + + # Dockerizing MongoDB: Dockerfile for building MongoDB images + # Based on ubuntu:latest, installs MongoDB following the instructions from: + # http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ + +> **Tip:** `Dockerfile`s are flexible. However, they need to follow a certain +> format. The first item to be defined is the name of an image, which becomes +> the *parent* of your *Dockerized MongoDB* image. + +We will build our image using the latest version of Ubuntu from the +[Docker Hub Ubuntu](https://registry.hub.docker.com/_/ubuntu/) repository. + + # Format: FROM repository[:version] + FROM ubuntu:latest + +Continuing, we will declare the `MAINTAINER` of the `Dockerfile`: + + # Format: MAINTAINER Name + MAINTAINER M.Y. Name + +> **Note:** Although Ubuntu systems have MongoDB packages, they are likely to +> be outdated. Therefore in this example, we will use the official MongoDB +> packages. + +We will begin with importing the MongoDB public GPG key. We will also create +a MongoDB repository file for the package manager. + + # Installation: + # Import MongoDB public GPG key AND create a MongoDB list file + RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 + RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list + +After this initial preparation we can update our packages and install MongoDB. + + # Update apt-get sources AND install MongoDB + RUN apt-get update && apt-get install -y mongodb-org + +> **Tip:** You can install a specific version of MongoDB by using a list +> of required packages with versions, e.g.: +> +> RUN apt-get update && apt-get install -y mongodb-org=2.6.1 mongodb-org-server=2.6.1 mongodb-org-shell=2.6.1 mongodb-org-mongos=2.6.1 mongodb-org-tools=2.6.1 + +MongoDB requires a data directory. Let's create it as the final step of our +installation instructions. + + # Create the MongoDB data directory + RUN mkdir -p /data/db + +Lastly we set the `ENTRYPOINT` which will tell Docker to run `mongod` inside +the containers launched from our MongoDB image. And for ports, we will use +the `EXPOSE` instruction. + + # Expose port 27017 from the container to the host + EXPOSE 27017 + + # Set usr/bin/mongod as the dockerized entry-point application + ENTRYPOINT usr/bin/mongod + +Now save the file and let's build our image. + +> **Note:** +> +> The full version of this `Dockerfile` can be found [here](/examples/mongodb/Dockerfile). + +## Building the MongoDB Docker image + +With our `Dockerfile`, we can now build the MongoDB image using Docker. Unless +experimenting, it is always a good practice to tag Docker images by passing the +`--tag` option to `docker build` command. + + # Format: sudo docker build --tag/-t / . + # Example: + $ sudo docker build --tag my/repo . + +Once this command is issued, Docker will go through the `Dockerfile` and build +the image. The final image will be tagged `my/repo`. + +## Pushing the MongoDB image to Docker Hub + +All Docker image repositories can be hosted and shared on +[Docker Hub](https://hub.docker.com) with the `docker push` command. For this, +you need to be logged-in. + + # Log-in + $ sudo docker login + Username: + .. + + # Push the image + # Format: sudo docker push / + $ sudo docker push my/repo + The push refers to a repository [my/repo] (len: 1) + Sending image list + Pushing repository my/repo (1 tags) + .. + +## Using the MongoDB image + +Using the MongoDB image we created, we can run one or more MongoDB instances +as daemon process(es). + + # Basic way + # Usage: sudo docker run --name -d / + $ sudo docker run --name mongo_instance_001 -d my/repo + + # Dockerized MongoDB, lean and mean! + # Usage: sudo docker run --name -d / --noprealloc --smallfiles + $ sudo docker run --name mongo_instance_001 -d my/repo --noprealloc --smallfiles + + # Checking out the logs of a MongoDB container + # Usage: sudo docker logs + $ sudo docker logs mongo_instance_001 + + # Playing with MongoDB + # Usage: mongo --port + $ mongo --port 12345 + + - [Linking containers](/userguide/dockerlinks) + - [Cross-host linking containers](/articles/ambassador_pattern_linking/) + - [Creating an Automated Build](/docker-io/builds/#automated-builds) diff --git a/examples/mongodb/Dockerfile b/examples/mongodb/Dockerfile new file mode 100644 index 0000000000..9333eb5811 --- /dev/null +++ b/examples/mongodb/Dockerfile @@ -0,0 +1,23 @@ +# Dockerizing MongoDB: Dockerfile for building MongoDB images +# Based on ubuntu:latest, installs MongoDB following the instructions from: +# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ + +FROM ubuntu:latest +MAINTAINER Docker + +# Installation: +# Import MongoDB public GPG key AND create a MongoDB list file +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 +RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list + +# Update apt-get sources AND install MongoDB +RUN apt-get update && apt-get install -y mongodb-org + +# Create the MongoDB data directory +RUN mkdir -p /data/db + +# Expose port #27017 from the container to the host +EXPOSE 27017 + +# Set /usr/bin/mongod as the dockerized entry-point application +ENTRYPOINT ["/usr/bin/mongod"] diff --git a/examples/mongodb/index.html b/examples/mongodb/index.html new file mode 100644 index 0000000000..168c363467 --- /dev/null +++ b/examples/mongodb/index.html @@ -0,0 +1,978 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing MongoDB - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Dockerizing MongoDB

+

Introduction

+

In this example, we are going to learn how to build a Docker image with +MongoDB pre-installed. We'll also see how to push that image to the +Docker Hub registry and share it with others!

+

Using Docker and containers for deploying MongoDB +instances will bring several benefits, such as:

+
    +
  • Easy to maintain, highly configurable MongoDB instances;
  • +
  • Ready to run and start working within milliseconds;
  • +
  • Based on globally accessible and shareable images.
  • +
+
+

Note:

+

If you do not like sudo, you might want to check out: +Giving non-root access.

+
+

Creating a Dockerfile for MongoDB

+

Let's create our Dockerfile and start building it:

+
$ nano Dockerfile
+
+

Although optional, it is handy to have comments at the beginning of a +Dockerfile explaining its purpose:

+
# Dockerizing MongoDB: Dockerfile for building MongoDB images
+# Based on ubuntu:latest, installs MongoDB following the instructions from:
+# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
+
+
+

Tip: Dockerfiles are flexible. However, they need to follow a certain +format. The first item to be defined is the name of an image, which becomes +the parent of your Dockerized MongoDB image.

+
+

We will build our image using the latest version of Ubuntu from the +Docker Hub Ubuntu repository.

+
# Format: FROM    repository[:version]
+FROM       ubuntu:latest
+
+

Continuing, we will declare the MAINTAINER of the Dockerfile:

+
# Format: MAINTAINER Name <email@addr.ess>
+MAINTAINER M.Y. Name <myname@addr.ess>
+
+
+

Note: Although Ubuntu systems have MongoDB packages, they are likely to +be outdated. Therefore in this example, we will use the official MongoDB +packages.

+
+

We will begin with importing the MongoDB public GPG key. We will also create +a MongoDB repository file for the package manager.

+
# Installation:
+# Import MongoDB public GPG key AND create a MongoDB list file
+RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
+RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list
+
+

After this initial preparation we can update our packages and install MongoDB.

+
# Update apt-get sources AND install MongoDB
+RUN apt-get update && apt-get install -y mongodb-org
+
+
+

Tip: You can install a specific version of MongoDB by using a list +of required packages with versions, e.g.:

+
RUN apt-get update && apt-get install -y mongodb-org=2.6.1 mongodb-org-server=2.6.1 mongodb-org-shell=2.6.1 mongodb-org-mongos=2.6.1 mongodb-org-tools=2.6.1
+
+
+

MongoDB requires a data directory. Let's create it as the final step of our +installation instructions.

+
# Create the MongoDB data directory
+RUN mkdir -p /data/db
+
+

Lastly we set the ENTRYPOINT which will tell Docker to run mongod inside +the containers launched from our MongoDB image. And for ports, we will use +the EXPOSE instruction.

+
# Expose port 27017 from the container to the host
+EXPOSE 27017
+
+# Set usr/bin/mongod as the dockerized entry-point application
+ENTRYPOINT usr/bin/mongod
+
+

Now save the file and let's build our image.

+
+

Note:

+

The full version of this Dockerfile can be found here.

+
+

Building the MongoDB Docker image

+

With our Dockerfile, we can now build the MongoDB image using Docker. Unless +experimenting, it is always a good practice to tag Docker images by passing the +--tag option to docker build command.

+
# Format: sudo docker build --tag/-t <user-name>/<repository> .
+# Example:
+$ sudo docker build --tag my/repo .
+
+

Once this command is issued, Docker will go through the Dockerfile and build +the image. The final image will be tagged my/repo.

+

Pushing the MongoDB image to Docker Hub

+

All Docker image repositories can be hosted and shared on +Docker Hub with the docker push command. For this, +you need to be logged-in.

+
# Log-in
+$ sudo docker login
+Username:
+..
+
+# Push the image
+# Format: sudo docker push <user-name>/<repository>
+$ sudo docker push my/repo
+The push refers to a repository [my/repo] (len: 1)
+Sending image list
+Pushing repository my/repo (1 tags)
+..
+
+

Using the MongoDB image

+

Using the MongoDB image we created, we can run one or more MongoDB instances +as daemon process(es).

+
# Basic way
+# Usage: sudo docker run --name <name for container> -d <user-name>/<repository>
+$ sudo docker run --name mongo_instance_001 -d my/repo
+
+# Dockerized MongoDB, lean and mean!
+# Usage: sudo docker run --name <name for container> -d <user-name>/<repository> --noprealloc --smallfiles
+$ sudo docker run --name mongo_instance_001 -d my/repo --noprealloc --smallfiles
+
+# Checking out the logs of a MongoDB container
+# Usage: sudo docker logs <name for container>
+$ sudo docker logs mongo_instance_001
+
+# Playing with MongoDB
+# Usage: mongo --port <port you get from `docker ps`> 
+$ mongo --port 12345
+
+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/nodejs_web_app.md~ b/examples/nodejs_web_app.md~ new file mode 100644 index 0000000000..56f7687cd2 --- /dev/null +++ b/examples/nodejs_web_app.md~ @@ -0,0 +1,191 @@ +page_title: Dockerizing a Node.js Web App +page_description: Installing and running a Node.js app with Docker +page_keywords: docker, example, package installation, node, centos + +# Dockerizing a Node.js Web App + +> **Note**: +> - **If you don't like sudo** then see [*Giving non-root +> access*](/installation/binaries/#giving-non-root-access) + +The goal of this example is to show you how you can build your own +Docker images from a parent image using a `Dockerfile` +. We will do that by making a simple Node.js hello world web +application running on CentOS. You can get the full source code at +[https://github.com/enokd/docker-node-hello/](https://github.com/enokd/docker-node-hello/). + +## Create Node.js app + +First, create a directory `src` where all the files +would live. Then create a `package.json` file that +describes your app and its dependencies: + + { + "name": "docker-centos-hello", + "private": true, + "version": "0.0.1", + "description": "Node.js Hello world app on CentOS using docker", + "author": "Daniel Gasienica ", + "dependencies": { + "express": "3.2.4" + } + } + +Then, create an `index.js` file that defines a web +app using the [Express.js](http://expressjs.com/) framework: + + var express = require('express'); + + // Constants + var PORT = 8080; + + // App + var app = express(); + app.get('/', function (req, res) { + res.send('Hello world\n'); + }); + + app.listen(PORT); + console.log('Running on http://localhost:' + PORT); + +In the next steps, we'll look at how you can run this app inside a +CentOS container using Docker. First, you'll need to build a Docker +image of your app. + +## Creating a Dockerfile + +Create an empty file called `Dockerfile`: + + touch Dockerfile + +Open the `Dockerfile` in your favorite text editor + +Define the parent image you want to use to build your own image on +top of. Here, we'll use +[CentOS](https://registry.hub.docker.com/_/centos/) (tag: `centos6`) +available on the [Docker Hub](https://hub.docker.com/): + + FROM centos:centos6 + +Since we're building a Node.js app, you'll have to install Node.js as +well as npm on your CentOS image. Node.js is required to run your app +and npm to install your app's dependencies defined in +`package.json`. To install the right package for +CentOS, we'll use the instructions from the [Node.js wiki]( +https://github.com/joyent/node/wiki/Installing-Node.js- +via-package-manager#rhelcentosscientific-linux-6): + + # Enable EPEL for Node.js + RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm + # Install Node.js and npm + RUN yum install -y npm + +To bundle your app's source code inside the Docker image, use the `COPY` +instruction: + + # Bundle app source + COPY . /src + +Install your app dependencies using the `npm` binary: + + # Install app dependencies + RUN cd /src; npm install + +Your app binds to port `8080` so you'll use the` EXPOSE` instruction to have +it mapped by the `docker` daemon: + + EXPOSE 8080 + +Last but not least, define the command to run your app using `CMD` which +defines your runtime, i.e. `node`, and the path to our app, i.e. `src/index.js` +(see the step where we added the source to the container): + + CMD ["node", "/src/index.js"] + +Your `Dockerfile` should now look like this: + + FROM centos:centos6 + + # Enable EPEL for Node.js + RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm + # Install Node.js and npm + RUN yum install -y npm + + # Bundle app source + COPY . /src + # Install app dependencies + RUN cd /src; npm install + + EXPOSE 8080 + CMD ["node", "/src/index.js"] + +## Building your image + +Go to the directory that has your `Dockerfile` and run the following command +to build a Docker image. The `-t` flag lets you tag your image so it's easier +to find later using the `docker images` command: + + $ sudo docker build -t /centos-node-hello . + +Your image will now be listed by Docker: + + $ sudo docker images + + # Example + REPOSITORY TAG ID CREATED + centos centos6 539c0211cd76 8 weeks ago + /centos-node-hello latest d64d3505b0d2 2 hours ago + +## Run the image + +Running your image with `-d` runs the container in detached mode, leaving the +container running in the background. The `-p` flag redirects a public port to +a private port in the container. Run the image you previously built: + + $ sudo docker run -p 49160:8080 -d /centos-node-hello + +Print the output of your app: + + # Get container ID + $ sudo docker ps + + # Print app output + $ sudo docker logs + + # Example + Running on http://localhost:8080 + +## Test + +To test your app, get the port of your app that Docker mapped: + + $ sudo docker ps + + # Example + ID IMAGE COMMAND ... PORTS + ecce33b30ebf /centos-node-hello:latest node /src/index.js 49160->8080 + +In the example above, Docker mapped the `8080` port of the container to `49160`. + +Now you can call your app using `curl` (install if needed via: +`sudo apt-get install curl`): + + $ curl -i localhost:49160 + + HTTP/1.1 200 OK + X-Powered-By: Express + Content-Type: text/html; charset=utf-8 + Content-Length: 12 + Date: Sun, 02 Jun 2013 03:53:22 GMT + Connection: keep-alive + + Hello world + +If you use Boot2docker on OS X, the port is actually mapped to the Docker host VM, +and you should use the following command: + + $ curl $(boot2docker ip):49160 + +We hope this tutorial helped you get up and running with Node.js and +CentOS on Docker. You can get the full source code at +[https://github.com/enokd/docker-node-hello/](https://github.com/enokd/docker-node-hello/). diff --git a/examples/nodejs_web_app/index.html b/examples/nodejs_web_app/index.html new file mode 100644 index 0000000000..cf62ddc9dc --- /dev/null +++ b/examples/nodejs_web_app/index.html @@ -0,0 +1,1005 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing a Node.js web application - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Dockerizing a Node.js Web App

+
+

Note: +- If you don't like sudo then see Giving non-root + access

+
+

The goal of this example is to show you how you can build your own +Docker images from a parent image using a Dockerfile +. We will do that by making a simple Node.js hello world web +application running on CentOS. You can get the full source code at +https://github.com/enokd/docker-node-hello/.

+

Create Node.js app

+

First, create a directory src where all the files +would live. Then create a package.json file that +describes your app and its dependencies:

+
{
+  "name": "docker-centos-hello",
+  "private": true,
+  "version": "0.0.1",
+  "description": "Node.js Hello world app on CentOS using docker",
+  "author": "Daniel Gasienica <daniel@gasienica.ch>",
+  "dependencies": {
+    "express": "3.2.4"
+  }
+}
+
+

Then, create an index.js file that defines a web +app using the Express.js framework:

+
var express = require('express');
+
+// Constants
+var PORT = 8080;
+
+// App
+var app = express();
+app.get('/', function (req, res) {
+  res.send('Hello world\n');
+});
+
+app.listen(PORT);
+console.log('Running on http://localhost:' + PORT);
+
+

In the next steps, we'll look at how you can run this app inside a +CentOS container using Docker. First, you'll need to build a Docker +image of your app.

+

Creating a Dockerfile

+

Create an empty file called Dockerfile:

+
touch Dockerfile
+
+

Open the Dockerfile in your favorite text editor

+

Define the parent image you want to use to build your own image on +top of. Here, we'll use +CentOS (tag: centos6) +available on the Docker Hub:

+
FROM    centos:centos6
+
+

Since we're building a Node.js app, you'll have to install Node.js as +well as npm on your CentOS image. Node.js is required to run your app +and npm to install your app's dependencies defined in +package.json. To install the right package for +CentOS, we'll use the instructions from the Node.js wiki:

+
# Enable EPEL for Node.js
+RUN     rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
+# Install Node.js and npm
+RUN     yum install -y npm
+
+

To bundle your app's source code inside the Docker image, use the COPY +instruction:

+
# Bundle app source
+COPY . /src
+
+

Install your app dependencies using the npm binary:

+
# Install app dependencies
+RUN cd /src; npm install
+
+

Your app binds to port 8080 so you'll use theEXPOSE instruction to have +it mapped by the docker daemon:

+
EXPOSE  8080
+
+

Last but not least, define the command to run your app using CMD which +defines your runtime, i.e. node, and the path to our app, i.e. src/index.js +(see the step where we added the source to the container):

+
CMD ["node", "/src/index.js"]
+
+

Your Dockerfile should now look like this:

+
FROM    centos:centos6
+
+# Enable EPEL for Node.js
+RUN     rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
+# Install Node.js and npm
+RUN     yum install -y npm
+
+# Bundle app source
+COPY . /src
+# Install app dependencies
+RUN cd /src; npm install
+
+EXPOSE  8080
+CMD ["node", "/src/index.js"]
+
+

Building your image

+

Go to the directory that has your Dockerfile and run the following command +to build a Docker image. The -t flag lets you tag your image so it's easier +to find later using the docker images command:

+
$ sudo docker build -t <your username>/centos-node-hello .
+
+

Your image will now be listed by Docker:

+
$ sudo docker images
+
+# Example
+REPOSITORY                          TAG        ID              CREATED
+centos                              centos6    539c0211cd76    8 weeks ago
+<your username>/centos-node-hello   latest     d64d3505b0d2    2 hours ago
+
+

Run the image

+

Running your image with -d runs the container in detached mode, leaving the +container running in the background. The -p flag redirects a public port to +a private port in the container. Run the image you previously built:

+
$ sudo docker run -p 49160:8080 -d <your username>/centos-node-hello
+
+

Print the output of your app:

+
# Get container ID
+$ sudo docker ps
+
+# Print app output
+$ sudo docker logs <container id>
+
+# Example
+Running on http://localhost:8080
+
+

Test

+

To test your app, get the port of your app that Docker mapped:

+
$ sudo docker ps
+
+# Example
+ID            IMAGE                                     COMMAND              ...   PORTS
+ecce33b30ebf  <your username>/centos-node-hello:latest  node /src/index.js         49160->8080
+
+

In the example above, Docker mapped the 8080 port of the container to 49160.

+

Now you can call your app using curl (install if needed via: +sudo apt-get install curl):

+
$ curl -i localhost:49160
+
+HTTP/1.1 200 OK
+X-Powered-By: Express
+Content-Type: text/html; charset=utf-8
+Content-Length: 12
+Date: Sun, 02 Jun 2013 03:53:22 GMT
+Connection: keep-alive
+
+Hello world
+
+

If you use Boot2docker on OS X, the port is actually mapped to the Docker host VM, +and you should use the following command:

+
$ curl $(boot2docker ip):49160
+
+

We hope this tutorial helped you get up and running with Node.js and +CentOS on Docker. You can get the full source code at +https://github.com/enokd/docker-node-hello/.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/postgresql_service.Dockerfile b/examples/postgresql_service.Dockerfile new file mode 100644 index 0000000000..d0f37669d1 --- /dev/null +++ b/examples/postgresql_service.Dockerfile @@ -0,0 +1,49 @@ +# +# example Dockerfile for http://docs.docker.com/examples/postgresql_service/ +# + +FROM ubuntu +MAINTAINER SvenDowideit@docker.com + +# Add the PostgreSQL PGP key to verify their Debian packages. +# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +# Add PostgreSQL's repository. It contains the most recent stable release +# of PostgreSQL, ``9.3``. +RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list + +# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3 +# There are some warnings (in red) that show up during the build. You can hide +# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 + +# Note: The official Debian and Ubuntu images automatically ``apt-get clean`` +# after each ``apt-get`` + +# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed`` +USER postgres + +# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and +# then create a database `docker` owned by the ``docker`` role. +# Note: here we use ``&&\`` to run commands one after the other - the ``\`` +# allows the RUN command to span multiple lines. +RUN /etc/init.d/postgresql start &&\ + psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\ + createdb -O docker docker + +# Adjust PostgreSQL configuration so that remote connections to the +# database are possible. +RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf + +# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf`` +RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf + +# Expose the PostgreSQL port +EXPOSE 5432 + +# Add VOLUMEs to allow backup of config, logs and databases +VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] + +# Set the default command to run when starting the container +CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] diff --git a/examples/postgresql_service.md~ b/examples/postgresql_service.md~ new file mode 100644 index 0000000000..21044d369a --- /dev/null +++ b/examples/postgresql_service.md~ @@ -0,0 +1,147 @@ +page_title: Dockerizing PostgreSQL +page_description: Running and installing a PostgreSQL service +page_keywords: docker, example, package installation, postgresql + +# Dockerizing PostgreSQL + +> **Note**: +> - **If you don't like sudo** then see [*Giving non-root +> access*](/installation/binaries/#giving-non-root-access) + +## Installing PostgreSQL on Docker + +Assuming there is no Docker image that suits your needs on the [Docker +Hub](http://hub.docker.com), you can create one yourself. + +Start by creating a new `Dockerfile`: + +> **Note**: +> This PostgreSQL setup is for development-only purposes. Refer to the +> PostgreSQL documentation to fine-tune these settings so that it is +> suitably secure. + + # + # example Dockerfile for http://docs.docker.com/examples/postgresql_service/ + # + + FROM ubuntu + MAINTAINER SvenDowideit@docker.com + + # Add the PostgreSQL PGP key to verify their Debian packages. + # It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc + RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + + # Add PostgreSQL's repository. It contains the most recent stable release + # of PostgreSQL, ``9.3``. + RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list + + # Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3 + # There are some warnings (in red) that show up during the build. You can hide + # them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive + RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 + + # Note: The official Debian and Ubuntu images automatically ``apt-get clean`` + # after each ``apt-get`` + + # Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed`` + USER postgres + + # Create a PostgreSQL role named ``docker`` with ``docker`` as the password and + # then create a database `docker` owned by the ``docker`` role. + # Note: here we use ``&&\`` to run commands one after the other - the ``\`` + # allows the RUN command to span multiple lines. + RUN /etc/init.d/postgresql start &&\ + psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\ + createdb -O docker docker + + # Adjust PostgreSQL configuration so that remote connections to the + # database are possible. + RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf + + # And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf`` + RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf + + # Expose the PostgreSQL port + EXPOSE 5432 + + # Add VOLUMEs to allow backup of config, logs and databases + VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] + + # Set the default command to run when starting the container + CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] + +Build an image from the Dockerfile assign it a name. + + $ sudo docker build -t eg_postgresql . + +And run the PostgreSQL server container (in the foreground): + + $ sudo docker run --rm -P --name pg_test eg_postgresql + +There are 2 ways to connect to the PostgreSQL server. We can use [*Link +Containers*](/userguide/dockerlinks), or we can access it from our host +(or the network). + +> **Note**: +> The `--rm` removes the container and its image when +> the container exits successfully. + +### Using container linking + +Containers can be linked to another container's ports directly using +`-link remote_name:local_alias` in the client's +`docker run`. This will set a number of environment +variables that can then be used to connect: + + $ sudo docker run --rm -t -i --link pg_test:pg eg_postgresql bash + + postgres@7ef98b1b7243:/$ psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT -d docker -U docker --password + +### Connecting from your host system + +Assuming you have the postgresql-client installed, you can use the +host-mapped port to test as well. You need to use `docker ps` +to find out what local host port the container is mapped to +first: + + $ sudo docker ps + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 5e24362f27f6 eg_postgresql:latest /usr/lib/postgresql/ About an hour ago Up About an hour 0.0.0.0:49153->5432/tcp pg_test + $ psql -h localhost -p 49153 -d docker -U docker --password + +### Testing the database + +Once you have authenticated and have a `docker =#` +prompt, you can create a table and populate it. + + psql (9.3.1) + Type "help" for help. + + $ docker=# CREATE TABLE cities ( + docker(# name varchar(80), + docker(# location point + docker(# ); + CREATE TABLE + $ docker=# INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)'); + INSERT 0 1 + $ docker=# select * from cities; + name | location + ---------------+----------- + San Francisco | (-194,53) + (1 row) + +### Using the container volumes + +You can use the defined volumes to inspect the PostgreSQL log files and +to backup your configuration and data: + + $ sudo docker run --rm --volumes-from pg_test -t -i busybox sh + + / # ls + bin etc lib linuxrc mnt proc run sys usr + dev home lib64 media opt root sbin tmp var + / # ls /etc/postgresql/9.3/main/ + environment pg_hba.conf postgresql.conf + pg_ctl.conf pg_ident.conf start.conf + /tmp # ls /var/log + ldconfig postgresql diff --git a/examples/postgresql_service/index.html b/examples/postgresql_service/index.html new file mode 100644 index 0000000000..08a637624d --- /dev/null +++ b/examples/postgresql_service/index.html @@ -0,0 +1,961 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing a PostgreSQL service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Dockerizing PostgreSQL

+
+

Note: +- If you don't like sudo then see Giving non-root + access

+
+

Installing PostgreSQL on Docker

+

Assuming there is no Docker image that suits your needs on the Docker +Hub, you can create one yourself.

+

Start by creating a new Dockerfile:

+
+

Note: +This PostgreSQL setup is for development-only purposes. Refer to the +PostgreSQL documentation to fine-tune these settings so that it is +suitably secure.

+
+
#
+# example Dockerfile for http://docs.docker.com/examples/postgresql_service/
+#
+
+FROM ubuntu
+MAINTAINER SvenDowideit@docker.com
+
+# Add the PostgreSQL PGP key to verify their Debian packages.
+# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
+
+# Add PostgreSQL's repository. It contains the most recent stable release
+#     of PostgreSQL, ``9.3``.
+RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list
+
+# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3
+#  There are some warnings (in red) that show up during the build. You can hide
+#  them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
+
+# Note: The official Debian and Ubuntu images automatically ``apt-get clean``
+# after each ``apt-get``
+
+# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed``
+USER postgres
+
+# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and
+# then create a database `docker` owned by the ``docker`` role.
+# Note: here we use ``&&\`` to run commands one after the other - the ``\``
+#       allows the RUN command to span multiple lines.
+RUN    /etc/init.d/postgresql start &&\
+    psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
+    createdb -O docker docker
+
+# Adjust PostgreSQL configuration so that remote connections to the
+# database are possible. 
+RUN echo "host all  all    0.0.0.0/0  md5" >> /etc/postgresql/9.3/main/pg_hba.conf
+
+# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf``
+RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf
+
+# Expose the PostgreSQL port
+EXPOSE 5432
+
+# Add VOLUMEs to allow backup of config, logs and databases
+VOLUME  ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
+
+# Set the default command to run when starting the container
+CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]
+
+

Build an image from the Dockerfile assign it a name.

+
$ sudo docker build -t eg_postgresql .
+
+

And run the PostgreSQL server container (in the foreground):

+
$ sudo docker run --rm -P --name pg_test eg_postgresql
+
+

There are 2 ways to connect to the PostgreSQL server. We can use Link +Containers, or we can access it from our host +(or the network).

+
+

Note: +The --rm removes the container and its image when +the container exits successfully.

+
+

Using container linking

+

Containers can be linked to another container's ports directly using +-link remote_name:local_alias in the client's +docker run. This will set a number of environment +variables that can then be used to connect:

+
$ sudo docker run --rm -t -i --link pg_test:pg eg_postgresql bash
+
+postgres@7ef98b1b7243:/$ psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT -d docker -U docker --password
+
+

Connecting from your host system

+

Assuming you have the postgresql-client installed, you can use the +host-mapped port to test as well. You need to use docker ps +to find out what local host port the container is mapped to +first:

+
$ sudo docker ps
+CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS              PORTS                                      NAMES
+5e24362f27f6        eg_postgresql:latest   /usr/lib/postgresql/   About an hour ago   Up About an hour    0.0.0.0:49153->5432/tcp                    pg_test
+$ psql -h localhost -p 49153 -d docker -U docker --password
+
+

Testing the database

+

Once you have authenticated and have a docker =# +prompt, you can create a table and populate it.

+
psql (9.3.1)
+Type "help" for help.
+
+$ docker=# CREATE TABLE cities (
+docker(#     name            varchar(80),
+docker(#     location        point
+docker(# );
+CREATE TABLE
+$ docker=# INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
+INSERT 0 1
+$ docker=# select * from cities;
+     name      | location
+---------------+-----------
+ San Francisco | (-194,53)
+(1 row)
+
+

Using the container volumes

+

You can use the defined volumes to inspect the PostgreSQL log files and +to backup your configuration and data:

+
$ sudo docker run --rm --volumes-from pg_test -t -i busybox sh
+
+/ # ls
+bin      etc      lib      linuxrc  mnt      proc     run      sys      usr
+dev      home     lib64    media    opt      root     sbin     tmp      var
+/ # ls /etc/postgresql/9.3/main/
+environment      pg_hba.conf      postgresql.conf
+pg_ctl.conf      pg_ident.conf    start.conf
+/tmp # ls /var/log
+ldconfig    postgresql
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/running_redis_service.md~ b/examples/running_redis_service.md~ new file mode 100644 index 0000000000..99036a0426 --- /dev/null +++ b/examples/running_redis_service.md~ @@ -0,0 +1,83 @@ +page_title: Dockerizing a Redis service +page_description: Installing and running an redis service +page_keywords: docker, example, package installation, networking, redis + +# Dockerizing a Redis Service + +Very simple, no frills, Redis service attached to a web application +using a link. + +## Create a docker container for Redis + +Firstly, we create a `Dockerfile` for our new Redis +image. + + FROM ubuntu:14.04 + RUN apt-get update && apt-get install -y redis-server + EXPOSE 6379 + ENTRYPOINT ["/usr/bin/redis-server"] + +Next we build an image from our `Dockerfile`. +Replace `` with your own user name. + + $ sudo docker build -t /redis . + +## Run the service + +Use the image we've just created and name your container `redis`. + +Running the service with `-d` runs the container in detached mode, leaving +the container running in the background. + +Importantly, we're not exposing any ports on our container. Instead +we're going to use a container link to provide access to our Redis +database. + + $ sudo docker run --name redis -d /redis + +## Create your web application container + +Next we can create a container for our application. We're going to use +the `-link` flag to create a link to the `redis` container we've just +created with an alias of `db`. This will create a secure tunnel to the +`redis` container and expose the Redis instance running inside that +container to only this container. + + $ sudo docker run --link redis:db -i -t ubuntu:14.04 /bin/bash + +Once inside our freshly created container we need to install Redis to +get the `redis-cli` binary to test our connection. + + $ sudo apt-get update + $ sudo apt-get install redis-server + $ sudo service redis-server stop + +As we've used the `--link redis:db` option, Docker +has created some environment variables in our web application container. + + $ env | grep DB_ + + # Should return something similar to this with your values + DB_NAME=/violet_wolf/db + DB_PORT_6379_TCP_PORT=6379 + DB_PORT=tcp://172.17.0.33:6379 + DB_PORT_6379_TCP=tcp://172.17.0.33:6379 + DB_PORT_6379_TCP_ADDR=172.17.0.33 + DB_PORT_6379_TCP_PROTO=tcp + +We can see that we've got a small list of environment variables prefixed +with `DB`. The `DB` comes from the link alias specified when we launched +the container. Let's use the `DB_PORT_6379_TCP_ADDR` variable to connect to +our Redis container. + + $ redis-cli -h $DB_PORT_6379_TCP_ADDR + $ redis 172.17.0.33:6379> + $ redis 172.17.0.33:6379> set docker awesome + OK + $ redis 172.17.0.33:6379> get docker + "awesome" + $ redis 172.17.0.33:6379> exit + +We could easily use this or other environment variables in our web +application to make a connection to our `redis` +container. diff --git a/examples/running_redis_service/index.html b/examples/running_redis_service/index.html new file mode 100644 index 0000000000..d660461920 --- /dev/null +++ b/examples/running_redis_service/index.html @@ -0,0 +1,898 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing a Redis service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Dockerizing a Redis Service

+

Very simple, no frills, Redis service attached to a web application +using a link.

+

Create a docker container for Redis

+

Firstly, we create a Dockerfile for our new Redis +image.

+
FROM        ubuntu:14.04
+RUN         apt-get update && apt-get install -y redis-server
+EXPOSE      6379
+ENTRYPOINT  ["/usr/bin/redis-server"]
+
+

Next we build an image from our Dockerfile. +Replace <your username> with your own user name.

+
$ sudo docker build -t <your username>/redis .
+
+

Run the service

+

Use the image we've just created and name your container redis.

+

Running the service with -d runs the container in detached mode, leaving +the container running in the background.

+

Importantly, we're not exposing any ports on our container. Instead +we're going to use a container link to provide access to our Redis +database.

+
$ sudo docker run --name redis -d <your username>/redis
+
+

Create your web application container

+

Next we can create a container for our application. We're going to use +the -link flag to create a link to the redis container we've just +created with an alias of db. This will create a secure tunnel to the +redis container and expose the Redis instance running inside that +container to only this container.

+
$ sudo docker run --link redis:db -i -t ubuntu:14.04 /bin/bash
+
+

Once inside our freshly created container we need to install Redis to +get the redis-cli binary to test our connection.

+
$ sudo apt-get update
+$ sudo apt-get install redis-server
+$ sudo service redis-server stop
+
+

As we've used the --link redis:db option, Docker +has created some environment variables in our web application container.

+
$ env | grep DB_
+
+# Should return something similar to this with your values
+DB_NAME=/violet_wolf/db
+DB_PORT_6379_TCP_PORT=6379
+DB_PORT=tcp://172.17.0.33:6379
+DB_PORT_6379_TCP=tcp://172.17.0.33:6379
+DB_PORT_6379_TCP_ADDR=172.17.0.33
+DB_PORT_6379_TCP_PROTO=tcp
+
+

We can see that we've got a small list of environment variables prefixed +with DB. The DB comes from the link alias specified when we launched +the container. Let's use the DB_PORT_6379_TCP_ADDR variable to connect to +our Redis container.

+
$ redis-cli -h $DB_PORT_6379_TCP_ADDR
+$ redis 172.17.0.33:6379>
+$ redis 172.17.0.33:6379> set docker awesome
+OK
+$ redis 172.17.0.33:6379> get docker
+"awesome"
+$ redis 172.17.0.33:6379> exit
+
+

We could easily use this or other environment variables in our web +application to make a connection to our redis +container.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/running_riak_service.md~ b/examples/running_riak_service.md~ new file mode 100644 index 0000000000..0b53234046 --- /dev/null +++ b/examples/running_riak_service.md~ @@ -0,0 +1,112 @@ +page_title: Dockerizing a Riak service +page_description: Build a Docker image with Riak pre-installed +page_keywords: docker, example, package installation, networking, riak + +# Dockerizing a Riak Service + +The goal of this example is to show you how to build a Docker image with +Riak pre-installed. + +## Creating a Dockerfile + +Create an empty file called `Dockerfile`: + + $ touch Dockerfile + +Next, define the parent image you want to use to build your image on top +of. We'll use [Ubuntu](https://registry.hub.docker.com/_/ubuntu/) (tag: +`latest`), which is available on [Docker Hub](https://hub.docker.com): + + # Riak + # + # VERSION 0.1.0 + + # Use the Ubuntu base image provided by dotCloud + FROM ubuntu:latest + MAINTAINER Hector Castro hector@basho.com + +After that, we install and setup a few dependencies: + + - `curl` is used to download Basho's APT + repository key + - `lsb-release` helps us derive the Ubuntu release + codename + - `openssh-server` allows us to login to + containers remotely and join Riak nodes to form a cluster + - `supervisor` is used manage the OpenSSH and Riak + processes + + + + # Install and setup project dependencies + RUN apt-get update && apt-get install -y curl lsb-release supervisor openssh-server + + RUN mkdir -p /var/run/sshd + RUN mkdir -p /var/log/supervisor + + RUN locale-gen en_US en_US.UTF-8 + + COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf + + RUN echo 'root:basho' | chpasswd + +Next, we add Basho's APT repository: + + RUN curl -sSL http://apt.basho.com/gpg/basho.apt.key | apt-key add -- + RUN echo "deb http://apt.basho.com $(lsb_release -cs) main" > /etc/apt/sources.list.d/basho.list + +After that, we install Riak and alter a few defaults: + + # Install Riak and prepare it to run + RUN apt-get update && apt-get install -y riak + RUN sed -i.bak 's/127.0.0.1/0.0.0.0/' /etc/riak/app.config + RUN echo "ulimit -n 4096" >> /etc/default/riak + +Then, we expose the Riak Protocol Buffers and HTTP interfaces, along +with SSH: + + # Expose Riak Protocol Buffers and HTTP interfaces, along with SSH + EXPOSE 8087 8098 22 + +Finally, run `supervisord` so that Riak and OpenSSH +are started: + + CMD ["/usr/bin/supervisord"] + +## Create a supervisord configuration file + +Create an empty file called `supervisord.conf`. Make +sure it's at the same directory level as your `Dockerfile`: + + touch supervisord.conf + +Populate it with the following program definitions: + + [supervisord] + nodaemon=true + + [program:sshd] + command=/usr/sbin/sshd -D + stdout_logfile=/var/log/supervisor/%(program_name)s.log + stderr_logfile=/var/log/supervisor/%(program_name)s.log + autorestart=true + + [program:riak] + command=bash -c ". /etc/default/riak && /usr/sbin/riak console" + pidfile=/var/log/riak/riak.pid + stdout_logfile=/var/log/supervisor/%(program_name)s.log + stderr_logfile=/var/log/supervisor/%(program_name)s.log + +## Build the Docker image for Riak + +Now you should be able to build a Docker image for Riak: + + $ sudo docker build -t "/riak" . + +## Next steps + +Riak is a distributed database. Many production deployments consist of +[at least five nodes]( +http://basho.com/why-your-riak-cluster-should-have-at-least-five-nodes/). +See the [docker-riak](https://github.com/hectcastro/docker-riak) project +details on how to deploy a Riak cluster using Docker and Pipework. diff --git a/examples/running_riak_service/index.html b/examples/running_riak_service/index.html new file mode 100644 index 0000000000..1387ce35e9 --- /dev/null +++ b/examples/running_riak_service/index.html @@ -0,0 +1,931 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing a Riak service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+ +
+
+ + + +
+ +
+ +

Dockerizing a Riak Service

+

The goal of this example is to show you how to build a Docker image with +Riak pre-installed.

+

Creating a Dockerfile

+

Create an empty file called Dockerfile:

+
$ touch Dockerfile
+
+

Next, define the parent image you want to use to build your image on top +of. We'll use Ubuntu (tag: +latest), which is available on Docker Hub:

+
# Riak
+#
+# VERSION       0.1.0
+
+# Use the Ubuntu base image provided by dotCloud
+FROM ubuntu:latest
+MAINTAINER Hector Castro hector@basho.com
+
+

After that, we install and setup a few dependencies:

+
    +
  • curl is used to download Basho's APT + repository key
  • +
  • lsb-release helps us derive the Ubuntu release + codename
  • +
  • openssh-server allows us to login to + containers remotely and join Riak nodes to form a cluster
  • +
  • supervisor is used manage the OpenSSH and Riak + processes
  • +
+ + +
# Install and setup project dependencies
+RUN apt-get update && apt-get install -y curl lsb-release supervisor openssh-server
+
+RUN mkdir -p /var/run/sshd
+RUN mkdir -p /var/log/supervisor
+
+RUN locale-gen en_US en_US.UTF-8
+
+COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
+
+RUN echo 'root:basho' | chpasswd
+
+

Next, we add Basho's APT repository:

+
RUN curl -sSL http://apt.basho.com/gpg/basho.apt.key | apt-key add --
+RUN echo "deb http://apt.basho.com $(lsb_release -cs) main" > /etc/apt/sources.list.d/basho.list
+
+

After that, we install Riak and alter a few defaults:

+
# Install Riak and prepare it to run
+RUN apt-get update && apt-get install -y riak
+RUN sed -i.bak 's/127.0.0.1/0.0.0.0/' /etc/riak/app.config
+RUN echo "ulimit -n 4096" >> /etc/default/riak
+
+

Then, we expose the Riak Protocol Buffers and HTTP interfaces, along +with SSH:

+
# Expose Riak Protocol Buffers and HTTP interfaces, along with SSH
+EXPOSE 8087 8098 22
+
+

Finally, run supervisord so that Riak and OpenSSH +are started:

+
CMD ["/usr/bin/supervisord"]
+
+

Create a supervisord configuration file

+

Create an empty file called supervisord.conf. Make +sure it's at the same directory level as your Dockerfile:

+
touch supervisord.conf
+
+

Populate it with the following program definitions:

+
[supervisord]
+nodaemon=true
+
+[program:sshd]
+command=/usr/sbin/sshd -D
+stdout_logfile=/var/log/supervisor/%(program_name)s.log
+stderr_logfile=/var/log/supervisor/%(program_name)s.log
+autorestart=true
+
+[program:riak]
+command=bash -c ". /etc/default/riak && /usr/sbin/riak console"
+pidfile=/var/log/riak/riak.pid
+stdout_logfile=/var/log/supervisor/%(program_name)s.log
+stderr_logfile=/var/log/supervisor/%(program_name)s.log
+
+

Build the Docker image for Riak

+

Now you should be able to build a Docker image for Riak:

+
$ sudo docker build -t "<yourname>/riak" .
+
+

Next steps

+

Riak is a distributed database. Many production deployments consist of +at least five nodes. +See the docker-riak project +details on how to deploy a Riak cluster using Docker and Pipework.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/running_ssh_service.Dockerfile b/examples/running_ssh_service.Dockerfile new file mode 100644 index 0000000000..7aba7f6869 --- /dev/null +++ b/examples/running_ssh_service.Dockerfile @@ -0,0 +1,20 @@ +# sshd +# +# VERSION 0.0.2 + +FROM ubuntu:14.04 +MAINTAINER Sven Dowideit + +RUN apt-get update && apt-get install -y openssh-server +RUN mkdir /var/run/sshd +RUN echo 'root:screencast' | chpasswd +RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config + +# SSH login fix. Otherwise user is kicked off after login +RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd + +ENV NOTVISIBLE "in users profile" +RUN echo "export VISIBLE=now" >> /etc/profile + +EXPOSE 22 +CMD ["/usr/sbin/sshd", "-D"] diff --git a/examples/running_ssh_service.md~ b/examples/running_ssh_service.md~ new file mode 100644 index 0000000000..445cfe5257 --- /dev/null +++ b/examples/running_ssh_service.md~ @@ -0,0 +1,78 @@ +page_title: Dockerizing an SSH service +page_description: Installing and running an SSHd service on Docker +page_keywords: docker, example, package installation, networking + +# Dockerizing an SSH Daemon Service + +## Build an `eg_sshd` image + +The following `Dockerfile` sets up an SSHd service in a container that you +can use to connect to and inspect other container's volumes, or to get +quick access to a test container. + + # sshd + # + # VERSION 0.0.2 + + FROM ubuntu:14.04 + MAINTAINER Sven Dowideit + + RUN apt-get update && apt-get install -y openssh-server + RUN mkdir /var/run/sshd + RUN echo 'root:screencast' | chpasswd + RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config + + # SSH login fix. Otherwise user is kicked off after login + RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd + + ENV NOTVISIBLE "in users profile" + RUN echo "export VISIBLE=now" >> /etc/profile + + EXPOSE 22 + CMD ["/usr/sbin/sshd", "-D"] + +Build the image using: + + $ sudo docker build -t eg_sshd . + +## Run a `test_sshd` container + +Then run it. You can then use `docker port` to find out what host port +the container's port 22 is mapped to: + + $ sudo docker run -d -P --name test_sshd eg_sshd + $ sudo docker port test_sshd 22 + 0.0.0.0:49154 + +And now you can ssh as `root` on the container's IP address (you can find it +with `docker inspect`) or on port `49154` of the Docker daemon's host IP address +(`ip address` or `ifconfig` can tell you that) or `localhost` if on the +Docker daemon host: + + $ ssh root@192.168.1.2 -p 49154 + # The password is ``screencast``. + $$ + +## Environment variables + +Using the `sshd` daemon to spawn shells makes it complicated to pass environment +variables to the user's shell via the normal Docker mechanisms, as `sshd` scrubs +the environment before it starts the shell. + +If you're setting values in the `Dockerfile` using `ENV`, you'll need to push them +to a shell initialization file like the `/etc/profile` example in the `Dockerfile` +above. + +If you need to pass`docker run -e ENV=value` values, you will need to write a +short script to do the same before you start `sshd -D` and then replace the +`CMD` with that script. + +## Clean up + +Finally, clean up after your test by stopping and removing the +container, and then removing the image. + + $ sudo docker stop test_sshd + $ sudo docker rm test_sshd + $ sudo docker rmi eg_sshd + diff --git a/examples/running_ssh_service/index.html b/examples/running_ssh_service/index.html new file mode 100644 index 0000000000..88be737072 --- /dev/null +++ b/examples/running_ssh_service/index.html @@ -0,0 +1,900 @@ + + + + + + + + + + + + + + + + + + + + + + + + Dockerizing an SSH service - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Dockerizing an SSH Daemon Service

+

Build an eg_sshd image

+

The following Dockerfile sets up an SSHd service in a container that you +can use to connect to and inspect other container's volumes, or to get +quick access to a test container.

+
# sshd
+#
+# VERSION               0.0.2
+
+FROM ubuntu:14.04
+MAINTAINER Sven Dowideit <SvenDowideit@docker.com>
+
+RUN apt-get update && apt-get install -y openssh-server
+RUN mkdir /var/run/sshd
+RUN echo 'root:screencast' | chpasswd
+RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
+
+ENV NOTVISIBLE "in users profile"
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+
+

Build the image using:

+
$ sudo docker build -t eg_sshd .
+
+

Run a test_sshd container

+

Then run it. You can then use docker port to find out what host port +the container's port 22 is mapped to:

+
$ sudo docker run -d -P --name test_sshd eg_sshd
+$ sudo docker port test_sshd 22
+0.0.0.0:49154
+
+

And now you can ssh as root on the container's IP address (you can find it +with docker inspect) or on port 49154 of the Docker daemon's host IP address +(ip address or ifconfig can tell you that) or localhost if on the +Docker daemon host:

+
$ ssh root@192.168.1.2 -p 49154
+# The password is ``screencast``.
+$$
+
+

Environment variables

+

Using the sshd daemon to spawn shells makes it complicated to pass environment +variables to the user's shell via the normal Docker mechanisms, as sshd scrubs +the environment before it starts the shell.

+

If you're setting values in the Dockerfile using ENV, you'll need to push them +to a shell initialization file like the /etc/profile example in the Dockerfile +above.

+

If you need to passdocker run -e ENV=value values, you will need to write a +short script to do the same before you start sshd -D and then replace the +CMD with that script.

+

Clean up

+

Finally, clean up after your test by stopping and removing the +container, and then removing the image.

+
$ sudo docker stop test_sshd
+$ sudo docker rm test_sshd
+$ sudo docker rmi eg_sshd
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/faq.md~ b/faq.md~ new file mode 100644 index 0000000000..b7a8ff6264 --- /dev/null +++ b/faq.md~ @@ -0,0 +1,265 @@ +page_title: FAQ page_description: Most frequently asked questions. +page_keywords: faq, questions, documentation, docker + +# Frequently Asked Questions (FAQ) + +If you don't see your question here, feel free to submit new ones to +. Or, you can fork [the +repo](https://github.com/docker/docker) and contribute them yourself by editing +the documentation sources. + + +### How much does Docker cost? + +Docker is 100% free. It is open source, so you can use it without paying. + +### What open source license are you using? + +We are using the Apache License Version 2.0, see it here: +[https://github.com/docker/docker/blob/master/LICENSE]( +https://github.com/docker/docker/blob/master/LICENSE) + +### Does Docker run on Mac OS X or Windows? + +Docker currently runs only on Linux, but you can use VirtualBox to run Docker in +a virtual machine on your box, and get the best of both worlds. Check out the +[*Mac OS X*](../installation/mac/#macosx) and [*Microsoft +Windows*](../installation/windows/#windows) installation guides. The small Linux +distribution boot2docker can be run inside virtual machines on these two +operating systems. + +> **Note:** if you are using a remote Docker daemon, such as Boot2Docker, +> then _do not_ type the `sudo` before the `docker` commands shown in the +> documentation's examples. + +### How do containers compare to virtual machines? + +They are complementary. VMs are best used to allocate chunks of hardware +resources. Containers operate at the process level, which makes them very +lightweight and perfect as a unit of software delivery. + +### What does Docker add to just plain LXC? + +Docker is not a replacement for LXC. "LXC" refers to capabilities of the Linux +kernel (specifically namespaces and control groups) which allow sandboxing +processes from one another, and controlling their resource allocations. On top +of this low-level foundation of kernel features, Docker offers a high-level tool +with several powerful functionalities: + + - *Portable deployment across machines.* Docker defines a format for bundling + an application and all its dependencies into a single object which can be + transferred to any Docker-enabled machine, and executed there with the + guarantee that the execution environment exposed to the application will be the + same. LXC implements process sandboxing, which is an important pre-requisite + for portable deployment, but that alone is not enough for portable deployment. + If you sent me a copy of your application installed in a custom LXC + configuration, it would almost certainly not run on my machine the way it does + on yours, because it is tied to your machine's specific configuration: + networking, storage, logging, distro, etc. Docker defines an abstraction for + these machine-specific settings, so that the exact same Docker container can + run - unchanged - on many different machines, with many different + configurations. + + - *Application-centric.* Docker is optimized for the deployment of + applications, as opposed to machines. This is reflected in its API, user + interface, design philosophy and documentation. By contrast, the `lxc` helper + scripts focus on containers as lightweight machines - basically servers that + boot faster and need less RAM. We think there's more to containers than just + that. + + - *Automatic build.* Docker includes [*a tool for developers to automatically + assemble a container from their source + code*](../reference/builder/#dockerbuilder), with full control over application + dependencies, build tools, packaging etc. They are free to use `make`, `maven`, + `chef`, `puppet`, `salt,` Debian packages, RPMs, source tarballs, or any + combination of the above, regardless of the configuration of the machines. + + - *Versioning.* Docker includes git-like capabilities for tracking successive + versions of a container, inspecting the diff between versions, committing new + versions, rolling back etc. The history also includes how a container was + assembled and by whom, so you get full traceability from the production server + all the way back to the upstream developer. Docker also implements incremental + uploads and downloads, similar to `git pull`, so new versions of a container + can be transferred by only sending diffs. + + - *Component re-use.* Any container can be used as a [*"base image"*]( + ../terms/image/#base-image-def) to create more specialized components. This can + be done manually or as part of an automated build. For example you can prepare + the ideal Python environment, and use it as a base for 10 different + applications. Your ideal Postgresql setup can be re-used for all your future + projects. And so on. + + - *Sharing.* Docker has access to a [public registry](https://hub.docker.com) + where thousands of people have uploaded useful containers: anything from Redis, + CouchDB, Postgres to IRC bouncers to Rails app servers to Hadoop to base images + for various Linux distros. The + [*registry*](../reference/api/registry_index_spec/#registryindexspec) also + includes an official "standard library" of useful containers maintained by the + Docker team. The registry itself is open-source, so anyone can deploy their own + registry to store and transfer private containers, for internal server + deployments for example. + + - *Tool ecosystem.* Docker defines an API for automating and customizing the + creation and deployment of containers. There are a huge number of tools + integrating with Docker to extend its capabilities. PaaS-like deployment + (Dokku, Deis, Flynn), multi-node orchestration (Maestro, Salt, Mesos, Openstack + Nova), management dashboards (docker-ui, Openstack Horizon, Shipyard), + configuration management (Chef, Puppet), continuous integration (Jenkins, + Strider, Travis), etc. Docker is rapidly establishing itself as the standard + for container-based tooling. + +### What is different between a Docker container and a VM? + +There's a great StackOverflow answer [showing the differences]( +http://stackoverflow.com/questions/16047306/how-is-docker-io-different-from-a-normal-virtual-machine). + +### Do I lose my data when the container exits? + +Not at all! Any data that your application writes to disk gets preserved in its +container until you explicitly delete the container. The file system for the +container persists even after the container halts. + +### How far do Docker containers scale? + +Some of the largest server farms in the world today are based on containers. +Large web deployments like Google and Twitter, and platform providers such as +Heroku and dotCloud all run on container technology, at a scale of hundreds of +thousands or even millions of containers running in parallel. + +### How do I connect Docker containers? + +Currently the recommended way to link containers is via the link primitive. You +can see details of how to [work with links here](/userguide/dockerlinks). + +Also useful for more flexible service portability is the [Ambassador linking +pattern](/articles/ambassador_pattern_linking/). + +### How do I run more than one process in a Docker container? + +Any capable process supervisor such as [http://supervisord.org/]( +http://supervisord.org/), runit, s6, or daemontools can do the trick. Docker +will start up the process management daemon which will then fork to run +additional processes. As long as the processor manager daemon continues to run, +the container will continue to as well. You can see a more substantial example +[that uses supervisord here](/articles/using_supervisord/). + +### What platforms does Docker run on? + +Linux: + + - Ubuntu 12.04, 13.04 et al + - Fedora 19/20+ + - RHEL 6.5+ + - Centos 6+ + - Gentoo + - ArchLinux + - openSUSE 12.3+ + - CRUX 3.0+ + +Cloud: + + - Amazon EC2 + - Google Compute Engine + - Rackspace + +### How do I report a security issue with Docker? + +You can learn about the project's security policy +[here](https://www.docker.com/security/) and report security issues to this +[mailbox](mailto:security@docker.com). + +### Why do I need to sign my commits to Docker with the DCO? + +Please read [our blog post]( +http://blog.docker.com/2014/01/docker-code-contributions-require-developer-certificate-of-origin/) on the introduction of the DCO. + +### When building an image, should I prefer system libraries or bundled ones? + +*This is a summary of a discussion on the [docker-dev mailing list]( +https://groups.google.com/forum/#!topic/docker-dev/L2RBSPDu1L0).* + +Virtually all programs depend on third-party libraries. Most frequently, they +will use dynamic linking and some kind of package dependency, so that when +multiple programs need the same library, it is installed only once. + +Some programs, however, will bundle their third-party libraries, because they +rely on very specific versions of those libraries. For instance, Node.js bundles +OpenSSL; MongoDB bundles V8 and Boost (among others). + +When creating a Docker image, is it better to use the bundled libraries, or +should you build those programs so that they use the default system libraries +instead? + +The key point about system libraries is not about saving disk or memory space. +It is about security. All major distributions handle security seriously, by +having dedicated security teams, following up closely with published +vulnerabilities, and disclosing advisories themselves. (Look at the [Debian +Security Information](https://www.debian.org/security/) for an example of those +procedures.) Upstream developers, however, do not always implement similar +practices. + +Before setting up a Docker image to compile a program from source, if you want +to use bundled libraries, you should check if the upstream authors provide a +convenient way to announce security vulnerabilities, and if they update their +bundled libraries in a timely manner. If they don't, you are exposing yourself +(and the users of your image) to security vulnerabilities. + +Likewise, before using packages built by others, you should check if the +channels providing those packages implement similar security best practices. +Downloading and installing an "all-in-one" .deb or .rpm sounds great at first, +except if you have no way to figure out that it contains a copy of the OpenSSL +library vulnerable to the [Heartbleed](http://heartbleed.com/) bug. + +### Why is `DEBIAN_FRONTEND=noninteractive` discouraged in Dockerfiles? + +When building Docker images on Debian and Ubuntu you may have seen errors like: + + unable to initialize frontend: Dialog + +These errors don't stop the image from being built but inform you that the +installation process tried to open a dialog box, but was unable to. Generally, +these errors are safe to ignore. + +Some people circumvent these errors by changing the `DEBIAN_FRONTEND` +environment variable inside the Dockerfile using: + + ENV DEBIAN_FRONTEND=noninteractive + +This prevents the installer from opening dialog boxes during installation which +stops the errors. + +While this may sound like a good idea, it *may* have side effects. The +`DEBIAN_FRONTEND` environment variable will be inherited by all images and +containers built from your image, effectively changing their behavior. People +using those images will run into problems when installing software +interactively, because installers will not show any dialog boxes. + +Because of this, and because setting `DEBIAN_FRONTEND` to `noninteractive` is +mainly a 'cosmetic' change, we *discourage* changing it. + +If you *really* need to change its setting, make sure to change it back to its +[default value](https://www.debian.org/releases/stable/i386/ch05s03.html.en) +afterwards. + +### Why do I get `Connection reset by peer` when making a request to a service running in a container? + +Typically, this message is returned if the service is already bound to your +localhost. As a result, requests coming to the container from outside are +dropped. To correct this problem, change the service's configuration on your +localhost so that the service accepts requests from all IPs. If you aren't sure +how to do this, check the documentation for your OS. + + +### Where can I find more answers? + +You can find more answers on: + + +- [Docker user mailinglist](https://groups.google.com/d/forum/docker-user) +- [Docker developer mailinglist](https://groups.google.com/d/forum/docker-dev) +- [IRC, docker on freenode](irc://chat.freenode.net#docker) +- [GitHub](https://github.com/docker/docker) +- [Ask questions on Stackoverflow](http://stackoverflow.com/search?q=docker) +- [Join the conversation on Twitter](http://twitter.com/docker) + +Looking for something else to read? Checkout the [User Guide](/userguide/). diff --git a/faq.md~~ b/faq.md~~ new file mode 100644 index 0000000000..8994c377ff --- /dev/null +++ b/faq.md~~ @@ -0,0 +1,263 @@ +page_title: FAQ page_description: Most frequently asked questions. +page_keywords: faq, questions, documentation, docker + +# Frequently Asked Questions (FAQ) + +If you don't see your question here, feel free to submit new ones to +. Or, you can fork [the +repo](https://github.com/docker/docker) and contribute them yourself by editing +the documentation sources. + + +### How much does Docker cost? + +Docker is 100% free. It is open source, so you can use it without paying. + +### What open source license are you using? + +We are using the Apache License Version 2.0, see it here: +[https://github.com/docker/docker/blob/master/LICENSE]( +https://github.com/docker/docker/blob/master/LICENSE) + +### Does Docker run on Mac OS X or Windows? + +Docker currently runs only on Linux, but you can use VirtualBox to run Docker in +a virtual machine on your box, and get the best of both worlds. Check out the +[*Mac OS X*](../installation/mac/#macosx) and [*Microsoft +Windows*](../installation/windows/#windows) installation guides. The small Linux +distribution boot2docker can be run inside virtual machines on these two +operating systems. + +{{ include "no-remote-sudo.md" }} + +### How do containers compare to virtual machines? + +They are complementary. VMs are best used to allocate chunks of hardware +resources. Containers operate at the process level, which makes them very +lightweight and perfect as a unit of software delivery. + +### What does Docker add to just plain LXC? + +Docker is not a replacement for LXC. "LXC" refers to capabilities of the Linux +kernel (specifically namespaces and control groups) which allow sandboxing +processes from one another, and controlling their resource allocations. On top +of this low-level foundation of kernel features, Docker offers a high-level tool +with several powerful functionalities: + + - *Portable deployment across machines.* Docker defines a format for bundling + an application and all its dependencies into a single object which can be + transferred to any Docker-enabled machine, and executed there with the + guarantee that the execution environment exposed to the application will be the + same. LXC implements process sandboxing, which is an important pre-requisite + for portable deployment, but that alone is not enough for portable deployment. + If you sent me a copy of your application installed in a custom LXC + configuration, it would almost certainly not run on my machine the way it does + on yours, because it is tied to your machine's specific configuration: + networking, storage, logging, distro, etc. Docker defines an abstraction for + these machine-specific settings, so that the exact same Docker container can + run - unchanged - on many different machines, with many different + configurations. + + - *Application-centric.* Docker is optimized for the deployment of + applications, as opposed to machines. This is reflected in its API, user + interface, design philosophy and documentation. By contrast, the `lxc` helper + scripts focus on containers as lightweight machines - basically servers that + boot faster and need less RAM. We think there's more to containers than just + that. + + - *Automatic build.* Docker includes [*a tool for developers to automatically + assemble a container from their source + code*](../reference/builder/#dockerbuilder), with full control over application + dependencies, build tools, packaging etc. They are free to use `make`, `maven`, + `chef`, `puppet`, `salt,` Debian packages, RPMs, source tarballs, or any + combination of the above, regardless of the configuration of the machines. + + - *Versioning.* Docker includes git-like capabilities for tracking successive + versions of a container, inspecting the diff between versions, committing new + versions, rolling back etc. The history also includes how a container was + assembled and by whom, so you get full traceability from the production server + all the way back to the upstream developer. Docker also implements incremental + uploads and downloads, similar to `git pull`, so new versions of a container + can be transferred by only sending diffs. + + - *Component re-use.* Any container can be used as a [*"base image"*]( + ../terms/image/#base-image-def) to create more specialized components. This can + be done manually or as part of an automated build. For example you can prepare + the ideal Python environment, and use it as a base for 10 different + applications. Your ideal Postgresql setup can be re-used for all your future + projects. And so on. + + - *Sharing.* Docker has access to a [public registry](https://hub.docker.com) + where thousands of people have uploaded useful containers: anything from Redis, + CouchDB, Postgres to IRC bouncers to Rails app servers to Hadoop to base images + for various Linux distros. The + [*registry*](../reference/api/registry_index_spec/#registryindexspec) also + includes an official "standard library" of useful containers maintained by the + Docker team. The registry itself is open-source, so anyone can deploy their own + registry to store and transfer private containers, for internal server + deployments for example. + + - *Tool ecosystem.* Docker defines an API for automating and customizing the + creation and deployment of containers. There are a huge number of tools + integrating with Docker to extend its capabilities. PaaS-like deployment + (Dokku, Deis, Flynn), multi-node orchestration (Maestro, Salt, Mesos, Openstack + Nova), management dashboards (docker-ui, Openstack Horizon, Shipyard), + configuration management (Chef, Puppet), continuous integration (Jenkins, + Strider, Travis), etc. Docker is rapidly establishing itself as the standard + for container-based tooling. + +### What is different between a Docker container and a VM? + +There's a great StackOverflow answer [showing the differences]( +http://stackoverflow.com/questions/16047306/how-is-docker-io-different-from-a-normal-virtual-machine). + +### Do I lose my data when the container exits? + +Not at all! Any data that your application writes to disk gets preserved in its +container until you explicitly delete the container. The file system for the +container persists even after the container halts. + +### How far do Docker containers scale? + +Some of the largest server farms in the world today are based on containers. +Large web deployments like Google and Twitter, and platform providers such as +Heroku and dotCloud all run on container technology, at a scale of hundreds of +thousands or even millions of containers running in parallel. + +### How do I connect Docker containers? + +Currently the recommended way to link containers is via the link primitive. You +can see details of how to [work with links here](/userguide/dockerlinks). + +Also useful for more flexible service portability is the [Ambassador linking +pattern](/articles/ambassador_pattern_linking/). + +### How do I run more than one process in a Docker container? + +Any capable process supervisor such as [http://supervisord.org/]( +http://supervisord.org/), runit, s6, or daemontools can do the trick. Docker +will start up the process management daemon which will then fork to run +additional processes. As long as the processor manager daemon continues to run, +the container will continue to as well. You can see a more substantial example +[that uses supervisord here](/articles/using_supervisord/). + +### What platforms does Docker run on? + +Linux: + + - Ubuntu 12.04, 13.04 et al + - Fedora 19/20+ + - RHEL 6.5+ + - Centos 6+ + - Gentoo + - ArchLinux + - openSUSE 12.3+ + - CRUX 3.0+ + +Cloud: + + - Amazon EC2 + - Google Compute Engine + - Rackspace + +### How do I report a security issue with Docker? + +You can learn about the project's security policy +[here](https://www.docker.com/security/) and report security issues to this +[mailbox](mailto:security@docker.com). + +### Why do I need to sign my commits to Docker with the DCO? + +Please read [our blog post]( +http://blog.docker.com/2014/01/docker-code-contributions-require-developer-certificate-of-origin/) on the introduction of the DCO. + +### When building an image, should I prefer system libraries or bundled ones? + +*This is a summary of a discussion on the [docker-dev mailing list]( +https://groups.google.com/forum/#!topic/docker-dev/L2RBSPDu1L0).* + +Virtually all programs depend on third-party libraries. Most frequently, they +will use dynamic linking and some kind of package dependency, so that when +multiple programs need the same library, it is installed only once. + +Some programs, however, will bundle their third-party libraries, because they +rely on very specific versions of those libraries. For instance, Node.js bundles +OpenSSL; MongoDB bundles V8 and Boost (among others). + +When creating a Docker image, is it better to use the bundled libraries, or +should you build those programs so that they use the default system libraries +instead? + +The key point about system libraries is not about saving disk or memory space. +It is about security. All major distributions handle security seriously, by +having dedicated security teams, following up closely with published +vulnerabilities, and disclosing advisories themselves. (Look at the [Debian +Security Information](https://www.debian.org/security/) for an example of those +procedures.) Upstream developers, however, do not always implement similar +practices. + +Before setting up a Docker image to compile a program from source, if you want +to use bundled libraries, you should check if the upstream authors provide a +convenient way to announce security vulnerabilities, and if they update their +bundled libraries in a timely manner. If they don't, you are exposing yourself +(and the users of your image) to security vulnerabilities. + +Likewise, before using packages built by others, you should check if the +channels providing those packages implement similar security best practices. +Downloading and installing an "all-in-one" .deb or .rpm sounds great at first, +except if you have no way to figure out that it contains a copy of the OpenSSL +library vulnerable to the [Heartbleed](http://heartbleed.com/) bug. + +### Why is `DEBIAN_FRONTEND=noninteractive` discouraged in Dockerfiles? + +When building Docker images on Debian and Ubuntu you may have seen errors like: + + unable to initialize frontend: Dialog + +These errors don't stop the image from being built but inform you that the +installation process tried to open a dialog box, but was unable to. Generally, +these errors are safe to ignore. + +Some people circumvent these errors by changing the `DEBIAN_FRONTEND` +environment variable inside the Dockerfile using: + + ENV DEBIAN_FRONTEND=noninteractive + +This prevents the installer from opening dialog boxes during installation which +stops the errors. + +While this may sound like a good idea, it *may* have side effects. The +`DEBIAN_FRONTEND` environment variable will be inherited by all images and +containers built from your image, effectively changing their behavior. People +using those images will run into problems when installing software +interactively, because installers will not show any dialog boxes. + +Because of this, and because setting `DEBIAN_FRONTEND` to `noninteractive` is +mainly a 'cosmetic' change, we *discourage* changing it. + +If you *really* need to change its setting, make sure to change it back to its +[default value](https://www.debian.org/releases/stable/i386/ch05s03.html.en) +afterwards. + +### Why do I get `Connection reset by peer` when making a request to a service running in a container? + +Typically, this message is returned if the service is already bound to your +localhost. As a result, requests coming to the container from outside are +dropped. To correct this problem, change the service's configuration on your +localhost so that the service accepts requests from all IPs. If you aren't sure +how to do this, check the documentation for your OS. + + +### Where can I find more answers? + +You can find more answers on: + + +- [Docker user mailinglist](https://groups.google.com/d/forum/docker-user) +- [Docker developer mailinglist](https://groups.google.com/d/forum/docker-dev) +- [IRC, docker on freenode](irc://chat.freenode.net#docker) +- [GitHub](https://github.com/docker/docker) +- [Ask questions on Stackoverflow](http://stackoverflow.com/search?q=docker) +- [Join the conversation on Twitter](http://twitter.com/docker) + +Looking for something else to read? Checkout the [User Guide](/userguide/). diff --git a/faq/index.html b/faq/index.html new file mode 100644 index 0000000000..ae264c5f31 --- /dev/null +++ b/faq/index.html @@ -0,0 +1,1133 @@ + + + + + + + + + + + + + + + + + + + + + + + + FAQ - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Frequently Asked Questions (FAQ)

+

If you don't see your question here, feel free to submit new ones to +docs@docker.com. Or, you can fork the +repo and contribute them yourself by editing +the documentation sources.

+

How much does Docker cost?

+

Docker is 100% free. It is open source, so you can use it without paying.

+

What open source license are you using?

+

We are using the Apache License Version 2.0, see it here: +https://github.com/docker/docker/blob/master/LICENSE

+

Does Docker run on Mac OS X or Windows?

+

Docker currently runs only on Linux, but you can use VirtualBox to run Docker in +a virtual machine on your box, and get the best of both worlds. Check out the +Mac OS X and Microsoft +Windows installation guides. The small Linux +distribution boot2docker can be run inside virtual machines on these two +operating systems.

+
+

Note: if you are using a remote Docker daemon, such as Boot2Docker, +then do not type the sudo before the docker commands shown in the +documentation's examples.

+
+

How do containers compare to virtual machines?

+

They are complementary. VMs are best used to allocate chunks of hardware +resources. Containers operate at the process level, which makes them very +lightweight and perfect as a unit of software delivery.

+

What does Docker add to just plain LXC?

+

Docker is not a replacement for LXC. "LXC" refers to capabilities of the Linux +kernel (specifically namespaces and control groups) which allow sandboxing +processes from one another, and controlling their resource allocations. On top +of this low-level foundation of kernel features, Docker offers a high-level tool +with several powerful functionalities:

+
    +
  • +

    Portable deployment across machines. Docker defines a format for bundling + an application and all its dependencies into a single object which can be + transferred to any Docker-enabled machine, and executed there with the + guarantee that the execution environment exposed to the application will be the + same. LXC implements process sandboxing, which is an important pre-requisite + for portable deployment, but that alone is not enough for portable deployment. + If you sent me a copy of your application installed in a custom LXC + configuration, it would almost certainly not run on my machine the way it does + on yours, because it is tied to your machine's specific configuration: + networking, storage, logging, distro, etc. Docker defines an abstraction for + these machine-specific settings, so that the exact same Docker container can + run - unchanged - on many different machines, with many different + configurations.

    +
  • +
  • +

    Application-centric. Docker is optimized for the deployment of + applications, as opposed to machines. This is reflected in its API, user + interface, design philosophy and documentation. By contrast, the lxc helper + scripts focus on containers as lightweight machines - basically servers that + boot faster and need less RAM. We think there's more to containers than just + that.

    +
  • +
  • +

    Automatic build. Docker includes a tool for developers to automatically + assemble a container from their source + code, with full control over application + dependencies, build tools, packaging etc. They are free to use make, maven, + chef, puppet, salt, Debian packages, RPMs, source tarballs, or any + combination of the above, regardless of the configuration of the machines.

    +
  • +
  • +

    Versioning. Docker includes git-like capabilities for tracking successive + versions of a container, inspecting the diff between versions, committing new + versions, rolling back etc. The history also includes how a container was + assembled and by whom, so you get full traceability from the production server + all the way back to the upstream developer. Docker also implements incremental + uploads and downloads, similar to git pull, so new versions of a container + can be transferred by only sending diffs.

    +
  • +
  • +

    Component re-use. Any container can be used as a "base image" to create more specialized components. This can + be done manually or as part of an automated build. For example you can prepare + the ideal Python environment, and use it as a base for 10 different + applications. Your ideal Postgresql setup can be re-used for all your future + projects. And so on.

    +
  • +
  • +

    Sharing. Docker has access to a public registry + where thousands of people have uploaded useful containers: anything from Redis, + CouchDB, Postgres to IRC bouncers to Rails app servers to Hadoop to base images + for various Linux distros. The + registry also + includes an official "standard library" of useful containers maintained by the + Docker team. The registry itself is open-source, so anyone can deploy their own + registry to store and transfer private containers, for internal server + deployments for example.

    +
  • +
  • +

    Tool ecosystem. Docker defines an API for automating and customizing the + creation and deployment of containers. There are a huge number of tools + integrating with Docker to extend its capabilities. PaaS-like deployment + (Dokku, Deis, Flynn), multi-node orchestration (Maestro, Salt, Mesos, Openstack + Nova), management dashboards (docker-ui, Openstack Horizon, Shipyard), + configuration management (Chef, Puppet), continuous integration (Jenkins, + Strider, Travis), etc. Docker is rapidly establishing itself as the standard + for container-based tooling.

    +
  • +
+

What is different between a Docker container and a VM?

+

There's a great StackOverflow answer showing the differences.

+

Do I lose my data when the container exits?

+

Not at all! Any data that your application writes to disk gets preserved in its +container until you explicitly delete the container. The file system for the +container persists even after the container halts.

+

How far do Docker containers scale?

+

Some of the largest server farms in the world today are based on containers. +Large web deployments like Google and Twitter, and platform providers such as +Heroku and dotCloud all run on container technology, at a scale of hundreds of +thousands or even millions of containers running in parallel.

+

How do I connect Docker containers?

+

Currently the recommended way to link containers is via the link primitive. You +can see details of how to work with links here.

+

Also useful for more flexible service portability is the Ambassador linking +pattern.

+

How do I run more than one process in a Docker container?

+

Any capable process supervisor such as http://supervisord.org/, runit, s6, or daemontools can do the trick. Docker +will start up the process management daemon which will then fork to run +additional processes. As long as the processor manager daemon continues to run, +the container will continue to as well. You can see a more substantial example +that uses supervisord here.

+

What platforms does Docker run on?

+

Linux:

+
    +
  • Ubuntu 12.04, 13.04 et al
  • +
  • Fedora 19/20+
  • +
  • RHEL 6.5+
  • +
  • Centos 6+
  • +
  • Gentoo
  • +
  • ArchLinux
  • +
  • openSUSE 12.3+
  • +
  • CRUX 3.0+
  • +
+

Cloud:

+
    +
  • Amazon EC2
  • +
  • Google Compute Engine
  • +
  • Rackspace
  • +
+

How do I report a security issue with Docker?

+

You can learn about the project's security policy +here and report security issues to this +mailbox.

+

Why do I need to sign my commits to Docker with the DCO?

+

Please read our blog post on the introduction of the DCO.

+

When building an image, should I prefer system libraries or bundled ones?

+

This is a summary of a discussion on the docker-dev mailing list.

+

Virtually all programs depend on third-party libraries. Most frequently, they +will use dynamic linking and some kind of package dependency, so that when +multiple programs need the same library, it is installed only once.

+

Some programs, however, will bundle their third-party libraries, because they +rely on very specific versions of those libraries. For instance, Node.js bundles +OpenSSL; MongoDB bundles V8 and Boost (among others).

+

When creating a Docker image, is it better to use the bundled libraries, or +should you build those programs so that they use the default system libraries +instead?

+

The key point about system libraries is not about saving disk or memory space. +It is about security. All major distributions handle security seriously, by +having dedicated security teams, following up closely with published +vulnerabilities, and disclosing advisories themselves. (Look at the Debian +Security Information for an example of those +procedures.) Upstream developers, however, do not always implement similar +practices.

+

Before setting up a Docker image to compile a program from source, if you want +to use bundled libraries, you should check if the upstream authors provide a +convenient way to announce security vulnerabilities, and if they update their +bundled libraries in a timely manner. If they don't, you are exposing yourself +(and the users of your image) to security vulnerabilities.

+

Likewise, before using packages built by others, you should check if the +channels providing those packages implement similar security best practices. +Downloading and installing an "all-in-one" .deb or .rpm sounds great at first, +except if you have no way to figure out that it contains a copy of the OpenSSL +library vulnerable to the Heartbleed bug.

+

Why is DEBIAN_FRONTEND=noninteractive discouraged in Dockerfiles?

+

When building Docker images on Debian and Ubuntu you may have seen errors like:

+
unable to initialize frontend: Dialog
+
+

These errors don't stop the image from being built but inform you that the +installation process tried to open a dialog box, but was unable to. Generally, +these errors are safe to ignore.

+

Some people circumvent these errors by changing the DEBIAN_FRONTEND +environment variable inside the Dockerfile using:

+
ENV DEBIAN_FRONTEND=noninteractive
+
+

This prevents the installer from opening dialog boxes during installation which +stops the errors.

+

While this may sound like a good idea, it may have side effects. The +DEBIAN_FRONTEND environment variable will be inherited by all images and +containers built from your image, effectively changing their behavior. People +using those images will run into problems when installing software +interactively, because installers will not show any dialog boxes.

+

Because of this, and because setting DEBIAN_FRONTEND to noninteractive is +mainly a 'cosmetic' change, we discourage changing it.

+

If you really need to change its setting, make sure to change it back to its +default value +afterwards.

+

Why do I get Connection reset by peer when making a request to a service running in a container?

+

Typically, this message is returned if the service is already bound to your +localhost. As a result, requests coming to the container from outside are +dropped. To correct this problem, change the service's configuration on your +localhost so that the service accepts requests from all IPs. If you aren't sure +how to do this, check the documentation for your OS.

+

Where can I find more answers?

+

You can find more answers on:

+ +

Looking for something else to read? Checkout the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/LigatureSymbols.textClipping b/fonts/LigatureSymbols.textClipping new file mode 100644 index 0000000000..e69de29bb2 diff --git a/fonts/LigatureSymbols/LigatureSymbols-2.11.eot b/fonts/LigatureSymbols/LigatureSymbols-2.11.eot new file mode 100644 index 0000000000..4350e01ce2 Binary files /dev/null and b/fonts/LigatureSymbols/LigatureSymbols-2.11.eot differ diff --git a/fonts/LigatureSymbols/LigatureSymbols-2.11.otf b/fonts/LigatureSymbols/LigatureSymbols-2.11.otf new file mode 100644 index 0000000000..1926697261 Binary files /dev/null and b/fonts/LigatureSymbols/LigatureSymbols-2.11.otf differ diff --git a/fonts/LigatureSymbols/LigatureSymbols-2.11.svg b/fonts/LigatureSymbols/LigatureSymbols-2.11.svg new file mode 100644 index 0000000000..1133aa11d5 --- /dev/null +++ b/fonts/LigatureSymbols/LigatureSymbols-2.11.svg @@ -0,0 +1,1299 @@ + + + + + +Created by FontForge 20110222 at Thu Jan 31 03:56:08 2013 + By KazuyukiMotoyama +Created by KazuyukiMotoyama with FontForge 2.0 (http://fontforge.sf.net) OFL license + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/LigatureSymbols/LigatureSymbols-2.11.ttf b/fonts/LigatureSymbols/LigatureSymbols-2.11.ttf new file mode 100644 index 0000000000..0338d4cb96 Binary files /dev/null and b/fonts/LigatureSymbols/LigatureSymbols-2.11.ttf differ diff --git a/fonts/LigatureSymbols/LigatureSymbols-2.11.woff b/fonts/LigatureSymbols/LigatureSymbols-2.11.woff new file mode 100644 index 0000000000..8a823128a8 Binary files /dev/null and b/fonts/LigatureSymbols/LigatureSymbols-2.11.woff differ diff --git a/fonts/LigatureSymbols/README.txt b/fonts/LigatureSymbols/README.txt new file mode 100644 index 0000000000..da0665ed67 --- /dev/null +++ b/fonts/LigatureSymbols/README.txt @@ -0,0 +1,126 @@ + +This font was found and taken from: +http://kudakurage.com/ligature_symbols/ + + +Use it as follows: + + + +

Simple use for mailto link.

+mail + +

Use tha icon with text.

+Twitter + +

Use tha icon with unicode.

+Amazon + + +/* CSS */ + +@font-face { + font-family: 'LigatureSymbols'; + src: url('LigatureSymbols-2.11.eot'); + src: url('LigatureSymbols-2.11.eot?#iefix') format('embedded-opentype'), + url('LigatureSymbols-2.11.woff') format('woff'), + url('LigatureSymbols-2.11.ttf') format('truetype'), + url('LigatureSymbols-2.11.svg#LigatureSymbols') format('svg'); + src: url('LigatureSymbols-2.11.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +.lsf, .lsf-icon:before { + font-family: 'LigatureSymbols'; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +.lsf-icon:before { + content:attr(title); + margin-right:0.3em; + font-size:130%; +} + +.lsf-icon.amazon:before { + content: '\E007'; +} + + + + + +Use by including this in your style sheet: + + + +// LigatureSymbols font kit +// ----------------------------------- // ----------------------------------- + + +@font-face { + font-family: 'LigatureSymbols'; + src: url('../fonts/LigatureSymbols/LigatureSymbols-2.11.eot'); + src: url('../fonts/LigatureSymbols/LigatureSymbols-2.11.eot?#iefix') format('embedded-opentype'), + url('../fonts/LigatureSymbols/LigatureSymbols-2.11.woff') format('woff'), + url('../fonts/LigatureSymbols/LigatureSymbols-2.11.ttf') format('truetype'), + url('../fonts/LigatureSymbols/LigatureSymbols-2.11.svg#LigatureSymbols') format('svg'); + font-weight: normal; + font-style: normal; +} + +.lsf { + font-family: 'LigatureSymbols'; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-font-feature-settings: "liga" 1, "dlig" 1; + -moz-font-feature-settings: "liga=1, dlig=1"; + -ms-font-feature-settings: "liga" 1, "dlig" 1; + -o-font-feature-settings: "liga" 1, "dlig" 1; + font-feature-settings: "liga" 1, "dlig" 1; +} +.lsf-icon:before { + content:attr(title); + margin-right:0.3em; + font-size:130%; + font-family: 'LigatureSymbols'; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-font-feature-settings: "liga" 1, "dlig" 1; + -moz-font-feature-settings: "liga=1, dlig=1"; + -ms-font-feature-settings: "liga" 1, "dlig" 1; + -o-font-feature-settings: "liga" 1, "dlig" 1; + font-feature-settings: "liga" 1, "dlig" 1; +} + + + + + +And then practice it by: + diff --git a/fonts/LigatureSymbols/style.css b/fonts/LigatureSymbols/style.css new file mode 100644 index 0000000000..2e8d1f297d --- /dev/null +++ b/fonts/LigatureSymbols/style.css @@ -0,0 +1,520 @@ +@charset 'UTF-8'; + +@font-face { + font-family: 'LigatureSymbols'; + src: url('LigatureSymbols-2.11.eot'); + src: url('LigatureSymbols-2.11.eot?#iefix') format('embedded-opentype'), + url('LigatureSymbols-2.11.woff') format('woff'), + url('LigatureSymbols-2.11.ttf') format('truetype'), + url('LigatureSymbols-2.11.svg#LigatureSymbols') format('svg'); + font-weight: normal; + font-style: normal; +} + +.lsf { + font-family: 'LigatureSymbols'; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-font-feature-settings: "liga" 1, "dlig" 1; + -moz-font-feature-settings: "liga=1, dlig=1"; + -ms-font-feature-settings: "liga" 1, "dlig" 1; + -o-font-feature-settings: "liga" 1, "dlig" 1; + font-feature-settings: "liga" 1, "dlig" 1; +} +.lsf-icon:before { + content:attr(title); + margin-right:0.3em; + font-size:130%; + font-family: 'LigatureSymbols'; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-font-feature-settings: "liga" 1, "dlig" 1; + -moz-font-feature-settings: "liga=1, dlig=1"; + -ms-font-feature-settings: "liga" 1, "dlig" 1; + -o-font-feature-settings: "liga" 1, "dlig" 1; + font-feature-settings: "liga" 1, "dlig" 1; +} + + + +/* RESET */ +html, body, +div, +ul, ol, li, +dl, dt, dd, td, th, +h1, h2, h3, h4, h5, h6, +p, pre, blockquote, fieldset, +form, input, button, textarea { + margin: 0; + padding: 0; +} + +h1, h2, h3, h4, h5, h6, +pre, code, address, caption, cite, code, +em, strong, th { + font-size: 1.0em; + font-weight: normal; + font-style: normal; +} + +ul, ol, li { + list-style: none; +} + +fieldset, img { + border: none; +} + +img { + -ms-interpolation-mode: bicubic; +} + +caption, th { + text-align: left; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +input,textarea,select { + font-family: inherit; + font-size: inherit; + font-weight: inherit; +} + +input,textarea,select { + *font-size: 100%; +} + +button { + background-color: transparent; + text-decoration: none; +} + +label { + cursor: pointer; +} + +/* IEPNGFIX */ +img { behavior: url(lib/iepngfix.htc); } + +.main-image { + position:absolute; + top:-1000px; + width:400px; +} + +/* ELEMENT */ +body { + clear: both; + background-color: #ffffff; + text-align: center; + color: #333; + font-size: 16px; + font-weight: normal; + font-style: normal; + line-height: 1.5; + font-family : + Meiryo, + 'メイリオ', + 'Lucida Grande', + Verdana, + 'Hiragino Kaku Gothic Pro', + 'ヒラギノ角ゴ Pro W3', + 'MS Pゴシック', + 'MS P Gothic', + sans-serif; +} +a { + color: #006DBE; + font-weight: normal; + font-style: normal; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} + +html{ + font-size:100%; + -webkit-text-size-adjust:100%; + -ms-text-size-adjust:100%; + -webkit-font-smoothing:antialiased; + text-align:center; +} +#body { + width:900px; + margin:0 auto; +} +#copyright { + margin:60px 0 20px; + text-align:center; + font-size:14px; +} +#copyright, +#copyright a { + color:#ccc; +} +h1 { + margin:60px 0 0px; + font-size:48px; +} +h2 { + clear:both; + padding:60px 7px 2px; + margin-bottom:30px; + border-bottom:1px solid #ccc; + text-align:left; + font-size:20px; + font-weight:bold; +} +p { + margin:10px 0; + color:#999; + text-align:left; +} +.lsf-input { + margin:60px 0 40px; + font-size:48px; + text-align:center; +} +.lsf-input input { + width:860px; + padding:10px 20px; + border:1px solid #ccc; + -webkit-border-radius:5px; + -moz-border-radius:5px; + -ms-border-radius:5px; + -o-border-radius:5px; + border-radius:5px; + text-align:center; + -webkit-box-shadow:inset 0 2px 6px rgba(0,0,0,0.1); + -moz-box-shadow:inset 0 2px 6px rgba(0,0,0,0.1); + -ms-box-shadow:inset 0 2px 6px rgba(0,0,0,0.1); + -o-box-shadow:inset 0 2px 6px rgba(0,0,0,0.1); + box-shadow:inset 0 2px 6px rgba(0,0,0,0.1); +} +.lsf-input::-webkit-input-placeholder { + text-align:center; +} +.table { + float:left; + width:420px; +} +.table:nth-child(2n-1) { + float:right; +} +.table table { + width:100%; +} +.table td, +.table th { + vertical-align:middle; +} +.table tr:nth-child(2n) th, +.table tr:nth-child(2n) td { + background:#f0f0f0; +} +.table th { + padding-bottom:5px; + text-align:center; + font-size:12px; + color:#999; +} +.table td.symbol { + width:60px; + font-size:36px; + text-align:center; +} +.table td.ligature { + text-align:left; + padding-left:10px; +} +.table td.unicode { + width:100px; + border-left:2px solid #fff; +} + +.lsf-html, +.lsf-css { + overflow:auto; + width:860px; + min-height:170px; + padding:20px; + border:1px solid #ddd; + font-size:14px; + text-align:left; + background:#f9f9f9; + -webkit-border-radius:5px; + -moz-border-radius:5px; + -ms-border-radius:5px; + -o-border-radius:5px; + border-radius:5px; + -webkit-overflow-scrolling:touch; +} +.lsf-css { + min-height:940px; + margin-top:10px; +} + +.download { + min-height:170px; +} +.download-button { + display:inline-block; + padding:2px 30px 10px; + font-size:25px; + color: #666; + -webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3); + -moz-box-shadow:0 1px 3px rgba(0,0,0,0.3); + -ms-box-shadow:0 1px 3px rgba(0,0,0,0.3); + -o-box-shadow:0 1px 3px rgba(0,0,0,0.3); + box-shadow:0 1px 3px rgba(0,0,0,0.3); + -webkit-border-radius:10px; + -moz-border-radius:10px; + -ms-border-radius:10px; + -o-border-radius:10px; + border-radius:10px; + -webkit-transition:0.2s; + -moz-transition:0.2s; + -ms-transition:0.2s; + -o-transition:0.2s; + transition:0.2s; + background: #f6f6f6; + background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f6f6f6)); + background: linear-gradient(top, #fff #f6f6f6); + background: -webkit-linear-gradient(top, #fff #f6f6f6); + background: -moz-linear-gradient(top, #fff #f6f6f6); + background: -ms-linear-gradient(top, #fff #f6f6f6); + background: -o-linear-gradient(top, #fff #f6f6f6); +} +.download-button:hover { + color: #006DBE; + text-decoration:none; + -webkit-box-shadow:0 3px 9px rgba(0,0,0,0.3); + -moz-box-shadow:0 3px 9px rgba(0,0,0,0.3); + -ms-box-shadow:0 3px 9px rgba(0,0,0,0.3); + -o-box-shadow:0 3px 9px rgba(0,0,0,0.3); + box-shadow:0 3px 9px rgba(0,0,0,0.3); +} +.download-button:active { + margin-top:3px; + color: #333; + -webkit-transition:0s; + -moz-transition:0s; + transition:0s; + -webkit-box-shadow:0 0px 2px rgba(0,0,0,0.5), inset 0 2px 2px rgba(0,0,0,0.2); + -moz-box-shadow:0 0px 2px rgba(0,0,0,0.5), inset 0 2px 2px rgba(0,0,0,0.2); + -ms-box-shadow:0 0px 2px rgba(0,0,0,0.5), inset 0 2px 2px rgba(0,0,0,0.2); + -o-box-shadow:0 0px 2px rgba(0,0,0,0.5), inset 0 2px 2px rgba(0,0,0,0.2); + box-shadow:0 0px 2px rgba(0,0,0,0.5), inset 0 2px 2px rgba(0,0,0,0.2); + background: #f0f0f0; + background: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#f0f0f0)); + background: linear-gradient(top, #fcfcfc #f0f0f0); + background: -webkit-linear-gradient(top, #fcfcfc #f0f0f0); + background: -moz-linear-gradient(top, #fcfcfc #f0f0f0); + background: -ms-linear-gradient(top, #fcfcfc #f0f0f0); + background: -o-linear-gradient(top, #fcfcfc #f0f0f0); +} +.download-button span { + display:block; + font-size:13px; +} + +.profile { + overflow:hidden; +} +.profile-image { + float:left; + width:120px; + -webkit-border-radius:5px; + -moz-border-radius:5px; + -ms-border-radius:5px; + -o-border-radius:5px; + border-radius:5px; + opacity:0.8; + -webkit-transition:0.2s; + -moz-transition:0.2s; + -ms-transition:0.2s; + -o-transition:0.2s; + transition:0.2s; +} +.profile-image:hover { + opacity:1; +} +.profile-text { + float:left; + width:400px; + margin-top:5px; + margin-left:40px; +} +.profile-text h3 { + font-size:24px; + text-align:left; +} +.profile-text h3 span { + font-size:18px; + color:#999; +} +.profile-acount { + float:left; + padding-left:80px; + margin-left:60px; + border-left:1px solid #eee; + text-align:left; +} +.profile-acount li { + padding:1px 0; +} +.profile-acount li a { + font-size:16px; +} + + +@media (max-width: 900px){ + #body { + width:100%; + margin:0 auto 20px; + font-size:14px; + } + h1 { + margin-top:15px; + font-size:24px; + } + h2 { + padding:50px 10px 2px; + margin-bottom:10px; + } + p { + margin-left:10px; + margin-right:10px; + } + .name { + font-size:12px; + } + .lsf-input { + margin:15px 0 25px; + font-size:22px; + } + .lsf-input input { + width:80%; + margin:0 5%; + padding-left:5%; + padding-right:5%; + } + .table { + float:none !important; + width:100%; + } + .table th { + font-size:8px; + } + .table td.symbol { + width:60px; + font-size:32px; + } + .table td.ligature { + padding-left:5px; + } + .table td.unicode { + width:70px; + font-size:11px; + } + .lsf-html, .lsf-css { + width:80%; + min-height:80px; + max-height:80px; + margin:5px 5%; + padding-left:5%; + padding-right:5%; + } + .profile-image { + width:48px; + margin:0 10px; + } + .profile-text { + float:none; + width:auto; + margin:0 10px 0 0; + } + .profile-text h3 { + font-size:18px; + } + .profile-text h3 span { + display:block; + font-size:12px; + } + .profile-acount { + width:100%; + padding:0; + margin:20px 0 0; + border:0; + border-top:1px solid #ddd; + } + .profile-acount li { + border-bottom:1px solid #ddd; + } + .profile-acount li a { + display:block; + padding:10px 20px; + color:#555; + font-size:20px; + background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f0f0f0)); + background: linear-gradient(top, #fff #f0f0f0); + background: -webkit-linear-gradient(top, #fff #f0f0f0); + background: -moz-linear-gradient(top, #fff #f0f0f0); + background: -ms-linear-gradient(top, #fff #f0f0f0); + background: -o-linear-gradient(top, #fff #f0f0f0); + } + .profile-acount li a:after { + content:"right"; + float:right; + color:#999; + line-height:1.7; + font-size:120%; + font-family: 'LigatureSymbols'; + text-shadow:0 2px 0 #fff; + -webkit-text-rendering: optimizeLegibility; + -moz-text-rendering: optimizeLegibility; + -ms-text-rendering: optimizeLegibility; + -o-text-rendering: optimizeLegibility; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-font-feature-settings: "liga" 1, "dlig" 1; + -moz-font-feature-settings: "liga=1, dlig=1"; + -ms-font-feature-settings: "liga" 1, "dlig" 1; + -o-font-feature-settings: "liga" 1, "dlig" 1; + font-feature-settings: "liga" 1, "dlig" 1; + } + #copyright { + margin:20px 0; + font-size:10px; + } +} + + + + + diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000..7c79c6a6bc Binary files /dev/null and b/fonts/fontawesome-webfont.eot differ diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000..45fdf33830 --- /dev/null +++ b/fonts/fontawesome-webfont.svg @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000..e89738de5e Binary files /dev/null and b/fonts/fontawesome-webfont.ttf differ diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000..8c1748aab7 Binary files /dev/null and b/fonts/fontawesome-webfont.woff differ diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000..4a4ca865d6 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.eot differ diff --git a/fonts/glyphicons-halflings-regular.svg b/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000000..e3e2dc739d --- /dev/null +++ b/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000..67fa00bf83 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.ttf differ diff --git a/fonts/glyphicons-halflings-regular.woff b/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000000..8c54182aa5 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.woff differ diff --git a/genindex.md~ b/genindex.md~ new file mode 100644 index 0000000000..8b013d6a6b --- /dev/null +++ b/genindex.md~ @@ -0,0 +1 @@ +# Index diff --git a/http-routingtable.md~ b/http-routingtable.md~ new file mode 100644 index 0000000000..07029d2ca8 --- /dev/null +++ b/http-routingtable.md~ @@ -0,0 +1,105 @@ +# HTTP Routing Table + +[**/api**](#cap-/api) | [**/auth**](#cap-/auth) | +[**/build**](#cap-/build) | [**/commit**](#cap-/commit) | +[**/containers**](#cap-/containers) | [**/events**](#cap-/events) | +[**/events:**](#cap-/events:) | [**/images**](#cap-/images) | +[**/info**](#cap-/info) | [**/v1**](#cap-/v1) | +[**/version**](#cap-/version) + + -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---- +   + **/api** + [`GET /api/v1.1/o/authorize/`](../reference/api/docker_io_oauth_api/#get--api-v1.1-o-authorize-) ** + [`POST /api/v1.1/o/token/`](../reference/api/docker_io_oauth_api/#post--api-v1.1-o-token-) ** + [`GET /api/v1.1/users/:username/`](../reference/api/docker_io_accounts_api/#get--api-v1.1-users--username-) ** + [`PATCH /api/v1.1/users/:username/`](../reference/api/docker_io_accounts_api/#patch--api-v1.1-users--username-) ** + [`GET /api/v1.1/users/:username/emails/`](../reference/api/docker_io_accounts_api/#get--api-v1.1-users--username-emails-) ** + [`PATCH /api/v1.1/users/:username/emails/`](../reference/api/docker_io_accounts_api/#patch--api-v1.1-users--username-emails-) ** + [`POST /api/v1.1/users/:username/emails/`](../reference/api/docker_io_accounts_api/#post--api-v1.1-users--username-emails-) ** + [`DELETE /api/v1.1/users/:username/emails/`](../reference/api/docker_io_accounts_api/#delete--api-v1.1-users--username-emails-) ** +   + **/auth** + [`GET /auth`](../reference/api/docker_remote_api/#get--auth) ** + [`POST /auth`](../reference/api/docker_remote_api_v1.9/#post--auth) ** +   + **/build** + [`POST /build`](../reference/api/docker_remote_api_v1.9/#post--build) ** +   + **/commit** + [`POST /commit`](../reference/api/docker_remote_api_v1.9/#post--commit) ** +   + **/containers** + [`DELETE /containers/(id)`](../reference/api/docker_remote_api_v1.9/#delete--containers-(id)) ** + [`POST /containers/(id)/attach`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-attach) ** + [`GET /containers/(id)/changes`](../reference/api/docker_remote_api_v1.9/#get--containers-(id)-changes) ** + [`POST /containers/(id)/copy`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-copy) ** + [`GET /containers/(id)/export`](../reference/api/docker_remote_api_v1.9/#get--containers-(id)-export) ** + [`GET /containers/(id)/json`](../reference/api/docker_remote_api_v1.9/#get--containers-(id)-json) ** + [`POST /containers/(id)/kill`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-kill) ** + [`POST /containers/(id)/restart`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-restart) ** + [`POST /containers/(id)/start`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-start) ** + [`POST /containers/(id)/stop`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-stop) ** + [`GET /containers/(id)/top`](../reference/api/docker_remote_api_v1.9/#get--containers-(id)-top) ** + [`POST /containers/(id)/wait`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-wait) ** + [`POST /containers/create`](/reference/api/docker_remote_api_v1.9/#create-a-container) ** + [`GET /containers/json`](../reference/api/docker_remote_api_v1.9/#get--containers-json) ** + [`POST /containers/(id)/resize`](../reference/api/docker_remote_api_v1.9/#get--containers-resize) ** +   + **/events** + [`GET /events`](../reference/api/docker_remote_api_v1.9/#get--events) ** +   + **/events:** + [`GET /events:`](../reference/api/docker_remote_api/#get--events-) ** +   + **/images** + [`GET /images/(format)`](../reference/api/archive/docker_remote_api_v1.6/#get--images-(format)) ** + [`DELETE /images/(name)`](../reference/api/docker_remote_api_v1.9/#delete--images-(name)) ** + [`GET /images/(name)/get`](../reference/api/docker_remote_api_v1.9/#get--images-(name)-get) ** + [`GET /images/(name)/history`](../reference/api/docker_remote_api_v1.9/#get--images-(name)-history) ** + [`POST /images/(name)/insert`](../reference/api/docker_remote_api_v1.9/#post--images-(name)-insert) ** + [`GET /images/(name)/json`](../reference/api/docker_remote_api_v1.9/#get--images-(name)-json) ** + [`POST /images/(name)/push`](../reference/api/docker_remote_api_v1.9/#post--images-(name)-push) ** + [`POST /images/(name)/tag`](../reference/api/docker_remote_api_v1.9/#post--images-(name)-tag) ** + [`POST /images//delete`](../reference/api/docker_remote_api/#post--images--name--delete) ** + [`POST /images/create`](../reference/api/docker_remote_api_v1.9/#post--images-create) ** + [`GET /images/json`](../reference/api/docker_remote_api_v1.9/#get--images-json) ** + [`POST /images/load`](../reference/api/docker_remote_api_v1.9/#post--images-load) ** + [`GET /images/search`](../reference/api/docker_remote_api_v1.9/#get--images-search) ** + [`GET /images/viz`](../reference/api/docker_remote_api/#get--images-viz) ** +   + **/info** + [`GET /info`](../reference/api/docker_remote_api_v1.9/#get--info) ** +   + **/v1** + [`GET /v1/_ping`](../reference/api/registry_api/#get--v1-_ping) ** + [`GET /v1/images/(image_id)/ancestry`](../reference/api/registry_api/#get--v1-images-(image_id)-ancestry) ** + [`GET /v1/images/(image_id)/json`](../reference/api/registry_api/#get--v1-images-(image_id)-json) ** + [`PUT /v1/images/(image_id)/json`](../reference/api/registry_api/#put--v1-images-(image_id)-json) ** + [`GET /v1/images/(image_id)/layer`](../reference/api/registry_api/#get--v1-images-(image_id)-layer) ** + [`PUT /v1/images/(image_id)/layer`](../reference/api/registry_api/#put--v1-images-(image_id)-layer) ** + [`PUT /v1/repositories/(namespace)/(repo_name)/`](../reference/api/index_api/#put--v1-repositories-(namespace)-(repo_name)-) ** + [`DELETE /v1/repositories/(namespace)/(repo_name)/`](../reference/api/index_api/#delete--v1-repositories-(namespace)-(repo_name)-) ** + [`PUT /v1/repositories/(namespace)/(repo_name)/auth`](../reference/api/index_api/#put--v1-repositories-(namespace)-(repo_name)-auth) ** + [`GET /v1/repositories/(namespace)/(repo_name)/images`](../reference/api/index_api/#get--v1-repositories-(namespace)-(repo_name)-images) ** + [`PUT /v1/repositories/(namespace)/(repo_name)/images`](../reference/api/index_api/#put--v1-repositories-(namespace)-(repo_name)-images) ** + [`DELETE /v1/repositories/(namespace)/(repository)/`](../reference/api/registry_api/#delete--v1-repositories-(namespace)-(repository)-) ** + [`GET /v1/repositories/(namespace)/(repository)/tags`](../reference/api/registry_api/#get--v1-repositories-(namespace)-(repository)-tags) ** + [`GET /v1/repositories/(namespace)/(repository)/tags/(tag)`](../reference/api/registry_api/#get--v1-repositories-(namespace)-(repository)-tags-(tag)) ** + [`PUT /v1/repositories/(namespace)/(repository)/tags/(tag)`](../reference/api/registry_api/#put--v1-repositories-(namespace)-(repository)-tags-(tag)) ** + [`DELETE /v1/repositories/(namespace)/(repository)/tags/(tag)`](../reference/api/registry_api/#delete--v1-repositories-(namespace)-(repository)-tags-(tag)) ** + [`PUT /v1/repositories/(repo_name)/`](../reference/api/index_api/#put--v1-repositories-(repo_name)-) ** + [`DELETE /v1/repositories/(repo_name)/`](../reference/api/index_api/#delete--v1-repositories-(repo_name)-) ** + [`PUT /v1/repositories/(repo_name)/auth`](../reference/api/index_api/#put--v1-repositories-(repo_name)-auth) ** + [`GET /v1/repositories/(repo_name)/images`](../reference/api/index_api/#get--v1-repositories-(repo_name)-images) ** + [`PUT /v1/repositories/(repo_name)/images`](../reference/api/index_api/#put--v1-repositories-(repo_name)-images) ** + [`GET /v1/search`](../reference/api/index_api/#get--v1-search) ** + [`GET /v1/users`](../reference/api/index_api/#get--v1-users) ** + [`POST /v1/users`](../reference/api/index_api/#post--v1-users) ** + [`PUT /v1/users/(username)/`](../reference/api/index_api/#put--v1-users-(username)-) ** +   + **/version** + [`GET /version`](../reference/api/docker_remote_api_v1.9/#get--version) ** + -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---- + + diff --git a/humans.txt b/humans.txt new file mode 100644 index 0000000000..ecf56752c2 --- /dev/null +++ b/humans.txt @@ -0,0 +1,3 @@ +Fred Lifton (@fredlf) +James Turnbull (@jamtur01) +Sven Dowideit (@SvenDowideit) diff --git a/images/arrow left.svg b/images/arrow left.svg new file mode 100644 index 0000000000..4754eddd99 --- /dev/null +++ b/images/arrow left.svg @@ -0,0 +1,9 @@ + + + arrow left + Created with Sketch (http://www.bohemiancoding.com/sketch) + + + + + \ No newline at end of file diff --git a/images/arrow right.svg b/images/arrow right.svg new file mode 100644 index 0000000000..481d9f6927 --- /dev/null +++ b/images/arrow right.svg @@ -0,0 +1,9 @@ + + + arror right + Created with Sketch (http://www.bohemiancoding.com/sketch) + + + + + \ No newline at end of file diff --git a/images/docker-inc-light.svg b/images/docker-inc-light.svg new file mode 100644 index 0000000000..0c4564de9b --- /dev/null +++ b/images/docker-inc-light.svg @@ -0,0 +1,74 @@ + + + +]> + + + + + + + + + diff --git a/images/docker-logo-compressed.png b/images/docker-logo-compressed.png new file mode 100644 index 0000000000..717d09d773 Binary files /dev/null and b/images/docker-logo-compressed.png differ diff --git a/images/docker-top-logo.png b/images/docker-top-logo.png new file mode 100644 index 0000000000..e48626b3b2 Binary files /dev/null and b/images/docker-top-logo.png differ diff --git a/images/docker-white.png b/images/docker-white.png new file mode 100644 index 0000000000..3513b55016 Binary files /dev/null and b/images/docker-white.png differ diff --git a/images/docker-white.svg b/images/docker-white.svg new file mode 100644 index 0000000000..b97d1f8724 --- /dev/null +++ b/images/docker-white.svg @@ -0,0 +1,49 @@ + + + +]> + + + + + diff --git a/images/external-link-icon.png b/images/external-link-icon.png new file mode 100644 index 0000000000..a38f55283b Binary files /dev/null and b/images/external-link-icon.png differ diff --git a/images/external-link-icon.psd b/images/external-link-icon.psd new file mode 100644 index 0000000000..e71ec10fab Binary files /dev/null and b/images/external-link-icon.psd differ diff --git a/images/footer-links.png b/images/footer-links.png new file mode 100644 index 0000000000..2d13b662be Binary files /dev/null and b/images/footer-links.png differ diff --git a/images/fork-us-on-github.png b/images/fork-us-on-github.png new file mode 100644 index 0000000000..404c6849c6 Binary files /dev/null and b/images/fork-us-on-github.png differ diff --git a/images/glyphicons-halflings-white.png b/images/glyphicons-halflings-white.png new file mode 100644 index 0000000000..3bf6484a29 Binary files /dev/null and b/images/glyphicons-halflings-white.png differ diff --git a/images/glyphicons-halflings.png b/images/glyphicons-halflings.png new file mode 100644 index 0000000000..686433b297 Binary files /dev/null and b/images/glyphicons-halflings.png differ diff --git a/images/homepage-docker-logo.png b/images/homepage-docker-logo.png new file mode 100644 index 0000000000..4f4df6a479 Binary files /dev/null and b/images/homepage-docker-logo.png differ diff --git a/images/page-blocks_03.png b/images/page-blocks_03.png new file mode 100644 index 0000000000..61eadf7dde Binary files /dev/null and b/images/page-blocks_03.png differ diff --git a/images/page-blocks_03.svg b/images/page-blocks_03.svg new file mode 100644 index 0000000000..b2e682ecc2 --- /dev/null +++ b/images/page-blocks_03.svg @@ -0,0 +1,26 @@ + + + +]> + + + + + + + + + + + + diff --git a/images/page-blocks_05.png b/images/page-blocks_05.png new file mode 100644 index 0000000000..3b62ee05ef Binary files /dev/null and b/images/page-blocks_05.png differ diff --git a/images/page-blocks_05.svg b/images/page-blocks_05.svg new file mode 100644 index 0000000000..e049763d88 --- /dev/null +++ b/images/page-blocks_05.svg @@ -0,0 +1,63 @@ + + + +]> + + + + + + + + diff --git a/images/page-blocks_07.png b/images/page-blocks_07.png new file mode 100644 index 0000000000..ee31fa0273 Binary files /dev/null and b/images/page-blocks_07.png differ diff --git a/images/page-blocks_07.svg b/images/page-blocks_07.svg new file mode 100644 index 0000000000..d7e74c0a87 --- /dev/null +++ b/images/page-blocks_07.svg @@ -0,0 +1,17 @@ + + + +]> + + + + + + + diff --git a/images/social/docker_social_logos.png b/images/social/docker_social_logos.png new file mode 100644 index 0000000000..5bde456365 Binary files /dev/null and b/images/social/docker_social_logos.png differ diff --git a/images/source_artwork/banner-frontpage-usecases.ai b/images/source_artwork/banner-frontpage-usecases.ai new file mode 100644 index 0000000000..8aee9f447f --- /dev/null +++ b/images/source_artwork/banner-frontpage-usecases.ai @@ -0,0 +1,1340 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R 42 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Web + + + + + Adobe Illustrator CS5.1 + 2013-10-28T18:49:06-07:00 + 2013-10-28T23:04:16-07:00 + 2013-10-28T23:04:16-07:00 + + + + 256 + 76 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgATAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4qlPmTzNp3l60gu78S GK4uI7WP0lDH1Ja8a1K7bZkafTSzEiPQX8mjPqI4gDLqaTbMdvdirsVdirCdZ/OLyPpV7cWMlxNc 3do7RXMVvCzcJEPFkLNwWo9jmPPUwiaLs9P2RnyxEgBR80Dafnn5QuLqOA2uoQRu3E3MsKekn+U3 GRmp8lyA1kCa3ciXYGoESfSfK9/ueiZlukdirsVdirsVS+81yys9X0/S5w63GpiX6q4WsZaBQ7IW rs3E1HjkDMAgd7kY9LKeOWQcoVffuoeXfMH6a/SMkdv6VrZ3ktnBPz5ev6NA8gHEcV51UbmtMGPJ xX5Fs1ek8HhBNylESI7r5D5JvljhpVp3mbTtQ17WNDgEgvdE+rfXCygIfrcZlj4GpJ+Eb7DFU1xV 2KuxV2KuxVAz65pUGpWumyXCi+vGkS3hAZiWhjEzqxUEIRGwb4iNjtiqOxV2KuxV2KuxV2KuxV2K uxV59+Z+paumqeX9ItTKtnqMk31lYZxaPM0SqUh9c/YB5f7LpmNnkbAHV6DsXDjOPLklXFACrjxV fM8PX9Dzb8w49WsJI7CSR9K015raZrCa/W+kgkDkCdAWMirxP3/Rm49ngRqJCv4Dtd9zq/aqWOeh hO7n4oHGIcG1HbuJDMvNVtB5M1Py9f6Jq95NcahdpBe2k909yLq1dayTlZCy8l2ow23zIOpE9Pml liBHHAyuMQDEjoP2vOnD4ebEMciZTkBRN2D1TrUTex6Mt8ongeYgx3rXjGVlfoPTUAdPDpnmGolk hgGYCUSeUjksm/6I2e1hCE5nGSOXIRqvi2Nf1ePTJPLZlZvMQuPqcU5J5GJ/iFxy67J369Dm4/N5 BjOC/wB9xcN+X875PNcRqurOLS3NvaxQGR5jEgUyyEs7EChZia7nN7jhwxAu6bQHztpmn2Gpfm1r enalJ6NhPq16ZpAwjI4Rl1+NqgAladM10oiWWi9piyzxaHjh9Qr9CH/MqLQNJ80WVl5fu4pbBrEy zskqT1m9YruwJ4njTbI6mEY/S3dk6jNlB8Xb4V3PXvO3nTV9F1qKzs1gMbW3renKjtJIzetyKFSF Ah9FWevZs2zwyX2/n/zFPeW1tD9SnjMrBrsUijnQCAsIecv2k9ZhReRJA264qop+YHmFrWGG4ntI bm8jR4ZYoyZAbixW4iVYGkqQrsQ0gJA+Gq0JpTmyGNAdXP0OmjkskE8NeQ577/oU1/MnVo7uCzW8 tJopbW3538kXFYZJHtledgszc4uN0dyEHJaVoDlH5g3Vj8V+t2H8mQIMqkNztfP6tuXP0+eyZeRN Y1nUr/VLFtQQJY300sbGP1DdQNeTh3Ri9Fj+HggUnjTwIyeGZJIvkf0tOvwwhGMuH6oj/NPDH7ep 70y/NKGVPKkmrWziPUNElj1CylIqA8bUZT4qyMwIyWpHosc47o7DkDqBjlvDKDE/H9ReT6h5o1ny /wCd/L2g+XLrUjb6Rd6FpnmUu8H6MLazJzkUQunrPNMsvP1Ff4OlNycsxR4YgOFr85y55zPU/ZyH 2JM35i+fdD0WXzCNeu7+S+0jzDMllciKSCCew1YWdtLEojDfAklTyJ6eG2WOIv1O68weU/MevaHY 6pq2q3etat5esL3VYHhbUZIpNPnuJVtpZTFEjyGLjHyOy132xVN7fzH+Z1r5i/L7y9r+sSabf+ZY TDrVrM0frwnS7t5ElDReoivqECiI0bc++KvoXFXjGs3K6leajc3VnHqWo2ct5HbI1ml969xBcXix 2B521yaJFb2x9GFoX4SSTk9WzEkbv8d+33d3e9RhjwRiAeGMhG/Vw0CIXP6o8yZeqXELjGHkn0fm bzOPLNne2kzWiix1XVYkv4vXnktLK5iazikJcEM9vIqu5ZmI3ryPIZGI3F0evxxhmMRW1XXLiocV f5193uRd15i1+01NdNvNVjt44bueI6itk0nrzLa211BaemrMF9Q3MgVVPqOsYVW5nkbHDYjqvmfz A13oWtWGnxahrUf1iaO2jUR+rJLoVnK7uFo0hT1WIUHkyqEXtkZkiJIcjSY4TyxjOXDEnc/j7+nN kVl56n0/VIbe/wDMNvqeixNai41owpBG4mttReSkiH0X/f2kaKY9h/d7uGJoGSjubH9rtZ6ATgTH GYTPFUbvlLH05jaRO/8AW5UpQedfN1vJo91qLgLcarpuj3emGEQuHv8ATIbiZ5GYM4aKeWqoAtPi DVqOAGSW194H2MpaHDLjEekJzErv6ZkCveBud+ldb6fmS6B5RZHUfVgtbiG/t4ri+1AzCS8jdgJI qHikwDvuxVVXoamtcngzERlCUQOPaz08w42bUDtGBy5pDTzwx4YY4j+924T8U7i0uwn/ACivLW4h ea3ksbmYxXZEh5LykQ1AUEB1DIfljkwRxSMIy4gOrT2ZiljwCMoyhLexLmDfwSDVvLehaX5W0HzD YRi11fUJNMtL2BGb09Tj1GSKG6t7mCvCYvFK7huPJSOVacqwc9B/lF5U0jVdE0S91Ly4EaC1b0te aaJvrokhls3t5YgxlKLDKy0cU+EHsMVSXTvKNp5i8r+Tbie0ttStYrDVL288rwTCxnnuDRIr22ji McbSxsoiBagQvyBBxV69+W8mkyeQtAbSJrifTfqMItpL3e54hAKT0/3YpFG98VTfVdG0rV7X6pqd rHd29QwjlUNRh3XuD7jIyiJCi3YNRkwy4oSMT5JXF+X/AJMjtzANIt2iaRZnDguWeOvEszlmalTs TTLMEjhNw9JK63UT1QAzHjA5A8vk3pfkLydpd415YaTBDcspUSULcVYEMqBiwQEE1C0y/PrMuWHB OXFHu7/f3/FwMWkxY5cUY1JGjy3oYDAWcdG6g1I612qdvozSjsnTC/QN3ZnW5f5xULfQH/xLca3c ujsY1hs41WhRR9ose7HLIaT9+csu6h5OGI72nOZrJ415p/IzVr7zPqGq6Ve231fUpmuZUu+XNJJP tqoWN1ZaioOx7dqnX59JKUrBem7P7bx4sPBOJJHd/ap2f/OPl6w/03WIYfs1W3tuRI6sORaL9RyA 7PJ5y+xul7SwH04/nJ7Hd2dvd28tvOnKOaN4n7HhIOLAEbiozZvJro7eFI0jVAEj+wKdMVXCGJSC qKCOhAG21P1YrbXoQUp6a0oVpQdD1GCk8RbSKJDVEVTvuAB1NThpSSUNq2lWWrabcabfIZLS6Qxz ICVJU+6kEZGURIUW3BnlimJw2lHkxvUfyo8j6h5kj8x3FlINVjks5vUjuLiON5dOcPaySwo4jkaO nEF1Pw7ZJqJs22n5U+RVtYrRtO9S2itr+yEMksrKYNVm+sXatVv25dweq9qYoQcP5J/l9Hpd1ppt LmaK8e1lknmvbqW4WWwBFrJFO8hliaJW4rwYbbdMVRLflN5Kd1lmt7i4uk+p+leXF3cz3CHT52uY Ck0sjyAiWRmbf4q77YqzHFUm1Hyd5a1G8a8u7FHuJKC5dC8YuFXjxS5WNlW4QcBRZQw9sgcYLlYt blhHhjLbp5f1b+n3ikVcaJZSw28MZltIbVRHbxWkslsiqpQqvCJkUhfTAAIpSo6E4TENcc8gSTRJ 52Afv97v0Ja/Vzbma7MZC1P1q451RFjB9QP6n2UFfi3NWPxEkvCvjm7qP+lHv5VX4rkpXXlvTLuK 5huTcywXgdbmFrq5MbpKksbpw9TiqlZ22Wn7P8i0TAFlDUziQRQMeXpj0ry8vv7y1onl210qJgLm 5vbuRY0nv7yX1LiRIK+krMAi0QMdlUVqWarMxLGNLqNQch5CI7hsBfP8fDkAFc6PC04mkuLpysgl iT6xKiJRUHDjGyB1rHypJy3LdjTJOOjsVSF/IvlV5UlksvUdJZJ1LyzOPUlp6hIZyDy4ioO2Tz5D lIM9zEUOm3wcHD2dhxzE4ipRlxA8Uvq7+fkryeU9Bby43lxIHg0d09IwW089u/AtyYCaF0mHI/a+ P4twdicg7XUanJmmcmQ8U5cyl8H5a+UIbsXYt7mW5SOSK1knv76c2qyqUb6n6s7/AFQ8DxDQcCB0 pi0KNl+Vnk2ya0NrFfRpp6OlhD+lNSMUHqW72zPDEbkxxy+lM49RV51YtXlviqlcflF5DuUsRcWt 3LLpnqjT7p9S1FrmET8fVWO4Nx6wVuNKc6UqOhNVWVafp9lp1hb6fYQpbWVpGkFtbxjikccahUVR 4ADFURirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirTuiAF2CgkAEmm56DCApLeBXYq7FXYq7FXYq7FXYq7FVvqxeqYea+ qFDmOo5cSaA060qMbTwmr6LsUOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVAa/ qE2m6HqGoQRetNaW8s0cW9GaNCwBpvTbfIzlQJcjS4hkyxgTQlID5vGvOPmnzJcaXpJu7uMwXU9r d+rcCzVYnSZCska21xLK0I5HlzAPvXM7sSRlmIO4MJd3d0bPaTSYcenJgOGUMsR/Ge/6uKMRfuLM oPNGu23meby+dUi1iN7eK5jvYYoUkhkd2UwMA4i+JV5qT0HXscw+2pjFghLGDjyTnwgc7AF2OIgD u3dd2dc80oSInCMOK+Vb1W1+9Gw+b9RsLmc6oRNZD1IoHRVDfWIlDhG4Fl+MGg985vSdq5ImXi7x BIHLmN6223c3W4445Aj6ZRtlel/Xzp8DagVN4yhpgooAzb8QP8npm/wcfAOP6urjC63UPMt5cWPl zVb22YJc2tncTQuQGAeOJmU0Ox3GTkaBbcMQZgHkSHj2g+e/OE+q+WZrnXlvItTuRHPZIsAaJGmS EidY4kALhqp8Ve+a+GadxuXM8nqdRoMAhkEcZiYRvis77Xtv83o6+fHczhNDvy0EixEFFXd1V6Gp 2NGG3hv0zZPJKcvny7QXCjQ7wyxAtEqozBlVQ254heTV4qFLVNN6EHKDmPcXZDQA164/j8eTKrSW WW3jlljETuKmMNypXpvRe3tlwLr5gA0Fmo2Ud9YXNlIzIlzE8TOhoyh1K1U9iK7YyFimWHIYTEh/ CbeM2X5i6loXmLRo72OK91LX7m302/jAlaSK2guo9LjuBIP3aK95LK5Ddeg8co04JBkefL5O17Yl CMo4sf0D1f6f1fZHhHwSfzF+dHmzW/Iup6bHY2llqWoaJcag13HLMUjspNEXUG9MfA/1hfXCKeXG vxdsyHTJhL+fXmawsNbvf0AsmjaJMlnBeSi4hWV47ptOlQ3MqLbvIZvTlHpseMfIH4lxV7lb/WPq 8X1nh9Y4L63p14c6fFxrvSvSuKqmKsKs/POr3XmxvLltYQz3dtBJcakHnSA23qxiW1jZazNIylvS maHmgqrgipjFIyEyp2mXQxjg8W+ZqO31VtLfoOsbo8xW1l/l/wA8a9qesQ2F15dksoJAhkvOc8iI Xt2mKljbRxho2AikVnBDmgrQ5c6wgjmk3lT8z/MV/BHa3fl+eW7t1toLqdPV5meS6a0kaSIWyCMA W80rMpMa8fTLBzQU+KbIr8W7aXZkI44yOQAyF0a/mCX87vMRWx3uqZ7ol9fXunie/s/qN2JZ4pLY M0i/uZniDo7pCzJIqB1PAVBGWRJI3ddnxxjKoniFDf3gHvPLkd0dkmlgH+NNaOtjTpJI7cG7CIzx IC0RumhCBfWZjsKcuPX32ycYiQr6ZjffrHy8z0cTLmOYg6foalD6p+n68mwoY+m+4Leva55jsrvW 54dVRINPu7SC2sZYYiZReJF+6jccW9blIfS+0OVOSsMg5aA0TzR5qm0vQdTvdQMP6T9GW4t54rVV SI6dcXrTcoGmcW8rwcF5hXFG9sVZF+XGs6nqukXU+pajFqNylyFLQRJHHDztoZTCrxPLHMqtIxV1 Y/CQD8QOKsrxV2KuxV2KuxV2KuxVxpTfp3xVjkP/ACrr996P6H+0v1jh9V+3UcOdO9aUrhwfV+7+ r+jz+xyNb43APH4uDpx3Xw4lXTP8B/U5/wBF/ov6l6g+s/Vfq/pepvT1OHw8uvXfHtD6R+Z+n/bO X+ycTR8NnwKv+h+xbq36A9TTPU/3m+tp6f1f0/R9fgfS9am9P5afTmqy/l/RVcPGPpquKtuL9DZm 4rHHfxZBm0Qp3P1b6tL9a4fVuDev6tPT9Onxc+W3GnWuJSLvbm8/8v8A/Klv0la/on6n9f8AVX6n 6nq8vUr8Hp+t7/Zp36b5h4/Avard3qP5Q4Dx8fBW/u86ehjjVqUrX4qeNO/0ZmOjbxV2KuxV5zrH /Kmf07oP6Q9L9L/WX/Q3H61X1v0mlefp/DT9IcePq/Dy+ztXIwqtuTfqfE4/3n1VH5cI4f8AY0k2 rf8AQu36Hg+vej9Q9G19H0vr3qfVv0aPR/uf3vo/o+nqV+Hh/eZJoRl1/wAqFrqf1n0Pqv1t/wBJ 8/rf1H659Wl9XlX/AEb1PR9T1Kb8vtfHxxV6Xpv1T9HWv1Ov1T0Y/q/Lny9PiOFfU+OvH+bfxxVE Yq03HieVONN69KYqsP1b1By4epTatK05f81fjgZbqcP6O9S79D0fV9UfXuHHl63pJT1ab8/S9P7W /Hj2piKTLioXdVt7rPL438bRGFg7FUqX/C31wcfqP13ntT0fV5+p/wAFX1P+G98lkuxxc66936mr TcHFLwq4qPFw86/iuunel0//ACrT9Mz+v+hf01+9+s8/qv1r+7Hrc6/vP7r7df2eu2RbUJB/yp7l /o/+HuXrCnp/Uq+vxNOn7fGvvTFWS6P+hv0bD+hfq/6M+L6v9T4ehTkeXD0/g+1WtO+KozFXYq7F XYq7FXYq7FX/2Q== + + + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:0580117407206811808380D9EE884C4F + uuid:ea1f37fe-972d-7b4a-92d8-bf119d38176a + + xmp.iid:0480117407206811808380D9EE884C4F + xmp.did:0480117407206811808380D9EE884C4F + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:0480117407206811808380D9EE884C4F + 2013-10-28T18:47:59-07:00 + Adobe Illustrator CS5.1 + / + + + saved + xmp.iid:0580117407206811808380D9EE884C4F + 2013-10-28T18:49:06-07:00 + Adobe Illustrator CS5.1 + / + + + + + + + EmbedByReference + + /Users/thatcher/Dropbox/FILE_EXCHANGE/mailgun_150.png + + + + EmbedByReference + + /Users/thatcher/Dropbox/FILE_EXCHANGE/mailgun_150.png + + + + + + + Web + Document + + + 1 + True + False + + 120.000000 + 80.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/Thumb 20 0 R/TrimBox[0.0 0.0 940.0 94.0]/Type/Page>> endobj 44 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 120.0 80.0]/Type/Page>> endobj 45 0 obj <>/Resources<>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 120.0 80.0]/Type/Page>> endobj 46 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 120.0 80.0]/Type/Page>> endobj 47 0 obj <>/Resources<>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/XObject<>>>/TrimBox[0.0 0.0 120.0 80.0]/Type/Page>> endobj 48 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 120.0 80.0]/Type/Page>> endobj 71 0 obj <>stream +HWI7+yI0 Cˀ\bj1@ V~yq>Ï/\bpwۇ߂{|qAܗG}}v$ɕc*5n} '/[Xޓ\=70Rws)dz =p-i}& )&>L.fcZ>,ih$o;5o `KB[qaN<^p:4p*yu}8|񸤀DzǏ_ :A[a ³VJ B}LdSipO)|D"5k?'&?鱼}KC vHr64 ̳ڿ_"kriDf$8XI4Z롊͆&:tͱ+>wb(XLgu@&S9ઘ +)w9Wjl6v(Z[;kg:IFDWy˂wZ a/9&~.jmy[g5[4Z9FM)r)ReNIdd) ۫Vx"\36T 7&NqkK9PCԹ,8QqFu`{XjI-<]$rxQ D&F +O0V%?lnHP2"#R˩Qd=(~DÐ8憥inu@J"R5Et^8A_}Vǵ@Ԥd%98'!PM2{&@%*G?s _%v.g?7HqCH%`nL E1( 7|%'ؔhI&֪C5_)Ȝ$>|O$N2Ӏ>Lu{Y32d!-sڲ4~ l⡧`T6M}𨘪| PI7$D|Lۉ b򌚒|Wa@*VIǫT!E(H>?-ebVܑVj_ΐ|Jo-̶ϰB+Pvʤ ei픥A'ʊ2V +2 (cq︜L(BaX1+FX:exFrpƛ<9Y90Y05z,Nٙ1%"؊1:ٷUq\d(sUU9nU>R85:jA}N'ER3X Rֵ;6> endobj 42 0 obj <> endobj 74 0 obj [/View/Design] endobj 75 0 obj <>>> endobj 54 0 obj <> endobj 52 0 obj [/ICCBased 76 0 R] endobj 76 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 51 0 obj <> endobj 77 0 obj <> endobj 78 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (thatcher) () %%Title: (banner-frontpage-usecases.ai) %%CreationDate: 10/28/13 11:04 PM %%Canvassize: 16383 %%BoundingBox: 0 -275 940 0 %%HiResBoundingBox: 0 -274.8926 940 0 %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentFiles:/Users/thatcher/Dropbox/FILE_EXCHANGE/mailgun_150.png %%+/Users/thatcher/Dropbox/FILE_EXCHANGE/mailgun_150.png %AI5_FileFormat 11.0 %AI12_BuildNumber: 39 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 608 -296 728 -216 %AI3_TemplateBox: 16.5 -16.5 16.5 -16.5 %AI3_TileBox: 272 -562 1064 50 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -709 527 1 2546 1232 90 1 0 7 129 0 0 0 1 1 0 1 1 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:-384 -316 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 79 0 obj <>stream +%%BoundingBox: 0 -275 940 0 %%HiResBoundingBox: 0 -274.8926 940 0 %AI7_Thumbnail: 128 40 8 %%BeginData: 3986 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FDFCFFFD0BFFA9FD13FFA8CAA1CACFFD15FFCAFFFFCA9AFD07FFA8 %FD44FF5A36FD0AFFCFFD05FFA1936F936E93689AFD16FF93FF9AC3FD07FF %52A8FD0BFFA8FD0AFFA87DFD13FFAEFD14FFC3C3CA8536855AAFFFCFC8CE %AEFFFFFFCFCFFFFFFFA168BC93BC93BC9AFD16FFC3C3C3A8FFFFFFA8FFFF %A827FFA8FD09FFA1C3A1FD09FFA87DFD0DFFC4CAAF845FAFFF7D7D52A8A8 %7D7D7DA87DA87D277DFD05FF9AC3CABC530F5A850EA8C8CFC8A457FFFF82 %82FFFFFFA16F93C3A1A16EBCFFFFA8FFA8FFA8FFA8FFCAC3A1CAA8CF9AC9 %A1CAFFFFA1B5C38427A8522752A827527D27527D527DFD04FFA1C39BCAA1 %FF7DA87DFF7DA8A8A853CA9ACAA2FFA8C39AFD05FFBDC43D603AAFFF7D7D %FF527D52FF7DA87DA827A852FD04FFCAB59BCABC7736FFFF5B36CEC8C9C1 %81A7CF7BFD04FFA86EBCFFFFA16F93FFA87D7DA8FD057DC3A1CAA19AA1C3 %9ACFCAFFFFFF93CAA827527D7D5227A8525227527D27A8FD04FFCAA1CAA1 %BCA8A87DA87DA8A87DA87D6FCAA1C3A8C3A1C3A1FD04FF655FBEA867FFFF %7DA8FFFF527D7DFFFF7DFF7D7DFD06FF93C3A8C35336FFFF3652C1FFC9C7 %A7827BA7FD04FF7D9393FFFFA16899FFA852FD047DA87DA89AA1A1A093C9 %9A99CAFD04FFBCA127277D527D5252A85227527DA8F8FD05FFA19AA19A93 %FFA8A8A8847DA87DA8529AA8A19AA19ACA9A9AFD04FF3A83BDA937FFFFA8 %7DFFA85252A8A8FF52FFA87D52FD05FFC39ACABC7E0E615A37A7C8C9C8C1 %FF8281FD05FFA86EBC9A9A939393FFFFA87DA8FFA8A8FFA8CACACAC3CAA1 %CACAFD05FFBCCA2752527D7D52527D527D52FF522752FD04FFCA9AC39ACA %FFCAA8FFCACAA1CAA8A8A1C3A1CAA1FFCACAA2FD04FF8B60407DBDFFFF7D %7DA8527D52A87DA87D7D527D7DFD06FFCAA1CAAFAF8485A9FFC9C9CACFFF %8282FD05FFA16E929392939293CAFFFFFFA8FD12FFC3CA7D52A87DA87DA8 %527DA852597DA87DFD06FFA1CAFFFFA1C3A8FFFD05CAC39ACAFFFFA8A8A8 %FD05FF858B83A8C4FFFF7D7D7DA8A87D7D7DA852A87D7DA8FD14FF82FD07 %FF9ABB93BC9AC3C3FD7AFFA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF %FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD17FFA9A9FD25FFCACAFD05FFA8FD %50FFCA8536AFA9FFCFCFCFFD0AFFCAA1C9FD10FFC3CA9AFD05FF7DA8FD24 %FFA8FFFFFFA8FFFFFFA8FD21FFCA9AC376375A377DC8C181A7FF82FD06FF %A1689392C9FD04FFCAFFFFFFCAFD06FFCA93C359A87DA87D27FD047DA8FD %07FFA2CAA1FFA8A8A8FF7DCAA8FFA8FD07FFC3A23B89A8FD047DA87DA852 %7DFD21FFBCBDC37736FF5B7DC8C99FADA7ADFD06FFA19AA89AC3A87DA87D %C39AC39ACAFD07FFBCA152527D527D5252F87D27FD08FFCA9ABCA87D527D %AF7693BDA1C3CAFD06FF8A7DA98BFF7DFF7D7DFFFD04A8FD21FFC39AC377 %3784377BC9C8C88281FD07FFA16EA068C3FD05A8C9A1CACAFD07FFC37DF8 %527D52527D27527D27A8FD07FFCA93A1FFA8A8A8FF9B9AA1CACAFD07FF84 %5F52CBA87D7D7D52A87D7D52A8FD22FFCAC3CB858585FFC9CFFFA782FD07 %FFA89A9AC3CAFD10FFCAA1527DA87D7D527D7DA852A8FD10FFCAFD0BFF8A %CACAFFFD08A8FD2DFFA7FD27FFA8FFA8FD46FFFF %%EndData endstream endobj 80 0 obj <>stream +%AI12_CompressedDataxr#7xi $}c"My 퉎 +ĪR["b_ߧ`˅(*KRP%%L$p|v5LG@|z\3w7ט/_ %p⍽?V77/gV_ +2\Azެo?.߯w7fʽʛ-ov|e:D~X\\ "n}~~?A2 J :~y]j}lus3\noL^?@=׷5\.Y\\n良]]o>oO}w󯯖oIFߛ7f-t{L..zqHKMP~@7_A- 4{&q'`wa~Y RlP٫lЯe6^Ȍuuz^f#3pi=*W ~&XzŽ0}Ԡuo旻o[f?lWp~qS7hsywK^7@7ZBR>ֿn8̓r`T)T\6dҿQ߶`, q02?Xt}b0-`r'o8X/*pTDKk ]mx?DԐ~x ϧ+k@k{_7Gn}~?7ś/7w_ۈ/z<?-p^]ܮU|jgAЬՀ/)|u'|rCBgw0Só;_|s.?P_aTV7D_`/?V z00uVl;~?o7ɽ)>]^^^^~pqWo77W׷gܮvb}H-vsŖˏ+*Â| 4oҌ,?EBIrߐPߘRH[S2 M5X؂O#u3 CZD⏒)!c9S9shIR04Ze MMI;b*ifvh/XOLϡ$`MTp& l2L&I9)&$@(r0\t<gc3@j,I(碜rR˲,ʼJSjU2)żbR(DY9%5Ch(E :31%Π0M(AEAa)e %$Q.~|я)qB4ijħ1&|fr 2d9rHRF4 /Yf }0, 7')kruGćK'.K^G]sxBJ%~UTB&30Ka"_Di)\xgfffbf23w"FE)_%sMbssAtf* wbx^Ι;+gv#s`T`X%WԻ%kf;Sڎoh\494 qޕ^s`[ ENEi Lj +j^,2`j010)0y'0 nW,;NKΠGDdW@Xi,:;V;, ,W%.k1_ʉKZƖ1ٕ|n=ZNeԲVSYiy3S,jcc'TxX)W̠! GB QȮ'w1 +3CR +4(3JC%IG͡"6*GO#S+bΪK+eS@uF+vXூ2) gziA=E4i +{ YSC-2˳4U,=ý~ԓ +s3`Rztֿո=}t. +,OXF9Nd]MhQW$2FBxsg)}L3f ZМ(Mڀ<?'zxrp NCCD Q0XRΟ +xTZHeAp\QWV]ɰPUrAJww/v0v1щd6EF +LqCpQR[Ҷg%ͷYkb&[xK*$ŖoIY[4mIoIdDDQMK& v52j:&6 kt+ּk]ܩS/SFVjVc}Ym l6ڢ o D(D@#X_`j#-q >%<7 y)| 2qˈm!Oπ ܈? cZQ^$.0!M/.09%0Llp g`3RL)mZa(:Y-f3O/(vôLέģ4#YdZC퇣tC!HH?|w9v86dU `С X2JIkNo `P0j5,q +g-lBf}!ñ 2XV[r +b2**8SigJify9466iJR&X-c=nJ|hjFS)-;VLsA EFAHy& +%sS[v2lhXo5&\&2/iS)JfGtO$jfg$X "ߑlK"0ޓ&̎-0:khEuAla"b&D,#5x)VEӺp*ɌobU7!) +3++,X%tqFX-T&āV*L%UTehXqr V^f;}H_X9%*ˊ$H{cUv'p"SHtlG:~4xe%obPBBH'>ّ$G BcUdˋUi1C4B\ܦyQmGil=5WwzĶ#gHKIxcM>2r#3Kk=Yxsܚg~%k,hլf~gVԛ8?k{~-['^sd@_X9iYzw0zgl %+'NTܢ X1V][ZxڽZ15SQؽ27Z;%ra$FLu93+/+|$;rIVT^4Vwj=ˊs'VW^,4^,?b<`x<:Kbba?Tf;-h/:pBBˈSQhBX2VRِjb!f"llMRY L%eȢHƖC0 ܚPõ%u4 +"4 -(s2O){HJ+e,vﱫD+fd OxؒSJ[49;"QX/Lg}V ;] uJ3Yd:?Ey3gg 5VX՟ZLlv %$SҘMǴɚYƗт|/[K$Of5CKoF2 Ɋ3eT6"CJNp th96Fp8tYQamjo7[vf9"3pn $Jaqgx^0g#P͛kaØ"AиIx AF)p2 -;uc4꾦zGIDN3m:ء&Z|l|rTq6/aӟȩ ),gu /6kuƺ׽I[ÿ$šjRaMuY:ii#+9}56) Iw5UjF&n<8\z}5:°8Lx .r;V<`E%#[CYSCTZg3 ќ`Rn&e,L-H ?'0U&q SZ8ǂƷ*9_y^ "~hGȬBiȵBv A#37UMb7낖nnyFI5.[Rt: R5.X +gVgnMZPP۝ɽi?G#&e.s}6L%2ȂR7,E,y,|Twk3"-c=@/ hWdN,6Y($OHIyLB=?K;gth( 5|H5aقxEAZ@T EA}=#hx*D2S:!,ߘXN}szF>m ,hA`nd f<&ʜ Յo@m9~͜z񌰌cpM̗ko%.bMhhKO!"#t82W:s\mSgoaSinHE7谺 sjstH8 m8hxSpӀ_4=̓8mNM]k +VȥL%eDb?ƕ4Ko*z {m{{ |~P'$]IJC~cHe%YoCItm+CK'~Lya{t2To)}x AlPQ|"G=$$Upve*̂-YSuH 3IIrBE@ƭ:j͆_y!@VgEDЊn8vaqӝ&-ӀeǨ؎ۢ`. +C>*>bv#U򠖇mSUyrTbjAʐ~?&gdVNHfA$ͭ] mUm8oqz津d~[$wG>dd(C&rARKS;c`'STW11Ep!/S]9FݲAlOJ“4ޓJDboے>dn"-S"-S"-Q.x#ia'x"\lzpV Re,8XX֋Lb:[}խN ac+;::/ihN|;~kF[yˑ_6xMcAl]@]^uJFf[ti1- ɋg"vfKƺL PS jأn (\X!TS@VYGUWxHKkĮe-P 9qy2r@xA԰չ }B:!ngQ􅅤K Tk΅0Ԓ>4~FwqG8㰈8,vefڶ~v sSI,NmR;$KSm[R;:<>Gcgrq9%e쟬x(Pu O⹝)AhQeSLBз#"O,8 >Na]$Q4v@n/AlQ/YxTL^H Q!HeN~yIRAkAIl)A!'3?rO UhAʼnLe 3cÂH?S(wƹ0bEvQ16j-}EFf2%lģysJ AL#0i 6cDYX(&|MF'#1am&3 aa}<#MAxB)1hG s0?C .O4Ă%MΑŽh)xQa/ {d&fyofIhW>B":桉һxTXOVO`'XxP~^ +w:Ĩu bZVP]L=<r"MH5Œ$^i>%uSR:3>3 (6t? # t2bXfxrR r!N ;AOIa'RvFa'2Ф8խy%UgZ[c6cV⯆{8ޏodZIuJr~;KuM^IUWO DkDU'Ug-MZXO{Cewz] {-ۆq(V؍iT3o .ԑ j +qZ#.pyG1 8iQyeؑkX=MIxqTz=t]m Nn˓j6m)"T*cZhu/ڭYc,>2۟F ++ +fh WNtcTFFXlV(p⢱_h~)&EqJ` .iiV> o"8g77vKS/@Q?-eqI>7c/߫ &;*v̶ʚ)$1jJ~?{Ș+5񑼌@ǑJA*N* m)KJyw]@{ͨfÎ;nӮl4˩G(YAn9ecq<37sq4 ,;EBqƄsf.~^6>9 cg6 A7sj+\'s+y1z zkJ{=DFMb@x 3`̯1УDth\yjY:찢8-'!A'EP=scgw +q%Q *tڥ=:sl&e{3~2,k֕܉[UI'{uqd>i>s"s#bqu@&C B_l,hp .@!.D%PT>4 +5@Vx C ET7FhO,׀׏x#4ECX3V ^/m c~,X*NEũ_i*d+њS[~xjc: T>^}3sY*sOVsڤjU8A0V:SۮJ{[^6K|YnU[ͪG5ns h]=܆is.U rm,I^TԸ5.4MhlT 4xס"7jR"^ϳԲ{sݱvŔ."7ܣK?V#fūD("S٧*d%bB.?l9sv4טfoV 1]<@ p!ckQ*]z5SQ.g KQ_Dv(E inWSZ و JzjEtpI[(Ec# a0Ό0m,d:96Ԃb|E[lJQwXV֐{%wBF 1HM' F6<\mp{xJac*@#@|vCK2^ &|~C_`}|ZT 8wߴ5@Z.P9h;.2a>Wr,;gVL[ᘱgFDvL{i;2vѴ:ii8j]5gs9ŧhyDp3p \1[3pӨr3iy:NAW/z`O*pdխkO +IOSBqv|ilHÎ/KMP}:wG|v\p0{X9H9Ry#P(4Ӫ8! +>MmL%%\t5n)k]0!Y42F RcUwaOQd\_YVs9rKB$\yk-=F4=d: HtґItVijp\=JMͲΦɆJe&#v:B݃{CJ ;[ǛX@s %^w{N,wxmM\ountef5!O{)6[VRKJX{b$'O'm-O) 甸Ji%љ%.z}#J[dJ=U NBy-j wT=j_c%w'It.8Y5y,|jCB*<%xJy Or<91C}L )9̑t#mȣmCYB_Vv'V :q]B.hy 8ۨvSݜ6$dq5rݚD={ jJ{JȔ%ު-Jw$x޳A}hދN4te{&ݍm{mUaK뫶1 +®m`rZmz0$50yX͑-U#`+\"<hp@c=/=%?䮋Sۏޞx6 +l`5K7>&;ĘKu* ܰGƺsE0::5J>.]b +5*Azt(EViR#F:]ƔFDFuQ*ƴѫmxǭH_š@N$+?@(fV˚ O4=liUI+>oju>xoDL(?e 4XT|[7҂Ũ!1"D}t"|r;DTHG1:4U#4[Qi,>?G>Kng#nԷq7|,)f`C/kN9 (Ԇ#Jˎʸ,jd]eѪ8L~8z|h|斕osQӮݐZ0t?OSnDJa9ou[sܡN׊( +;j`Gx$YmvQ v̫~SNQh!K%nYk&ڧT؃T4 aBxYI`[IAv2'6İ@{&!RIvİ*MyN*/Jv3aaP + 26,!IDGjMx)|EsHoF,ɴ2gwlњǑ(F͚ZK&Ř,a@usfgH 7<7oJ)ba8V7f*c +)=GymM\:-NӮx+T'qY!OGEqi(?OYHB:JC]đ "q؅H,J(Ml̷o5LJoj(3߾H/|Ͳ؛"'S% 6%49_n5DdG"UgAt239m|+==daFUx̳yҲUsIRjBi6"lѪvXQaMd> ۲"rmi5!,h2*2 %" #l:K}(".G'[Fщbj}՝V$ XF>,#I{|w"|ԝ΁*+*qB?vWIc""ڸu}%mY]Kmfjȃv枀b?ɦ"=t%&%PuђvHnʬX(lљMbA!&Z[hwu/:$fRa1 o|pGw/`e6=OԝRZkv@5]8)ttŋR))i  8p`Eq}춀#*ǠSݓBO +=)N#]pMB -&lsϴ- #9MnӮvCvjwvjwvjwvjwvjw/`VO +=)pшLdj2W^f|*` +6fZ±_[]^ 9׏F?Vμ 1nX>B</ECGSlNjF1D;şǧ|ָk<ՂбŢ'zRIA +q4{:QL8a-jJOF:-w:Ƒ]by 1fq5f뼚~V4kܚ/uĞ2fX/MphUG_m眛ue095N^XZ_.sEI|1p'D=|Cm>|s2V `Vq'7w#l62(ll`Lx%- g!@lӪNcsǰ)[]H,eI@礄 nŃ4%$eVnc&wTޟFNS «J29'. WhS{c[87Va^g>$ +*6C% C-hŸ~Zjji1 %"C3&C08FXhHڡ0ѱ0vE.`ʕaOFqJž75NSΩpr8jgAj:92\)Ji543(jGhwd3G#{ 't5>imTYn(*ubgeq(M35MӅѴx6OvKy,ѱ+ Y8Wō-_Ue)}^xp eB0CT6>/vQ'+$;%fAԃu@Ar{7kkf +6hUn"Zir#wq3 *Q;y̍S@U +JlSmٟT܀[,)3[Xc/Ȫ~^X+j Īp_5mW9Gz6NPU + +np?@0%iNNb/l8*4itYUEE}2дɼ"GGGGG}#j>4.σKzڗ}Y"گ}ׯ}ׯ}h{ZkS[_/=pn{mkأ,{RI'p۩c50Yq +0aZY %[y/o9{%Zs!dT\3;&hH4|UX2N X~pPSաA g1Р`Cj1ajEіD36 05EL$e7=OƩ6NUʩN^#<%=_TÞ<==TamdE%BW1134r6g[hvb`acY "pG46`qe(qU>񚜯Nڂ5b=gL3kIuV"ȎHҢ@O')ݶ#>.oW/!X81 b'ޝE$iդew:SSh ݪEr>OiSXhϒ<)|y|UP,*gĚז@c)zB>g#g@Ol .E~*69/+7S?*,SWLYEXEa] " y9 1 +zimvqڑE +Ĝ=xhǪss4}R^}lTWf]/ϽMx(ڼZzysǽg^^=lE:cjn-βԶZYN9?Cwв _>1C,5ZCY㶊|veۦߡݗTvGeۘ֡wۢ;ۜ:⺵bjǍH| n2K.4vxA4 jBSd;6 ~UV#^hET U+]v LzMeB֬ ЇmM^J7ފD9WfWNtEҒ'F(iiU*V,4[VeӈťGˮ +.)4(} +"Zb&,[^noۇ ,vNdYX$l:42S +nsVT:ʖ'C"vZlsxeHNot2Hd= + r,m ̬Ȭ2uVw,%F:D N<ڭ'hqDI M-݂Ψϐh0]nn.n?׳ջk{Wt^Dxz}{Y>Zӫ{OS^|<uO 5w\+-Vϖϸ0՚=h!vCvsW=3E`$IGs5g:Cp+@gm׾b}Z˞S9>)%u*h8I> 3:bWۮI|::R8vNQC cd!؆Ov]9v ǢPwcs(\3_WGKI+N j(jqQ:OE#gE`ǻВV[R=h){a^._.Wgo1;t\#tFcKNGyZf7/gǗCGZ·y;юz|×nAKUP:4h\e7-w\& wstCW|ѸtxO7)˃MݡиZGip>`˿YgO8fGk DuGdW?Rۨw0-F=M~t =v!,bo0$.cc<7wY-Iz.0u|BjG`y}qju-t?g!vNDZ= xG 6dcc 9i} y`ޝw'Nػ{wrNɽ;`ޝܹ;D"t(ţޅD w!W[ֻ;8x?:89Y;5n֠tm_G6FjPƈ=./7uz@Sk(xi[G5۽b͘_ |7V[z+_MZǶj-_oaxϋ}GS4-uquw@EGX_pu u)UQInd1& |\v ]2?#+??~=+}Q fxצ2Ьൽ7ܜrzMo״pspY)n 7֊CpֈaB= +T]E톻XSL[Hd?aYBqpyqbIUGU>vơ3jȳk'AgLKgw)}ܩvqSO1cNE1^Xo}RD#( [#Fo޽Y`^; ;g Sq 5}'':?[Sg |Bq8xnC蹅9::ktjGl%EGl +l:} zsD Qyq)-^yiW:3G>az/Xc5Ǐ loHC=]c#ȺjKďMq[Þ^qlWo&%;; +lk !.ʺ"BxT<(HdϏpA#&Ҭ %0OSonjYLK??yp?7L[yW ay}qjYXËEJ^^'? CVGΩ?(9]+CXc'\Y I)3e_:]:Zq}QKKgW]uOi|boc(ɼEGRC}gq>ceGO{zj vL 5솯ոyl*q0?$6]njOѻ\ ̶!>^TT&ǞK?}cbc ;R4>?\|G2%n86.O1 1:Cٵ-:{s^[~^o=.vES0R->95R_ڞ_w_^Q>HOξ%љ|lYM1)h [;I/r!)ɋ~[?}1^&os fyf3Ԛ 9{z?~24﫷Kdy+ ĝ_w|I$$ +$QYEz2hߗ"0~>ok? 뿓9l&2|TzpE92Wz&LPlQQ +2(r3rJCYxJ/>,{c$Ma[V;hLH=2JLGRsf*iFҁ| :yp9p +9к\[L.>[mVch+A +I +CRgf0@Ij%dwL 9L:~W/JHk6ڊ+we2Y/ހz[xdCS`,K #׿K_x z]{ ;~w}qxl\Vц9K_1VRnΛkr=j/ި6QjFr0Km2v0Lg>w,nWeRWo*&!`tMk~!i +}|#~Q 3sngT+37u|%&oAO>75j7u~ DS%xXʔ{^7yCaX `.kP'W4&xx ,jRFIjTV\uBf^ǒ>h?5uݡ広xd\@̐oaS~آ zSWWb͕ /%+|k92tM'J=o ~=`~GZKl-WD"s | #=~e|Mol/۷ol/uhnh˴x?b=\u/z (W52AR4,W B1- (`}X&(Mz:$, =]/YA_ٻa T 뀕LCC8&w4TqҖ4Ln\FAȅ9`P%1~OHL'':drK@9 +cGf.p`Fi(r@_j[ߪ:7%m&(DQb&GPB’aA58PAit k "^iL,+1i,̱ZGk퀴#76,^lǺ2_m'oޮތ/@^9no›/A63 RYdLggwWln=Hʊ }{RHcR9>,Q:q ƕPu+ jEދ4?W?߭nY>rUo6qwY,DCrT˗ȗ_^LЦ$%KDLѶS;2g!}RQF `O y*`bKOD4m% eh#"i#%M"iki*ֹeh.YeTyM@UD{%8 me q3mJGY,no#M)v24X5RI5 2ӄT{v ޒ Xڐhnb$ n1* +4I,+QNqDεAа +Yc)@>;eC_cSp^@s{= j[Xm#@>Ȁg!.6׽pr!wp6$a8Y8Edo;d#S8fQyskO'/e~fWw:{s8:i#%E71fdK]B_ 7[7á- ^zGo( G1[KVM.JA*n.̦"1fT8#^:Kqu!G<{DG8?S̚魽KIE/q6C9NZs2:sxܹ&eUڌ2"bT&ɽuyh"d̵^^0s* ?:ש/ "t QADG9"] =,QHPw,M2KJ0AQoV1Rnd$S@x4/SMA0Z,O>G0#0X4{S`/.r4L0RU(,J CK,&E;no@R +YHp+0_g+?L}J( ݨF*\/q; "g(HWH,- -96pׄ ~U+?(௞胏fR'2HR;T +Oҧ^A:)avϒ>B7Z'\%9W"ߢFle%QT^ I1TʌU[1`^C1PG%iɴ9W1utdnUF(S+J6>zkN*4GE(l:iq$Ok{p@eL騵R0.xZ86EQDS2m~WԦ1IU>෉ds3ѬwDwKoLzVXbA j뿭uخ -vmn^ zrV_`v+=XSn 鏱E.&#]{,4Ci6j1٩3neH=sCiè %j^ݛЦ7h.,&Efaen1V!@Sz#y^D>I"8!{ ubc )qQ$yKhQZ3l$-(dxJ|@:B&=TyI{J=0sá)2V%-b{k:@EȘ,Gե[ORrå)eX7qzKYAUUZ +}5b-&S+oy[c͑bւm|`):MSu`G_yB'\`P4 +_ FM*֟ pp{&&sE}C̐jy&4pE6]]4A-6R)ZGQ+XP%ah+9^E:Ar%]R`) +Q%.EN,PDlCuesDWEĨQN鼙:m(fS@x +=W+S-:ز㺎(]d٪pS!LHZdR#]J|ǐW5n.ҜrHҀnC ֐gX@M6 F_jE:-)ߑ'%j>W +\5 :i)xFnpL&Jҩ #<= 1) •V!xH  `lTDYEs`LᢒA[@̈0cdʠ pP L!P!&)xl/fŽ_LQ9ڞg[|/մl\ժÃS:XiDl%oitl9sFXkTCpvi.V%t7ltx]"\EO7j I(g)Zk@/7YGo"Mկd6v)8^9UL!0A+160WeV6t`y"DXbW>'U#湅=cqa5MgqYvY8H9OLՙkhJ~@kªšIHIq6Q%K1GaW'td!"XE#L#1^tzwu:~ԍ?{o x /P9}~|뻙+gcXŶ۶ϩMeeeFFFƖb8 +;q ) (*+f!ˈ]wΡބ7@Xp*@OvfERˠ Ky[,,gb%@.ś=]FD˚Ϸ%\NC&!hA#f`w12 YY`gR]).2NN›!)0'"ԣDgVl 8UIV~-:_\e&v;L ((LdAGjBաYN'zԀ7JtYzv.2ڈW^HbFn +-wF3> wvO?>P('\:[RzӐX=#0.#JB-T$L8 >`7"'`Ȭg+]@1>y"5VҜ]Dl~pQU'"q: 0)1t YG2VG81!Yx8`A`wBpIvMW1aU,ա g睒\v.P](vKv_i)#,f%p$#JpÄʮeCn42AJnEK`$~! E71MOjE)GH%QE'J $lX%4Ep nJLK82Wo8ˀ9 ȆlddM*7$x*bvlm@Vā:Ӂ'kxreNG'eGx c11ʒ"CV77#}!0:SqzŬe {>C ȇh,(V +0 +;" +I5`2a iCL%&s8\ [p:ДE + + !Gv%A< = ϼ)$+VHc-ExX0%E h8).lKBW;K*bT6N1cZdCEا. B B] 93RB>܏q 8@R$UUJL`2ބvD\o"Q?^c0sAATAS8Fa6)%I,#߳22x4Y[}qn4l} Z"TaEKZlg>xүɗ +Ed/,'37U!i](1<2}` qxQEe1OXZnjMOz~"+x[>D`Tz{V~hF 3@x )ӗ NQ4l4𗘏* | +Ei e*F tgb6"A 3I40vTpIU33yI` 剰AAj3bpa ';Xix,Z8<^qduÊ24Ӈd8HD'B#is'3ՉML"]nb I39~Xx'cw) T%ldYAϞuLt?$8qJoBSq!Kb CT")jP f +n/3P /4 AU<3ox30@Q"Whf8Q})[XhB t+~((K%N +/4 + ʊ?fj~KCf;qq ;|8ncAFwEfڪzFfu ~-_;Vr0dK`68?1#fϙ%#emE1Bl$X"LCZW;'[MkKGaEcqX܃xf|-%M<]5|ؽ7;0[l4Du\3D1;;CN >l&E9NH0tلL&* MxiΛEBԢ^PPU:d +Jxhe;U6gmE +t?ЍU` xYǂndx<ƓQ<$*:%2cطG yu4Ъb.2ΰ!:{˰)t+ NJ,d0m_#tdq!CbL^FCE$I ++3"ZCicaBĴp8/COqpAA=NĻn] YA &cŢ"SoY9ΊlM,2q*2dc2 {c)S'p +XiҤuJՑs~فA57GIGAwB:9+x8%bayy:w>az9%sM,SˠČS8"eKq4,%"9|= + ݙpk`,ȁӓOUo 2pNRa!/7J=3c`Y>fHɺ3ʂα%Szf%:!ҳ_ULu# + ٖ}=ѮFqXb& (P +s,( 㮇EA0sˬ3I3gA9W^jFH/kLxgI_!PSXV<<яŭ>Im2VqE>^,< r6sHPQ05*F"EF3ȘGƠ)2.lg!UȚ=c^>g;BREAdq(a6(> Rˁoӳ N*WqLx TCv=\#2Hdq8܆!n"^AU 8\j&9l?Y`vif n Ɋ{ b cz;8XG@H河4a@>jǮPYnyAn)PN&;A0̎bl]bf*unhf,Chw"a"CUF*B5GRREnK?i|NaJF7l$Cv=VaJFm[e_u_(t!C8uQ9p:'vi]hqmцwR:q4o:c`s]#Bi +o=?]z!P ,}id[d~nq7qILivwMdx:=cUr8eH"y70% ]DQ}Ș`g!@o1 l#A> RĜ$S S80)y>eepR:) #P"8 b.RJ .,f$W3NeehS7{z!wI\_cAN=,M3weIv(U IiY#٫M@x$\\FԍZ^[P8@XaIB[h1E.sҝ$~b N/##mGF@aw =E熙MY*{E?/w*$¹n! +؋~٘G?5 * K>L/NgQS$Axw ˷;܁J϶B4usB[tX얡8 5L*[2 95Dy)+R+/y)KJ#C]hKyX^Z-/-Ut@^r|Ѩ4gIΑΆ䥫Б/##mGF@p 30U^S;]Ļ +V ޭuQt+X5\ypɦi׌ `dZ%>ŸyH38c>hK.XeLGdfmK޾?7Xv͋0 A5e*, JM SDn\P-"%pwqC;07<Lm| "[.<9AcF y"f'>{?p624DZ2VAAG"<>\0"Zq(M'_hh/w#=Iw˄hhWk%f~ڽF~V%4/N?*6nh7X u1ȓ>KŠ_bk& =״Bb C2 YB5I>4eIАy5`?_j~XERu6S;HfAe^$0Y(BR\Ye҇5p9mh\mF5wl7''8|-I?ޔ'>.$ +zP+;v2jў̫׎ D!Yn]K;Z'Zh)ucUVvQֈ. i;ZkZNz1RD7?4}4:Q&C%CTIRPas8阕 rh5ʳ9.a'BֺEbx rSK}WYgYK߆orj+-ʹ5~QZоG6No%V_2SZ$Hin i kFDŽQL ,9oz\)7Vg s6#9OZo~;7$9OʟÿͼھӖf?v#ǽ}la-c~ⶾ'<)I?N +t'<H@\0y&cr3oځ:1C=u_2pƿ 'a3SDZh}b:_ y_c7O}Vp_DfE8U_=hLe_<ޓe-O$O$Mp@=|qKjij*^-񊀙\?d= l"E̊a%Af?7?r&tN59/\,$SYܴXXFwVjLf!Lſy/NZx?ٚLn￈N/`J? GT} J2ϣϗ陮< GyR/De^ `/PO' +p5mkm)\4w"ԛfC`+ZU +{U={if]cpeOJītEEYd coM'D_Da!,6MQN?,4;Һ<QD l0Yt;&p~)x7/_D?_gꞀϜ0ǃ9VfRTPmqv9;dG(+YFN)*b y`jlk5,pCMmy^:u`JNcͣY딪sAY~կҦk͡=:=8Rô FAQѕ(Sl#_KʊŵT!YX@V +6$A˴*@qjRdG܈$6 +9 <{@¶J ]ݢ3"nQt T߲3&diW 0dd8b%mUi( o{}>ipTƑ2kF#({%]@>n1yo"D~"xNA~ꕁmSHN]6:fIuDzD`=sNAA+<^{Z~H hs`2*͹O~SoZO >YϾu|r93YdqZէuzEWBo>:e}l;Fh^Vhl1(*_lUǿ0X)׽m BJ2ae +?<x}sVnL7\`FhEwi,`KzA|h^~{.ZFKi@&D؊Vg?i|nAk_f3TIAJnh {s٬w5د=׿4& ۨ>-Ri$PD|cLGW1o F@_9 'G +1 izkԞ[_\|hTET@旲%`}?_g\|L{s4g?8IFsL ,"|0}hdNOB򡱔Ft GY Cٞ qϟ=B){ZgR~g5nW{~[!|hLZWОȐ,`޴DQ~ o'(GhG!~ٌs=,jCDg{g{py6sg{6oNT =ݳѿe*T?@:$yg{g1 螁{ tI3H c t@ _c7Z? ,tHV,tB,tBc4zYN,tBY?y1yg{zmRgU?eW3=|{?<9=||yKfg{4 ^h©'sm&kP$FS` Zxnv֬WbY5ijoPxOZgӝ[6篍֪⏧^GkuIm6)n\֫ꝜN8 PgPL_}&C30\i5FjsZN6~p;z16O&~QZ79VqDt\_Ã8чל}h@IYCzzfSf hΑ%-׋}1NC= 7?GӬuSk'% &C+;^4s;">?9&s3xnF~ =7f s3xn<7 qBf s3xn<7f ǖfvf ahf s3xn<7f O4=7o=7f Cc s3xn<7[f s3xncs3ns3xn  dv5H|⊍~'41lb7<,L"<CClw־=O~ 䙟a EdΨz@ ~Ctj5k"w7 +n ķ☙?aml>xJֺH>)ʾ}Nދ >cg W2?) `&Lq +c@V"̆,SY<~dF˳!KTB q_Y‡%I6dN!dI9"r&P[G,~ۗZ}Yvm'p,c>";Q-@E^\u,E͚Vm3rV.FDh} +iVumq zlZ@ H/Mߙ5}xqR!,ECusiT#I;Ev-:%CEݶ*jj]syBR[+;n,{ mdS@IJ,9;͑ޭ3YFji=Wl2Q13ETN5cKE$0wmu=Be@{,щۭq9:8fBo4'o2Zzj֞\A=ik%[''Ua7=Zzhc-kN7QxfM1¤oÔi6G}g 7eP%5/V[%ꌙ0Xɴyd7;^DtVI'2 tu9mLBUteVknct:2HEglc9Ul1BX]}=bs8qciZύaFAwsthpv{ 5vusrQߘ̞_Mf^"0oΗ +79aަqJ(Ư *$ hBp$hK  jT5}ՇQm,grwۜ<L |C%B o" 쨘_tPo|#1OhaK0;N鞋/Ӗ3z+u lYN,1 +Q&ʸW_hXi@GNm96iםN pZJr44E MP#[~ּz8]* 5FIkZ뮀@So+*7lvWK行|nxPL =;"4_8\_I#L(;v!yY+ns]݆ +"|'ԃ{Zch,K~6&wCMdZFr# ޓ!R}+F1T݉ VbhA}zeU6ꎅ]b]H+̡!_kFvV 0M$(Wo5c#;qTҍG N{4G`-0)f}ٓq4Gg֞wLcBǼ+ӻNI&GmNAx& BB{;;qOM{z U*,;qG upd Mѹz5f~j{A@~țXwNF\V+ɲ̱_âl*+88l';(H%Sˣhn5XtDE@_׬>cD&I'OA'NՍl@8;Q?]??u^˶?\P^n4Ò x,<%+{]}Y{q5L~,-c꩔9 |<ʅ:<1m#4moƔK +oca.Pil/X?ɯc:u kYK~DX|NWx?:R: و?Vj/~R 4I;=sޜ?||_^Wq^I sņ) +tiv +mjؿA,ŭ:4nT/nD+qÅ?rzGgS?ەu?-7j/{մ_??7J%2CKٿ}p߹z|}9O΂?{wI;?c|fflE)?-j|H3W˼XMospڸ?U,/_v_5ׯ~$-]{?b<8^ϯ$vH74i<{Ԝ ΋/Rh~cu7mv_ճ|Pgٻ08m͟. + i.֘Mse#I@~S2ҹwN5/`k% .+uOM y|p3@ݝ +V$p/|@io^×`ujyaal,z}/$>,\ gݭEnA[.T nۋ`p8\/czv0Ti5xtnzw|h_嗚|y|ەRs_քťzt1l/ +z]ܭBs=pZ,,n-ޜ5&,>b+y]G—KRD_Z.KwKCCXʜK흥ZЯ-U땥f6ԫE+UHR֋ W#CV~1twBv6Ԉ3R?/Rx- vx &\^_$.O0\.^¯ E\&_We>/ԗ}tЖ ax?߯p񸲱?_\I>1dc誳w+/GJt7&WC*nFT7][=)u9~ħVedUG"핈EbǯFň\w|(RU#&=JFt&D/BыBT;<ߏ6Z~s-rvV\Sq-X;Yk7kŵC b 3;fzsdȴHl0Y8nU61GA"0~ bmwx殖{\Yk6ć/ '>!>99~߫ KY/OK[pp2/\-/z+tR__Vb/KZ5Yft@)e>ۉ|w. WrR>9&Ne5l?Sk۵T\YTmy^|7֪jX'='FLw,;zO:jj{xά3p%s~[Jd^ԽAl끕|zPзC'í3]S !szsl~)^ܾYv-8*׸xE~Ǥ8>nn%OG鍓ÝWO^SW]?{+S%m̟\"Bk9l.A~M_<ﭝ'v?RP +;zܫϗKM~Sب_[Qu袲z \2\9QvJڿ:Y m\=׏J+O ux})7~VYfwn +M3޲!p[~(n߅JDvswWlosi>{oIM&/?FS+?+Oa!Jm-dwťvkLq/bgxVR{sRޖÌVV_ʧ%Sn^܆uM\o$6*krryկ+3skik[k^TN&܅7j뷵qh/Ry߭4_ϙ(/1}ikԩҸzs7\RZ%UZcU93KZlsI?>\Uy_/3|Gn,u?-\-ݐ%fn\WqmRc3kNZYa¨TN!gR3jmFpQxb뮚vb}y4]E_P$w}:ҥ+gXM;]St~gW wVpVt;hםaZ*QEof6/7+*r +ݷZ(T 7ӣ[S2k:&7&G ̄6PŁЦ?}IZzG^-6Jw=5Xgh;}B9*gpF*^/v NŰ㨌Vs4,Z,;s:CўnC ovOfng#~ u/0쳨u7ԃ tmHVHMN'W /rQ$ }{%f6GLNfvdި3 N}SBJCkGXo +Zְ +yR[*1ZݰddzYZMko֫5x uv 6_jt17ѩUTjtvRZm + t ke5@Kd2tq]{_Szz v'9*U W jVic +% +`e_/!R!;#!dcx#5r}Ȯ,9rh +nMхRNS8*ãk䮡ٵ]oI]X W" 2;S-+oV֍#H Q:N,ֆLzŬ>'

$:Ftu85Z b#Ry +3q}1ͫGsoH|>vD 90bq ֪7=ҍW_?\OǤqԩt^A̴dqu{.BQ}d$'0/$A#cW.eq/,wqєpN[kYf +f>d$82,<m\s7Ts=3TQ?mh Zr$ekXߣUI܊3oc'a.ij 铄3:8K ;2ZF18vr>ͰNMΞ=;RR5_ HzeSMq]LmԬEx&=m6&[-]=&/FƊƷ=#SއYc 3uS1Z/};3cpψ}9swOhѓ)2Uj*&3ੜaS hC2TQor-q"ӘiԻZLw֮0@ w +Ѿ8M0Ou7{6=i=bZ.a#4ڏda+H)T >zUg:w|]+⯪uiFvcкP֡#Q̖aネ}76Y4:vM{ֈ[hG:?mz4Q}545_C`Av*i%ѱ4C{k tF[!l4]3oXߝͯS=֬nuհJ{doP߇ V YߗzNܰmaRNyv¶ >#iUZy9׾GkdFki3d;'+[Kxv _ -%jZ 理[:Kr:)AV M$Wݍj=悻YǪtЋ?fw7=mmHW5ON^/rn"+RN + \0Yac[Պ|qz{+$;u[ݬw׻Jr5Oʕ "+Dh$Y!jU@bf_w7w.i;n _!o(/ |$Т0\i\P} R%4 + ?^}tB/o_V_T%[=̚&wj O뵇rYtVl~nTqqk+[Gkrn6;- 6yI/y^Kid~٣PdU7\:Md6UUyJm9aԝƔFoMصSe'iV l6. As#rһN\X?RZG"7ԇaT܍w OtbV?N68s mg[*|p돢rh&]x&ㇲcZlO3UODU:I2znkFFv/x"mFҰR̋ѵO'Tɿ6c'tr0aN<^!m]:mKM|a.HO{N:Ĵ&~iB;\D~EU]0D[[Fns\8wF/6J> ylX>>Ɠ^܌kP6PYڗb#y)j.¤ltS1^֯ȜThu QƼx%qk)vh/j- Yu9;η.n-ȋ'kˋJla@ӏaAxnK'KJ,5g$e"DjExzI[3vZJ!yxIo0o6-cA% Q,7Nmv/8=ujgi M崍@< c GNzJ*A#M6[8_dؘߨs/¹vM:Xo0]@c.6FeŰv͂zݍ͸zyGqe8), +zV3t8H'ne~y|WYgO2/A?=+G[Dt+a EگF-vksI_OϮ ^r䠗["y.<&Rl@8'}ZY*.xUv/_kUvWsA؛>fM&D^FRodQY!e\p4t/_4"vRL>Y)$+sԪqԏT)Kg9X' UkBv~3ۉXl~TȌ_.yq7Tm.yMu4Z4V B{3U\ij2O?d|+w^ }륊\ph +bfM/IYʄǻ H'bDE\>\-ϐBcBLVϞU)$3 T +GZ[=#VXbݾSZ&x}wFjywK=sL̏^wҮ #FuXgq:|ٲӭrTW{'gR&l?hxl/PiqwR]czLSn ;,z3@nzb/l W +c``2ƌɲrR-o*[Z~n/wz]{=TEpdi(=nv[Z5UAB l҅'GvApyǀ1n+dӻhvZ4o+/.MiwjJG`/&ob97*PN2Ӭu؊7 )tT'k'gcGl`t[:kT؏QxyҞ2ʢK@[4>vL\CHAT$/;slIdd/bDž~X:?{߹8$zl$β$w;S;sϾH +;;;-HP\ ik29=0-//5v>2RC3ۍ/5Z~ZU=7ȼ8XƾྛX;ǻv28r.\M}=]YDhL?ַF3G~=3r%˟_oc.ڃƓ"F0=<7* ; Cvy86zطev/Z0/l>8SW߆ \Lo8 +S%l[8G돾3۪ Tb.a;{Ok;E0Zؐݕ +zw|[_VG`j`3Lw62X[}"뫉"nIC.9k1Mo^;$m-"F=K?~@߽ƀ^l3 ˔K7rG* so.__aXbѬ=2>vd L>VL ߿ZA)bٯ(՗h/0|F4_1SV"?V7>\x ^Uw,{z{J?l/bn}KXWk|f;*Vgz'+BΊzN?],LNl.NQ9i [D^̊E_@Յ9ѯ-03W _7Yu{tl,Kǵ̵9=^xurlY E=@+Pt2fT]F47~`= 7C&-j6 m+C4qZr_/=}vz+ޙ3vVNl+\nN?+Nnv55uZ}؜=r9|ީ=z:>mJi_. ?j73:u_Gg2:=:3j?FjJ~ʪ^xv:x_ﰓO?fh㪎{s:RXn ':uh's?~?et:z3ӳNW#_N:NzٗzZ_fNa][ilx[zёQ ~y;ַNKFǏZ\jVAz+wD~M$<՞]>:=6ޤ%:- >;t='o2S߻eudlSQs]{u'/"Ӎ]au>4vGַzxt$Ӄ_޾NKs=Y16;Lz}iMnW3|>vF8׿GM-Sv?׿_$:^Lftzo,yXO:;ct;<4޹J&qr:gGV3cS D)B_џyMv44#;}O̴d;]<2pmznˍTim +VHj˝Ι B8lF LU7SEv;zyN__n]Mt7v9޾ۋn/VΞ2=6~m^ ~D6P~ KCo Wոz_]<ߓ }w;ŭ_}kl"ߗg!_3?Yٿ^}%51[js%H?G1?;_>Tni5W_OfR~<2݁ڀY0/N={ǫzCCkc./l^fn[F2~uV15穑/_tT]-DoN\7'UI.g)&=Oo_SY(aV{'׃#02jK;UPzc!YTٚ?6/:(h'?{o9_3s5 +ԩo<#}[t2:uQ9I>:.fJNfx]guzwju]::%?T$Ћ8ӕXG$9wZ,œO$l8#MA3[xehw>q+&?#7{RXGs51Q+'K@.g&3$; Xu03?>[] ԙ} ^^V^I y C~)0.ɱ68C Xwnq))mPwZbP?anNXsGK @-|,n4C:ga>e~ý+ F3?+o{,mȼ =dɢ r32* +Y_&[YѾȼVN_Z|*ށ9;c[z>KȊFs'="mӵWcbғ3 R3qw4ٛIN%Rv[&'6zecHZR4~i*o SKJ0w@;pC}_2iټ^1MٷsLJ̢5Ex׬Eoΐ3o;r<-:w: Z C_q dn4 1Vz#J>V&J\F,o$YVpg0XsV*hAڧh\9xEUKh-}hu֠v:hJWj'48Zq*4n v u6S% -wqwlwrAarZgn"SZi/C5 ->ɈZ<<;:&S" :F1+<;zxD o&.3\^(5~H(D(aVbrmй~Q,MJRJ2m#Wj\IOyRjrȩW(,#Y;ZkQ9&r T';"=6o[+zɏ]kMf jOhJ Q"{ ) ZQ )~b9x);yP\ސ; /$uC#NԀ(6&9SN42޹Fh! LC` CKhd"R-idRs`;0F,gax͐O\(u`jS#M|z/@]j!|u!5ZY\]NWW_/7N ͉nMR^ujEyrLN< xx,ZP^<j;<R2fqR w;.w#4K@Wb%e,FuY\|"OdoY'੐Odv':e y4:3l S$$Ǩ.Dr5x27h\kwjdx<5x<4Y!tr #M1rʤѱcx\pԍ֝lNk'#J R-ִٴܬS7͆J'5N40,?SS:H5u朕X˾A#R/ u%";N7"R1^TlN4 8ͯHvԖF'Ǐa0 +NǺ +G=K]µc,_voA NADp$.EBc峣WcS Zzz_Id:Cc/j8 +MRQŪ5w,p7C3쐤Fת!NTHhSnUf!n,E5IKUKP:m-/.y&R0z:Pkqw-WYRVFzK^ZAe[Pl?-9Z>k'J@kR_7-w+ydo rEB]v'To,+\~a+ǧh~9qMmo[cƃn˺-o`%1lV/"h_Iiz|9id u^HS KFvV/nC Cv\/c-˯q&YׯC]_~^P/_ڊMPƺ~kU^:רJ֫ee9k_{Wk_SBv]uѪ+^ׯ}ec"z3J#÷[{ڐe迿Hu1lEGI] 7$o=YmUHߪM ZfGipv{H4?Vvݯ՛|K-Z>/m+ ns#Gg_꽯4' ߿/'}v'Xu^Ir2*#pΔ┇'stǀzc gL[ղzV-[>4j/M ~FV̉w/QFi8XRsY1ᇙqˁLiPT~kazkbx3W}!lЫKg.di4 nЋ@ADʯO@7qd#֏ǚ9q{HwZ[N%U]ųI;?3숁vILf*dʶo7hv Gx&{?`5~7Ayp6,iYX +&]K&챕` >.<͞TF#1̇ .,&XlF 3#c2q3fi+V|{msG1EvR;U8~YV~."PA` gK85#lI>@k ow)>̈Zh):F#>U |]<:Q48r5s +G^Iֵ g:_! +u$*S;@pۊX !Gs5GBKXdTr´$ y(yW{P{c sS[rc/n(XQP@C,glt4efl&t bin dNAʭ#Eqͧ?Ui}5br"xΞ6' x3 +TL6רqrozUm|yG%&5ַ8;y/1,'k8r_wǀAlrfmlt l m>>t 4l3vVÜ5S)Ѐ]6o7`ƣ[iwʔdUj1T`iUM@/uũlOR|T mcRrzh~mzYr{)й#>VcCiUbjjqtLO-O?@kedwlkLNxɰW&OƁ͏GFؐ;N G#䱕weJdW[/9Zo0G=}2DNxd<қpj&I.ۋeIjâre [2*/cv7e'71^P!YI2*2OfG@2.6`姄,4eNTfQ !>NHHIon##sSoFB@*|xlf$후Jm&(3t!=>!CTH}6{֧xL40µ6#H,Nd$1Eǐ:<#:c# 41gnS4P0jD h.0璣Xn'r\9FEe܈Ju7-hӠ0Z6Fc䎢^:ݖ XogƤLE2 8M].++eH<{[k 6(lS1Zª6RWT5ئbwr 6-T F +T \ZP uiA5ئbԚjM`xT \ZP rt`~*Ͽ kϟg- F}-K|3>iDqeR=[q4ϗot_ip sxcn_Kfg zL8_Fs9,/~x_=S:ܬ-L엞qOOhp<7{*OOn{ endstream endobj 81 0 obj <>stream +>?p{O=ysu{f~^2zA}d-qanF9p|C8ײ0?# ?f=%F 1͞F vSLl3)ܲznC r`C+sz3|0 ,A'!BVOD0ӱ{&m ԖCB/ly-ʁgy&,p⛖߄:n9 `^a d3iV>0U\ZHykS%`\S2,tOR2 +jYe@,X98E;e 0, +z((C+dSlXiC 2ˆe|0_h´]’4@)\X*|>mܰl!fju6,yKKµl3epBstaCF҃>xh8>\` `P`ь9]|ܙ> ׳{Lȧ<Bh# `Д[\=ڞG ˷>L^q!!>ƅa6ܔx;S[lzO0CBo76 XzרY"_s "LS0]jo  "sVڸy)~S| z=݃ߗϷ{|?a_L G??Woȟǻkgu?.?^.<+z<^>!|ƒ3~&z0o^odMmԦj:'sjUx~כcEEm +|@3DDW_õ~mXHA^QaKIׁC 8r M b@(\~{OCp?zf^rI0DŗY}לjKpi?7%gd;gdcu^e:\d_ԹpAG2(UvL(OsmUx#.Mϯ˛?hFiNN0LɁ DX}ن{u !j  GnE^ni敀x.Ç\@M`c#|sҷWrm' .^b>-5 !!󻸘=O;O7fAȬ^o^O' H؀ +Paa0%3e1ZM?郤X(ף EK P !-JZ`(Y(dI^M砼qqX ħuz 24EfȏѿH`6 YDoLój @@Ɓ:boۄA-矔ES(D + 78Q.}/=_5 l%M_>)oC  !0PP5]Ĺ7`2o2@~BMiËtٵ |6ֻ\,%? W~_OV`&-QpbٮTB_GfMk.ޠ< ߁0IJ9#>$C6Up,):ߓZ/ Z@i=R#?0_7/I=| *kiQy骽 +0]"*]MX+dXبi5^}(}iQh4)/d>et_,$Jp-  Ɉ@HM hN&hx8L5=t+؎KxwPEXp}-5 0đqH4n[ʸ-Rێ#a8M X4!l'Όھ,[3ԦR yMxɴև''YΊSIg?lW '" +N)e}!_c&\o! ]"E*xG05 AB 2M5ou#vpn p8Au 0?۲$euVHh3}3"|. +JCOtDC&4ϥIҭ=HX4DjGIsz9 TbJQ5bVv=r+I*AV*Ix!41DS@]xy +da$hgRiNO#)Kɸq>')HoU[2x1%9۲ $CPN:#,~REҠ N!5ˊ [ +2GG% }^$N0*w$G40 +T!$/Zvc .Y%ShOyHgYZP{9J`d=rhq}bSx *= C #bx:'#%;5)]s`jm)㸸Uīc!su1Z(:6,B`0Ef 0\r4gGoD]){YBA3_ A-bC|>ugNAxI`wSN٢q6\F3^}!yQh9v> K)\OAz+!*in("p}T|`4C`T<I+5eh|`jA]>Ha& +kOM԰iG ܣcOzSOyN ra0a a0RzcVqDM#sKauO$[C|toñFPFW)G>9jY)Kg3]'J?0@t5s\!Fь8)$r/!8)P џ +,$O a,UB^,^rLI5ZGh6¦(.;'u.{gy )`4c 0̲_aiP @%L!)dfqR QA2d g; Ӧ"iJ\Ǎ +[P.t XH#_H`"iX1h: EO?6B<ɫ!,K`[\J `;G@̙$O=e*j'P O B|aJM#h܀y"7)6ˣ|eЛJ6`! 5EP*U=Ӟ أ&x5 며S1Im@K#=!H#@923`Ț?Sg*Fπs-,'F%(a8Ranh] zC'cSfD OmrX5pL>yBn/:hp~-4~ԺC :f@2F@5 G [ #tNt $>ڻ)0LǗGmtXazؘB5n@W60.Ku"@34v@lsL^NLYBPB]<eXmJ46_n}]94Gӕyzl?@vy>8{m=Vt?$ٱ[H60PKs9F% OkS̕1D ꊆ9< ͏A|;f$ӫOShz'WMphmDmc1T0DoĄ 8:ԟr%=8`P#G a"qT4R)n>|f!+X`}v(@!ElxFauU&T ,aG X*r8dNU"d;uC $,w`q4#<뙺o{txJ=ClWAq+0L|Ys'HPR@M6SVɽ tXAFN /<t +T6WХWh>1crLXC0,U1y Ȍa*Mt|+6&H%,+zSaBC%)5pD@U~ $;yA!'Z'ɞ) }m_zOYE ^d$(}l "?ge=LAXrwa' ^ y\HT^mSλvD7hk@zF9 F =Sƭ^M-:7?sJ2TyȺrlxh +ȉN/'%i yU9:X:Dt}`, 4%s,zTx{6<|zRR)0!dYAO{#)cKM][_Hݿ-iS&F@U-{e~ѧa>NtC\n_j&2Y֤G-^b>D#)T'1$KuBKLaCJG UK>K$2u, +k‘de% ;exJxR.>@)# D)`XÛHBy}1o=r4}3=F%>'qVr*:gUgjAIsHq34-JfN_⚩t*bdjT0k mbV``HM$Be؁zR"-X?TR -3j j52O2T3l-WjU;ŨZjԣj40<4D3`CLmD &&Z(8GRLFPVluY6@ML(2*O{81Gr$DQ(0BN' ,^ꓛ:Sձ޲˥H Sc)ڎk]uwЬTM4uL"OgN:Iʷ +"pEHVm +2{hg4b[@ǏHiBi +,^듾|җ`sY2AYb3j;^STN*iTT] &{9qGM@RݐP Iwt!fe )*X%E?*e"qH4XP=@h!Q2H;D9?@3mN] X3)Yugal3 WULyL(b9),Aϴ[.5Ld\*$eTؖ9Dv4Q*L CV +, fPw!0ǞY 1lIai4 ( ~Qk]G(y۾Ž+\* F9Bجȧ4,q%ˆ PQV*+֢Z׼–'aR"t`@,BlLNf9( ^ .[Eĉq)31aV8"29=`v \IKI3GZY@4=gz8)̓ji@5H>jF3@4`^9XdNLHUHZ|KI V5m Cn92:K@$<$"#$=!M(@TkMhYf֐ +\쓚5)…ɃT=Ā 5 rcݼg qƥ +Y8*FRxC`0~:Laq-XZ,e^N +G-r:b:a 7 IW*G" ِ\M3?!@$ǗS?3f 9698WM,ZTT>鲄M%25%3eb$N"+7~[SD1 dAҸqol^?a4'uEgH):M5jd8MJ1ЯS'DZ%|VQDgA\FIs#,C$ldE&a*8JYØJ_Q?e_ 2Px:LɨʴCOjA\vuEtd\ChK!Mү#:K-ƞse:HbЩp͚ i,^"Rlq5&Y#s.sPLdfSŀ(|,IPiMCe>#o8whx,H9_<-HsЀ5Rȋڈ)J)S?d0;qh@& +[h$Ȥjģ9K29jV^UF~S]:u"Vmǟ ki5m-$_#䴆̒- X''fAy]}eCu6dȗ RbŐ@Q6 fz&'ZT0ۃ9zjj +-րHwD z*0`c]d}LbMP%jP:.T@uuZЩ3dph P.@dߣC?JWB7BȤ`S Sj 3=mY2#BʼntBP-E0݉k`X !02-nRcU0Au7լCCU :Q#2NvIhc1*1§`] RA03{zj0ID H{*< :M4Ԡ-Br4`JRv# +5!m(Y$ (X)$mٰy 2"jot6FYKE‰7`0Oل !<ξ1 "0aD&0BlϖiE:f§(I&ROJ i +UlOH7rvEt:l ScЪ+R,wV Z(=4v>F܌` !Z5  a|>uTޅڰ)[D,]5Fyuz +B gPLb>JؓM13\߄)3H¶4R6-,nf&TȽ9\F{h!!o(CZąᖧ+ N$/d"OB@Ą)IN WV[ +7U5?ZS.G"CF 5}we]=L',S4_) 䫘%= [I95cb[S#3x\[ny S)6Rv^mRĢ+s0Jc0PȀ kR^EnF<5n"bWR'0 i%p#9Za*.$P*0 k>J&樵%Mr;evmkFdI%Fȶ$reЂM cf3\hPiUd-B'Ց!eMj#A66pc`ֈ0\)X`$ +" ySCԠ15C28m  ._\b,1j^D MG8qBNչV( +aaXw)MS&:Z! ozaC !j))I+t)Bo<32 _aÉ`bn5 ۽lSܜ:|Lîdv'`sIHA]ivhn9d/'N [vv^ּJBW gC [؁$лS`)@QRbStپ y!Hb" +(R TT۳3y2rľlt ;TK Pׁ*9LZ*ѿaKpN@֋j!j UGX96y`15AŅ PZ2恢(='} A(h{DWJHJM}p|hhRchB>yk O:@ԅ*\qctvp.Af,FXa"hZ#EDLQ'<]țZҀJ:bmy`ª*6g s'+5e.ik! {gNw^:~.2t=,,كB"NGڣ9 B(y+ɺ/*M_"rysAMiȻ5403,\ƽSMPJ $Āp]CMD2`%nٻ!O{SD#̯m>Sb%LGoӕ0)xQux  =Ί"Ro,)Gm\*'2!6~uTb?@>3(ѡ_Ж-Qr= +o6g_sGe}Emaޗ0I8'y6zHJy須"Q:Nkܭ#?xO#^.E9*8~gjɼob.?Пa6Lֈ28?\n@ N Lua +52>mY@Y1ϙ3@5NfE[qU]H'{\U@!Dav,=Cu$S`&TV@a1 2Z!W --*|V6{x+ ;.S"qpZTٳ~kz`ʬj|&R$^=xLEך " r1L96gUrUqÇP+J":# +j +vQ-lb +#cO26l7G\pBϥn8'PxD#39M5 0Hkj:sڻn ?;}?} pA[ Iȝ1v>䷇vhFV "^H*hmVcYX6ULw )E0u;7[cyTr'̔aJ #4- W2 hedp M;% 0$bB. ]7h "0і3aL!owrPDU+,1#)U)7N,@HCc4yd\'ZI7,yp2F&wÖi{Y(gV? +2E;xNP\i W^UzWԉ}d +T\P>mf\r"0?ؽEzTeeTB@ PNϦfЉk_̜"OS ݋b>IJ\A$!Ko9A0oɲ'1V4xjP +$$_C#`SqC͒C&?bDרt))˧$4@4f(MsԸL !9\Zm)rz޴HdkoH==\p^q6STLcPq$fjF}bBA؄DN3XEcKHY=FTS+W$.M]YŗPXqt~>j2)3d<yMqN<0.LjpWK hdmOe&ˆ~x4͗7/N,׆( +rЎr=N&0p0r`R;8':E*Lh@_–ymY9a2 k*Ԋ]jOI̱Arqħ +eJ +72`B:d:1PZS=6ј"&^&o|$ ˄zVzAA,&6 {r'$4QRM0X*f+4%|k$h(7pBj• 78u%1Ono9q_z L SM^p;҉E]iDA\/Qfr#)ժhԔ>.%8hvL!W ̦ṵ<2$d*y(cSM69M! 1E-iJKX=!!ψu9H Uw8wLIQ=d^}U*UQh/V=߱^4u|z & Ibz]}eqhcqhd` ϚjW>=oRŞZjf< DkAbtMb TH5YgFe;ZW}0qn ȷw o*1( +f~>^y NA@FfT=9]efĭe%c`iyYc8PNS'~V $RNdmo Z2{|>Q`nF)t8oPj"W<>`٠$/@WPsd"J V<(Y]% +*Q>pK_A1f%Q%X+8"4O5#+X/-L+lyTAkRtQk +J9WVn1 Yƺr溕. +0Ļ(ZJk2 0ݮvۜ(=Vnk{F`p> H&o MWjC4-dNQwNjEj98vhFE~Ȭ@WQ2(};w'$maF@xɨ# 0= 2J $̡br 9S]"1lCLDLB) +cKz^N@B>s $o*ՋNT`YsgɐNVw`FAҽ(e]q:V0n\@YumABEdgY^|"@|;VK pmRRs۹o<3A3F1wٛUJDN씗 :ߌsl!A0 n +{$bd$Q k$_wt`lgI"-d5nm𧝺ĝ~(p A9:֫=TE44I\3Mbİ@9UVSP~ؿ62ܿxXs؄d ytY@j)Bc!8AO M^!6kp›AmܪB} +R`ڊ}7pED`fkק6hT 3at /e ,4O;H̡2~=!ޚ;7vE AKWB-$p̩KGeWb܁@P  8!\Y9IFsr X85|<d D(Ξ,)$ jՑv +tUY%TY( 7d VxOT+,}~tÌD*D%t{ꈁ5DO5C|Ly7_ĊϘ,T.Ԣ UW[T>Q{S A|$F1vA>I%`#K`hFc f퐗@iZ4шjӚ(Cj6}^ܝc^,ێ}8&ڱt@fsDaNy 5RT#w7"ѫ7os9<|ӿeSm6hLN\:8o:QhL(6nC.:lCl`(ljS6mv3R5TdЩʼOG!äP3 H-yuxAԹ #iHƨwGC/כWԖ!6$P[/ݩ_(18Q.^+; XB@x$B L +Ш鄌@$CIc/r*[P vA˗"C^Q)y E!+]N (Q +&C:U+,0rFH&xљ6A&͑ 4}&U?Ov6.o Q73ٍlMvߚnɠ PfjH'̢zrDL!rh\ +b İgݦݒPj<'WCgGzֈ @h& $xʀٙ1uI9@*_(vʦb;c׽#/^%-h5d +$6s lzM >MA,CdB)U`H"3Hc1;KS`fjO;׬1Wl!8^nı Dg[c p(e/T{Bk)s^#*zm5 +J`wXM#"K!mb5Df 2fZIyƾ7Z$OH ~7pOno촲h.]0h5PVW)7@.@?SHrgрh| X(blh5ث}CU\R6R +mW)(LZo@?,~E4!2.&G/t?4S*l*bdH2GaR9vR !EHTjʿyjT %bɠҭԄu~5f\bXdL؍Nf1'\.0bة~$,Qs։J 4ymNaτ\K tvә|6NP<%\Y#Sl| s9p-AjTPVYk|[5Bd5O 6X.jDaMV_v@.bze Fhĥڼ =EgLqk=Ͽً-/_,pG? gWs=_g3q>>xnx"PI_͓{~׻'~/zW_|ſo_'/g?^}WVoPnDj񋫧;N cWN~1Kd٢chGpޏVbbU= U71 k`DYt)0|eMX"jKE_lmA{DUkAK:n6$V|DH\JPZšitɭ+fh)Zò^ !er3< P%ֵ:0{`Z(tl6OC {z ~ V'< (P+5t=Cn*haURڹ%[BCTވח:Mu ""j6؇,nza{H\9o6_Z1 eb]Y = w(xƒ_1`߻ݏbf5;J o')+ ;qv%c8Rڌr c(aF.A;X!BzUwc<~k@H%6{$b^+yHRxN1Dmkf{!cli䢩34$ЎPN'hÂn(sz5إ!c)~Իq+>]ƅ>cR0؉;4L !y z; Re#Va0aIw}B@FPlg={y. p'ŠF̃zt݇/%A}X^};pooZi٫=x8=')gQLt_OBcESAȚ$->W^vmefԴDIe9,'夲Ie* fIe9,'夲TSYL1tU~(*MeA̜+wbDrRVNʯ/{ =OIY9)+'e夬b*ɥ+)crJ}4eշM5?~b +;ß4rXN˯/4t>stream +H 0 +O.ϖpB(!*@pK$إ?D4m\bTCEUUf9Dlh `YOeC1؀eD{(!0G5 endstream endobj 70 0 obj <> endobj 60 0 obj <>stream +HrCs?VMt"Kv8I&ѕB!B!B!B!B!B!B!B!B!B!B!^ruB#qH!0g!B#qH!0g!B#qH!0g!B#qH!0g!B#qH!0g!B#qH!0g!B#qxq~qsqwqyq{q 񿁫#>98C(1:BB7{O=܎1z!PwqGw`m g-&Zm!p)qe ѵ/!}!pq gF!p.q` g&}!p"q`_7F!8b gC!Tc7C! S3 !p1C8Cs/N58C !{qZc5tgk#Wrp33o8T`<U@x!_nNgx8ÓLc A\s \.8gx,gʵk;qrinN\+ gy aF(o!"gx$GnBX=GJ pJၨ׈,pS CE{gxw\g%qu崱;gxMxCF6Zgx#A?Eu_[y_KC%ފI 6`,ᝀ?k>M8m}$oΝf_:nwlw/gVJ{dw].~@Iau,P\2r+'$*ZVq +V-]]qe}S([gqm=I_M% + V^m crdIb?TH +lf{GrgSK,(, ư9v/ V5ËdFGd[ JXPZ tsl^۫l7+r6|*r +V֟"H CX&lXjVj6[}2?r +VҞ(Xw&lWlV&/mt |;JJPX7@}W˼% WnVM_ @cW]a] +9--A+g/mޭ@-F}WkoLT+ܘ4'6[1]=@}WЙ& RԔ\`&/v_ʾ}?hK9ݰZ[ u U?/kR%Yƀ.V[ NbjAyi\j\4zWj9b;Tyz)eƥRyc,K)Zl*W'KJTUV崱6,K)^NBbYy\)*ʜ~Ƕ,K)^JBZay\(*ʬ}jhr)ȵHgʅ:ʇv\J-\7"s HjrL0;g\J-^3 {tRuphQ :2;O+}J +V9 +RǗgGR*_ +u?C<# Ѹp̜@\FO|2g~bs*UJ<|lBJ\Z^/L*QÊbG|HQJ-r`/\֊ /[QP˖=,j<&lPӥJ[P|Uӝal3rp\BMtn& 囫MWZ5(eR[-.A" 5 vBN%.h(\ҐpҪ=Y/[yyxwvYLjE.ܥQ8 ~tC:*ޛ9&͘J/it?\BKM7]QҡaLe]0[xxϕoS Ch).>,Xdpg`4Qe]|+g`[g996x;^6IΏO8DMY1[xZxr㗩lxFxY4}fh\g}';` +AH!e=ǧ}fhF6LgBHTm)wGmKfkkPU8\ +rwSaq3PWoIw]-P0>![~OobFͳ0WsbcD)O;[$vU!΀3X0WsbD)O;[$V`̖߳;*Ge<..мӼQ-=>Eb +ly=[xGaIB͋-I-PtR4[}Ϯ<2Ѩ}XBE@3' Uc3TS:J96LKBH^tXӴ.O[ xQ 84iô`!E8M Gߓ ts8:m,iy!]v@V^O~ 46j˸Bɋ qI@Ia騍簴12BbJ8 h x$0tsX:WX!y`%N{B;h @z{c9N;UBH7X^N)z^186iǸB+q5Es:j9, +,}06i˸B+q5E^gP:9,̫,}08jϼBq"LRV(`RGq<՞yz +n)z>pQaig^Ep%yFkާ3&usXZW\ y"gw^S>}08jϼJ(1kާ3&usXZW\ %zMyaz5E:9,̫=or%Pv{MUW$Π_O3uo IAC<%2Ĕ^S)nC=I9МxK㪃KU3C<9Bh b LNV֠9N;U&osk @d_k Qac\u)L`V*kFМxKCHi= *vzM@8Qac\u)}#YN)/X/pJGi P:u妮;F E@nyaǹ/=`P冮;FjeC)A. )b'Wn押QX$= sei)%RP! +\w#L +B{E)rXڌ +o Ұ,$amy9L8z(<`!b- ,!"ݳ4&;J + ae IN3hAl} \dP"( @AI{+ƛ&!D#1pfߛu{2a +rBhlD0'#!MiqsIh; =* :n3B~m d9-.Vzi"o3J٣o{1vI7v* XSZwfM5#4gG|[d'.X pRۅ϶WG1$ Ok!BIuhFtI2N 'VeA_%?1A/iHpRC;7DB4" 4n,i ;7FB-и |젬6OxcT<*DHb>F F]ix'h T?Hb^ +KzoB5 +@'8\~4nN.H TF[V7k>WV'W{t*D';=T:i.l7( TCMva[w_^^'{2@DK>{e.VEv}Nb L2~|7V#y^^ emwrehҐqF6-{]Dʰ̏}ݟewr&gpҐqFeR@4\D'y.'V_.ϻ!+ @Beta[vF+D%7vGmFB2S$&Sʰ' [ILx#2P aO:;ż +%VOX44Ƃyf)X40o\'y'3_F+Dg,y\gTrU$r\ %VkxG`)ur7!{'4Z!jo`9ڳ2 u#Wͽ(j TNtOwZ?O]FkVR^{( C|m&x-PS=Нb)^%H*;ՈH136~8- '*=5VƋo[vs +D6( VDXr22)Ұ2=?~ х_0 p47nw4* +BA%Tv@xJDoQ 7w6&Y@W?IĿG'B0ׁx= o|(J?'gĞ\gM;@F qX<20A>i :l gPy?x(³Da?q{ ~.8ѕ2؂;%L;?eЈ{#<~2~/|Y||݀ vye+I$x*kD=64V| gfH$ʱav1 r9<>0:' +(JV#YgrKy8o}cT2N:tguH2ܧ{FA+CȨC(Lַ1+: N֥1:'_utg0:c[!QS=xvtJn|+wcܗR\P<9fnqŶ6A@bS lv72r0~:9@9c;}% ZvDy/K/WhS0\\/]#n.8i-#xm{z»ҒFoY]O;e1~j Nel!:`@ LUe:o>*30,`VYX\ixypBX?BO%4F$%̦?1ʠ=Z׵`m('ŧԡ(袄[ W e$~&v8# ˓,Ŕu.R5h e |g$)@,fa~E h2,ZPjXX|Zz8׳aZ!|ַ`2k!Q[) +z2_3Ο@e I{PJBٖr 70nϰ?j`h3sq~Q bvu(KD(`DabeXC⥔ϣDx-kfke0eHKX C1l'+!2ئ>_ l/՝ҞBd2(Y?-uBLʌ2$kLbz8+7vQye&0K?gj/-𶆄Y>eNERP]o|ZQPa_93{i) Ŝi|6ԡsq!fYlɳyʿά`Q\n#!Oڹn?n׺_qWY\>r->_iqW\hhdjZh4V҅VF(Pp~H[ 6"24 - FcF+Ch4Fh4Fh4Fh4Fh4Fh4Fh4Fh4Fh4Fh4_Vq endstream endobj 53 0 obj [/Indexed 52 0 R 2 84 0 R] endobj 83 0 obj <>/Filter/FlateDecode/Height 300/Intent/RelativeColorimetric/Length 18384/Name/X/Subtype/Image/Type/XObject/Width 1050>>stream +HyTTp1XWbTTjcrԣ%Th(AEMl5=`:uKڄ=֥j4%VS.l3SF@~7}w/77xvͶ.hhBHB2 d!$!@BHB2 d!$!@BHB2 d!$!@BH]6=zkcK zBV뫬UvкYB +$sJBu:cbH-@Tu#=ֽ\? )A2kI9s}@cOH \qمX 堕k쳹#Rd ^3 ~0 u2=5H`w +cǴz"'u, +k 0cZO;KJCieCF`Gә%RGBXdByEʭAZO+ɐ(A2pujY2:i=&u5H-R7^:$_l +1ՠ:o8 +8$4b@ :q}"%HhQ?C +OՅǰZJl_zd=ΠH  >ݗ`}Cu uf +$ԙH/`~u(QXjƽh֣?#Zd¥Ky[wofȿe?I_xza8fevk=:cin-opOxC-`\ΫCfn&e\k^^2V ʉ)nҋ藎d7//I~ ,ɭ^zA.{Wiܐ P%o,d.f+Tc:o;u7֓H[uo#Mm1_4'\52neR$C2ބK[ {&~OEHdḱW]̓@y픘 \dйVzi[]WʑAɠow,ErSjvym \dеqJ<|S }$ g|dг%Զ{͓J !tC;zi +z$IlmTa[ɠ_o/eU u6u\"d@29,U8!=}93Z{h>ss+jn z̼}]BT$ tju1Q +VZ0 k=XO(H]u)ӌME+.h&@A62n5^Bfz #ɨnsG`C z4q!-381 ~T S9h$uHjw \K~#qMYsc W t(%a +5*rKeXbˣ 3> qB?1HgMQd`pAw%o5Rk#\x,u/%Mt&eF Q!{r^|KGZHy zF s\p\"YzCA$Θ[Y\\.8\ gYɠ3 ;x̓U~\pב2/$?2BX}%2~UL!)FWl:>0SºUS%-0K ( C,ZY5w o`Q簨߬JM7R'Ѻ!y[F0Fv1b UeF]37wbʩF|qp!y~pubE9w/t/nY0w7w+6,yEVJ[Mp7Zi9Y +;cxKnRZ7d0-7h2Pߡv2݃ 6CԖ;=|0M~Eolŭan-orA~¼y3:_ G7ÓAƕ `TX~'6CcA,5"B|P됎6C2<\RӠ7T",?B c }JxJ;`1h`# efLM%5Ho)IBm)_'⊤(aI_ ^52Ӆ/⇫qe ,Ǎ8aܗ ܰ ڳX臭n/G qhʫd9KUD  ׂ;i >bfO0I9J?dNEgx!y ~|&8 r+Zf~`4v3SQe4Cww +͠-j q"W`)}ر;J+X6 OLnwnP\&Jiy,tޮJ4|X+J߰h*9$r9ߩf&7CD\ ɗIP~Uma-@ed)b:L5z w"M|<͚Z Z ~u* F3hOȧ5}qb6e##Ό%1f͠MF[ ZTaiMi +i8$cXjLzVv$cv'np:zoZ CYޱ4|\qFgJ&vFɻP1g>vk/9ky34ʳfoz* kU&ZDK T"6C{>Oѫ+%w3{hW6aNj$A4Hp)|zU+G8[m-xr sM \&cKتrNhAf> SZ PCphGgC3!u7o~Й*P؊Am^֫@lQJole'-[y^af Z@]2/ 0>E$|-xqgl3l8]S"u9zf}t8o$A*+T@nDz!UlTcM4~,ùxj-{ ףOJp7R\3yj \ZúLaMthfyrEofp5zOl"J ݝb{?/4C{ q=\3|0j+G+yB8弉=/ֻPf wddl dZiMD̂.y-q}t[ Ck5qCDfIz124fVϫIXoڳj=&+2Qˑ/6jRfGH}|bqEpdjr~{'^ c ̒L3$Cմ]1sGM[x܌`;4i 3WͳbmfH3[D|bPFQ?ԋ DV'C !s+% ZiEAt+?"+@a]3Lc1Xn/69_Ol(k<."s-_V-fXnDJSXD-zpxL"+@`]3|MIHS\4CI9GK Ol(S!NM*$n !z11[pC!vL$v8piƣ!ǘy +X N0X<@sm _ɺ&ܑOl(_vIc$g!J}8fHiGb5̨8/ +[ Y >ʡꩶie]<"4,I:&?éGҴPy +2[[0OxB&Q z5tv,zmonZ|dӀqcs-dSTxQvE限كޒnr|@oQV) +$!]@> Yd-^L3 ]V䌦M(Hbb-rG( w`́t34X=_l$bGf~ + S$a%kH;$E{NujV5C؛.6g̃(~BBHd))LqZ +:AVUDa@UV[Z@AV6AM",!$@}o>_;^]A(P}\jK< y W0N)i3H5i7y"W2O~5i,-\Ҳ4C@< yE 7yΧ +ۏO<%moH) NW + a&}jj4yZvNfh*G=KMz:XϡsS<%mQnsK7鞂YNK#OЂCOB^.PM>z&; @Wȓ~K4 [Sҍy㺥 WwP3r ` 6%`}e4i\u<"y es"Sf誾ۢ4bE L5"Ae4i/<$Ӫ2 ~{ yNcK[=Ww34r?0bj֧fXE%DӲc4oL•3g/Xbѹ\`h:PSbğ15S3lbإHΠͰC2$Zd+3g|Py]C=pҧfHP"Ӥ2<$Ӫބ!e φ<nEJaJdH!&`mh$>#+o4nA2'&b!1x! vbEJTb>3$&`˺.Dl31Xy3D&Y9=oC,t*ou<4$ܫZ7CJ3CUŲcM t;DOunrb Snky$X{EJΈOͰfO ?W\>\y3DJp tD*:7[d4`p8UQԻ1"WϴN?W]iٹfP&쁷K;g.؃V +4FVRRfL:DLa FA%zyZv"zJ+@&AD<.0gAsFWv)36.Pd*Ͱ"]$*^#&}jh"mỲÛ݈o2'/]<~Fת +,fKY??BfLX?a&}j4G[<-;GDX0*EE7v'R}׻Qdd0iاfx;~ +kG}Mf-Z=>%;j_fhKDOP 6`?'N2 +!)WEyVJ>dR,fiڧfɡl`WeˇbN2 +wd#\Jڮw3)3K24S3 y]ҲaۘN2=r&߀am?@R ROмSlLjiگfEfҲ((9,&8hl.9_q$Lf"ֹD͛7!Yr ?ҾRT7~moGkzXO`W|Gg3/N'7 f֖}g7h Ff0B)S93XXF[/s4C2G%ϙP~c0+P֋%#,Uo-z$*{;-yxk˕[˙~rG%o&Q Bm0B[+ConS +$ 3W,iuݙ N UJkF EGfqvP:J؂ZĽ +upDUմٹ./^py pe}dACY7rCueZs f9BVmKٴPHI 壵fڊt~9%>y'[C%`VVmR-f淕;- Wh3d +GW =`!+#4ݥ~7{@Co/+W-7,fNxB3TqyhlmਯP13%yu +9O'2kv\TINqAΌG%ƕ$&v\FcZ=Q"艢fƌq CEG\nVz^>Uc1cV D83(錋;FSڧ!S3t*,w4O3(V(tq#>'*@::4xaM6]3tmS3ysaΫ^:C$*RǸkG).LH2` +r^gPo@@>&bWxW^*P*Ԩavjd h4FY=j][%јpIaҔunЙPM0uQWrQj!Jce *QP8?gvWxt+]kq|S%1wԭM;8 u*,GJJmk/Pb jg@#شSQXEz@93tL;S3x/W=aOF@7\? sng*3^6pk3PI41HЗ4=cth̄{sng@3X\f;S3w)XC!}AJiWe*׵V7'w8+Qx7 h_A8e(+%"pR] ]EZsvg?{ƁS.D h`] 3rzg/mJv"|cTnG#mPr&YKm, PkčeXMd΀:JxD[N x<+uRcٖ~|3aR3 ]2u5Q58OG {-w1J+w,2 k@9֑M0Rʵ>}5MSsM yH/I> X%S=pnm~[*xXO4/BSR3 Iɶ (8[n_jK o`Tv3ӼO/bT;n軕qn+0t~e"Q'n >#/*C8B)kg@u\z' N׿Ѧ2⊪n]:BJŖ^΀\^`KHE΀ܒruy΀2fu%>Eo{"HA2:Ba ֣T spga>'U)(sj~gIl\޲C nkw"OZPt,BPzK̎5!PpHZ@?D_潃kY3D/-p]oDH'# SEg&cbd}20*|pu^7ڡda ]ϚExW}=5LGmoV^/Lileϖ֜IIE5`q. SyV;͍_ WiX \~/sLzje秭&a=C Z6|ܴ֤1 ~3Xi.niYYi ۡ1aE`^@V*3hEE ݘ躥DVC5샶uD>U,ʍ/_„1j g.t%V4S*jdO„ǡ֭x^r'SK\z Zʡ zek+yR]](.VK$a7 ZN&LJMl Qpˡ I1u4{b.&pk*As2iptiJÞ VsYVhNp QOYJJ3r,Ұ=Gm(s' y:\iv_w)gK5h=ʗOn )`\~fLsۄlڣ +GZQ'Qt(1ʅkH[k p0̴v +?L{B,ǢWP܃ִ#Qt[)׭!̈́2#qy:' xkb99/Oto/ő8 +-Hl%P אm9ǘ췩;J3|ٸ~ +M+9k ŽzhU3Hu7I250_GWauZiY9w$iNi93`SXW/;geIm.,ghQQfGo7l} !v~ 쀓%9C2k~Xΰac~`i2t~"?Y(ȅRr K~yBe9C-"og)<443zF+_.g *WC6NʹtJg lfY~8C\lsST#V!϶6J z\ ZH\ "pBJzR* ҊFbY:Z~c8u[gp뭏)h.Aށ7Kp^u -g-%//(̗Z"Lz`m{hʏ<RCs/ g8]]{u q1s >lELut;c<=f ig]_&fκq| +Z9yD)jݵ +эc<YDTDK][7(J1qbOCMhUB4.uMiCwQ @(~5d|6Fx9|0Û:xe|-Ui:G59ؿ6 .K4ӠruvڪKuQ鳛pH I L29'Yht&O,P0?"j!O?ebf&! δ.\~k "$xRM(;2nxT{(;`%9ϬiU#Qkś[Cſ`N\묏Cv=Dž3]A$%o +G?іŴ,`_sq g ͏W6=SnBnoQr?<"Υ&pg;J:t3LAHnV!k+wU™3h3C[Vf8rYu;m*JZ6$D ,E\+?{PI(yTR \+3wR2M6n2K=~Žr;)X1*H[IفZf&FL W\R;32Cu1jGa yX&&3ted(dY)U]4|Q*v[Wf-`LA=f|&_hfϖٝZuƢo$$/(_. رQQrnUKv7Tm|IrSiZ`xta+vbnfxARS'3Km 3r12` fW%| !)e`WT9w!U{-!>{f' +C!˥B"/Aw % g-њdQ +[ 2^T/PU)?2QgmL^fS +=@801i2 \0y"8OASaYA=%:Hg!1C&$$+dfb'٘x:rȃDT$dV0lgqW.bp!ʕ})Z\Fo/)uߘgu8H 2_e*7h-^>&oi!c>ܸuB:+AH&ߡvk{.s#wy↋$H:* aQ/m7$p^Ah FhC +*{UA^hw-H#5 +\S؁/}){d듛-P0 gu' W [E{aջ 7 !>ɀ-Enf{;Q&.6Ѻ55gp0`:wiwL @$5!T +?@`L FLX=XCE[f{1{wjru^f`{X5G:޶jLdNpJu1C*}-I9bi7u57]5f ( 7-#3dE\EZ 5+F3؛AjA>[%<3P ^nɲꅠa( 3# Rw+6tSO//ov'F" E\T5@ k!ǴI^|@rbTRr]`o\a \قp.,)Tf)9&Cy8YQ:3n g/>xfqqH dhap_l[|Yzj{ {ч +%ɽzG>N!,*v^=y@C^%. +6 T}r^3fp%§%~ #5⇀듛--C@5P܏@ځ듛-\~T S\҄1'6V*geOf"iRwMI؏"V<~KAXLŬgzQ.lg2د򰨎$^37(' 'וa=UƬ}D+nkԍxd?5$1^5`V >1*(s1çǼ~]}.>D'Z맯&TUoPfhd ¸GŋW 죀+fO59n4%ا^"3")U )#\Bf$ivQb +ZNNѾHfl>'|PN6 +x2,Z +]L[ OY痶,KԲ׆F$ʰZ2g6JEU^1 J^`F#f՞Q3Fqzx]0^v=R.]nR~=ahue%ʂen 8,.X \A\:P4ԍab:Rhz$qhhT_cMJ{RƾIdA yOZJ5%T+x QzI f=aqx0JmRzr8e f (Ӈ )U 7K5yΥ20D'5|frs "b`ch:E{}J09&ء.HPU +=L>IYRQ$Z\zv!^jN⺴ ֮y-MAW@=r1B ̗D7zvō0?r$ocTfk o-hx?mK{́Zw{`O9 > +P3g#G8]y/GFBX$ut1f<0Vs*;3@jgx1.k9F{kXor4rfPdR +?fq U pU(4[b܍rAfI.xSwz!jŒN-y;Zx 8K<>wme`ƿzҌQu($|fZE.꽛c"|~Y7CV7𱇛m"hk]BRݕm-3@sW5[fmӴchJs,iE3 6D] !UlYlv,23i%'[̭YRT-x}4kS <O4 7S> MD2I9Wi#_o^`YgŔ^&>9`N.g3S96c^kLhQU^34NO3QXiZ]0aR_z34٬H{"vȶf`뉔7 !Ulmm] +Vw};煔saZZ[r + +v^gdb=q ¬.M!:RB'6̼sxs5>σ#^Idž!8a_z +jI^>8waћ; +!4m@ME{#|K A"]vq16\ler% G݄ +>ʼ|a 9?B;N9:]^&[T(-7gXG Rb^6һdoML3U:0pbRcCvmR:6r:Pe !m:["QZ]njΏau %m[zH(cy((qUe,+Q qIĔ>stream +!&dei endstream endobj 82 0 obj [/ICCBased 76 0 R] endobj 67 0 obj <>stream +H\WK$ )]d~ ![̬'<_EI/~_~H?qܾ1a;on_>#){|`g aGŸe[>_oziu^bz?-|\2V>{swq`mkv?G<!Z+iڍKrN<FX.mS ]Ky-;.l]G8zZ!S΅u iٰ>/Hyن,ݥU`xƽz:ސn`9eq9-(sE\!b"'3`wz摳B1+@(Ξ Iw +RaXt\y +VYz^b ɷ+/0 ah? q8 naul0И [<Ϝq j:L.m ׭2&81ʰ)_50J +bcwG (#z%IY9^M"'ڮ ̵c^c }ADO1;FfL&Jv&|Q3^sәl;| +Net*9/t-zD~6>q=3Hy˜WHޑHUSYޡd(7˿ j8b2ɑ7B +gh2)t@ YE:Ǧd}nb7ڈm@ E +kC\D"z0R^C- &/S"օ"Al@YkoqJe\|=\'#R}1*_]A1kEVefB"'5UT.#4LtKX41D,6| jJ r@1mc7j&|i`Ce,PJDl,ʇMxZtQ0kp@ YQ+ X!PsnSx6rE@ DupŖ 9 +=@&,m4v2xPBcu~QLvC SR6E b`LJW24h-LТFraB2QXU(h{U}@iH}ۃ[;kLa5TΤ! a1'4|8V '%Tu3.j9|d_HJh"CS6`Y޳귥MyĂc1ڟASOX|TUD'I,-]4k=knլފddVVwJ!C,6yw>f1naS{LA8ް'jxE^mVL$vL^qM*C'})4)V%)J䍮S z(͈&@zYP.I44\qdYqOH[ i&"_D^FXejE9*_WwȣXUMxV4X ک[L6tV+AQ?I陵6 (:̲FߐW k7U!.1inU͂X1RJ㴢l@9>HOѺvt !N5~}2XCmt/zQ|͟*}j `FȐyTNoi=7e6ŷ ۂ&_|]6fpzAz{UV@ǵ"*x#VԒV+Y?q_ +N endstream endobj 68 0 obj <> endobj 85 0 obj [/ICCBased 76 0 R] endobj 63 0 obj <>stream +HWˎ$Wt-LZ>uoXÎ?Hw 0UG"׏Ǐ%#qqˇ?Hg--|_oxaGŸVϑ5z.|vy=әk#lƭbٌ,KVǖ*gWL#p3eITz~B]+r\ٽsj9lģXˀ 6{LJ|>}AŃaMpXO|g8^>'#ӥۙJ 8slP7̄;Gǒ`*pq< +Ua V^6]t (^gIT׾&д~';  iOHM?E? ac.r\15,pp k;Qd +.pŘ/4`e-} ˈhK#5B?c?S T䥙˲7GIMLzi^˯.vT +$ְjQc+(wGȎO8*r!?On5W$}.ŧ F`^cg3r :F~9>)_?ZH1mqR3okdp|6P@Ll*=V6YX (qh_ ))^ S&!QM=|zO5aAdPImPP"6Jj x SwYF %M5}9>2,j#$BICy,b71LԴ +Q'd*q{\xFOFz3j$TgzGwz/-∄mT; z<n&ln@X|;)\~wu+ʼnN(%YP"yK\lN @c? t"Em''wND`!-=l뺼!!ZBRӾPRmhJ8Z+erJ>7.|o)om$**hJ{eCLSyLɾ7OйgFS2|e!*Zq 5Buy._EJe,o_{n1A[1~ D%ҙOz%)',FbN(JJ4$ّ47Z/WK$+%Gtutq7}ܴ3sV_ DeC4Ƴx~ELSj{Ȅ&fdUFͼe?++yyG0 koݾ hoF+Q5Bt 奭%"gW:"ljpLei 6[EieAteGDgxAh1DMuyD751&UI.Z1$;\E9pqx7lDB  ut1IRu{$)@ $q )nǜiQ)WI%e++}R)]CKD~ fWv1"<]d\C|B `A=J{T\bM̤.wrdhyDA ,hz BieIǪ* *%/$zS̿[[Կy1S$@mX}h' dA9LՍp !`nw6i]^3YA2m] +HAэ`!_ I[))q-Js^r %1-+KAr%j&jgDۆ8^#$;3[Q+9!!.}8j 2ߪ5uJDw=o>s9QT=haw#i'SX +[ZKXz괄wZV։֘q]%4ZZ z/^/R1fCEtkyRMeWYcϼ_Ua-OÀ 䢄6]y/,.;Ȓ BUQ{BXWL9u +nqP.X# +nZוh.bVȓRub3f7?Ϸ181G۩h+2;9 P{Ooe!1Ԛ? aufjsW=o d +-vI;EmGI qkQY(~&9~z,u?y 0l endstream endobj 64 0 obj <> endobj 65 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 1 1 1 scn +/GS0 gs +q 1 0 0 1 35.5254 34.3291 cm +0 0 m +-0.003 -1.098 l +-0.004 -1.535 -0.361 -1.918 -0.796 -1.957 c +-12.531 -2.984 l +-12.925 -3.02 -13.249 -2.762 -13.309 -2.393 c +-13.252 -2.713 -12.971 -2.934 -12.628 -2.902 c +-0.805 -1.869 l +-0.416 -1.833 -0.093 -1.489 -0.092 -1.098 c +-0.09 0 l +-0.09 0.088 l +h +f +Q + endstream endobj 66 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 1 1 1 scn +/GS0 gs +q 1 0 0 1 22.1172 32.0664 cm +0 0 m +0.002 1.088 l +0.091 1.096 l +0.088 0 l +0.088 -0.438 0.439 -0.761 0.877 -0.722 c +12.612 0.306 l +13.047 0.345 13.404 0.728 13.405 1.165 c +13.408 2.263 l +13.498 2.271 l +13.494 1.165 l +13.492 0.681 13.101 0.26 12.619 0.218 c +0.885 -0.811 l +0.397 -0.854 -0.001 -0.49 0 0 c +f +Q + endstream endobj 88 0 obj <> endobj 87 0 obj <> endobj 56 0 obj <> endobj 57 0 obj <> endobj 89 0 obj [/ICCBased 76 0 R] endobj 91 0 obj <> endobj 92 0 obj <> endobj 90 0 obj <> endobj 93 0 obj <> endobj 55 0 obj <> endobj 86 0 obj [/ICCBased 76 0 R] endobj 61 0 obj <>stream +H\UKn[1 SDmݢ~N4@ܾCI @F_rfH?|;ŇS>bx 9s<0~Ŀ=k̩+3zW~ /bE. +(-u! Aglद&)0|_6TJGI + +Q,ri sk*V7:Zu4Y 9mOZCP> endobj 94 0 obj [/ICCBased 76 0 R] endobj 49 0 obj <>stream +HWˮ\Wl6_[IVA`xMTU)!>cN?1]\rZ9]]}לn_S>Z[o07 %2(4v1lz4/ѭғu<]QktŖS܉wԎ +aZڱ<ٵ<õ(%ӄ~wޏƭ+tqn~xV_46Zc5,3Վ])؎*ڹy F}ktW5n}-G6VySM~;pHRƹccp΀r:s\938ۅĀ.FA{-vmV`Z, 2ӗv8u QpؐN]a T!m(  \G0 s'uqLqa:2fpGC-nKV(Ba"Auk*l$fp6 ]%£WT-}SN_?Rs"zEM+ҘR p9qhp47"_yxY%:*RE'BrW3 \Y[26tI-nbqG|Sxɏ% W%&iw7 4F4~Uԕnz9?$,K#s \뫕G2XPzfћ8'{`K!Y\ @GGjT\sE$VZ=~i݅QڽcP;Pr0W0Xq&YvV]eMP(Wc;05-"̓s"2~y%07 9:8an.bA%͏f)L}c@mY^Y?QW]jD]F^CI{^,'þ eIY¤Dk:a;g-%g5whɱ-Izg0?{fsb7=ӄWWJ֙d<)%aBдLw&QV\5U*| ,͌&7ITN0KR/zٹ4\aFEU[N9Oe,[EUj'.V(4*MU{ +_r?/u";y-)گQ͂D>9#+̮'9 : P^Y=m*OCG`m uUpGK%7B 40^5(e2픀-覵dڂKGr|D1W! л3(~$FLB_#oHhR dX=nfo=†xYޑ F)8n Hwߔ<кʝX `Ͳ7>C%5,Epb:$bqL|r6Ӡd#lsKȭCqLiMgqh9R3ӨLlS#8ϸ8K'c>s#T8+ڈ  |F ; +ݝQLv Uu N2aXG,R|E[ԏp#ͱ^{DSI. ^놩MW9-/ ,ܠ`1| AϨ-sժSxc!cb| |m$ +D)f;DNm9/4•U({j7 y + +*fw&h[ m!> +̸+ՠ@gb +g昉 l fVj%=VrMwZH&tNЫ̹8s -L;:ho?b;E"Q$CD|d>j"]T}WA7 Q۹9Ueܯ1yU[xΒ;B% U,Ҳn~ԫ +ȦNHYaMjdPDmwȰer:T{/rEzt`%U~br`޾קbZ'T۷es&GVNPqJ +#4ۆ;Yd- +U,"FE3k0>ll1w|o`jx92έZ:P< մуZ#qާ T~<֛DtD~Rf,(ic} h \j+^g])މ5\v N?jlltVAV$OL/@ jg檵(ůťfHX6LVӾm*gW֍pum&Ⱥw@:hxf-i6^Eu +P[ӋuwdcTƝ AshM2 +b!<*YaA; W߅ ֆ_j_Q5 L?էA#ʒߪSYKC*ti +tIK՛ Vl3͖ARv`GqIXoaa9 +zHjJ>yIAoM ^Ԛ/w{6馯smˊ)դjfx:Qqcd +<*j LʁXKҪ* +# 1W6̝' I|VxŨ> ޸T/t92cc$vmɁv{:= >)M* TyW7֫lڗd.I^6 mEr]i`3rQ=VkY NZF=Ыɖ[So̠};ӳ +S/`dE)| .8|K `C^̙IQns6ď=uXR9 Bz؞65w$?uxF>Ӄ$m_'҉!1QFrgl!\a +' +M#L< +1ˤl5\vE5j"p@L>7Hq +Q2Ra5 +q* D#yB 3-sd!nEUd(yj*짰 ($23QWkv NPŨ$ht4vz+ݞiqr4ZL! +~hJXrdH5h)l8|mB$ Cdv>n~[ уA_F23yl^qrnkPy`+;R 7dɧ?fIYz@ib=@s'CҦT:_xJa#qd3 iә_ٝ/=Ӡ6Ww`mv 9>q`ҏ0Ym'*Pf%J# 4{zI‫!qYtϲ*=Uyi/xSUFed3W}%!ͧ9bO=c_c>(HԤ(knN0e5OUk 8cV4aBfߦq^(Sպ0M]X0x"NԄ+IXvʠJ t!7[-9o[v1>bҽ%~dS˫}bVe7>YwuYޛ$M&ttx_MBI2]ImI=yJf6/mٜ}n]\OIee+i&Y M +!ҊL2՘qI8 +\*,WSD dgV q$xZC "=E~Mf +Lޫ{ͪn$K䯷7=Kَs 7/Q1Y~yTP 9 +W.՝ @"A Z]*Ow )gĢDpde釖f =̱pq A@Kҥ>#}0۸bo AB_fGרt_{rva sjQ?g kMl?^|z.9cJRf;([_ 1x#5\>X !_wԗ͎0r|!v/n3{ HQ$֑/m`\Jq/ <$ G5;s+J?GESxޫ:bz0A=}|E D<%rR( !JAt5sc)((g}$CLP`vi EFV{Ӂ¾Ԁ׆lTğÛXߩ5y=yro3|)ĵ~(%b܄g OnF'~;}H>/CY˴+O$zz~y: +Bʦ_$Lԭvۀd];<n}ryEçIG웸Ʒ d"塀gW)t]g+{{'!I?zv.&uCzQ|~ B8q,$,ODdVuήf;[>WՅ8*eD Dd8>B=HF-pƪZ>Ml裙6}H6M" ;06ț3Rw$gEӠ45i_'P I_+vX^ HbgЈ ~ fCK1<- dX"v mM\X ++N +"<-9'|X MbmBPGK?`H:nAt~)b*L/ ze=@ƃJ.FDQB.r.GdVL(`F5@# hc`U_ l=įɢyPQuAM~o`[ " =sC9joemHq!QDGznu-ޛfVkg՚[͌Vъ׮aTME +XbCfخƌS#_W/(li_FigsYb,ޏ3X\a6b ܅|#̒xa6^YìޅY=Y3K<njXXZbdi"~o$%bvJOTӎ❷j_P/J-ҲXgOKrRSOt `vV/yui'';';/Ϋ;ًY9Z;7wUŠ N92agT\}Gz\ {~<׏q=ّ'iukKڡ厰=<{$ʲYǼwo5エRgV^d߿^~"Z.9\r;=ׂyRE_~ ӧ?~±1>d1Jɂt]zX3-sDAނ3)g+`i-܎t-m+B`TLiE [+M* + _Q^@4 ǖ/œ*:S𡥍IC9bF3EJ0I%[YO-f>UnUgh.q ھ!W8Hv5VP7! +FEwj*~8?:~613p;[ӏVF +1Op[@ S tp{)7@eԗ +`|ŢolBX. 7z.5Q](:d +qz=FU&2O3o]*6[vݼ}!w|`H1LNab:m@!І*^3fܘir<})327dvnp/ [MU9~_K+kE ٭ ,SeV8z&V'r/!\E~E4!dHSbRHʮ3AT\>d4񡕼8k &0 ?kE(%},MJ|]L>[49e:f2&w𺢔@% +^4j f/"o0 \hVf7F̩A* 8aT)Y>] endstream endobj 50 0 obj <> endobj 20 0 obj <>stream +8;YPg0lFl_%.r+N5R%;oqLcMuF'bL>knfL/IXpBC]=!le4Tt-cRRLDS+bBsDr(]i* +2PMN`LCEPVKOf_bnT[CuT.l=k$^#i=_1B40kmYKt;;A]Mrl1ZA#Qc'bip<8 +Jo2Pn"%p+dZJ?X:)MViJHa:stl3CrG"0;c^5DG*MW]*OS")u>7"-IQ@g#Ypte7ia$ +"JiGd$&%$R"Ip0;9KG+V5#fI2Ijed6aWmE_ +@RZpLa7t,LDm!c!&`aVlG\ endstream endobj 22 0 obj [/Indexed/DeviceRGB 255 23 0 R] endobj 23 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 58 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 1 1 1 scn +/GS0 gs +q 1 0 0 1 224.6885 34.6367 cm +0 0 m +-0.005 -2.255 l +-0.007 -3.154 -0.741 -3.94 -1.636 -4.021 c +-25.752 -6.132 l +-26.56 -6.204 -27.226 -5.674 -27.35 -4.915 c +-27.232 -5.573 -26.655 -6.027 -25.95 -5.964 c +-1.653 -3.841 l +-0.854 -3.767 -0.19 -3.06 -0.188 -2.255 c +-0.184 0 l +-0.184 0.182 l +h +f +Q + endstream endobj 59 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 1 1 1 scn +/GS0 gs +q 1 0 0 1 197.1348 29.9883 cm +0 0 m +0.005 2.235 l +0.188 2.252 l +0.182 0 l +0.182 -0.9 0.904 -1.564 1.802 -1.483 c +25.918 0.628 l +26.813 0.707 27.547 1.494 27.548 2.394 c +27.554 4.648 l +27.738 4.665 l +27.73 2.394 l +27.728 1.398 26.922 0.533 25.932 0.446 c +1.818 -1.666 l +0.816 -1.756 -0.001 -1.009 0 0 c +f +Q + endstream endobj 97 0 obj <> endobj 96 0 obj <> endobj 95 0 obj [/ICCBased 76 0 R] endobj 5 0 obj <> endobj 34 0 obj [/View/Design] endobj 35 0 obj <>>> endobj 43 0 obj [42 0 R] endobj 98 0 obj <> endobj xref 0 99 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000042704 00000 n +0000000000 00000 f +0000187913 00000 n +0000000000 00000 f +0000042790 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000185588 00000 n +0000000000 00000 f +0000186119 00000 n +0000186167 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000187983 00000 n +0000188014 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000047209 00000 n +0000188099 00000 n +0000043290 00000 n +0000043646 00000 n +0000044092 00000 n +0000044450 00000 n +0000044853 00000 n +0000177996 00000 n +0000185526 00000 n +0000050192 00000 n +0000047509 00000 n +0000151068 00000 n +0000047396 00000 n +0000176902 00000 n +0000176153 00000 n +0000176296 00000 n +0000186680 00000 n +0000187210 00000 n +0000143526 00000 n +0000177060 00000 n +0000177899 00000 n +0000171863 00000 n +0000174892 00000 n +0000174954 00000 n +0000175486 00000 n +0000169840 00000 n +0000171766 00000 n +0000143284 00000 n +0000143464 00000 n +0000045207 00000 n +0000047147 00000 n +0000143249 00000 n +0000047280 00000 n +0000047311 00000 n +0000047544 00000 n +0000050266 00000 n +0000050462 00000 n +0000051586 00000 n +0000055752 00000 n +0000121340 00000 n +0000169805 00000 n +0000151111 00000 n +0000169748 00000 n +0000171828 00000 n +0000177025 00000 n +0000176091 00000 n +0000176029 00000 n +0000176439 00000 n +0000176688 00000 n +0000176474 00000 n +0000176569 00000 n +0000176783 00000 n +0000177961 00000 n +0000187878 00000 n +0000187816 00000 n +0000187754 00000 n +0000188124 00000 n +trailer <]>> startxref 188293 %%EOF \ No newline at end of file diff --git a/images/website-footer_clean.svg b/images/website-footer_clean.svg new file mode 100644 index 0000000000..affc804c6d --- /dev/null +++ b/images/website-footer_clean.svg @@ -0,0 +1,197 @@ + + + + +Layer 1 + + + + + + + + + + + + + + + diff --git a/img/favicon.png b/img/favicon.png new file mode 100644 index 0000000000..ee01a5ee8a Binary files /dev/null and b/img/favicon.png differ diff --git a/img/footer/angellist-white.svg b/img/footer/angellist-white.svg new file mode 100644 index 0000000000..5c52f3a832 --- /dev/null +++ b/img/footer/angellist-white.svg @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/img/footer/arrowhead-submit-email-icon.svg b/img/footer/arrowhead-submit-email-icon.svg new file mode 100644 index 0000000000..0fc1e6c978 --- /dev/null +++ b/img/footer/arrowhead-submit-email-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/footer/docker-blog-24.png b/img/footer/docker-blog-24.png new file mode 100644 index 0000000000..d04768feb5 Binary files /dev/null and b/img/footer/docker-blog-24.png differ diff --git a/img/footer/docker-blog-48.png b/img/footer/docker-blog-48.png new file mode 100644 index 0000000000..efffca0ad6 Binary files /dev/null and b/img/footer/docker-blog-48.png differ diff --git a/img/footer/facebook-24.png b/img/footer/facebook-24.png new file mode 100644 index 0000000000..f34d73c7dd Binary files /dev/null and b/img/footer/facebook-24.png differ diff --git a/img/footer/facebook-48.png b/img/footer/facebook-48.png new file mode 100644 index 0000000000..bb213a10dd Binary files /dev/null and b/img/footer/facebook-48.png differ diff --git a/img/footer/googleplus-24.png b/img/footer/googleplus-24.png new file mode 100644 index 0000000000..535d879acc Binary files /dev/null and b/img/footer/googleplus-24.png differ diff --git a/img/footer/googleplus-48.png b/img/footer/googleplus-48.png new file mode 100644 index 0000000000..002b3a9032 Binary files /dev/null and b/img/footer/googleplus-48.png differ diff --git a/img/footer/slideshare-24.png b/img/footer/slideshare-24.png new file mode 100644 index 0000000000..1734ddc7d4 Binary files /dev/null and b/img/footer/slideshare-24.png differ diff --git a/img/footer/slideshare-48.png b/img/footer/slideshare-48.png new file mode 100644 index 0000000000..3cdec03402 Binary files /dev/null and b/img/footer/slideshare-48.png differ diff --git a/img/footer/sprites-small_360.png b/img/footer/sprites-small_360.png new file mode 100644 index 0000000000..92af5c7092 Binary files /dev/null and b/img/footer/sprites-small_360.png differ diff --git a/img/footer/twitter-24.png b/img/footer/twitter-24.png new file mode 100644 index 0000000000..2acab394aa Binary files /dev/null and b/img/footer/twitter-24.png differ diff --git a/img/footer/twitter-48.png b/img/footer/twitter-48.png new file mode 100644 index 0000000000..75509e9750 Binary files /dev/null and b/img/footer/twitter-48.png differ diff --git a/img/footer/youtube-24.png b/img/footer/youtube-24.png new file mode 100644 index 0000000000..3e100ed5aa Binary files /dev/null and b/img/footer/youtube-24.png differ diff --git a/img/footer/youtube-48.png b/img/footer/youtube-48.png new file mode 100644 index 0000000000..3837d3d2ab Binary files /dev/null and b/img/footer/youtube-48.png differ diff --git a/img/form/check-mark-green.svg b/img/form/check-mark-green.svg new file mode 100644 index 0000000000..4f4efc67bd --- /dev/null +++ b/img/form/check-mark-green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/form/padlock-icon-active.svg b/img/form/padlock-icon-active.svg new file mode 100644 index 0000000000..9518bc6059 --- /dev/null +++ b/img/form/padlock-icon-active.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/form/padlock-icon-inactive.svg b/img/form/padlock-icon-inactive.svg new file mode 100644 index 0000000000..174434a3f1 --- /dev/null +++ b/img/form/padlock-icon-inactive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icons/README.md~ b/img/icons/README.md~ new file mode 100644 index 0000000000..6bd32ae6e5 --- /dev/null +++ b/img/icons/README.md~ @@ -0,0 +1,7 @@ +### About the images + +Generally the icons are created in .svg, because it is a nicer format. Then we can easily convert them to .png as required. + +Using imagemagick; mogrify: + +mogrify -background none -format png *.svg diff --git a/img/icons/caret-down-create-new-icon.svg b/img/icons/caret-down-create-new-icon.svg new file mode 100644 index 0000000000..a07012c629 --- /dev/null +++ b/img/icons/caret-down-create-new-icon.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/img/icons/cloud-download-dashboard-icon.svg b/img/icons/cloud-download-dashboard-icon.svg new file mode 100644 index 0000000000..031da70972 --- /dev/null +++ b/img/icons/cloud-download-dashboard-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icons/comment-simple.png b/img/icons/comment-simple.png new file mode 100644 index 0000000000..034b6ec465 Binary files /dev/null and b/img/icons/comment-simple.png differ diff --git a/img/icons/comment-simple.svg b/img/icons/comment-simple.svg new file mode 100644 index 0000000000..d7c4206f79 --- /dev/null +++ b/img/icons/comment-simple.svg @@ -0,0 +1,14 @@ + + + +]> + + + + + diff --git a/img/icons/framed-icon-checked-repository.png b/img/icons/framed-icon-checked-repository.png new file mode 100644 index 0000000000..57dbeb94f5 Binary files /dev/null and b/img/icons/framed-icon-checked-repository.png differ diff --git a/img/icons/framed-icon-checked-repository.svg b/img/icons/framed-icon-checked-repository.svg new file mode 100644 index 0000000000..3598f1a67a --- /dev/null +++ b/img/icons/framed-icon-checked-repository.svg @@ -0,0 +1,33 @@ + + + +]> + + + + + + + + + + + diff --git a/img/icons/framed-icon-empty-repository.png b/img/icons/framed-icon-empty-repository.png new file mode 100644 index 0000000000..cb6cc59865 Binary files /dev/null and b/img/icons/framed-icon-empty-repository.png differ diff --git a/img/icons/framed-icon-empty-repository.svg b/img/icons/framed-icon-empty-repository.svg new file mode 100644 index 0000000000..dc2017d9ef --- /dev/null +++ b/img/icons/framed-icon-empty-repository.svg @@ -0,0 +1,14 @@ + + + +]> + + + + + + diff --git a/img/icons/framed-icon-linked-repository.png b/img/icons/framed-icon-linked-repository.png new file mode 100644 index 0000000000..cf804ae47d Binary files /dev/null and b/img/icons/framed-icon-linked-repository.png differ diff --git a/img/icons/framed-icon-linked-repository.svg b/img/icons/framed-icon-linked-repository.svg new file mode 100644 index 0000000000..fad0392967 --- /dev/null +++ b/img/icons/framed-icon-linked-repository.svg @@ -0,0 +1,24 @@ + + + +]> + + + + + + + + diff --git a/img/icons/framed-icon-normal-repository.png b/img/icons/framed-icon-normal-repository.png new file mode 100644 index 0000000000..801f530699 Binary files /dev/null and b/img/icons/framed-icon-normal-repository.png differ diff --git a/img/icons/framed-icon-normal-repository.svg b/img/icons/framed-icon-normal-repository.svg new file mode 100644 index 0000000000..b4a8898107 --- /dev/null +++ b/img/icons/framed-icon-normal-repository.svg @@ -0,0 +1,19 @@ + + + +]> + + + + + + + + diff --git a/img/icons/framed-icon-official-repository.png b/img/icons/framed-icon-official-repository.png new file mode 100644 index 0000000000..e60afdb858 Binary files /dev/null and b/img/icons/framed-icon-official-repository.png differ diff --git a/img/icons/framed-icon-official-repository.svg b/img/icons/framed-icon-official-repository.svg new file mode 100644 index 0000000000..8eadb6fe10 --- /dev/null +++ b/img/icons/framed-icon-official-repository.svg @@ -0,0 +1,45 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + diff --git a/img/icons/framed-icon-private-repository.png b/img/icons/framed-icon-private-repository.png new file mode 100644 index 0000000000..7b12785557 Binary files /dev/null and b/img/icons/framed-icon-private-repository.png differ diff --git a/img/icons/framed-icon-private-repository.svg b/img/icons/framed-icon-private-repository.svg new file mode 100644 index 0000000000..e13fbbdcff --- /dev/null +++ b/img/icons/framed-icon-private-repository.svg @@ -0,0 +1,30 @@ + + + +]> + + + + + + + + + + + diff --git a/img/icons/icon-device.png b/img/icons/icon-device.png new file mode 100644 index 0000000000..c45e0fef35 Binary files /dev/null and b/img/icons/icon-device.png differ diff --git a/img/icons/icon-edit.png b/img/icons/icon-edit.png new file mode 100644 index 0000000000..f729982370 Binary files /dev/null and b/img/icons/icon-edit.png differ diff --git a/img/icons/icon-file.png b/img/icons/icon-file.png new file mode 100644 index 0000000000..80daf93297 Binary files /dev/null and b/img/icons/icon-file.png differ diff --git a/img/icons/icon-folder.png b/img/icons/icon-folder.png new file mode 100644 index 0000000000..27702b86c1 Binary files /dev/null and b/img/icons/icon-folder.png differ diff --git a/img/icons/icon-link.png b/img/icons/icon-link.png new file mode 100644 index 0000000000..60fcb2bc95 Binary files /dev/null and b/img/icons/icon-link.png differ diff --git a/img/icons/icon-minus.png b/img/icons/icon-minus.png new file mode 100644 index 0000000000..29b52ef468 Binary files /dev/null and b/img/icons/icon-minus.png differ diff --git a/img/icons/icon-normal-repository-frameless.png b/img/icons/icon-normal-repository-frameless.png new file mode 100644 index 0000000000..87c47a8b48 Binary files /dev/null and b/img/icons/icon-normal-repository-frameless.png differ diff --git a/img/icons/icon-normal-repository-frameless.svg b/img/icons/icon-normal-repository-frameless.svg new file mode 100644 index 0000000000..8084448f53 --- /dev/null +++ b/img/icons/icon-normal-repository-frameless.svg @@ -0,0 +1,19 @@ + + + +]> + + + + + + + + diff --git a/img/icons/icon-normal-repository.png b/img/icons/icon-normal-repository.png new file mode 100644 index 0000000000..59342a674d Binary files /dev/null and b/img/icons/icon-normal-repository.png differ diff --git a/img/icons/icon-normal-repository.svg b/img/icons/icon-normal-repository.svg new file mode 100644 index 0000000000..53f17d9ac1 --- /dev/null +++ b/img/icons/icon-normal-repository.svg @@ -0,0 +1,19 @@ + + + +]> + + + + + + + + diff --git a/img/icons/icon-plus.png b/img/icons/icon-plus.png new file mode 100644 index 0000000000..27c49e9f01 Binary files /dev/null and b/img/icons/icon-plus.png differ diff --git a/img/icons/icon-private-repository-frameless.png b/img/icons/icon-private-repository-frameless.png new file mode 100644 index 0000000000..999422bde2 Binary files /dev/null and b/img/icons/icon-private-repository-frameless.png differ diff --git a/img/icons/icon-private-repository-frameless.svg b/img/icons/icon-private-repository-frameless.svg new file mode 100644 index 0000000000..3f1d30ba97 --- /dev/null +++ b/img/icons/icon-private-repository-frameless.svg @@ -0,0 +1,18 @@ + + + +]> + + + + + + diff --git a/img/icons/icon-private-repository.png b/img/icons/icon-private-repository.png new file mode 100644 index 0000000000..2eb26616d9 Binary files /dev/null and b/img/icons/icon-private-repository.png differ diff --git a/img/icons/icon-private-repository.svg b/img/icons/icon-private-repository.svg new file mode 100644 index 0000000000..de0d91e617 --- /dev/null +++ b/img/icons/icon-private-repository.svg @@ -0,0 +1,18 @@ + + + +]> + + + + + + diff --git a/img/icons/icon-trusted-repository-frameless.png b/img/icons/icon-trusted-repository-frameless.png new file mode 100644 index 0000000000..83d927caff Binary files /dev/null and b/img/icons/icon-trusted-repository-frameless.png differ diff --git a/img/icons/icon-trusted-repository-frameless.svg b/img/icons/icon-trusted-repository-frameless.svg new file mode 100644 index 0000000000..9ef96f7216 --- /dev/null +++ b/img/icons/icon-trusted-repository-frameless.svg @@ -0,0 +1,22 @@ + + + +]> + + + + + + diff --git a/img/icons/icon-trusted-repository.png b/img/icons/icon-trusted-repository.png new file mode 100644 index 0000000000..54d83608e1 Binary files /dev/null and b/img/icons/icon-trusted-repository.png differ diff --git a/img/icons/icon-trusted-repository.svg b/img/icons/icon-trusted-repository.svg new file mode 100644 index 0000000000..8469763a79 --- /dev/null +++ b/img/icons/icon-trusted-repository.svg @@ -0,0 +1,22 @@ + + + +]> + + + + + + diff --git a/img/icons/official-repository-icon.png b/img/icons/official-repository-icon.png new file mode 100644 index 0000000000..ccafcee156 Binary files /dev/null and b/img/icons/official-repository-icon.png differ diff --git a/img/icons/repository-icons.ai b/img/icons/repository-icons.ai new file mode 100644 index 0000000000..06cfeb4199 --- /dev/null +++ b/img/icons/repository-icons.ai @@ -0,0 +1,4237 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + repository-icons + + + + + Adobe Illustrator CS5.1 + 2013-11-20T15:39:09-08:00 + 2013-11-20T15:39:09-08:00 + 2013-11-20T15:39:09-08:00 + + + + 212 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADUAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYqxhPKmrjWNVv f0xMkF/C8VtECxMDFaI+5HLiXYgbUwUm0bqWhald6Db6dDq89rdwiMSajGP3khRaMSOQ+2d/tY0r dhompwQ6Sk+qy3D2BkN27A1ufUVlAejAUQtUVB6DGlTnCh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K 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 + + + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:00801174072068118C14977817F3299D + uuid:426443b9-ecdd-0243-a283-43cdc4abb981 + + xmp.iid:FD7F1174072068118C14977817F3299D + xmp.did:FD7F1174072068118C14977817F3299D + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:FD7F1174072068118C14977817F3299D + 2013-11-13T17:19:13-08:00 + Adobe Illustrator CS5.1 + / + + + saved + xmp.iid:00801174072068118C14977817F3299D + 2013-11-20T15:38:58-08:00 + Adobe Illustrator CS5.1 + / + + + + + + Web + Document + + + 1 + False + False + + 80.000000 + 80.000000 + Pixels + + + + + MyriadPro-Regular + Myriad Pro + Regular + Open Type + Version 2.062;PS 2.000;hotconv 1.0.57;makeotf.lib2.0.21895 + False + MyriadPro-Regular.otf + + + BebasNeue + Bebas Neue + Regular + Open Type + Version 1.300 + False + BebasNeue.otf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 75.020981 + 67.968254 + 67.022202 + 90.164032 + + + RGB Red + CMYK + PROCESS + 0.000000 + 99.398788 + 100.000000 + 0.000000 + + + RGB Yellow + CMYK + PROCESS + 6.198215 + 0.000000 + 96.514839 + 0.000000 + + + RGB Green + CMYK + PROCESS + 62.764931 + 0.000000 + 100.000000 + 0.000000 + + + RGB Cyan + CMYK + PROCESS + 51.793694 + 0.000000 + 12.539864 + 0.000000 + + + RGB Blue + CMYK + PROCESS + 88.366524 + 76.916145 + 0.000000 + 0.000000 + + + RGB Magenta + CMYK + PROCESS + 26.990158 + 81.640335 + 0.000000 + 0.000000 + + + R=193 G=39 B=45 + CMYK + PROCESS + 16.961926 + 97.897301 + 92.724495 + 6.744486 + + + R=237 G=28 B=36 + CMYK + PROCESS + 0.445563 + 99.142441 + 97.323570 + 0.094604 + + + R=241 G=90 B=36 + CMYK + PROCESS + 0.000000 + 79.803154 + 96.874947 + 0.012207 + + + R=247 G=147 B=30 + CMYK + PROCESS + 0.036621 + 50.066376 + 98.565651 + 0.000000 + + + R=251 G=176 B=59 + CMYK + PROCESS + 0.021362 + 34.848553 + 87.130539 + 0.000000 + + + R=252 G=238 B=33 + CMYK + PROCESS + 4.513621 + 0.000000 + 93.188370 + 0.000000 + + + R=217 G=224 B=33 + CMYK + PROCESS + 18.896770 + 0.039673 + 98.233002 + 0.000000 + + + R=140 G=198 B=63 + CMYK + PROCESS + 50.109100 + 0.137329 + 99.038681 + 0.000000 + + + R=57 G=181 B=74 + CMYK + PROCESS + 74.615089 + 0.000000 + 99.703972 + 0.009155 + + + R=0 G=146 B=69 + CMYK + PROCESS + 86.385902 + 17.578394 + 100.000000 + 3.823912 + + + R=0 G=104 B=55 + CMYK + PROCESS + 90.218964 + 33.475243 + 98.764015 + 26.065456 + + + R=34 G=181 B=115 + CMYK + PROCESS + 76.195923 + 0.000000 + 74.978249 + 0.000000 + + + R=0 G=169 B=157 + CMYK + PROCESS + 78.442047 + 9.085220 + 45.755703 + 0.027466 + + + R=41 G=171 B=226 + CMYK + PROCESS + 69.719994 + 14.847029 + 0.000000 + 0.000000 + + + R=0 G=113 B=188 + CMYK + PROCESS + 87.536430 + 52.645145 + 0.000000 + 0.000000 + + + R=46 G=49 B=146 + CMYK + PROCESS + 99.130234 + 96.548409 + 3.494316 + 0.500494 + + + R=27 G=20 B=100 + CMYK + PROCESS + 100.000000 + 100.000000 + 26.251619 + 24.524302 + + + R=102 G=45 B=145 + CMYK + PROCESS + 74.520477 + 98.516823 + 0.939953 + 0.228888 + + + R=147 G=39 B=143 + CMYK + PROCESS + 49.558247 + 99.191269 + 1.370263 + 0.109863 + + + R=158 G=0 B=93 + CMYK + PROCESS + 34.891277 + 100.000000 + 37.204544 + 10.815597 + + + R=212 G=20 B=90 + CMYK + PROCESS + 11.844051 + 100.000000 + 49.250019 + 0.872815 + + + R=237 G=30 B=121 + CMYK + PROCESS + 0.000000 + 97.000076 + 20.495914 + 0.000000 + + + R=199 G=178 B=153 + CMYK + PROCESS + 22.854959 + 27.426565 + 39.942013 + 0.000000 + + + R=153 G=134 B=117 + CMYK + PROCESS + 39.844357 + 42.853439 + 52.529179 + 6.808573 + + + R=115 G=99 B=87 + CMYK + PROCESS + 50.399025 + 53.136490 + 60.897224 + 23.593498 + + + R=83 G=71 B=65 + CMYK + PROCESS + 57.598228 + 60.415043 + 63.738461 + 41.934841 + + + R=198 G=156 B=109 + CMYK + PROCESS + 22.671854 + 38.394749 + 63.668262 + 1.181048 + + + R=166 G=124 B=82 + CMYK + PROCESS + 31.595325 + 49.182880 + 73.931488 + 9.890896 + + + R=140 G=98 B=57 + CMYK + PROCESS + 36.234070 + 57.402908 + 84.057373 + 22.613871 + + + R=117 G=76 B=36 + CMYK + PROCESS + 39.169907 + 64.104675 + 93.441673 + 35.580986 + + + R=96 G=56 B=19 + CMYK + PROCESS + 41.538109 + 69.994659 + 97.024490 + 49.155415 + + + R=66 G=33 B=11 + CMYK + PROCESS + 47.794308 + 73.476768 + 83.712517 + 68.157471 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + CMYK + PROCESS + 75.020981 + 67.968254 + 67.022202 + 90.164032 + + + R=26 G=26 B=26 + CMYK + PROCESS + 72.576485 + 66.601051 + 65.191116 + 78.161285 + + + R=51 G=51 B=51 + CMYK + PROCESS + 69.481949 + 63.179977 + 62.151520 + 58.361179 + + + R=77 G=77 B=77 + CMYK + PROCESS + 65.377274 + 57.988857 + 56.878002 + 36.661327 + + + R=102 G=102 B=102 + CMYK + PROCESS + 59.728386 + 51.235218 + 50.771339 + 20.132755 + + + R=128 G=128 B=128 + CMYK + PROCESS + 51.647209 + 43.149460 + 43.149460 + 7.547111 + + + R=153 G=153 B=153 + CMYK + PROCESS + 42.636757 + 34.787518 + 35.315479 + 0.985736 + + + R=179 G=179 B=179 + CMYK + PROCESS + 30.679787 + 24.246586 + 24.765390 + 0.000000 + + + R=204 G=204 B=204 + CMYK + PROCESS + 19.366753 + 15.005720 + 15.533686 + 0.000000 + + + R=230 G=230 B=230 + CMYK + PROCESS + 8.459604 + 6.131077 + 6.576639 + 0.000000 + + + R=242 G=242 B=242 + CMYK + PROCESS + 3.704888 + 2.508581 + 2.508581 + 0.000000 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + CMYK + PROCESS + 63.179977 + 21.942472 + 0.000000 + 0.000000 + + + R=122 G=201 B=67 + CMYK + PROCESS + 55.407028 + 0.000000 + 96.551460 + 0.000000 + + + R=255 G=147 B=30 + CMYK + PROCESS + 0.000000 + 50.835430 + 96.163879 + 0.000000 + + + R=255 G=29 B=37 + CMYK + PROCESS + 0.000000 + 96.505684 + 90.057220 + 0.000000 + + + R=255 G=123 B=172 + CMYK + PROCESS + 0.000000 + 66.173798 + 3.277636 + 0.000000 + + + R=189 G=204 B=212 + CMYK + PROCESS + 25.375748 + 12.716866 + 11.676205 + 0.000000 + + + + + + Color Group 1 + 1 + + + + greybrown + CMYK + PROCESS + 50.390625 + 44.531250 + 49.609375 + 10.546875 + + + greybrown-brown + CMYK + PROCESS + 56.250000 + 53.906250 + 63.281250 + 31.640625 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <> endobj 38 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 39 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 40 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 41 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 42 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 43 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 79.9995 80.0]/Type/Page>> endobj 44 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 45 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 57 0 obj <>stream +HWnG WL$q& $:Xb+I .Sy{*wݜnK:ݦ)寮Vi)ݞ~$ ?LM{f4k/-Bf Ekfk-[I#wt~HJ$aHs|erV1dzy|;UKGǫvU/~ïV+pۓӍs ڋ'Ub<,#p'}E_wS? ϳ&}ۭ9<}Yf=lfE6@("Ʈ%Yc\[%w ]运QLd}U-fݟ. #AaFsj|p4@rFutj54Z+Ka%+,I*oHd_q!~f4E'g4kDTfqB' e ˠ0H0nk: +b +RI|E +RxNPY"0|B/FMÕXУΛ5*TE0Mv֞;`M|kEFg^bEꅸ5RWFXQ)A+V%tϋ~ ]տ/ֿ e-^͢ǡqhtpWrA(ڊ9%47G4 #9!  954k=83*1flp2Gtk1cĒaj Nhb 4R[Z_]B2Ϲ̎Xˆ"aeZmp$:JCm135C-YHxYX'Ό_tܪ~́@EUxzOYE9pR[td0Ń=U]Gbb@@ry +~n uK*%;$b0n4LA -y}`W| endstream endobj 5 0 obj <> endobj 58 0 obj [/View/Design] endobj 59 0 obj <>>> endobj 49 0 obj <> endobj 48 0 obj [/ICCBased 60 0 R] endobj 60 0 obj <>stream +HuTKtKKJI,t(݋4K%ҹH4J#Ғ(H +wqyy~3̙g<3Y9El +@ ]!O-@\+BVKK :OX~WCaiHKL0qY `5ck +X]x= 8 XĿ׽>.f#aPn D^{y8  dp H st:Y׬cxc IV?S!:_9[YbQP~+rA +ShHht^ '0߅™kYXY9Yqqpl'WzEE$%D>,^|t*K)%/`\ҫ:&D [7dplDa5|mb4,yy{e5 3⚅,t+whlA   m k +xYUH&%Ȥ +qO'Mz3KT@v[NUnn^\o]abTrtlmE]e~U+jאZ:zaqi5};CS[\_ۆwCaQ1;>L$Lz}4:%8M7l̎Χ/}XT^]X>\Ym[n!ycskkƶʷ;v{pIs0Xݯ3s󝋒&$WWW*)!$$%!e$cHNOAKIMEq ƕ;KLw@YX;ؚ8^+DspfKOTCPpJ%D=++O%$*8IZ\Z^UK_wL"dx]}>9=;s_G8/̹N!Gz[<=2|B}PQzlH0Wc(Een|Pds::5&89yFT"od䳔i/ZK^&gd:fgQl kJХeJ*+篍kj5U[ZUh0|em6]B@`PpH?QM1Msψ*iϛ.Z [JYZ)X-]R޸Ѻپw?@?5 ǖ'vNg +W3gLC#u!MMMEvAms˔FVNA̝GLwA̬,llؿsݛnͽ+!B²" 'R&k?3?4+:6oT\ұڿ6VʝoF?LT;:>::>:;eqvx^sawݥʕ'_EFO\DKLtAnFF)F|ԭ6\`@z?m+F;LwiAhy͖)Mgw~_ @ZH_XA,"F)%/*9aZ:Q,\B^_AU񡒀2 +*'[j o5[uR1uh`fm$1xJgBdrltlyyEe$feg-g#`dGbwj0TOC9; ܨݿxz6zx8IP=A!.aAxۑϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{T?~ò~i~L}~cbA~Dad~ty~W~O>~\/~|~`Cx}%H}1X}%z}K} {N}׋<_~7A~-ψ||Dz|+E|[s|z} ^}wO@}-~ċ {Gu{Dz{]Ĭ{f{Zx|[]|ϕM?}R<}Ǝz]YzHħz|z={LNw{\|=>|v|ېI8z/r z;bz'sMzd6zɬqv{D[{0> |;|yyaIy?yazYvzݮ[{^=c{ФI{R*y߄yfUy`VyyuKzZi{ <{z%zȎ~+~}͇}W0}3}HtЄ}Zk}=~zɇ}!~Єd*s}Y<9wpSwuuVrUW؈|;,뇔{RsѲ;:8q)PCV:4.8Ȅ2񡂡?Up Vu9S c bփR.ՁNn U388A/ͬδz6߆өn1T\e7݀tXT)$̯̕6;eCʷˆ imw3SƀV7M +\lGNػځNāa5tNzlߴS<H6*-N}o2ن N%է>w֣A}⇤\fXMݘ2, KԐ3g°[} +0e6M _1 ? 1ӣǾI^I|B̯dܪwLe1$: rW] 1S{z|diL g0\ U{[G{!{ ޔ`{&yE{xbie{Jr|/c5}~ +~:f#MKx+Ca|uI~.yW ώәߎ%¡唘[w!^T`^H*- 5GȨ瘎=Π4rv_ҍRGf,ދ̋|,ƕ{ Ҙtٕ^1Fő,;',#h%T,Qۥ{[s:9󅼓&^!Փa@!" y +.Jl6mHju,bU6+s hܸd-ʥ}wi-sun=0Ľi-_*)U_ˈb$na+;ϧT;ppA7C4.*Iߥa8Mm.ACi7\j|fiԫ)]ޭjʄU]3(í whJch-4x7h׿*P0H됎L랇ڡuÂ,{Bz}8vggҲd[!XTZZ.vlAg +{;Sm`vؿ`~?ga. +3Ì{L^WYe4]L7ok!wI~Ira^=C#Zh`Wu}p)"z7ff&3$FJ8Ҷ5m +uR_,^VS&aR~PfLL_Dw*`\-9]q  TI6)>u6 D`e͢/xqY%9ʜ;åOd\˾P&eRz;].R<oΡ]P{?: r̨\ʻb Ҥ3|m s؟W9oZt]RnÅ\cW#+nI&gyAjsN06HiD'@J+a5V~cRI̫vwtUc[3+?F|l(iU^+O?Rs1Hqil$Wþh=(RE +1BvџnF/ BsGMY9>ܖ3ȗqI ڣ5V_1ȣβiJiX0WVH[8g_/ +n3 ` 38A.|f|ј0I6bv%& ;Y㿜҄#dD.).p'3J12K[Duɥ$s8IƊ.z^48e!R6}vcMiozo0'=~i,3:?-?oS,9w#ROa; ?pB +֞IO ݟe#}ԯN$\l?], y,>&Рq]yh0AqK)ĝBFҍcH:-h-ǟcf)K9T127]qEjL<>h;|U +dpG +ƫ`&!8al`83>.qɂnA9 +; `HByg KB*k㰗2fF=#OM eT? +mTm_OBۊV<ɆF('n3uG~Ȯ#7Њ9[١`Ns.P..콤 'KnpF\? B>-`NWOOWBlfxW^b-_x&*/(j_=߆󑊢zF`LdE:SNʔ@S 03|TOKokto}bFz$4-,.m'j*J|)J6BP ^3ewܫpX.*,07xPڳ:2XOT21|"7=0ߴy}ĸB)H[Fs V+̯+Y(I(x&9JAI'tXmyG=X[8TK)2<TSRvxlȓGO|g/{>4/gRFȶ&A52 uЯ*B幃AuFǞѧuD)B,*?n` 'qQIzK֗4{B_g68#ʉ2.A$69!̒ub1&D3Qx" >ɏnνxVG&TۨÓ)sxd-5KxߣD&1±jdGjJ|J{Z ޲f6/vTp̄ub PmBU#gBg˷)-*E +ar>>Ƶrn[ɭF-IByѸP=ĶKUC wG D}"vN.p]]Q8uY{#qCv}sax_oyiNr( d8aw2CQ}V8UWO\g \yk@dcZt9$u +p-1z(=f) +vě92 w u煼ת#{P6+Dq3HIi%BCb!kc5&U ):X$܎[b2*@PkcӘdoTB_L1Uwi")=2#pI9,RO>T@>;bnDPuCfk^^\G~ oLRcHqܮ=-8^5Ońy*9:-\g8:T<?*C;[yX+I;lRL߭$DvYTQ6DyVmfy%/sIsmXP1Lռȭvow)QBb_LVwupeėO*|+](uHװ4WU.{ 4\m.QwR~MAiRz+%BKz?'{ k҉aa{H]sX}da~3_auQz VM\ĵv5I0LM)DŽp1:5,&4 %!$}ocޤA]R^xT◬M&/B:DwA24?cd&g]5b4a?iǐ Ĉ.OA 6vfvsd(5yTH/P=(a;zUs bWxDa)Eʼ $sgPJreY3w`cFo0|U[j5k.5J&eTor È´}I lpjC8c5J=g%Uo|L58E" +ِ[Ak]J͆VBM"{NrQihЦ@Y?6^߫ZWٯ]ذc؋hKSLj:>O ɲ.ݰQ{5mm<ٷ?^v"}ъw9O&vX7km[ ,70nΒ7|eP\I;-wgFN cIP#qWI ;NٶA)H~7i thl~~dzY Cx2>*c&mb{9f1X*L #> + V@g蒼]7n249=MK% ;,F\j 1klZi؊ΐ.|Q9а$_.!;̿lE,ɥDi}D3^a`Y5g{J=mɳy3CM'jM-iЦm n5? SJE+U~ ;q.tXd~~p*QeS%.Ћ"ưBsZ6-6[\d;^z4`;64藸ͱw;|+&AfLU3XTm)lF'l VɺgcGObbɜ9;v \CL, >B?KGCe"z -@EHILp<5'҉$>8#gL2m c1 c Fw)P+rkC qp/u8#!*g°Pa`vu@oH`"Ž:z_Q<,D>'ӅWP .`xW3|!6 +5 El[",0 e[Oz0~lUO+&xkPc|u$k.?{Qp""kr6isVa=~@W_ +.<7 +2#h?c~m'rE_xs6aG+K 14L^kUp^^_mS^dШ'>}5$:τ!E[bJx&n t(m;ZsF5uqX.ՂBqKP *l%{ٓ{'f';,TT,bhUq2Z3;}T9vwRR;GD + K*/@hUv$j!@ vyבm,W|-͢ ^ ~D_􆭍"ĉ#c禘*X/Ϝe>|XH;:)d9gƖ4aBQ4Ew,C +ۯBU#>SV$L-5gV ϯ*B#} npþtdU$Db&$^\^&Z"/˺+-}%Z:}9AYu rTlP0"~! ͚*@5K?߫Z-P=j>܈[O?)a5 +?WUsy5^(ge${Cm> "Gգ+$踿ϫ& Xw8?g,'ō="/xNM)'EFqrf CįQ9ZY$r!6m)4 V9kJ$# FьX٥Cp[ģ)CS;rFP#ImKGɺzj>>X9,ZL-jIbkȉ8˚?vtxPIO}_ay@:|Ve6ubd/e3<֭ztea'cLaM +lz&,f^_!?l2x2Xyń3D)\?ye ~4O+9$  +EVDTSؓ7X?MM!ԼuOtP Cbt;iްa@gW#@4c9.Do z2>M5i~u0 qswQ9ǸLt삟Mz)>kɝI;io"U)]$YL >$$T:gUo$UK,C`sCMAJMÄKC(g]ٮ9sUG0?L5QM%0Ol5&`Ƒ1,x'{k+mY}-Js#\d:i/NK\8HstQ#-ND).s*Zymnf\1l{(E=VGW9s:?wǟQZsC6A1ƃ6K@8OUY^`7j6@9?,yt4&}"T- +\Y&kVx녣391ٵqQ=beMq\`/nņ|2͌JkzDmͫIR4\~5NlօKɁZ]TC3l̅D3jSS)tWw$IX[wV +WTUw^PeUhWE^ؓ~Wchs sIg`wgs (5mr] B`7JfAaA3ƓG?{O[ ?xj/Z*7exXz Ά})C?`KcMՌ&)Y5J]q':]$؞]Yv x(ıH1eU>_0b?*񸨎b¤،D;Wxm]|N7U13*;.=>SÜj)CM>.eI1/QvН6Tkk+Ɯn\\FFV#Xde&~WE7"bju^I@j@bQ Wk8w_D ^z xZKA _`T}] +x}ЁM0S,rV+ KO&ƈ`;E{irf0F] w86f fm_8c3V<)r1p +hs|p!QP'Ղʛ2rӤej4Y r, r?4! Uq]f(*&umM+;1 +-c8CjL=L1TDJ7>)BH*cHY}~xI,{7WjWާʇhg_YovMKiN> QRǧ}AQj^G syJG"?txt,L>֍p_>Po$^<%}KDS4 +*S<ܖyd;éIJ~JMn>ȸcI6uɖژ䩊i77_5W2' 9t^}/8%wd0k)ͦF9kih3ShPBULzs'0$Y/L3ol|f ɪ\AW#siS-O^I+36xas @M +A hm45V-' ѵ1S+ ~*%~k˝ʉl * +lك=3_2~OgPs +Ccd[aے{<ХjA {! ߲ۓ;O'9+wEHE&JV?fiӺ j05瀶bhWZxo=ƺ 0zhK5mov (YOut;e=R*yMVn,$v:QڳE.yVl;svn,Wi.[@34SD_!MF>J柣ND @$Y~-CMu (+lBpБ^#$~2è /@̣6 3nh +;۪.3Fq3\َvZnZ"/vNFNJ2V{#ΚVse_쑮Ta8C¢!Η>FL\M{5eH~7;F AB?VY=۩Q i9J.sӿc%FVbdեiL`a)kD=W \ne>NX7Ƒ†2IYf-to7/~Uas[`W*v3_`~:kjR("E +* +e)DDIss,f_n6":hmh+]AqñQqSa9{~8|~bh6GZĠםN\h+(E30~kTMGβ1:zka'LG2>,gt X&@?e% +=@Ihs)HUOeX^m7R7~,, \jJԌfͬ8!*]JR:WR]Mɚ PZ;JN.8ɦ,[r*Α]MM"waX)Lbjd`>:?|:?u>^G$fa. +ʥ_S%ED8 J=ĕK{6r zGG Ui<Kg"^ q +I6vPWy^,uc/5@:ǹ+[N+li{P#^yv,ñ-NѳH⺣<֡gxV</nb6󴳜Ρ +nhB˾PoT(W##ĉTwZU} w-vT-9O᭺HIz) z9R'dI5aZGS˟agW=.P1ٜ y?2X)r4VaGXBe`9Q1͚@85$W?D}z2* +pt +;Br\ܕ'> -vCNeʔL-ʌqKHr 7I d<BgNelB^փRγF2AqCR&t7߄{" D9u)Cw1t}?"'[7o̩~1{>Ru* ʖdClutqf2[l~{S4>J$.nQnlP#x])By`r+wLH?VD:|iUG~ժ+&+Rb gP>}WԹkQǖ]WSkqwZ +DQdVd24KGMvU35KJ~4&jwJ*y;X߉˔O@5hw)񘴕o-9E:_̂o&6#V(ѽS-te$ פp}4%4mrnzhe4KX*KÃ29ʩ~'Ǥl|O5ÍB +;^j㛑Q`exH;J\*`l˴Khk +&tF|(8VǡܷR:ϳoG*UjSKknRgl ޅ-6&Nŗ7O4rGmO[du_TvY{ ̏Iy\aRKy&P7ݪJ)l"W5{K S_j0WSW;wixF1^lО伴^'1b%OAXhq)L7j}=9PX=n`ɗKX#CùA *7{ jWܴTByufכd=Af]F=_u*`q+_i݋\^`BaE|S&%Z a8+QgQ[IK-jIKr2Tcju=A ʧQ"7{ٮם*X|,Yzѽ}ƈf:jCo[>]x^hlhNrϳEDkcCǪ ת9c Ht<)}z!hE~DBӳ2S͆i{;ouIp??砃46ٺ^"1R<-65sjpCSjqi6dzھİ紈 41.$5EG9:=ob쾄 v#[xﯦAF+T(C@RQF772I$^a$Eq>.AEbiO0]ТK5ΫPÛG ZdJ*$d ^}E*֤>?Ƅ$dO _tl%$^7[KSECqz"$]*B]}W zT[Rk"n]EUYvFUW\B6-RB^Me2B4/wͺh4Ek5˖<1U[tD>Q!.kR涧7uJc>c +l/i^3;iڐ0sĀZnS +qW7Np:([568ViAFޜ~h9Pldüj2dO ++61--1Ewv =JCHW34܏&x8,&#Rc3Dvz6RSyu_N/nmكvT֥Y˼?RFװKzn9Q4gC^5l`P\ܲG&ޫ` 9PҞٲXr6 +V4,{a؄\tcY`]lǿԾar鴯؏=b!&Yb ^[\aYt$w +[R)i[{$7f"o Xp +zBz'hO|Ō4ǐ|-j +:}̴a%Tv5Y9QK d0 ?$ćH|#uD3 phrd@,@XmVKY@ou([8#!OM~.7SoJn%OG" +Ü3N|/'O-R_1Vh&׺ NPz8de 勊ZTH;XQ6}+'h_|ȋCcuHjBA,NOS{3 L`]1> A rxӴ*E^.ؐ`Q5 v{`=W6뼟\9avGOXc& v1w~0W:ʎ~f: 0/˵%m KRKAcR% P#CSߥfmD5oEx17B0<&Yd8"1wܡ5 TaaJ3p57A>+yIMcu Zd?Bk1x-rsV9sH6p]DGgO| y5S$aE`$Ls +[Ym ~u8p`6*I ߕ`S88sn9O3nXOE /7f^lbN[PBFO.9Z_.5>F S̉R'}ΪѬ`_dX|{dHXԾ3QlZe7PRqشO5OkZrx5u`aǂ:*`T), +DPQʮdߓJRk=H+ +*#u)h) )B6s9߹瞏HZGzGT"93hDͺ sr|b4y $TK "$I~$v(B#].qi?CN ~ޱ|ܷLcOnT~vxj̦5<.f\K<2p:CpSy,66>|zC +E +T)f/:X1}J+>_~Q;^ㆪvs&۸>.k7yZS:˩㜍rݖۜaKa!l.g57Kv0!;ڗfe %]"XT J3aժlwVj=v姠αe=bI/gH& :g,(y 27>aba88fVVqɌT0NɉB`( _"fo! t}Wg_0}HX 9,Qx=~Jٹx>ӱe9M2mFS)Vk-eZFF٥btg0O?Dǐ%7eyښ6WSCyeUS}l`a8i g"1лJ"|PKڝc,$+&PvꖴGBoj_t4I vqf熚(eC!b׼^SbYi1¨;2W`/7uh?4 +!z@#(T 6 ^!R S#>E/Sq9z_ /G%ӈ0C9[ۼ@(٩P ,}XTOkpQȫUG6 x2e,> -?ϭQެYz/T5FL^`tީ3\#̬D:,vw[mDW)TBZ`0Ֆ`3tBQ˟kks41y `\޸cV#z`XHhwA0چFTyqӵܫ*F˪%*/>9 +gS'"b'zL=N)cs*bR)W<#S 癛)K +&L\9WtW!Y17i*%wJ_ 閥nWJ!p-0T`:K6B+SzlL,~J#ZLHBEe߈Eq1 +ڸTD}bB;*OTCnՍl$OYQ0mz7o9NŻ|hDV[Ve֩b7YZÖHl~I)ܻJ5oOݑ%(,hZGҼmRd!/NEWutV57z;jjs^^lDǾ0-a_aL؁w44簍b^ppi&nX uƻ-݂ -cY4_g ?jGIfH %J҂[%ϩC6OzvWzoZtA$?z;ؼFT2/+0@@S<@>0bSuqw;j4S'/4sEթ(P[V^5ƊHkg/ۄw 0*֭ ajyB5TC J(_F4!m, RN ?S9 :״OfOV"յڇ1,V)S@._ +#Q`K|ͨ%cj/&\: [Ft^Z"q٤Jm뙊jMarח`VCg +w"~>< 8i}XT8dzQVY<p%HG/Û`rq;Nm~Ms\/Zh:(MXа^F.꜋.Ys}5`a((X0T+JS 4&~|iB!! !)$)ʰ WFY]E븎3x,˽}|dc +|i-0Ws +Q_GpRjy0׿tjT̎ԍD1څڍ›N:ka? 7ek_%]a;זF=9-b= &Mm0-vD'^j+/5(er^+EL F1$1KWE|fOFMKm::1`ڥfXЩM*i9 +l?+Lw?-Nx͈wɳ\C0瑃f sM;iđ`$O0z*RٹB9@"k5v~.lB?ug]ed8JAj͹um.DO^^v:y;ske+,L¶vŝҼخd_5Z;q#k> MU\J{l*͟ґ3Doy"UDcu#H)BPit/ v`_Sʝ{e5mpPpy=-2[m+v6*.WۿSǔ] +^DMk,2.#ɲ\!{^I4Ԉ.~çlDcBU\b"c jvJG|H`_2rHѥ tHHBaG :Bf{'9 +[jaЧe +&hz6Fdy?>gۑx&l$^:^nx-'-]O 5@S Uڏy]Tu _,zWPT|BJ,ɕ}`8ߴy?p7gˢu\JO(_vOUue4+Qbi?A.jCxyRJ駥Pt㸲rTfdd$ֺFR>PaL'v2M*׵T]`W*cD*hAe#"ɆKO9JKL2J( KgK3jԉfZnL5oM(_>FOӹGi}<@w#Ndhoo4Y ̾Fٸ2YAz$W֜5Copli\ 32l;a<;S?B>zprjsm1tZc̥{s/J{c*#3ހfϡneh->Bc9SJ"չO8'8ހ `yHϤu-*` x[c')Oy\x!QS9q*;$;d'=NY ,|ܶ34qT=ka%hs䬺UX7Fl[ o1apuxf9QGk4;e +˸7荇5xB:yZdͫ,`2?_a[0~9iY Fs3g Ë9u<,yx87 1Ja,O@/gO㔛94 |.]16'^@1'p:XtwL,jVQv@wl{έ̱\?R^UV\GI+9D03oyd[R<""" +.2}"!<4tH~(-r25DH@l"K濣,/S}"+~wF}V dRz,:w&?C~FqJ}JݢJirjzEgU#p]ZF%+[PjewVjlW7wR/*C%%jGx @EFH)&0_Օ|Xu +DRNXA\0JSH307͛73 CWc+U#r# aQOL4Eљ?s~{sIy?y>ҒLָKd-ޣJ1v*fH 6hz+~BO:IQqZUՍP[UD#BM >$ z|?^!J0W8N WzXfщ@'h< +%sdR۔e[$z,Z2H5[&Ht L UO 췯+52j&P6uRɮ! +a+rk!o4 `ܗP)f%VQTF(Z]s,TR|O)O?ho# ]6yл)OU,F٠E})gsٴGyҘp/kw~˖I'Y;TdgYU'I8@F* 8 $I+A2((+y8OϋWȗE {բbW"@}@C׌teYgvֈHofE`eagbN_4!/e%O;mhtWv6[iyFy4ʔat V] au #QYm3rM/q{~tjD 7fiɷ  . =[n`4qShBrx_5wԐ %nQ~x'G[ `+qb]Q2Ըi=UGn~ڋJ(Aݪd E7Kz +M]!} jnh-Cզ_魺a٭Dfrj6$-4nUZF)Zpux'@]U/ٳۿ3Ug`iU}ڰULWu+SU[;uXJPvOŀ{$KF,qQruH.}imfZh~atMBb0*iWC䶧jZmn[nKfi c+.&oV.&ʭ{5_s9dmIA. *s5: 1Ů m!|fl'6#N +Z>\oMkCZ8)*bEE@(27{I" $!0a=+vUZŁ`-xEJUǺ +~~7TSsV6i1=2J眆Jh@ Uu;7!0 +߽\醮%-;=.e/T7D$v{.ʫ|ZѮmcDֲ+-Cu_{>1H1]"D^nR ٺ:E3[h9 7TJOW+3 vœLimc @6'[c`Ǧ8v!bR{1_ӵuoPE2\@;4"mO m{ ߺE1dA}C=WB}[3']\PJG5VmnYG Xyahd'J[U~ vWۅWo]WnGnR9H7ѨAu 1vZm]lUrTVA +sj6lhm,My4A*0vJR? Ĵ>2C!*#q0MJ!:ŏCR|dFa?2݂ch3dBzSIt?%LmF[AxYGҏ0m;GY1űh%[sጒ@9 q_8G>r Wn)jodEzC.qJviN&If8bg + v|sd%:uTf&L0~p.(RU +; _)w%$/ t# +~#u`u[w.qsY_-*'̳ɩk/)2* i9$7fUzflc9}],툏WYCIkS-ty7>T! 26Kݲ m&cӣh' ..+upC6&@j5tdP0=I˂Ė +C{޶$tR:(ϭuOR4$=jluq1?פ9Si|cqF!_z^SK}`d%DT wV>;<'V=(5H%jWMV#9YD2֓p~~J }D]gNSsjJmn->,vg&SLl#>^i8ʞ%4'RJDhRN0hBA0(r0K+aMY|"EGE_R^v4/?m[˨yN`K/5[71[Gؒ' '铯RGhqꭁ]>iIX +5'\GB ćd^ux+[^%e ֪pxE + 6%!Itި@Ҿ#% :*h$r7שׁ55׈Ց'I+6*ЮwȰ%U#zD+Jt BaUؕ 6}uOr7dP Cu}FEua7RV"KST20 EN{^lkƕ$vW(,F7b ˢÞOy<"_).kh[n 9W?gڈ7yș*ӼuA@ OpIRrP($e[iVYR +n#(aFq&mq3%\g?%ӆM5XD3b$ʁW ƿ5&͔D4®KcᏊ . +1Zo +^`~¿`6z q aXǰ)Ӽ܄'84 n"Db.yC<K d},{*h +ڸh>wMv^ c8Iƻ(~j? +eoyl/Dl5Żרpy1ܣܵ^004{ .%CA22dWuQ>okL<5.ſȠiffh7S-|^TjX[wCY*sG^1Ve֗+˃L3 /2y{+.;CtJ } ->٫y6q< WxA_PZ? Q y1>yK\.!OqM +0Cl];Sk)=RZ@[ɷ5JBeǐ$Ni"0 -úR4H~9.☫|Dϸah-)r~"eoMK%4 _7"‘e +QD~0T.>"x*O>酧.Ey+HVy55RWsEk*PxEGB;(J X(8hiqmh^ 0`}_APWDLZ‹]<4zG֦`oyZR|u^gCF#nr)Va5ƪw9njyIt +xI1bIy>}-AگOShKFx6xqqQ +3SU\ka椚̩Di~ ?{>J3mtߐZt]YNju]ɒQYlZZsNѴѷW>Sݥ0Bj+7q҄fU7m :8^;#eտ+*,_CY3MSU*LX.jQȖg_IWJ5a"9R'C\y׳qH)VU-Z.\+Ѥ/aen/|F[?SPkr" +^Y>VH9 &yaIxQfd}+] +U.o.=q-y][viRgk*`/pLBu+A@[)&PYQ?im/K,Y*gu(i2`؀V"fJSs=RU@7+>dْsmY)w=U?ο3D qjv83׽} 1r@vy:{Eͩԡ.޸,珈~CH{ksv_l毁@"lOR."0Fl]]C˧Mfi nq˶Q{56ef e l[IuY_(i&;to 5kZ/ jjp~Ch⨿䦿iRs!G-֠5 +&wa7WAƫXUr8+}E)oVӃIÌ}qZlh<gw +A?=$6-ޡ|,)!<*ǘ*z!8߀ϸuPpD|Ŝe=sm4'ҢؽYaPOZ(vj?VGgxI=V-̹uMCJH_-C]B~2A\8*E8PTΔTo 9/whaߣby\'F,Ռo%wU/ժnM*T Ƌ{5NJԢT9L;y _fXD\uַA:x")V%V/*]1# )ԋ@X"SVӅ4u.f?Uչk%Nj;c~?]Pۺ˄WҌ=V듍1 +E ֻqd{q׉; +NYHdfttc #&vPtQjd1o ­R)ʽ@}<7 &8wyybH04͂@>o` ~M`Oi#T2"-!NSn\ z$SC%Q%;OzcT)!M.wf.Po1U=Bl1F#F0HD\u̞rڜ*ujQO5u8E$7:"І(UuANgulWYE*Z"cT\kTxlx)$8(YBIY`[}.Bb T$=U8Oŧ yP-x$]0_ +j(sOH|/=wKR` ptl>f*ӡuU<=Ts(&zpKA?sLo`N0Mq+~*m-~F7^5惬H]${|-Ҷ9Y&=X'Vu+^ϖEm +Y/0X cAdPc_X VRx6b|C6^FeC]o-F?f7Q3V>͝yFsy]ݯMF͊k^NնI#FZ.7ƆQfeϫCJn;AjB JFw +mԗ6t(I5beElXQ͌ i,)6QS 1zJezVBf ۹ʹ/ HQ89SnE%o-4NJ``,)~utyQN]vحp+e"xN6y*,7$'x\CQL[8.d@}CɏE)1D?@晹b$?7 + YM N| _Td'wa}0Z<9|3閗3~o=Y>l0Wb=P1jmE XR[louv:.C=;.a.BřS[nWJ3ǟN1='\Xr8۲:KXj6e g΀ap%z"K1.c1ɇzɭGTRiVBe-)K@iͬ!u@_`&2q up%P +SЧ|NWP !o-t_ nyV|ؤ賐e`HʏE=>\Tǀ|cҎkIST!%Gu,%[IR'+#T}m3\/df)`n2#\M(CQd6flqGv첵).Z&wITe{JQܕQE\m`p`Ҵ\z[v7OVo9ݜQ}$SSFMWdnyuя: *o[3 O FRJ0ոl+L+&oE+d- +@?^fEkoo\fyJ8zΰXmi  -Nw}OYpz&@>gݪHc. ]7Mz#fe"g\a@\qyºJc\3ܔ r'WQVE D|PLs\h_h#9Z-TdL>˼!WS/bniA3.1Fx@Ǡ3UNN^nPOZdtvWO&-8ךshveSȉ`wPU_cař=շ}m`<<$+UV66do88{ηzkG}ڻ<<7\jvg!5M!w&GmpfSgO3x? +wZsLRq/~lK]QV:om<Q' R]AMXyu ^ȩ $}! 9LHaH8hʡrTtD-*fY]]wuu[bgg޼ߛ"ȹ I7HR7HBHudt *Ჲ=eJtj| #TI/W?{ΝO^'`v'$^E=7ITF2˵7-^'Z"[x ;[U7,QyWrr9E6cy'I gIRm2ZQ +{0K,^H/>>G@l`T=FZnZH ѳ$m¯鵩KA3D;w7ŏw^J<`i$M_x8wU-,/h!pbP1|*k _U;N45jX_:]$ %ͫX+é Miwzz{7`fOE5FohX}fL}k%Jq_b_A54WK'h?:lTHmm. m&"X7rV7l̨b]r+ OpK[{0EuwrfӵFajCCPktMݻVw[FR(Y-VE8 P?)p>͛5 #TtF%3 qhk ;`LVOpZۓ. j&\Cʡ <*g!r)J;ȁ&xK0N\B&Գ$bԍ7fpt(0H23ӲG1d?ź +bVֆ|\[w+tjj?b7hwJCmm#b.^VBDRb8E]4J 7LGc.Xd/a&ڎ @顢zQuֈ4Tqi˽èb˕ 43~,ymoθ[0 +l} TCuLBt 2ZW>Eh@+[Řy0= +sU"r];û](̏{e E=ma^2'FKv~.Оm0Oj(esߺ Pk*!3IBЦs4{^|{6k\* }XYǠD=A %$hǹWǂORV UBꯪr+Ca6 Kԣe :Zڿu6&?W&k).]%],lb7MX][H"}WL)RIrfr?AƁY&I~_IB${XlZXE&|w#؆`_vߢfu3fm89?9 +̟NՎ`jz1*.@爎܋`oْJ_+-4α6@/DWEjE}HRDl;Y+ z/1Dѓ(z)oι&;.4aZ#gsbZ+XWi;<~n"( M'b6!G lP<^\nM8--aG+dyXP^s:0q \p3bWu.,R&rm#қs)lej(^ ,=/FV6fj;ex%Dk%!FW@ao2QTvs 5h0B{UHiGCOzL'pbIq+'_1Lv +QA%$[H~}{1fKٲ:HmWS +ëd}2w7 j< O7i2G;SWݒ!@YsZ~*PƐ6xQܡ/9i7cGHVf3R>K2jZxH"Z")vHD} @} YJ64T(P_(*C]miSJqOZgA(ny8}wν37;?߇*x"D6HaeZ +5K e +tE=H\ƒW8 72ym]Ly 1N<8͍@:> >6pӹ$.7$C$pA)hJewT*FmKg-lm*{{v\ܲsJa>3_*ݑہ>V5|WG_>RR_YL!RFjz S5fځO2< `}I\:XiZkRH*4[(xX$u|I9̺TkVzl_׼gC%*wXR nY)N.9+wZ[E9ľWJ%wp`Nj[.b|JOsdW,R~#* ĽyFdwCp*L(8OelL˞)A vfFʹ.Knd~A򥾺]Di(i]YʯJߟ?>w[侾7KK6w"!eDp5V* 3VEa{:KoEDcɾJ#oOU44lTjFk,>{S?ýSk>Su=|j}T +SU.nk.mcŮ)RxbT<TV*yÙ<+`RC;S^0-itp<ȗ2IZ_0ȡVVKHWol9=fd jb%}DCy{sI*{ZL1r`n}+D_*Uz3}i779_kjxL+u ;FxL.mmQ`sKzK#>&ޗxiBV^\s3_XX_رC+ҭj|S kϽ|j|[X +ΆBL.?\DCqߢ7nO(M&JOiݖw0IJLM,NCOYPoQRSTUVX Y#Z:[Q\f]x^_`abcdfgh#i3jBkRl^mgnqozpqrstuvwxyz{|}~ˀɁǂф{pdXL@3& ֜ȝ|jWE3 תū}kYG6$ڷȸ~kYG5"ŵƣǑ~lYD.оѧҐyaI1ڲۘ}bG,{W3qHvU3sIa)\ Z, +     !"#$%&'()*+,-./0123456789:;~<|=|>|?}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdeefghijklmnopqrstuvwxyz{|z}o~dXMA5)ۈʉq`N=, +ٖɗmZH6%ؤʥwog`ZTOLIFEDEFHJNRW]cjr{ĄŊƐǖȝɥʭ˶̿*7DQ^kyކߔ ,8CNYcjnoldVD/h 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$%&'()*+,-./|0p1d2Y3M4A566+7!89 ::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}v~oiaZQH>5+! ؎͏Ðxpjc^YURPOOPRUY_fnx̰߱ 8Ql»!Ceª9^ɂʦ2TtҔӲ6Lat݇ޘߧoX\[VL=*b/fMq T + p_L7! }tfUA, !"#$%z&d'N(9)%**+,-./01y2g3U4D526"7889:;<=>?@}AoBbCUDIE~% ہ‚rW; ϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{OX͙~ʹ~y~eL~j~Qc=9~|4~cl@~]̳~nf~C~لOiZ/gP8v}6q}0}>ϲ:}i^},~ ׉_LpK-~~,*~&E()D9vyowy=TS3wI!D)J%OBvwN64;>FVWm +S^Di*bPkpة?%"1#!ϼK`L<n-e2*+) X䥂C@v2l Q?(=0q MzǃIz7MEY; Y@K (-\U&>rI^2IMe;Ya"VN,S;o_%sD;fƎ.R?l ;0Dq>8zDKG)3o+&<4@n͗0EO94#ҐnW9 b_7}B2yːv/ąJH삻Ȧp$ȫވy;Æǘfo虔F¨LsI,KhW2!AjHE^τ _wdlXggΩr!jU)[%B\DCfp <_\?k,.wȲirJRݐ=>0+cvZ{HllLVAc۠ ^{6oCҏSمbȏ:sz 7jP@Q;[wg|z30Uq`!P-~|X3+z2lIђ:_p-FOJ*Yr(".O'qäfrCRJ'dc~h!€?`}WzBd;hѲGϲmT SAij9< +ߨ%@`8xLTqė=,Mk $hJdx_r̰gʱhtG,KytomVK0X?R=Џ ]ٛa`sʠ7g&Grŀ?>r&z`b>&z%sxbw&{~څ]"WR%c"zD zA rs!֝=jcf]rmANJl$ے#ؑ >wTfGFF699<׵.'SZ*˺#-Jl.ZZx%m*| o 2ӝ_TWK4eRsu33'jRFBWl| +Fgml0L1, y+Hu2f;[T0BE{:qntoT]okI, + LgV_R:Kϋ0dP?= vE̷փ(M4m\Tk׉o,H=Zw/EI-LQ[ 8F/g֖'$?[u~fghXjݚ- VImKՀ,%ibQ*e97WKMYiHtXTBUDw-49#iԗ/r]hGވ/ + +lD2 h‘%TTT*Fdw">GY?"[f r5ʊ4`TAo4H5rWS8Xy;$Yr'q vUPV&4m/5LJE:S7Hvy.. kPXAl` +,e: E$@BKr.!{A$A,CY[EA;| TJkU>41aƜdcT.Us R&BchR) + Pd;ʟHbl?1;_:i^mMh9Ӝ+,x+(‡j3=P6u>a}&b (0=.À<2&m%u9_~zL!S`(6͟>թVlW䨸m5ypg!2< PR%wC>ubvbF.0UK$K;؂P,!rA5%\v" +[2gwdxJ:_'Eښ_+^Cژ I! v,V72UJLNITUKɎIy/R+=+(֨v6!M @PB%R--3|4-)#ͯ w.ܘ<;b#;*>$eG +>3"و~AZ$xOUx f𜓜x;٥Q h X(Zx=`dš 8b†id, ϐ!enZ +b /޲І2P0~ +1baktT ?g)˧9 С`.ޓ`>'4\DRdPaxԗ?i|9,t Ĵq]"m-9OD'Ex>#Bz6Nk%tm6BDzVQGq,2O: y{iHcy[]vaZT5 ȨR 345N@qG!fYXr{3^M7HX1ey87ҙ;NP9tn/D=}*I:2s̋%G{7abTBm6ۺ4JZmI׶Fהz\FD*rEyք ̣V-8ˉi#7XmZLW:2 +$Iⷱd`U+z3 8"}Y\E^\Qܵ)<&uZ!FM)V"ڟ}&à/ ď 5 O546PW눤0 fGlEbdc 'ƪrӬ[{K("M/y%0=zFBx}{w6{Y50%,40R}ԓvTp>K@fR$7HU( /10f<,1BS>٨RI3#&&pa5j19#yTH9cI[էjU̟~? +7NzM`k|-kqJ}(Ҙ2SaӼGi ; b:`uǤayU}T 2Ftm̔%OpuDU0m~L-_:qWg0~huw-] NVrP =<]x;Y1iw@8,n\(zqb !$zB&5dn61Q& & CuЎy#c%$7]w'z\0Lk{8 ;fGS Fx¬P~Km%t3MccM(bCB$ _ J,@՜ %ӸZ;.6B)PT~~:_tHNITScΤ5_3bO6-[o 7$cn:zNqnE2~7\NT' "[fTT^2F&+c5r~ԕ(jl 48mWDC]X#<n_ T 45 C0 V~ m&AGA7w@w;Q8Q ?d9#1yʕq_eS]y|d*&6Q30J(WG>HN vAg+[o:y1ډGmUV'pJ{"M@3X|*oƙޞ%sfJ<ߔ[-0R'G i++qNPF\&XT~ykPx>–~u2LX'P MOW rة Z?qU\+w>-q}y/sRQQJ@737Ka[t̷E8X,Tp!PVK$`Κ׵bu~*LlBz-f{i8DbMp/ŲF_<`w[Uq. Y!'i7L' Rz$v]c-ީ%HY~ٕ 鞀ws{)Wa˹ԑ`{[z ϡZ& z +- U@uBP.8jz B{GtϤ1ޕq# ^o2N*`DZm錞c@QY@Oy`ŕ^ )H??s %J@f-H%{#}řPKn@u5w:=YX9(5#p 9#Av(~-"]Qb'䠡ya +'£ +vO@%7_*Z-r*~z Ց4!wBpG-q.a+c"wmqk=WfB +k^0>npu5㞃= m]0o-1:ǒ~%ui;pVO/a3;0oKܼL6Ed@ZU%{ ^ ͰyOVNHLmu?uMBEQ1\IُOui@L7Nk\dd[i|lRܰ3"rW^  +19~(VZQjsfb5~Nl, $LAE \Yv3k"*Ie.gj4uDk"*T~~g^ ~<|1cPx7kF84K(/AI\%HG;'6`kK +ZJAFqKq$5GT#.a;1 p't.t-SSUn;QY(sў*M8= +BHZ# GcDS{d',Utl=,}*vcr+](_1rØ@?A[KDlv'”o>=ԏ[?Q ôn!ܘeoiB]u3PzP'ߧ%44Qw L7@?;gSVjgohop7syR\7V%xL| 3n|2Q|-GotuV֘Gk}fd'̐yQ/;^+b#&~ي2(ɚpTֆ)$Dru:5zj,|~0T\~>*,6Y +]7E9!7;au*8Y?Ң#WfiA~\mB\$OwDhE16:_JqBR%*X3 !O:`Iok2+}Y'1%Y GPMJ{rK w_ L&N NyA'ճmﺾo4gz"v;L je %Ɯ{NS6U'*@djNcvo^=Bi 795l€Aⶫ627ICkyV_}B.I=YR2U^c~o\Ƙa3Ƹ2@eU*Tlmcӱ~ xnNU)o`Iχa]PFŚVTC&ϣ࿋Y=d]/..FBXs+$=}buM>RWm6Ŗ6ᢐFX 5x{v*j;zv<_~AVUJϐ^IjQxシuQo=lK_ՑEkZ\4sqU7vOa J?Q)4C^\k[{3y~M|J'g4Ay,$0( jHl:Q"V҉1X&e s)MZ(W |Ϲ\88&tcpҔa͔ CC GU$^fb|8u̸&A֍9ke7;㥦koAvՏ0o5y'M3q"y$[Y@SgÓ=ݎP1)L \!B;U!)/C$N$A³ueuU},3Y'/Jc .8_[ON-<"NawGm_+yj~P]ſ^\y X,r-|㒒ܳ<L^T},^eDR,nkqց%|r,!gJx=~p{"\eeEN;Þ=${q@Q_\?/иLe>u#Mp'Yn_e<q㼅Ra8pLB=(YK[l`BKB#4;c;HS^OA>Ʉx\+0lkOԼ`Fcfup.wlCnKJIi]&fXPAn1کFTKBoI!ӮZ f)~Xhy9 ݨOC5&|T2ӲnSLB5eD0:yP;(w9mΪnWhKu{`wk +kH>*ڲ1 wp5Q݌$;LvvJ1f3n*Tg@oO#9|}?V0M5.ۀz{" NK?C_$ P&B̆e>(qIu`|ob|_0l2WꂝsCܴLTIa?f(/+PIwB WhgšH EiŮ(G6 +"  +"(H2̙dfr $xZEP>ţC~EF:}< \{ +% rH6N$(߫Nᷘ_%1]2:$o-8ȥ I-qt;'kTjJW^}kfQUr\ulNkHn᫂H*Wd6M2 *{`V%VRoJJ`+"yO|s86Vy8 :+;9ɨ=.qqѝ=ɥ^ӏwldG;fH^2`zBȳ ŞO*{M2MoR0i:T~%$9ED~cj<}${.-+P]c=Vzpwz\S;!?C:GFIױqYŞ ݇>;]mS)yrEz_n˕aI"l|sGvmߵ_7e]֭>ГU)i:D΂G}V W5*{f? +($p\)9D$ZYr|(4D܁OHʳ ;ܫv۱jxLr_r ;Wi nV|Rudܦ;@YNl-QnJȲc/14C:'K&̕BOJ{ߴzfsW|F-q2 ?}Y[pXdY<\v+M{ir8~LJޯ vlL: ?@o[g`}>?UrǛI2Lk.}GpI8QRV%܂L0/PUE ?ɹTcۼfHs^QMC!)$ ; ej uIy W6#LMi9ĦͱP*HʘFg]mߝn+|X$Z6K'OQJq m(B~ljSuZ ťbhWP"z@UVJ΂\,<\HA 5Oaf΍C75O Uݮx7F>QL~:ʥ#][eTS2%c Æ~EWg9i%3W4ފ:}޼0_X|-ƣµVu8H{YF"qĔ-F95E!L/3zLw@"FRmOQ&[#ZO/xˤr~9T00bܬ 4Pߋb>_nMFY%MOaN$ʡ˖~ &($~>tBM%^i3ϐEf8UB '`-icIaͨ+ دR=ZȾŁ=5U#5HR>njky/s6H؃E oLyCG/?QE%FvMMz)=ZB.ϡƋ/•3O85&YKլ(ST eҝZVx'xaV4Ë*H]z~h~ i0d,K8CZy{jCF')b|xNJ>V{0e#|SE1b狛*_R"37Boξ(p3_<ݥ%-tɫBetƓpx HuRuɵ)H?mf@Iz͂qrgM_D|Ce +ӯ_wCՄYK/Ԩ 佨/Y0y̸7.]*ѳa !d[m9#{-;W[ U$mb?ci3ؘsq6ĂT t֠} dlv{Fyt/ټt̰KQ8 N"4ʻc'׸Ns6I ][#?wsb,4U_ f)Eď* uä6Go76ɵ{'CGa+RUA=@5_rgs1OUG*ʚO&Q͡4%nlc=%Z vY Zeਝ4? eC` _wvĦ10KB/*Brv4όwM 0r `$CܝGa6;g-N_&ɰ.` `0M/s\PMf`p3 $A7 i c(y jӍ 5!UiMSD-rBFL&^:OF-T4w T3c q]2Rd/3U\;?Up=@b +TYRJ3O)*+sWu.[L6ǼA. 귒hoN_=C|HW Gz}w\2h{?Ur_ס,[<4DmD〷C/Fl Mr_򑹾g"P\TMIiDw$=` IӐ }6.jYx^h}]"]l +8"ӽ΃ǐL"Hڝk:^֖Tm.^@1~qxTlU#U75:LE|4&W25exz*̖̆;M0do^lpmaIS7kD#'͊$"lL?bADINmEh 8Ԍ*"vұE݌5Z5 `z~x[MN&a|b(ǁ$ch |cq)M_Ɔw>bSО$  Dpz!G@o3a]PnN2);K4 U"p+q 7bLay$04iCc9(6>E3a{ R䏡0`?s07y9'`Lq`ScLr&MP.ڽ,_ru/F=܏=1ltŜ 9>1lם +KX_t+ =#ثL +uuWK̹ u)F@jR_$YuBśGbQl+$,o8qlg!) n2QήU>Ytw(^'Y! %GU9, &>YcwU Mj"Zo6VWF9=al mynqA/2AI̐i +qAN?!9NxlbO{eiYQ̶>SZ .&sbj?1_ǡPkٟx`дY!n6fVJ?ffon06l)7BuyMAѢ&m>>Nj#4J%&|E]ۊ:i2g0io*6zXh +҂3;1"2ҍ+O?KjaY|nMHpA/LsI5cu*ΐDx!W {|mpq%qehrYbBt M7uA- +w%5,x+ z!Ί}|%wpȩxeXx|Yy$M}yAz5{+=}5"6~{άq~p^Q~Md~*XŸ~,LU~S@~5 ~+f2T"P{pUIpf P[AE;Z1ٓ0U)Fj"0΂op~7f ![BPY_EE;T\1撠C)k"djpmfr=[M,1P\ǑES;`Ћ1')}"Ρmfni=pkqr^mtolVurX wtDyw'0|Yz>̾jqźjlr`ntpu0rnvgkbtgwWIv~yCtxz0b{x|bh|~j|l|^n|~pp|j\s}AVtu[}Bw}0z~l;fׇ i +9kDmh5})oviNqꂿUtXBEv=/yVǧeP{qgi卞|l{nohLp(TsuSAv@Z/ryX_dִ2f}}hƖMk/zmtLgdojT3rxAKuI/8xσ[c&5e[}gܞrQj.xylfoDSr d@u/x\ębp vdܫg%iwy3kyenbSq@to.wUad`RfWh-xkkemn)Rq\@?t@.wZtf4uhvjxxm0xyosekz.qR|{itP?|w-~zK'rp{sqԜu#svFtgwwtudxw*Qz%x?E{zb-}|Xpzr'zssj{@(t{vxv|cwy|Qy +}>z}-R|~H(oYpq݃^s=uPt;bvSPPx <>Ay-|0m{opzrt?s^auQOw+T=y>,{¹luSmoou{psGrlatqOvk?=txj,{ @k mܖnlprxqؔM`WsNuȌ=&x,zj׫4lgmomqq0_s*9N uI_|2so|u]}@vLO}xT;"~z-*|Ly(x*yyr z$y gWTaˢĮkTd@D\dPPp-HG&]30;sCg( 1DE*n6ܵaz*&>P3ĸg| ,X񦁓`S$>BG DǕu#i#܌-`xJ!wم:(`[HWeQ2UFD`|:Cd2~TvkdEeUb2̽p ʠ~[@QdF!7H$ #dLt!BOK*G-iCrB.UlmO> ,B2W<+367ߛ@ )۠&KO 0ޏO igm82=D 4FB[!AIb4~Z *fz\OtF&ӝN&3xF[Hjz&3n14bM zB! |+ +/hw{V\lsTjg?қ۟u 깮D}û.5ʺ(wM ұ=Ljeo(u\ yPXƢ8p2232"uh0 ;(3-ybݷ3WdsF@w ,8#!H*9)iF^ +P7Dg3I33D_)JQNdOm2ta':=J.۱ +s`d+uu- ǵiȵ\L +kw/i&G1|91:H^gW@-Eif?QF?/KvřMkz݈uN0:ӎ3BJ]PU@׊VVzDPC9>RTl{=EY^ScyjN96b~mwj[ Zl'd}[YގM:tU9WI-#d=sѣS IKuƷ6i/JO{s{c@6oPU,'9cV~M6IQ1WwoT+mlF0\Od?oi4M4MC%HfM[r0p[p|R’/Ld/_c8]׍ YpFKM(Ewo@jjI0/kad[H>|/ѓL |00SVRׂV2Cæav4x,'L82'7&n&CĿf]9-f]i{Ta4EeNٟή"V_ǔ3tf65ҷ, jP6Ex)ͻUSu@6M6dFVSˬGŦwƠuy@>.TȆVOdj?#驺sycA)w,zl<ـB*7ij,\P#;}}~r4fxO"ZhNMBe@(78,iA#FaN}qǖ*lf Zۋ M2HB-7߅,yY#p9|qeےNYƐ*M}"A튘6؈U,ۅ#||(qW,esY!MANJje6Ç,}#5tPcjOf=_`rhTkHm=op2s(Hv "zbtu5k#jl_-$nnSjpDHrB=tytn2ݑOv)yL |triIs ^ٟtSuSHt#v=_.x02y)B{! +}~st(o.w]^`cCcHlVf+;t)i0aldOȯ>tsw[-wnw\-_AMb0ke#SsShA!a7kO|o>#r -v0[Dn^aaShdL%rg{`j哟On-=rfv-vm3Zp]­ `܄cr f؝C` jRNnb=q-vBw~o`^q&ccrfBti quk_wInN1yq<{u8,-}pymjynlpptnRrp/qsr_;utMwv2>@?nC)HKс#Eu$%`^>[ +(?`~^x0_+OËv&"YD>s5x']~-if~>NF" P^OG# ǖ0<7ӆ7 :sXL!kݱrx{6Rt"+@q*7k1U誘Y}(~\H`J䞂\ +52[{F;Onݦ *C{2Hpuw0D(MHOB$vKѻX{'V' 5c + +sh]T4I DGãTD(2BNlz9eB_ ݫ.#JUbGɰ Pc36߅!3?o/˼ 4Ta1l-vKWZApɾ<>\Щހka8Z5$GdW#{{ߢ! e8l&Vlu4ʚ@ԸQWJ"쎛)9(6gf y'1?JL)b쭢l]4LkۘPpuﲹ)nCA Ŷ+2dEH'Hm&Y3uѷkѽӭ1n]_Z<ڮRvӛpjm9G݂#j}dA-uڠ +0\C"dhK>مٸ:IFq\BVhF'$[I&3BtK\ D'`;I ["%#N\I +|?a8+ş3"-Aש_ZZKO%u6`X{cͯw1 $+OM{'E],jz6+~ Qk a=_/E qbVk&S7fg\"&]KOÑ: %ijeB>%j:l=T1e~/ߪg I0^YV)<^ϑ% +զՏQS-WGpaθD8ߠ9D֑ՃXM' +UJ]I"mteuuE)-3`Ҍ SoO6Ju@$ZZǚ;oam>݄92)@m{>-V|WU>r$Ӳ]qّ¸zEYuɔ>GT@蚩\'}њG9mp.d.@L4c&,r;b ӂdlt3ݦ]Q<b-w Nk k bK%H@ j"W4sf|Aa{8c%J@bW\E':Ehsř=}9fǹTW !3ߔ% פԘ]YzĀ&XIkWdPيb]9gbIi $ O1wu_)xS$P)m/UI .mpsf5Uwl}oyh 4;=DUIKSDSjj:?2*w0P4o+G4O6jeu HW)ϛ=ݮȆs51 okaIӽ֒Wo0%>#}?V5N_r}%7 +Լ{!`D}K_4 +!Q\HҽzȔHN>uA-^Ჰbg%+k58W #wi+q0khcuTT[`5Z[`J &-v**cs0:-7o3G(Z!d  z Q}vx'E}aQ#*'viƷ|'in˵Y;eR{E1vikYT24o/;K |O c +Rr_T'UtKyγzaL= zs#k)|OĀ܇:axim&&^cŽoIѓ` +W82K/ױϬ˽^ipuO:JD:WtG<8YJ] + ՄyiZP-|xm4rQe`dZH ;4SX1̚`wpu>7 H2%Cd>zES?+&e{\Q>+) ^T9ZPFV+@l@ A B +r3L2$$x *,^-ڷ[]<**RInpdk ŻΫ :C>KXi<_TTՖqcs.JmZEŒ:^΄hsVIbm8tSX&^ a*Ɋn^m=A2s^mICca|k`K{"Y١:nf,ڱW x_n~ +!f睥# Aɧo(u +gįVg攷E)?n/ؠbdSu3QQIB`\C!d +P,2QC[Pһn`RXYU^',|Y5G4-},V{:T5zGFdx|4Zٲ u'ʦ"Ww[f^'0Xcx2rKJJDJmB|CÁ=55oc/hNL9'0jI. =$!_3s^>pX0]ScԹ`gi9Q?+,O|ekkC)6bf!),MjQZF_Y[-ۈfiv&mH!`5oIxudP#F +P&h_2nnmMsC?wOt[Pk+jnA ǐHځY*zל`L﵋TL01|w:44o(%j̨5YJ_|fyl00DO+/.5T"$8[g)T`MH?Ɠ\fިÕyL/\Zj@Ν(Wڢud>P"Yd'$$ʗVJ+W>pG[^Gڻ2|M 5kci{ZJbILFPCR7<]'wKÍQXb* +$f»~ ^̈́:)]}pA(+RXzE;b1t!9ݠBj` d> !L7gh%7nׅ _Qg1R2Ǽĸ:@n\KX)'WIC0hݤ!XL}4l5 Vh2,?bLb#(sÀytk]:ibP_"2S&F ߆*:/~5l6fݻ Ӡv(l1u;8qi7mL[@Wxlg Y<#nMDyYZOEX;/C<_IfGuROM++c7S +4ƊaZԃu Mߊ]>]o/m^&=Nh̕.g*>d_$ +]koj-]wz`g`@XRSZ^6uV^og~XQ 濮a%{s Tp4{HLydW)YU&R?FD/'gH7yOG +S0᪄g :po)-.XF:e*diG{.㯙nwn.tY<"`7dsSC!x$g:SX9Y%r_']4K . q cYv.㏢Mrm*ADbW냊M1Dqby9mT'buq7Or }yXK8`微.;~1K}wҭrB;ҏޒ &6 Rr*?j䆑lugICkM|vhZYHn8VzQ3N??֫zGP5|No(RGJ[5&Hs)qq}^&2n:zǰkFmP03;7Nsi+ZiӍ ^zs7Tm , zb@p22{96ʄ/= 4)c x +t&83B-(;^SedSy7yG^H@Es7<AQ|h[\jeZҎy1|i-M']|k!3h{&m5&[KiK%}UEk̀u hT[*FkkOZ e ev]G ؼ;GLW[d;oo3xY{OEk[@|l2섐^򒼗F6a 9uUQ[Em'*uWAw:^WfAw:Rc$DZ9-N7~c + +?;A34VfO 5*DvUe_Rqr_pMv]{қ[;f4( c5ڑGdxEjO-n +| g8 KٶŲ]{r3J(?ұqlu;S7qWA}ǰ=o +nxg|GCTpTaH͗O0U`llڤClt0jh~pڱY_,x',IUjn\[M zDBb<Ô]T7S0Co}2%sF͘MQ ś!7fSѕ&.!mFk(+O Oȏ@ W1fG 0JZ-#=qb>@@gIxFz|޴\E=Yg6atҺ*SY5T9vh  %2{}n}I90v zRf8kOʼjVo:*xH3_ 6WWx4\;5juK::i7rʶYAd~X:J1<;e +(;MsrlڪU[y5vw(k +-OlHWeG㐣݆L9sŠFp6i&xИp0C2}TxmCH#ѽZyڇm{+EAaWdVSy%ې8bש"SLL14$Bs&Bj&d@Y?O+82}-D^ݒD(PR{Ѭ.s!$4Pڣo\i(#u"D8 +:]C>6ڒ׶*m@1GQm lìOrusg# tk-ۤ^G) yۂ2b+PgDWB;T+4Qv{9輵;!f6~/ė|@r~EM$,<`2+oMҿ$ȵk뤆)<$\nnu|LX+z-]:r"Xꗺ.KW;–YFC :Aǔ+IU u+U>.+͋;SN@] LUXKx6 ͑8=*U4^qݗۥ>S韒+Ż eLsf v?m!'粈Yv0zْ2GwT1e{BHM, &fr(y)% P Ehl% +$EVDĶt o \~6-s//E 2<뤪t :mbpVn(Q7:ziZNl*3miИ` snX +U\Пbi0^Kc=!!{pwpyKH&Ș/UDg#M@1&yf_sIrŔ\ Bc7HexXltbu!hI +&) ֩ršbps;Cu GFq~~c6RbO'l"<͖z [T0}5y V|EWrф\2aAA0 /ɷW&aA +AK]מ q\kPU"Jѻ?W{j#'rG^$U)~VHDTup7eÊ⚊R"I^w0^+mOXiMi-T5ȝ'N]~{e r5Ճ-wA-VYF~UgBOJt8y0.{KO(vlJ uS0փyk^?6Wc+ +Cl]Eko%ݼ脦g}h0[[tVۃw,U^|}X?4:a<X s%هU)<@ZQ/[6 . 0A=fxIҗQl3\PBoJ]Դ\>[3?,ЛMOyIOi> '|2kxo6oy*Zo9XYifNP?1k𾠣 *_BupֲB[ 4Xφ}P73d"dٮ&<ăT>x4Y"GXF%Ngt2S 8.hpq܏#~2HleҢ(j =~n$ Y9PKC‰/q䢘&lrS1|8+ۺp5q Z(QӸAX!\$$$CsrL2$L%,*OQuOłBuUX뵊]xV~n,[|nC +-bY@X?(e92"կ)fm6@>_|Xȼ L N+VJ2v&ǂga:y*=>C,꽅zqwΣaVbP$Ԇ3H* +|tc^7CvfCUʆN\A X)MȊQrK{Fۏe"j%hCi24.$ҲɹDӮ?2]HMtaPZ+C9J*_r%QNH4r{W) |em}^e ٻ +.v_.e'T)V4(FoUgzf0=rƣ[(hGjKҢy}%]ʟ%(y쭬0L1sR1w^NJO7 نyoxõO`i0)¿6T@JJL#״C[!)9!w+@,&TQ0GU5a +5\1(-9]s41y3yʍ/ G䇫~IĴ41_35g%@.1N§ N̡Pi'74@rz8Z? i;f +cENOri@Du{A6.ѱ>1_:, Jf?/LCNN*E]٭!mq=p)ݍ +cFMH?b;t% 7r~L&3>ﰞ~6slD'9?6T­ϙ^ 5; +k[}gX0^hq$WKJm3qV/f̔&|}31sO[9"6ε6 9K+|dj8a&kɐ=9wUͩ?|0,lugzeU,}* e-^uGSoy77bC#Qşn[,( l^ 6!ʌ>":jbiq2$V1\$ǕwkGԣQ%[`ѐJ Ή `]+Y)u!*5(HIdaoElw17hYxЈrMyA39ScLYgBل*dlQ P/Džml)IR`i?ĞAY訌:et/ ysn琸M>dSG&HPe*p:vFӫ}9|%*CdڌTm ؍θSVkq~VQ< f +CB'LH? 6ǍZWzjxA|+cshi#a43 KZr?'H:m2AĽ eЭdcM^k^Cj#,@DL2I~tHGǫJ̀e W`_qZb +"pp߄CH I&d2L)xʪ*jXEtJJ]EZ_=@XY#>(UT#tgE UO4E]cDix`Ffw0b(U +Y]sAvjfhw@A,bx#iu+E_Xx˼U-EW'_@ce2b1( h^EN +`V[@-kbn_Pe:60lu-'\j|Dme;tHGD˪&աD!ߪ@M?B=rΕtSwo2Y!;DLž]򮆁˶Rf;˷-r0ۏ첸R}"?5#mk+3((.RxP{K$ ~?uX m(U$C[KIl9vL"F]C2q.OI61Qx 1iQZxle_)O&uZCj7$6} A~8zXmb|n^i>]fQBchJDj^ k]rou#Ih +8ЂTc1)üW+-*kxueI~PE:LR] &t-¬^*$M4-bB c鎳A9ZuKDۄT}pp;dzx0w + 7 ? rlJU/3BK3hf@jm1RזD*p֓2O(Vv +ndmMAO;1S`M-a6)N˛,_ +l[c.Hі%Ŗش+#]lcٶ$ s~&b~In^Y6-쪸ʟ/FRa` Ei|o$Գh:)=kZv6g|V'E;R^t\"ZW +YnN'⢒LiK[!6bjnf$=+ *.ӃKvIchP*%zډ,1-pGsD8DC7x&X8e!j5kL4Y &XqYLA)$]s_g^.[fx́{sHq  o݌ KFaa)1$PoגיDO̐Ńwq?0$װޮxYZN8$8 _ُ$`lcZ6ݐ?ȇY+0H5zቔkQ}Ö!~QQ2&P{BcH|7gz9^sylu^A ;RckU>)vQ 8:oVcsK68#7>^nNk_<w*>mڹ3"ΨŢl` D#ޣ7W-#hD:G"DxA4 >X( 6b-X>*'qkxOOX+{5| fP|~NEzEy?|S-2<3}=`[~#ltGPj_ _߷,cn$kaM=UlMQ"gɆ 5iЉ5M%7R%qvLSG[]]M vKsw>q| +7pL=#.[CjϨ^wUOlTvCe]j20uuFfձʪ:AƆ"E*S'_ +!Z:Qpt47rv윽Ys9{<Fr׃d+G1 F~ /bm1&&x, ^ LtZnDz4g?x7o߽06m3fB|=ksΛ 4|K5~Xp%&(*,.0<664^?|X@`PsB#b$ PX<1A͹O3l.O IrOS#?UBP' +BPT;} *~>22 +EOL_~[ g ,v,cy]zFl(}FVύPq㫪J6A$*H$Ρ`v0;f×9zL2ٞQC|QM5xzAR+Ԕ k*xGjsH%Ť^Vaݼr~Lȡ3h5$؋#2'$ +,FP].V!foDc&2`* _'ǹ{# ݰw%{2>aQ*X SV*5r1V/\2dL9x~dE ]0 +^z[AKmILŤSK``;m\ojc{.]w{]}A][UT5䄚T9"#֑$-QJ֙ +(R;7n^윆a:VVTST@e& +PkLlvw6ԷU8{`>5#8-Eʦhc5Ij ɱUx(EUu=XU=ux}{tjG +4a(=Gr(nËqZTivU肝 F7 :&|ؾĮȬ8CLNlG\nt{Bvx~T2?]ъ?:B': nAS+w."nG%PBRBz^MLpz&*T@ mHh؇Dc΢&ZT_Wj 5yI5LOї5m + һE/`v0;fˡp;ϙ־A}UlK8SQC#kדtYFUVErAF̾!b7E|{e wY쓌E8T@V4U4<7IIiA(R@: j:8vug*tE@EQ*r 럄B; !rIC@V@]_ӇQ5UW/)aY/-Ry%F2"  InK/i"tY{p8d|Q\Đxi'6ĩ/UUi5gԧyebLY(ke&\1q(h-Ev;wΛ6 !5kC(xH@m՝N&וy UFeaf5n\+#$,۾.wAڐ&T%_}ؗY6"s 9G&j ơR9aWLt~-m ANv$&! 2p0t{z$?5Z uTj]Ġ`9t& f,h؈!%gS$&T<6ncK /'z&bp`F*8b(@H3x!}': yo8IP&\P{C@Rt(ɓʌ*rH1𵐗&dx'McČ`$f>m|S~䃱ؕ$x0mq]Pe& i#eF6AWB~8QChiTɞ <|]z[u*nz!bg9Ԓr3lq Xr3" >4SPh=m@A8 {Ͼ+\Ǖ--F3a@4M6;ҩ'Z8JԐpjj6 DzQ0'չ=;Qv(X N#0-z#}2Ң>ƾ#Ahw8Vw5C/[r:mU5fYH7H)N6S PX'>}<5ӽe~y'NNdtOݗdjM Z̓x3YAdECM&-ڀjG ož>ْm\-u ZTS#%xG;Ѣ8]0^`#Hƺb~ںnA-9*ViTR8 +`'yM>aATm#GђZVZ˪ݐETD_l }mϒdo8zPc)VdjGT *:YϪ z*MSqKP}W7K۫Ov*om;Czzqt}JeVl|eryItV2j)kb腳h ?|lIlN^mzQr}\E+ݫl([Xp1ٔZ[m@_Xi䮠pvfy?q)?GZ3=@W =T2lvsdrڰP챢ށzE     q5YTp +yOCŻReb &l[Ghmb9M%>]8!p~{gkl’B42?ȩVnI6 +e%2G-8o QP6ncN/J/FQ&= }-9>#, +>nƙ,Π z,>3'ЏԍI6Mo$GWdosfܐT:jGyhKڻ)k[Leٓ#ceA>Vl oiEǪ2p˪lMe.{J~IT"Cvnc53}-"ÐhI'ِ,kHM"D[YjsUZCM:fD˂+)U +Naa␽Zfk@ 0,"IBLtrAlĐ  N9Vr:#Q1ha x!coDjԀE_dLqi&]8NLSNIS/)WKlƜ5==\[jTv]٨@(WKsm!fwO)iiLڤ?鑓#tɕOL=?ٯ9,o9̳t2UAP@C6-!d!@ BB6BĂQDkop94Mre9*ӍRMd0W:rB5*G1GRBd; ib"P'dh8^`B5yϕJ\ L΄*nW2b߭L)3t*E&' sdr* i@s?/=:Vh,~ߗ;{u15k}6EnA;xobhS$u,N%ɕ8j 'q/qO=`S)г ,Tרs=@o5-z$^˚Fk3(lUA?5(!4v(_uw1ff:w-}hXKvzqAOQ NϜ@:&z$B/ $Gc*8?z0;ߗ]/ZZV#sY]X&qzlKNCd P¶GFޜ=;èj!,z5ϥ+D`C^n"NJf90 2?}ɉ=yΝi*mJnL6M$_e A ($eEU Ȁӏ^9,>IoGs}YEHBWh֯յYTwL3rS1MOeS-)*d`[hh%؝jӣ͓\$|[XRK@-_JoЌ+כŋ8V"]?/&{d_$]B?,kʯ2xF5xun#s +[oyDs?{how1,8 fL?CVAyE% +K.?)-amU [5[ڜȺMtM0o?s}*Ϝ|-.̩ {JZVu (lIneC6%FQnj̍;\M{w 564q@p${{bKXQVx &\^fA{O򒻭m.B0b @ħ/d?4m/o +y0wA6kloz=vVtbd.RC{,DŽ4]@Г zӁ4#L#y,xK|}]XÿC>A𵲇i6pD1|܎,HψP(@c ii@Rq2[eaU^FR6Jz!` {v' fQm)0}^(6Rc$5 (r~P,y9wM:(^։gDHDϡyl"0A4t!5F5bl ”#@ +)ۚ+Ou`;\ mqׂZ4++'8bqu2ǬN Gt$ F7 G,)O '6bgSo/+WuQ.mlc`rj($oQM +0rIF?i#@I_S>8Z7gW-[ܫ J?&[1Ck\B"mф;[ + 7qD +$fØt;Sj͖%qzfg,;-^Q`-}"ҘGHv- 35Sl.J7oÉ@ 5pNgmwٱٙmu*ꊸ/#7H NH  @HB\$77!PxE.ov[O8bD>Π)Q6AY-aWjLGU-oF7k1Fj@3\=ۉ <'#Gޙ?uߎo qxeP IÉh1nzY=Wu Mզgԥ'(e]-gCGi.];^ɹ>~o[?) oOP^M!=aǠtRl69m^rU4\ O%%-,O]TB*s;?Mw+Pmv{ւC)#HܥO)ih\LC.!K'b1 HQs.w{ϟ/2Tp c6#s6"bI)i+˰exVz:;9 sYAnSKG?vOW{$a R*ը1o7l ˯WC^kh+qf7 :B|J+*u}B2#PCѦˋS%e*:g cCh܁li) +`Fm5{kï 5!>s^sUXt9UJ厓7YΆ-P7 $*gz0W]yl`\:XA>s97<5'&cE=ffӕDdyix M8ZH6."4Fm Iz9)d1 ź F+)mju@a7gDfFiUcԝRڊXxi>6|XG/@@+$kaQbќ0/nMҋ]%:c!רZTxY jq4Fּ]Xyw?=5a'v:u]㌵u=,"@n9 $$!+E@AHGBBpEA."(hA P뷙ӗ}Їw +oPEiԑ9qͩ[ q)Q<\Uh.gY}WS(35QEJYj)zS h/Pk<^~'?aS| A :8}F/R+|cha + 4Y^HjZU7 +[C1 ?w<}Aw{_Kyē]Pmp\+ؐ- TźˠRVYĐ[tX;-i(i7[9GPq4zg6@0=4kֈ\c-MANTij *A+7V |ZQ4fmld/ 5@ +ݽ#]w̋Usri07mN wˌ|!WQRQIc fWlerU:Gg&{ q? +n. |f0rg$u͚B869A$Vˊ:bVoi L,EUJ@!Og)Л@v4>4=A[+g $fy4"nv,9r1gJc:5J-AYL +:J匞Y*ϗȭy5Zg!W6@@6,GDOMBӆF`+٘^-+*uj/iuUcnC9K)7hsz 5]Nٰ;Td~>TJ4& *ow} u?zXcΑggS+~P2u.3MV&*1Z,_e%I#\iPpYRg/PphmsY}~'kGs4Tj`ޅX~>3en؈24"y 'ʸq~tZh/5kofصOa8s߸F_$@3q˰>'n9;7^^^=1.5?jD'_X,D,Qn?t/J\p &w!ב0؋gTStZ*j| D„=bCB3WYx{ot}5[,w$ 4LBA#oaQQ\xąʈ}IHNK ȇߠ Ke's}*_};v$p;$p\,1~ ?$ + + ! +9~|?}SRwp^@YH{VDrqQ"Ş'VpoTU$VdDױJtzt +*BM"{i1a=~oضR[ Q!q/eUV.yVH[(`IʪYL 1KWiE2c9rg0]DgQ])ܚd]ѯWiMU}:o@:vN?ćѱ@Fq?.[cT(y1oM70œh~8Jh.#lQDҭWF[3j;E#@O<~.;YKhk&qtd=rT}J+zPUX}Ψ9gTz<#8:<1)y/%O$yevUm:>Cn^!R$,@P18Qr .eFҺs&o|<#AD1@q47剜_NJ5yvAT8a@Â*2 +hc^3~13JEi颸r!:Aj$U^NMrs!&xt~8ۀ>4@sWѴm)9PV-kQŸiP8SYFR4c4Kl] IC4<Q zás!{2 ЅfNxfKH~JμΟuF^4܊prfJ@г:6BRBd +Am-[[ꍏm@Ch[kd+>~r`vS!CkBD+Y]d=a&JD;Dlw؛7c_so` + y툈z6tk4 6֗7Z *-Kآ&%ת#qfB׆cʡ2 GMTC?.X [ZH5:Wt6譥dUEFIҬŋ(ZǗkxZ,z0= >=P~?Y9=1y~4tV$aix%A!jLsLdEԶrV!tZQ<s`i ,{߸?xQ#/Ne`%zyx+UnGz)xVY'iNCV`k"|FyT&`y'_z>#n/F\Lz2Cs/)Tb%Ӌ\8yU B+|Ȫ/: {7Ӟ޸ho;A[,8N(V'O7* xUzjޝ;Wd(aCV%l`PPyp<}捑^gՕBkQG5wa…g7pkŭYlhd˿L^b/IİK(9w} ۿy7S[Zh=(L0~l.}-ZYn@."@P +gSDFd{W5d˸:n8 \o3K>^=ݻ_%%4$&8 j%| A +oմĶ^Ƿî:fԌ& 6-LzH| b?ӑu[}U +^^_b6QYU82Tݘi-434o'iͩZRn +ZoH͟sӹ?}W>ߪm7 +b#1en ?#s"*aQ{u5k ixtJK} +LjH +0}0:[gAM vtv3tљvZuծ]uC;rCDD @ !`BBHHBr;\BZPXnŋu ؇}f~/76ذQ @Bbh\Yuun^R! lQwLs6H-M{#RpRʒKʓ7k׌MrM'?gİkS!" q8@& xw3KsޖG!禼:􊑟 %X~H<齾vmWkaİu~AD +(Dh>F,AC~I)o|J"&xŭԤǮ03bgF}PM}3-z[6|ǓoK@C' 룐A PtD`#c{xʢHjl80bÀ!s'<jc/q/Ӄ@ | +8- QMxFeU>iHR|/1{.K<['-<+AIgPW7 K g + N H]iD/X"IYEMo( +g]Ytd_6]8|pR~ =)L}Uz{@ yf4HsRA:VPRX[CYqDu*ܹr. Y%3XlsZ~=*UN^i\U^,t{gP5y - AEr(ӣAeQq>IY`<<)`?5Y^2]b+0gnϪn]T_\Vc/=˚%>x[@A#I=,-B- g Vm<Ǿ_%߭PfZewJ-۸?{5# %SryUC ݠ>Ф'XʂRlFyCrsTI0%ŭҐǞ݌!Wi KFMvWZfC?]>jqF-VTyl?d^6b#Sl0bYKO̹4KftDuE5spx!DGSvWLv|j'mmcUZգ_E&Ѕmc~0 ֑ܙyWk:nv}þv sv$4y4A֏K磻2nuJUaDG222qwQ؃RpaWPgM/ uLnmXivu:3_0%yN䍡I/ɴQ:8nj %bP,|Tv@^@q;$8ΐBOGhOtP___r:!͆i`=li_(x1ra q#Ь$ $v@mdx8$ F{8 +;("a)^STS 7 +Ә>ɟAdL bc!3쨠bUom`kRS2i@1ȏlr>>^@=͚#K+ڴW+lc4`}_81CQ~u6hxF 0l? y;H !?)|$Y"3?iV徊H!fLSI̝Itx#{vMH!!M@0cr?H+e.%fNMcH͐/dLk V-I9wȫ_G 7^P6P%Ȩea-\`XL)jYFX| ך3"紒jro/&ꀣmjv;!NzA1 +1+d)VasYV.o*X0N?'Tg<'TZs{ZI=yw)=?S4О\ p|*N{?(ы +Q#eMeXqiJѳRSFz9XFRwOMnUzwOqKqOVgKx}E5qcu(:ʢ2 R^P)R @JHC"BE0 A\ gnև}99? ^!HyYz@-F*#1KcH9}b_Rh2/s/gf 97y7 HPa 0WRX3aA *v=A)%(j*5ybf?7 +@\MH@2 P7]APeB<*#q +r|h%x\N/bz|VViè- +5(n@ +^$k +$ub +wkd߁zf0]1>F)\d7KheRUr:[Dx%2Q5I%euaYI+tJ^%(G-il \~NSyU0.FyaM𔋵dCPq d&؜L,QdJ)BJ)dB֋$SC wNyߧ6Ʈ6/> +qJhMIlm"Y+q &WQ%+ŕm +Tbs@@ӞEoܭ-~b0䤶2'rą >UepKyBBc^3XVVIqUz1 >7O;AtzB;~ICțF-LZ,8GK(^4#J]cz9@YA}O_\;nzGPLh%%lƲ.I*\Y(ؼX%mK$ik ^-!Bs@i +?lu?ov9цwD%HS2{31| +n)c!5*!/Q)Hj&I A |sPsp3F>M/Gl|tĺκ>mw3ȭUNӑ98żbt,Bw2IjVs:L&9Z&9&^ MaݕɤvOeq'Ey+_hbh'GDzCȺB(kAzE*f5Ό0"4ӌ)ftPnjXo]+o?سB쨅手e36M$Po(u +v02`Ry=0^G/z*TN k㷩a#3 +sr%ۿ +Ve ˴?si1ߓAԇaqIw3SY*v5(Y51讆to40xQ9rl|Wӆus^Y~mKw|NQ^#Bqsғi1s̈9Zn0/GϷ`{|{cn[:6-2vk-oVZm-FC q4Fcqƴ(c j&Rߕ}L{#}9,Wϼ3 , S!VCfi}ؼþMGNK?z8O.{—`bc?[BD/b>bSPo93){J<#}Yw:W@F4 WAZY۾[hΪ8,v +]#xA7̀}@a zZ`C? O-"ܖ#>65ڷ;2"{+vM%\ -ypI^vq2_gQMg9=ǥ=Gg>(*(Ȏ;Hd%| ,심@EERVOU0l*wo{_;Ci zCg н|_H)Om;ݠ0ʃ]ʬ_Y4("65p`63q' ܭc~3!>G P~؎wr+ ..:rN@uᎅEc *lظ +zHMQ xzAԾDkW pN8t8@`s$@fka;PYln "b HQƺoc.᮳cً9 ܹ11?` v뀍5}wG!Bj/YD}鈿S ++5wqY.棇xcy/q14o(v7kHx AAn8x|A +e=1ı.${5pנq +&+0ȋ9 55l eԄJtJ{UK?Mj>"k>G>EOsE7ڙ+2k1`0)쉑KxP{ +]D#؄t +J2:xՙ&V"_8Cj71RuӲ +6YPsMҹ>jY,BOz;[Rd:MRhg75V]={__Зsbc kAENBv?k|?0j78H89PE +-aoPoꤜYB#k 5*a\pP&k, +E|>O<3KbXC㟡m+y~oߛ`b<&Uȥ\59颦lY€VɋTg*uũ 6cdJ3Ft@6cv`^GKq;}^] +h;c;H N]/eS  VUfRe $7eMZYWF0W-3|@oΗ l1a ؜um%]V;B=vB\pW-%\gKERSy*ʐU(E_0}&79 @͟ +S߮\tncuO:>hp{+!Z#9RM2Ǫ* KH)T*mN6M2յ4\DgB9_2?B p%MumwuL@#pBA^ ST::8iQimlY"YY9}^Pd9(R6 D)LI3 %8)|'r2$E9)yW ro?(}Sӑ) ֩ COǥ]%c7M5Y,iY!iFy-_RM-ϻR?{9,Rl|RRF$5tYqE7 )ɏ<ޑ)  Y4PSF5;/xWg-^f72.ԊU!AyW2*R/}8Bfzc%9gʥAgjĥ:NwJCrgECzu6Wzsmsw~a5eJmN qȈԪkRbWH:&*_V/+w_rDgfIkU[4Pe1vGO}MO@ٛK_omϕY' YwFHNM?x=G_sb:Uݔɬyɮ|ɭRAb/+զtU|J +WmR}mNW)6'|cDŽ6%ňw3\Heܩ%w_J{1 GV(d2*uTnVyxիE5.vmyN5ҏ.b< >oDrZc}[-U$rD$j {.TB2/^#.SjПS3gi{ݒ>'Oqb_B]\~gݑ&ft{w t\ ꨎltz9)z68D WoZ?u#ꇗT ,iCzҏNF<,iQL?ЛO`S,W}ueyUL+vS;3$~S' j#*eߩ]o^T,7Y+O;'=#e4@ӑ/rdbO,B&xȏYhuX#wvݗ +C3깢L!rL:{NFN&&%ST˴}P<4Mt +/fVwWkS%*4ҩǡ; Ra:6p`F~ 0cFnuF##G! +E$Ks@9]0D Te8v,`X` N70I>~ r>ę["fȱ2E>ރwf6uw r3W)˕ 0b +WS $x9[LkpXBA{c7$;C#@!MO/ X/AbAh)c52 +E0"Z+l xj=ir$5w« /Urc3\嬃hD1w!av%8?)b|Jؠs~S6$ o=OQ3MAdpm:f2ɷ@Hq$KˡS YeLT~Sz7I}t _(Âh#t! NuM5exuH،x1bCp = Ȣ{v)Ki5)Zޤw=@0A}N7PF,`Ȅݾr<`&OlX+m$9CiFg#Zd= ̠W5o*oQ+~(F{.0F0Lw$sD% lggEw:v/@2ڿ.bϰ=l.R-:{RUp#V$BB Y$9Y$0Baod(PW+^!,E^y>9/yw}qzP!qO( CT=gd W o#oŸ_F M"#Q/IѯȷP(7b5. 0w~B~`9PXT?9; @X\V?, !tǻ4̡Y%ԴjH#uz:~CCoX}:No\{5MU?ͯO+r3nwfB` 9HY}LpuD(09ZMF5M.t+y&A ?,'L2򤨈2% `uM%;Ěsy~QC| %'bzjb72zjRXMI\I-)'Kb mB\@ḨOH8Ww~rCsk 3s63Q64r6[!¶K&~˙F"D]?L 49.5%Y =7pH`1],Y1W|rTMOweC/0m|L"H +Qo\JhKٍU}_6HϵIӹ{n OO?|{e/ʏU{Pu''L٠KT2^fq OhgK ^\RQ?& +lLjwxѬw݂{"YMв֞\;Tw}˄ nʦD֤ctB5YN7)S92 C'NEEC,PGI1YR PJ[rY¹}'}K5Uv Y/Ηg1c|I'SCR(NYd*R!Z2_ɞ*!hTAc2px3H]}=@]_Y0^}gwt# cOU EttAVJNSrY&U+UJJE1HaU@5ikwxN|ҹk5zC'KԘ<^-j3$/K5u&-Qp5 J暒Qr4rn,Am@7dK[>Tluٰ}së otxՕ`ߦ*P'B2p5 (\R' G&w5\gZ׻^<|}WwVPr9꘩{.+a%R!(Pq9g83mRa. $rt >SWV:rk>WX}rKEGK 2؀9ZG@$Ub\TDc+شB-h.YK}6(E[%XӸ$.wBly; +OU+ڼGr꽳ݳҚ7y(n)(A=Ǯ52:ZVf$+̂J]#EOP)=@/q֯/qxpoӡrΟ}=K+3FNȺ :VMi ӒLC5vDS7<]~QmP.rF/Pm`C߽yݏ:6Žў%GVg  uDЏ fB)7^^Lu)6Z2>u䝆c Ъh](VED$ +*d/FI + Œb#ngT-.uGܷ0n +B39+r?%RC]9˻RzU.y;w;l`Wqy-g?cS_iy=*| BKZJO6>b)MSXT*4VUj^cu:ZvctWn`>ӳ~˴[9N;W/9'%j:f8#mϲLviTv:^֚ۖǔ.[Wd1uV#eߴj%?Pbv$k4mv!&2yҶ]7tG۝8 /t)]8IWN0׵^bvWrRsLyc?=*˷ /m $KQ TL eP`F80+c_ĴŦXJU$& U% J>=r25j"#C##KnD]=q=ɑgDGw>ѝW!p|!ݲ7=^Jp|Rq^>(9!Q( HaY1!;BG.;QȞX?2n )~c3:Q/H&à r"d(|!/1B?T`GMG b ֶj+}<Aw#` 'p3nI`ǃѴ(ȦG@=# :d Ry=[9}Ʀ߷ V|aStD}Hp GP''C>i>ԓ}<9S|P6%_z=P5uv1 ġP/r. ܙIH@Z^(%Q| DJ/&8X`a:$I!a xa;{K!Ȉra93aӡ@ +eqqu1Syn-\Hnlf裆XT?go"aHi9C +crY3aaH @FVҖECm<$ 1n&x k&i}V3 #~{Pi کaa5, >.A C+Ĺ!<20DC:oe@Xu QS|pS\(nD{;rPo,'!6@f A c8Lש( _6 hLj] +䛙āh'#NwY3a)X<,a&Fc42Q)mkD,Bg_ ܒZTO.P&6+%_e- / _'E}4pR4Bo`,L\jV[x~IvX%=!+9x-7+__)[T-=YsSn\V/*G5f. 9sPl8PY^X#*EP.r`i^|onI)k-筮EҗvElSecM셦Y֓~G>A^W֯;8"߇UcPwGs-}5bc)pڳS2$kw[4UՇ5wtO7T]Kzuᔦp?VM63rz\?Y Brs9z!p2;ik#|r[a[!g=,Ʈlׂw1XWef ƫVD)tL^Nn?Γ8rFJF7qxg3Pr|UO3& S5`їƽ}/0~_5t<᳷9h[C䙆xO$_TN r0󖻍\g'9YߎAZ-՘MOd%LM59U}v!5J@XĖ1fGyPdвp.O80v9f< smOvcb8fZp(%-$T,,5K34HDuQP"KٗdZN<9\vupdi}{>Q `>7ZNHM$RCÆGda+2ZB'pĂp2SHr] +j yhC_K^hyb5b=lО# pQ,[8XG*cE_ODNCVNš)i8GU;ۈ&_HfPHZ!I!q"EmB"~>"pg#!(Ohg3aNQ4NB8kC{-!v,t5J d @T~|p7c1?#HKAo*V"t@' @ P{}dY7` +b u: Z34b(@,i!֡%`D(0~N} G69?CL  [(B[= q.Ш=4Bqq%xg`]y=;{5x5,k 2)Blp'0\Wx@c2;U ._ QM;#tp[\6scc~pG{ÜʘT e0} 5alZ(~'gYb.cny8=לOO11v +{*D̿D[!އ-L쑾h hśH 1%:K谺8|H!rP6 ca=,(^%~wBx/[bE܋=!9a grܑN6C=ڵQTUnE/?%'bW/wsᓸےRȬCAIɃL;8bXɜ!|n>sZzs~Ē7 ѯ4[؝>sQSYr_?ߓߑǷKWҋayu!CNF +;ڢ0xǡؐ|Ѹ#i{KcmJqkjobMZ:Oo tgw%;y}w,p>zݭB/M6小\!8D߲^7ZՐUPq̸%5:=iszGRUgcefobEf +b,g":z_Jמ 獡#NvF:unrsԱLvSQpxWZy}&6K&w*簩2yCgu9Irr{A"rYLtފ#oserɁ`{&^ɛu6LfJSdSy:qMP\Tee`KBE~Cb2isjrqؤϷ&,%!T ; (]@{:!PRB( R'DD H*" qwPagȇ99ߒs9I$(BVK S%> ~"^=7y^as`&ETSYAʨcGq'y3좂s‚nÔ/.w-XOlDde1%PD _*s:bhqИvN~Vqt`~xv>ǵ6Ç_TSq4Һ"މDnW49z)p}8EGדrlD@`VFExߡ³JdT=bH2`#7>"ak{?~л>;0y&6)!3)l09l:`9e̒ (FPyyX햅#`\/X˜pQ<cr9Ut(PZ=/2*PmC|zu;+lrJ'&I̩ZgTn$VlDt_$ X' ڤEmۓJper7ujRzdYgg穾P3Qֵ]SNA&&t.C#I.^hz-;XO#v>c>N6nkRlrk}xg.+98=7Q; pa``4ݣARP.F}CycJO$ ]ㅾjQPpav:MaC/ao,lfʹ%?wHo, ןDY\$o4(^U5"kUfJglYsVXV^ R x_md-;]:fֳ{l`^`h>jd~rgc" t^hXx@@!`CӘJ*䣃t'w9O~[=>*~fnsK;jZ|[=8t#42B/kd@su:pPQD-JSь6t7t䌞[_Ce!S +"gf(`*`Tݍ=.ne4.OH"Q(D'P\ЈhCFG t}JaFK!k.:7ict5A=Ș0EƬ_lWXi?M12qJ$ވ:&$*eQyPEY+:긺 (# ~| G E 3N:8ͺ;8Oz@5!8&cǴ +|5;Gk :{nq#x9g 8fӸ/<.ou[@1?s!p@3 if o^9-j y;Rf5@nrv' tR/2}e_^S\?zqfLxÞ7$>hp ANAF\2r6hjіI,[t;RZq3~.Ӿg\^3E&$ߑN_%| +, @`iRkCٽV@8y5l 9H:ff +(wĬMқ\?'?z u:Lw~v{ S?xJ;oe;5CB"/oSlKlYk3)Nd;9ut3{ܟ1N|ʸI/WIs >@e@>AngkJXO]%i2Bӟ֯eǤ鎣2Մ!n 1!ktkk:K7J?(}\[0G}Eb=l AdHQ@[!Mڮ{W{zn4yX)(6~;aj<ⵠ*+6EI>9?nj3qf K10$H 0<_^ ꝉh4 ]\ܒ\w,_!5{omwrqqQ{/3=.iH}!徽jϾ&)id`Oˬc6'vMUE]sz=H٤[ ע/Kj{FܕXRgkܴ?ZWLdUE7pQ=’_DőEQoQ3C:~AW= 1%ޙhFIiV V\-[SOxgWVS{zTg*|$1ZpqXqU_-khbOc/scs^r⦅sx!!n꽫QZM}y6Tvnj +Ҁ' ;#=T>)2U>(I*ي.Q$]qWVS4)u߀`_vP@cMjM給`:IkOk[ +lZ +ϗΉ#j3I%iCibVvr/]$8)NIC5Cǝ/: ;/1n&K `ŏX4jFtM@- + aPBzVYaLYㅘk|kObX3ٱ~&6r6ȻOOG6ɠDW9i"ӽQEhƜ ,0b*e9,'aՖS3c3{DQ4H0)ځPqE! +<Q=0i` 4LOt=.a.ʰ"aDCE4TQDU8 cPf([ .Rn(ASxX9xG r09ACڗZ1Jj ֨IGբ8hJ*\'8(>M\'ot b`8dLT;YR6*q~uF.J=QrNި?(KGyR$%zQQţGC1 0Vg်Qf@e;b/CxbQި$D*,,  ]彂w9zЧ[0OE-z c LZ` +c16\0j +#ڭaMzo0|?@uDЧj*[>*/x}P~|ݣ|ݥBY0< }c% \*fS1wM\H tdrtqƽ7jCd n]7{G}^kNtiD/5D/4Dj=|f~Rc5uԙqIDQ⊈ȾCHrsH }; + +#xZʴiZԱuZ>sx9||񐊵n.5YMAJ"KA 5 *#pL6#-pͶz7ӦJWn]Rc&S٥";H+,%p jHVJbe)Qa^b(,D y)|Z)qn3כ X)a zmVoRG,K)kȫvٕɎ|3LV&V%XU?@Uw(1ſ!1Ő(ZeW0Wi x6}=A{a.'M6eKȞ&!>6!$.ݙ[+tOfUUFW#ȑWy{R"wypьÝs8>Zﵡ7"fi-hgMoKKiIuHl7Iz7QCi +n +\+k{'B>p6?7{qevCd]@?ߓv> eЛbw8Gv廝xw{S;|)W[E?r/~V迒g9jfjk`s@=aSN3w1_3"ܑН]QM^i@AH ,!!   aȢ ѶNjkkGfܵ"hE .qj3/s{{sfW/=4rl4:&eUԉU'br(PV_}P#>NW8,9u >K~i]ԅ܋/a坟ÝyDUD^Rj NOD{Z\oO#"V7ЊwXN)iQOͿjr˹jʺZ\25/$7'6}&o 7}״Gm:i=ic l:;wP^Ս Ϳ㌊|QMD[}fpNۊ<zǷ1tmk|cm_blԶݜǸv ?6OvwP;;ye*pALdRԩ3vΰOJuvuO*vt/v^^ٳK޳[s.=͐^cHzak=U>GhùwK[w@9(+JcԾ"_L+)qZ;@U=h̦E;ȇ#J$ëpKi +נZV7n7ˁp;8]~QBi8 c>H7'""zBJ*'T"}kC]dR!EBXd/48pܑ~p֑ ͎,xx5quoC('u"4c )d $L.9t?$\0Q ‚̷C|n Pݠ}f>g#Ѕf!8w + +W(|!g5q ̤+$a.9N )Br=H$$(H-@TPiwgpZwl!_t1 b v{ cbh01dU!$Ą Va8*Ĥ@= >re(>/}K _2AR]`O!tZ +WR`HR~E$bP +ev0CKq'@7' - r\>&@~ aأ+{X>߀8rɀ7(qVH pIj*$&9f̙!vh7z+bMDbGd*FU'9oTת+-Πӧ<S@?IH䓐0)IO0M_=_3[|5略3h5gx/4x57xk}10=c ֟.)~ HEnZ{4:ML5y$҇V'c0l{nj]^An}SwQDMЮ$M|[:A8n@,ҘHB>#/~|qĒ2U<}̷;u 3+ޣ&Op/Bh3Pxtp_t=ᙨ*рK_걺I& (NBQ(e(:\ Ź77ǽ#g={ U[Zm7SH!zʿE-!ƚ+ƛ9ji&"N}} {o7sY Rʳj)s\ΞMoBVkNŲZД!cR֐ȧ̻$VqSmDcYi@~<4VJ' s<0,bK%!dW"fŹbR~]ʀs> *SINf패';Q̨<Ѡs,AeԽ"xBBZuh)MְBXRȶ[ȯ)\.<9q]QMi$((H*"@V,f5@ !LK@(h5x92NGǶsȇ߹~z}c)̓*u96Ϝ e^*3WuZM?YP2r}mob ZfkVPa~RM|%Qz|Ǹ$~(ŵO%n +%ZnUSOPj8=G`ߡ_ҥhܟ)<fA%z)U#%ܫefeE䶉ò3. ҼMBZ P+ڰ¦9$P%+2-%&DqlZ`ߗ+ ks9l3k2"Z*?﯊"you@+a{6 }jKKKbA*huE!j iTo5&#YP>e~L`C&ZSXQr5\k޸qM>ʮSkMmeCJ)׻_V& *W"5QXN< @>Bsoh\!B-"y3$0T`½z5:<̶ɖøPFm[ÉZUGJ>EMʪ|oHY8T*Wy-$W6Ec-sFF*"odRJ,48X`f:` -ؼbt̡Bpק{+y~š@~,6<_ɮdUL2d tt[Z?tBɐ!䭐\oJީr1p {@0uָ]r]Ky뀨1dzX]ksTu +BV&*)LU*CqP|Ce¬Aȿ!mpLp~Wy z{ô1){˻O9w&)HWԖu㕧4K3!i03"Y3JJTϑ+ r|ȭ^:OuW) {hshF}p|f+iZ@՜#H1\%wc홗.:3.f$p㦥NNzj5y˟>?}?Oq$6nfDgpG p =I=@+B;D7xxK>ؼ04+6g|`rŁfڵCk3eO=IW_zFοC#fwv~Qir +os+ k cLV-&۞˲?f`;Dx; ejgA'зhv 7|fkg/] z ٿկ{x`),@ [ߙ@C 8`64f1ƳGm4c5ȵ4W+jv8N Z] _;{ z LpA8"4```"pP, RFC` +l¥zb'&jA'^R +4TxPQ HG</chm6F&Vjr +l&e +#n#D +eSNCCC@:*"=S,kP%;LQRBlt$js_%nsFΐـ޻9sG^xWSo-Tj}'润 MuyVMg/hF5DӠDdEa0$L!g*Si=j0DG3t9G.ߌzFZd-tm%mӅZ!?9rNGؠq;EQ=QGNZ (M4LfΙIJz{zX[3ح ټkqyVcW\YgCSǟ"8(s9~P~Tx>좸6xx!IM8JEo`iǒ7g`Yûl;x +ʩg[at5#}!UgєPp6i 6-)>$VG7yTE_UF?UcP=LxI ds0<Z@{-ΑR.¸j8]ECF.-D +ǣ_:N N&!Ƚ2~"RVws܏^ZqO%(ߓok"!dc@13E4wкXD]c[lظ ]lq|,úՙ3 +\+ֹM.}7מEIRN+g^3?*I1ބS8Ä́!9&1<&_b7r2Wi1_ì͍dIUTfgT6k^QIɷ<^3{{j϶:-畅w_u+7nJG騘=C<R}ZVry^).jpdI*/Wy`vs-q-[ 5gdBV.YMY2O(g6yK.omZ>a"^.#NzK\ g8@U+beV%y:Ewn_Bu.Ϩ<PD H)#LQA,"tІFpF RD *1XQp]f%'nf=G}s=WR*x-^nAIܐ84wQSQQ;aQP_B61xCTT0^,p̕_-]Qךnܔm^`UfWH+v)OmRIޒ)ܤ޹oEDBLH$ oA26.98]pfnt.*[;hQ]&8+e6lDzBY[Q+HouSEg|2R>H{-H#BK&E20\ߖpQ )qXt)*+4W֕V"ҭ &ۖg:J $\IN^vNWFv -h[i Q^R"K0T꺭bQ#U+,-}).$)" +&{d1pq5k7٨&+46r5 j:^q:(X̝),dEK9wkE5/snAph}OQQQF_,Õ2ڃJwfm4Յlț5{V5d7DbRd+>6)uSu墈&ކ.uCq~hН) +Sxgz7.^܃ZZi>5Pt:2e^iRuI*Knm7rKs=M2 JnHC{p OpCpC:=zW? +-4 ]@e*{磤ϖ)sg.VY97[pp֮(f):v!;ikw۪n{B.^R=lRMPzA]H-u̕IrbVύ>u4BcuGLBd.XPWvﰢqy7N}7{;s& 9:t}C@HĶQc$:2%@`u#BF6_s*ppqp5~'[-LjL.7h2h1=D[!b܍Y?.b/Qߪr#icؤ#7&s,17]Կ+_6dǁ\DU#c$&3+Y+&lU}'|2爦4SJM&-m):S]{ýqwx+}P2 +d.W)6ncmm,m +ib191 qBG|KV@E1aɂ:3jQ!9N,vP>'Sߨ־XԤN]O}&gI}D]\wa% R)i~=>BO͂82ٙ!.g.CX~خe6JlQ*\iTS@H.!y`b FdA@A 4 aJ"cD'( +(
Pϱ+߱}`:{uI ,c`#ց]{I|OdE?Xc{< +8b¯37*535.ClU4-B 8۰::paQpڱX'v1e| 2F9#a[ lA{̷Sɥ,s0\; +"_ h@ |9 fрW2:pb5 a|'&Gq b{̽D|^'Fa7BMhXt'=o) <_YؗڝW(5ܞdZnQcU!-[j!.z5{%-dp_jI:Pw1 d_hwWеL*D:臕fJ>Y)hץ(Sc +e&Ir2j}S_l_W- TC|)3I]':&ͺ(f^zLd/.XBVJ/)y+nd)˼hYh=w2٬ )vQ,yvi%)YaYYWCoadbτd`Π6AfҊ`u ؋M,hSbE nU/*H,X%%.ls>abAǐSN7=p w +%!9kųx)-vbE8{`u,= +*̃/ŖŔ fL7=[+"|WhW+BwK' ,:}mDss^R(shRX\)wPCTffU*'EL;mV1$bل-mWC_^!S~\[~ uI}q-v P߻`G)@N9@ΡKհSk +km N3<:fjm0ormڹ55K֤Uk|YxWWENѨQ?Jw0%wrf@Rɼe%ǘג3Ly)P@w_wOqץu*N:ڕyw[6~_U%1/;{xb ؅>K= c.Ul&׮VsǭX[-uMu^uY~%U4uyqx"*ʡvlC5ިxxŃJs`Vm\clTf3iwNl׶ݴMnc3w<>]لmqN +`TRiyFxs.q|r۵yyo띭}w8>9|nrolʖҵ-ˤe=UΧ䋜o)`"<#“QZ2\b$D+ mk ݾKvxr~Kqf(/]p6Q43` (; e /r*x> ].K< ^9e>gx:,fٌ M`tWDL+p`_+ǐ5|U"wxP w`EĄ+͸EQ"\!dAל8#P ܆Vk=!㼽ay4gTh֩ȑtG] ;z6& +,}sQD%IV%~pYJFii~Nu?V,'ZBsS` 9}yt{\T_b޼1zDw5Q]_Z|#x~sKn)$U9 48U*婄\C"⁒RX?"ZB =zOᨮFgyfG*˒V{3f{OBlMz 4eεFO >pZ`JUD/y:Ľr y̿_ # C{-4k-CF(^ԽfjppQ0f|7\^a3d{wUҕiM դ 0ь]}QNbWT.ŪUV^+1\"h:еg=Փp>j +-b oЫ*CH׵Gh(MAcj1:QLtwxBOg tZf݈kVߙ^b]jP!SXIsGN/l7O3y|-0?a LYB6b>@p-3(.7RFvsնD7ó2?YWyĪw6vXhŽ]ٖ eɳјJgg]ȳfPQ%L^`}a`aQ PD0÷Q )Fal7Ls:q&3sޜ0e \[%%I8ù s>pٴi +]ʞQK @ ?IoUWp㠻6DC{=7ff:47BsP u~ڪ`v? lo>mnVGA '&:n1ߒBӡC U(| YO"$=3!Q2 @ׄBz=HfX0IF)_u@wPlP ( PC2hM? tB"A +kSRsӚEs@a=2`8Ȩl3q}JCHb >$L$)^>8qZt^wK-uD'3Ÿ2q'vABpaRNH^ɛB~ CXHPCnnDOZu T 52^HF"$W셺=W3uЯGnj6{ΆF.f#W'~#{;֫e=֥?:CןdNvå_…VW.D.rah+i 8Jc=a} Xa2bak7lcwݿfwܳmЗH=_2p5YIr4'jqbjQ3o7>xDxG#G퍼y13K~{ԷofÆ_$TT.nTwR7\v43g7p$I42w7y Y<=Aߎ~m1[b~(h-hHh\`%li<?"ﻝAtWΰ)83Aq^aQYpZӀ4ۥWsN)LjK$4%Ygu 煵Dğ |1SPk_yd`ZT[0VFr2zeN +K<׭EhJ3y5YxS}k]|tDP%VHEfuIcQؘo1}c%殺9Us0clƐfӧveٷ͙.J[}FG]z%WPt!A|BT*˗$S^X`EаtP7)r>0Oc m@o6Sm9`ߨIvV8ת\+Urg̬-l/VʣBYNxBKdń3_ ܣگ逋"`~ǸCBGGAӢñG%8XrӜ+wcNg3de7 }|aQ$G}%@~HJQbB'Ry"es8Ba+z|tٰ֠iEU9H.%:!_YW˫mks{H=%Qi/dj )Բb-in({HWFG'5ԗ25e;8a\sI}iqp)2t|b +~VA `T;!V.J亻r'?$ +K߱!u="!{KsH_[p"$bP[*( b ݜB~xmuSv%2MYY^aS̃$0(8qKQ[Q&']%3ZZ:WtCY?֠ȺYwrpnvC}V}^8vw֕z&Vk}j15,(-aW¨/U V]uTz>+C4-(lA~*h7#};jdEqmim2Gi9%5\y볿_x,?:_/aa ճ`>GSʹ -]=m]]@^7^/dٿA0Xnb>/!W[cv 幷%ޮB:B:㦉fz~t.tV.=Q7![@$oGx(3͉OF"Ʋ9u5ctmim##?r>o<Y, Q}hPv ec@¤b=%F:ފ] gBgb=3) ΙmU?nqxkzq 7/ޜS'Xc@ +v>ʵ sH:D&u9_[sc>oχ`|mq2oTh3q6٬܍~Ivl?ᮝn9~Wc2 Ng9ឋ@e.,x p iq6.a]xj_Ǻ%,e%V/YUKʥ#LyFr6#Y,/<爯1E#T{'trcIICm׀759`w +ﮃ^ł_9}PV )x=χ_u1>FH}oM+@ lzx> չle D((`W% 1`A,H@Dņ(< C-O1D!ODQDĂg0;=;{9F 9PY0s C Yҿ#DHNb:D X +ACFr<(g3J,Z=X=OZ8 `] h%+"6!j&;@:5ͣ1n@hm +}k7jGK(]48Zw }0`W.e@~5Gn+jM :kRsG?:=@ON}DoG=b{}`]$7bu)bѽ5t?+f 5(F?C?b>`hUŗ`RwŮ`0o4H%$"H>)k xCxjth(m0k0QLɼLDcOWI%KrW߀|ExNyn@߅BV5ջ ]x)[,<:t6ᑬt7J+&BZ7pC]h2ehTsE9塡|(T7Tj +:U3PŸ@7QMVen)wr{q]yMWՌCkp^øZsƝ{=fKm`f9/c)QDy P+Kz?'\z?#qnU듸c>;sC V}ҮBܾUXfLXD%L3lw`φ1H6G[g\qǜqy,wy"y_sW8-q;-v\#,s:Jvv:;9:wlqfLm|N:h{u A!8bnqm* +[u_epKؐ**2,m7֛l1l5)0.7TJ6 W\:dk\^V2Yg`(vF#9. % }#cwJFscS[ŋ6-X f%YZ=_ڽXU9 ֥t'+mZ#PM88>(cEV~O8qT oDѺk6+Y"ʐ-ʑg{fzmS,maeye//L:}?>4sЬD}>͟Po ;`k@xry`A1Zѓ٣L2eit,ET-RBg}[~=h(1:ӑ (X2 d 3lj2|/N&I I?Wbиlqr1_5׸S3Xejf<.iSGCp" +80(ٯ[u^ȉ̘AȈҢ}QXqR9Ӥ'S E ]|j)ǻMk"-&1sT?pjPEq췍Ҽ3NZ,ҿqBj;(v<.@0wlpvL8!f)xy\ԨLȵ" uyGEuqwgfd`.誈i*e60 URUZb2XYK(nQ@M\)GO-hknQ999s{}b<31=uO\u]D1D[~:s[<ס='ˍykP0e P0I(HҜy2s&3.N#56CiuXShvNޠGGp>36o_kE QY|7jdYc?4bIQ4I\tl-4 6)1D")!ΐc/T+b۵ \z/NFŋ~>\3T`'ٔuy%&G,5E^rR!+ea򗤚a6IѶE +$}LR¤r'Vaܦ 7w 3wY`%Rf5Q|'&`_ԥ;I 2ۭ^8cGbt8Nşi kܭz a5_b[7 W`=.Z +׆]4T[]Mo:`+@. +L p? f' iA̓0 8 ׃S +{t{Ȁ>-fn)Eϖ:4@ro9tXr0y TO&`R3`Q19*hZ]nusp2Nm U{0C{2OAy +vP7A%PJ^uqW}@w&cN7sG80u +p>-*ka{l(H/xArA$upup}DwPA;6yDt3=S-iw8O.ձ]#Zr_`HD)PY^K:_KFn )kp9}5O= G; pKŦ@ ؋+p By:xyDM?} :[KWO21 F.~EG+#ɗK q_po-~#nT]:˪^nb +8K!N>C<O}'iǠd[[k;ϯEf\ wNrgũ!p/394L`""}*/@%Spk6\KÍ8†NQp: +jp2`9Nű yy9t>`:G}vm(/cH?5'Ip?P;2z4.c: 'i8ڍVW0.bfzWt[=h/ + n{h˸_E zyɓTb5 O7?OEOHhq`t Dg)`Cʘ!]Zv{*vkphsѦŭ!CΉׇ7OZ4gI{Y*w}? A/zPg&2S:Qh MP3}:5<@SnT6hZ4uuqUҠ%YVkNq+5WSHOQZ*HyYITꩤމ&8biޡ'H}1 +"'b{d86Gji`6D3-vv]m / %^^%^DR[- & +[v\^'_H {BWG7&3ҿ| )-F{lM16ͱhIbƤ2l}C<@,L\5G$jW3NpZzfyմyQG}*.*D=P̎NQ-xyO |JOi:D'mxZѬSQ7uOg x $>[TujZ*W+F^kSRΌUighUjP yj9n/L]ns!I!X2)!K CmJ,S,HNe'e%9ĕىeܬJiybLR^[(TĻ|~$A& \9 4{IF ǪXnZ㻨1b12h![\npI%\BZ_ +/7+)ەN}?&zAI(^s?dN~7_mSJ<ñ TMAeZ$Sa2s +[jfKS\q7K]*Ӵ'Ԥ1n},)F??2 J/W袙h!kS.s(N9]Q;yIq#IlĦ3Ein8U(1} +$pGn?cUk(b,% J,v-I.. Eu݊#ʘOʘA'GHotE,9g0@X3}9ݓT84ɬOOZqIP/y_,*ʷ8o{PzN-gߑn1>c ӧ#% iJ-,KRĦwIp^4;D!:gk{Re܋$$ӻ0 +Lg6)C8cl7FgaTV?x B\,Il|ଥҨղYeY&rM"<'"*WB[+XIYIoR٢M^s=\wD\C5`0D"83ƹBqfL7JHCvKCviH#iȆe!Ԧ.e.I +^ ̦{~F`8[֘B99c@"u(AxI$ %_2JF_Tf!شzS۴Ne*Kv +PrQ? +_H +\ la d5i!݉tOR r+ZJWޕeE9X 0e,sòb 3КB[m(xuQ!b#IY}XLa[8 l5N /xF6#n7LŖ-lڶ* joAe}u͏Dt##s*g16Jҿ< pnPBUNP6t>2 kgBCfQttR@Z| 01O'06 z? 'Q@86!=Õx-~ 0h兠V>xڸ\[ 9/G0+"<5`#Ha 8iAu#y㼖➼ ŜG;/"WX_B_-'{9ȍN2I{F(;޾^S@y\|N u'^5Mw6'݁t$jV; . ={\\ ry =f +0^-z~I8m|E&w͜>ɤDtح;DM"P2$ydIOK exJVғ;؀DW!-tUU񭸆2Gq?"G@ο\!/"o™89iͦ=zГQ3pkMrpqUFjFgъSm$3‘O"%Cpb.đh8!x ܒNuY"o$[ TY:Sf*/G|6Eр&E :=؝~@JDd j|<\5x]7\uK18 Ψ)ؐ<޷=||E>86pcQgvǡJ? +`>e TNXI(ћ`Pl67HCNI6ܒCHrCEIίx̲\fimc?p}a2lEa$&4lLY(6COBao/}\)A55J .{]8..]n r[ۊ(%*XԱmSӦi3δv!mӴt2M3Mil/2f9ߞ>f&mJ`OfO-'_Ʌɍˍ "ܱj}6p/{Vp\qz܊5)hF+" ӚjLjIMs"fÙ!v43gNsCܠ"\4wYSe}~@DPCܦ+;t/m"hUc*7'sMέdFNfXa젶 i{~0ק=hgnK.UEg_  yyBrpeCmnNSgcDǐނA}ۘ~#ۥ悺\noӝQ ~+BY_٤+Ш>BIN1@QD,60aL@ش æ4g"dGٌt*tUVG5U~B$Zʜ5!M^Z{&Mpݵ6W&dw*&]g] ] ++"\F5uWep2CiJi +zE{RpqbS#uEuSnCw}jwςb_c٘B5Y3xwZ. +וywy_sjJ`&FOy]7Gif-PO՟ +f"1j=d\?_T䴼n"[n~i~-J#0GLQ;;ZPŽ0wn)j2@eE~W9tYV2s܁wyu65WGyu7HJxZ)st~P@1лoA^nhRqp@P>CfdJ U!#:¤zq65qMMKr)=kJu.ӞF D5-ʞ[ +d!st#2ƶc8ia=R|+,a_؉pH0ç] M&)|II74eָLZqhcq=dLO ej=N'$$O`fbI"qH+FB3sH\3oFH28O1p#Mύ!Z-v87 dRLL=e\,'`f< )H\8شhlX|s/#~qxqo n=<9) Ch_$uh +ПfIH^6]p) D"\ށX"vŌu+XEJʕA|-p~I|gėPG@pS%gi9i%ҿL/וP1M}SQQB_CRJSNhHER !|dB29>eȲZfǚ550żmw\]繟њ@ҚCeSeSE؈xxu`E D994|Cݬ`@c\ 0^_o !(`$' NRp>ٜ69mV<Z[9ɭ u;yr)ɘ+ƫf0jRӢ P676 +}@R;Nl_lL:X;:8 u'F7yۀ܋ouQ`= PSy +*_6XAEl<sDw' L7;0x0ZSלV/R"ȭN'w97?=G3sǼBOٌ<݋*%_꺑aуBFqd$$o+%9V)6 *5 Gp-'.o Y]> C+"/NyYG(2ꬢ:lΧq&9[<`_Gz)s 1'#`uQ/Z)ʤN`uSJY1ks4r.f~/Ȣ!ӝ7:WGP3ٌV"uC.b,lN%3_gpqoZ躙Y<8I + ᧾dJQϟ0ԊhI>K\P\͜E140M\ts :k42JC斒e.F` J.$A"gѦV84%^:e^.R/NZ*4؉zzu uawc3vE= 2,wwȍ>6^X㴱;MI(M"pX2 ʏqPze6>WNbOr۱t?63/QmvU揱-xN,+? bIaJ.l?=*q|]?o쵘ݖѨ)nyfQ%*W`U56YQ1 ^GXmnzxj3%Gyg{GFhh:!m3;m}PcjQevlMv`7v9Xgka}9VoE{X^nA+'C %bY(zԿ=}bi}z5 56t38zc?*ð1ӱ#9JYXR<,u*BSPۓ C%(Cg( +<'bg$LCRimE/R. aǜ|+W㬰@=ծL?2ԡHWO,TcNiB:[H+~vHZENһ\b͡\l{Jza|7[ +Θ_!90IB|B\`/.> \/E(TL : <&JAigV29Rz)d>rIv!cv RC⎙!c1# !a ؐHĄ +ѡIBTh0=4W -mSL +'-kzaRYA#[]dK3f H0$h\FFhM04ᘮiBdx0%|09_#M273(Bj+7& +"0#2L*8y2T2E$\Ct2_ۮfFmo^R=|yߔ-}ԋRR-)>Ϝ"3*{$efEim4%wW^zQM ʶ&fPndXVL#1Z[W,2Z2cI>&6j!<@ۖh!Y>q4M`,e,x 9*#fT{RclO8MIE,%eF+amڭku!u +j[5Vm8պʭVU_Z-mߺC[[7䷦A-Vsy\۾HJ1eRl4^kЯBnfs nԢ:D~aj^)K`eổf+]M"ˁ샓4(-wZ^;ir) 㞓nwF[Zi&sMk.:⽏B8jijpkxju-HN~spRb]05g9#э܆AV +xE{M\0pvƎ4Gh 1.::6zIù:bQG, r/ֱ>[#>AVG%h8ٜh[mӝihml҉GccPϡ_ONIt=.9_9%tzuR glf13] &;Jw>%}iBPWf2PWIU̫8rf`Db405nt;xZj~yl ҧp>HKo[ȝkrf>7vߐ@a5쇃L  B,$B&'fѿHi5\Buz}M=żtC:~5V)@C(M44sћ 4棱XׯuSDg-:XsE]>c}X+]`F>/jh   M@'_\h(Ac{)ezO=lK59cnE鄩zj>^TPnBHȅ@B.@!B- !"BAQDTRuκεgzvvnݥ]9o|=y2|k1;nmmW׆p%f.Ōb^pe^wqbpGX}qQ,MB!R}[;q+67Dĕ8.n0np̆vr|'p"~b!MX‘8p1Slӛ+,ejwѽW6\ڔsxiXJ$+܂d'wc.#2-޺[b_77 I}O0vG1QݟP{WH{1jm }=]8c,Pxub'k&j~GIF(}Ls1.è( Qv 0 .E!qbz]BgNtW2)ZXKM於C~ʚ%X$|@5敏)pS=e勔Ǡd#$Jr#K*C@ZԂvenx:) -f$sSk48?&"fE9OO5_{Hcq2Kc^2F9)_<Ay)(ѡ]QVE9*(Mp+Фtl ;|Us^lcQQfU=|ƌsdL3NY)GQF@:,xphRRW€ + WzPW [jƙEsjN1Ǩ}|H@1jO'Pݛz49D&N7@9z_ЦG t|4j JQU*;,:7:?L>fԏ /1*Go6Gg!=GrO4\Q|̒մoѽ =?eiѬ_> Tx +`5\@mj#5uiBuc:NVefZq1^Tr*L#NKT֬`o+&&uh<͔zSy(CC xIe_3LVe(%dtSV@uʹ[hUIѶ +X6# D(ЯvB / ?02xmY/sd?q5iݧg&#?E^`!! rB*d lnFf2SH/!-|H }z+NRi2Bz'6@m W7Dd;灼i06@0{]1K%5edX+aXo/m` ƣP;612@:Xvp {KO"ޣbrϯ.˥*4q~d%dԳճ|$$;G؍=g~Iރs{Ecpnk*>'͓|]%5!qw4V BB%}lN:PBp$aIvg9s~DD$<Ɂ' =Q%_BfjDd{=YpN')|FLN3,19%]`aB.(}INPWʤ8xd8Du:1>J;돟Ч[o pp p&t;1({@}>np/p_b?'v5Q5M+[4[Rjcr}Ǯ{GﱷEsS{^ =9כ `.AFhC+qrCH_i!eWk2[EB ;ɳtUvZ+~~vuGMD]쟀F3A#bÎZ̙m e|??[#(FXI 5hHKS?(4HИ9hb4qR<_Zق5b.@dP+^?jFؤsbguC |h4)ڏ$/{;vk.rrkmOqR-Yۤk#ވ ?;@_e.hza}D Bc>رlÎر;ꔏ<-zUv5ZVJ*T)W x+>hv@Iy _bh4ICgV)B^fUllF-n~TTj{OĎ\봷hh{NC-U'5vk}?UV0īܐe-5LbCfaJh*w\*v:"*p~9.ϔbUnܜoGEچ{hsVDh_wTb-pMD(9IQ&1S9DqpŚjdt/ a44ztc-Mh`yн\g̣:0+*"EPEaeXT7( +.ǚb&Zq_c5֥1xXҨZMD? \{0t^>|߂3s1TG9y%41W1~PŌV1V$ٍ6es[2͔-WJ3-WAMJ`?fr1 6 k`T78bEqgO9+h`U9Kq&(%a,pFIJHc0'+ ?:cx#%S3=|K!1'tTN쉽/[P%5)J)Iq$[d-`.s\ŧ<+SJM2ZbSI Qg[)#Si)ZdQ5DJH5ʜ4LiK+Rm9-QtzƦoԘТKj0;1Ue +v~ۘ7m]Č~2g V|F2-cY1YVEg56@cehKoPxve +G +r+^eti)̇ ߶LUvyWMP*սj4ʳrUS99~nբf@ pWKXN/`^ @8)a3/ffl^˹-~**uv4{Wnuٕ-thFt2K` Py;Nn{7M.v77\ĵ7TN(WRjgpG˽_&h'?mM^!A918P~!0qGBAlp.|7ݾ\Gx`K:9:A$'1 +G f:GMhI ކ* ]{.CvyH8ZZg8 U|J}'|/Fk~Eo#v{n;tk`3?M—Nñ=]|m--M< W8/t?úB9sIm|y=C魇 +ЏF{ok:KkOB<u:=K[Dp\џDlAOЕp@F=+1ɤI *!q|@#q8մNjB)odJOXWGta(V2:h䳣:FGqK]k!*WmWxvjgvBm1<{/H.ΐ}"1++YO䱜LYvNATúuLM&آMG2ӤO<JpW0`6``6` +$&!IsM4I&kf]zd=Uuӎv6դQҺN:mkUv޷dz{>I}R/xW%^սŋ7Zʥc:\G&dQqXtS gb"㙏5;e2|+ +O =.V%?{ewV,Y ,de#l33a*pN79nek4y g((FsP;."7)R.JŎ].%Yˏg m K(dXѢV 2X4Lq턶GIPݦ2=Ke6ҿ7Q׾H_Ny5K/Ib$SCrM6MNJ)&X:@w8]eos[<7C_kҝ6GYyҾLh_Fͱ 3k6Tmqeioi⧣"D{(Uh:D,xlO}fۯ_\DVyFWf/k\2,'XL5v IM[aS4,d +48/QxKEDd'{VwQi> fѩ6n5zqmIޚNuk>VֶJTzx#f(-Q[仗G~C(7_eJ"(YRZ X;TvPљN3eՔ1[(80EQ`#.x O~S +U..HgI*1'k*j;ʃ(`KO>=&z(쭥z MIv Y =DFۤ~&~OF'dDwK렴ĔDPKINA? L!w("d U9@pA҆GI#ydGΈ$ ?KŻ$ }*wJkYEHM%ZcUVQ[cȘ06HD:)y$OyZ'$bcxMćOb_O7xG?#~<Ši1"ѡ5UIJQ٘U!}z I$m8Ms`/68e|/Hu^dD~@cL<0""2 +* 5"(Ȧ(( (8* ++˩₩1n&DQc%i[5ǦMjԨI44>99=Ǚg}T:++Hϖs''- ŏ;q?>Əq)S&ժt"_u~uyzYWz+TXGO~>/~طb-v7R(=zB>C,N)V|^)P+[]G9DFx!Ngu%yab Qh@#`52yi>ZUƏq@Vf*%cDuX;;M,$ǩW5Ġ1 +㱟LVUG$oV*V[rcգ_Ks4g [{/^g A' +hEc)hdc)E +ZV,""[.v._iswr# kG>>wpelwUSVw JhYG%Vu.ZꚢZL-q"|Y܊TVjZ֤y-*s?RwTcxJ1lD%G(1,V aAي /иrF,؈lCuR#~=;iAo m +1 +ǽl09C"J (EӸъQ)5UkTtFF[4b0dǼa1|`!vS\7ya&po +K#.M ̣>0dQvMvD}}GEepcĠ`Ԉ\Ƹ5qiFkUظ/MjzbNs5MSTk7IOsf`f{{K9YeIPfRIIHJWzrҒR%SJMJM]j%7)MG`A,W}́z@y>9JTqd2јTI)& +`ҧ)1ݮEXgޭX`>x7e8نV7m\30*ǔ.SR3(;[9%ʩVdLE(}t jK4l)w)We 7v2l {Emg6k|m~sn0(z8E BװH~Rr_&,K8p.+*.]tqíAaa= Gw1]_5 ͩPFs([\!k\>ZiJɩm*si-䱎jb`;6{[ Vf6SDEVFr{ 6xh$2.c}cc}ǹ}7TGKH1Ia1y5빑oz v^x2 + 3#jrK y36 Y+0;g6~K8N[ u?E\vih2@o!ނ18I59͌# </W/RK ե e_&*F;Djǒ7pjY`\ U +\eN>aFї2gl MVżuؠu <=w'-]U'mu}r uvxa}k}Ӹ_C<ω <74}tWE/JD3|t*Ш-6KANw}eE|y\Y"qyW(29?9<{=;BDzQDJ^Gt<ΐ))y|X5<\i0w|G'X4HG# |4J=ͫ O[;i$Nb''sqbױsqiRM6Z:umU]K+T(L\Mh B6&B Ć m0ډ3??~:w}~{cc/V0]b -|Q_75O op}$1s4WG + :kѡ\i5ϫ~j%?L FX0i*\ъvif/hGɋ*ɒ5Q&>d +eEi׸?-Ye,-5jԪJ-ЬyC =ij׌!ƔiM5a<NjĮ1]ר鞒ה0F,Yڬ^FzЧ}c~,lZsLf1;5mnДEami21˘F-Jn\U c>nzRqU Zju~?>./8l>Xz{f,3qږ)Q)&iU֦-,xwnm~LъksxUa +WާyEit-<3M2s36{f 5dw*nנݧG=9bVr\Ym(TO5wU:koÇgZI"r=I8ce^FːH_mUPY^g8[R&Au׎*X;EuTo͉[=?kh=Rioޡyd,}TckDָTߖۿG.Ljj7T2|[/iW?ճ@su~NB/ ]m|5j RC%w{jc@霑sE՝GT*^eٻހ_p7ά濏YjN~#?yJ +ZUVnTTeOLCS-isCO,| $[[&[=>Vy54ИVA:R#Շ}…rn1*bQe\HnUCe٢CFS]C;'Ḵ{Mb?9WY73hzϣ3N Aۄ%n໣RU_*KT>`RـUA6 j`#e )>s2/]_SIǴ0:tf|0^ B-'F)ՃRuPAED6$dLeHKɘJ 'w([*H^T^r*7C%~(cFgJ D H~hObl3ɘ*QIʤ&*Lժ ըT@aتuL.EL%*Pl܎3% Ce{ˇvLJmϳ?ݿ}" JH%:bv̠RѰ$H@phĈ`ּ>5&ym xyX{g(b5 s/w)1WΣ0JWAJc6ԔG1 #uơK?C"<˚eße.o-q3<{>Mzmx_ShB?ʹ |5[By=g®r'oϳ.0gK2{9 2{2r{ 8|oaׄnZr1xvfK04&{CYi>>椏 ~q>J%?A۹B>zƸ%9j]cF2ur9ACa?/~곟B;i8'U9@mcAg|FW(ćW$ ^~Ea{3ظ!'}q=/XRl $Ip.G&& ҝjKt>oKOlH1ӝS{7$ۘ~S M̫2ґZv>Ϫ@VOS;tF=ğI |ݞpOѩye \0]׹ i"'kL>RXf)'Z:%t,ev+-H|';!.'v5LqTa'&3iB/mt9.hXIdn9L?Ev( ,r5^qOCr1/$v9u&q'-[|c!.yds.3: +On1.̓ي +U2E|$E/"|,||\q7˺LOgTT2CeO8[S6[.R^/i8:4D# <4(GJ31yJ}P\M曓Tp$:`v [6 jV^?!=8-:qHCh(fSwԫMԡAS4>. Y2a ݩЃj +=!vA@{ql5[=0fO53\6;ܠICtgUaɚR{Xi Tkh79|uq 5D,P}JEnGBTaT,5VŶDٜ*e/Hy&)7U9]N%}Ik2*#\gsó֣T= W|$^h)Ub{ +Fʳ'+מle'I.;FY)LTc|Pr:#x>3zhL9eHc_#yVR!: qq)ˑLS,yJO-QZZRL#}R\ z@IGeǕ6|W<h5 ћȅL|}^d+ +W\QhŔX]tȑ_$4(c,J*t=TO\K%7MEF4 gR]AQg]wEЪ(* +-, +BmăD3iFUi;1&ͤNkNc̴L56i֣c,d?Y罾}FL+`WJQdv|dȕQ Jv\*C ~;+ιOcqX^8V±`>( *id_+;IFYIJdT'[y*u)ڋ'/ыp| <<_h&q;(@1τ;~$J ~dʼnJ**@0 :3"$ * !yURxP JlL_qÿ~Llu1JXbPt|R.Fz#ìCH Njų#aKgpK-/p +PH9ĜE̓}O?/Q_µEgKO F+k+:w%KF.(\/Qu`;ϰ-DMT\~vPBsy&1O _?f4`9VAZM.?Ppxs{Ez3r [d!m\@̳p}jΫ)$C7XlaX?X6N`LM6s6U|RMySpw+TQ"͡|ի^3uK a·A? XWY +q/O=r, w}qKCM~'q~g<>,O ڙzb/ku?#|agD:a/Caq0&Xku7F4(8!8G䠿&M sA ";`4"hu&x`x?NsfO8)w /:r΄;M6HhD9pɈH#88rpu\,b%% +~O +y.!MwAQj@|ν:+OQ8|H❧I~E?"sphBp;C->Un3o>$}|QX5=:7j ~{=Hj=k? +Ux3z]W]Rt+pk>\P\fFi3[GP'^uz|:z:~CE0-{/J'i : A ƸE+Zd$,%ض㷋\DKè!A6]Tyxscu9/pޏ#N[f|a +Gb]m;V]a;l/nvS<7v#dr EA+|2;17bۊtf.v#ʎ^DZ=B]F yBz}d%,ã%2vb\lQ*'a{:sυ.#U{~=7QBy5df'ީ~.=$8#`; ۓ=beد~ ?:CZEKo +rzSL9q,Ǭ`#vpFHo~:b&'2B". +8p@wtұkuԣj .3HxU32_ Vq G-*3VÑG&ȃceTY 1GT5Ii +De=G(\jycm+U5qr ?'L84^zJKXk'/SIF-6X3k,!K.l-HWMbHQuOzU&.UUfRqJL/tBEp |'6\p-^~w[62UcJӔjTM3Te|S**7WUV㖫hjͳUk}Eso*!=pm`cmzk.|q⛃SbUeMRŢ +MI*NS5[ֹ*ZS;IyW)7urR٩O+fL9p{HC +U |w*_ԖTRST:A575Kslʳ*VDEʞT5#}2.5-cD55,! ¿4`$|e}oJx  b I5AI*;œVYKfnVbUQyUۺuն]ﶹ]n9 d'y^z|*|̍W%Yety-Y*R OGrjU(Ek +&-V_vl4~PVg~”߬8Ki̥*PfYI(/TzT) jhQjE'Uo@ɾA%;Ċs2T\*>W?a;Rԃ|ǤJ pϊ|THپx&')ʨLiԪP*JnRbuDŚXFwlU|^U կ+|DUݬmo W +TP *1Q +<|.HF3ńٴF4P(NiO;JN3X3.kᡖ&lAĵ)0(41{$f[3K7E,^mfv)##ψvl/ dx:4z0^oQ&R1&J ȵ Ny=/亭Mԃ>!g}6blS|s>imd7yp.]6E,`c 5YQ>9fq/r9br9c/[yfg0% .mm,o:HCYk7f-Pl,`'&'ߡOQ!zt~"'(~sbϫ5*]Msv,!{_3hl<&Bh-TlDŽ0 ň2=r?F(8 +a:tPuVr4%-|4.F&1BJg蓳q\E?OAr3!pFpvR#<+;<au:Qx\(.A]6}fJ#+{^8i=syS~}=*:+G /P]Wiԟ%.~J~B.i\:ops0^/c_>Q\f +4G5t̻jL?~ʹy -JCxЙOEh47jvP}hũ߄3,ji0)(' +L5{ #u̼M`pEWhT՟W<~`;۹v0Ŵi%mx} %rǘ as9jj=7{L`e R5:%.Z;}Q`O#6Zm/u؞{݌VlEݥ Te е/iVқbX1\G.t욱k.l{]Z쇰V+#]Lb +Y:1~6ktv 5bׄE g?RX a2)snM?ӳٮ:e05&9(Fd}{\,XH.&=Fڍc~t!셱ۦv,n/f:z43UaKH}$A+oX&fp:9/:jQ6LC8JdRruaĉc;ǗN8NvlDZs:M$m״ K֭bBJAVSV1Dm0؀A h*h6&.ZQPG'e=:3Hì1V*f젗 c%Xz>A4lsGX 㰔gKH ;;Ѩ$:u42to>.& zg=;6%ʯc³x/U|8fwcniL".|5ը\nsL]:Yuv0-WxZ(m٣fA,ǔVr vM{RaG^{jSWKVZliDҸZJJ[;lWʺPɲ1%(n۬mjS" +ۧ:\G8N +6 +CC7]'caVDY]-vJ~%uJأjw)UԱ@ 1E(llVG!~*h<G +W^k[KBzNUy9-粼u7 ;\MZL3v@gi%r1O5m + ջ+rW]'OWT]HU+ީJ.Uq}\Kryr{oj'荓@.pm4$x#FE[תסץjWU DJ[զ~UT㟐ۿA |EFpJ偋rPOtk#Z!kR]'D~vy*婩&.W0#gGڅ2j<4)Gh/òRYcm݆]h44O#"YePP\u9rWɨUy}4t'[d"kdlUidJ%#DN *\d ԿEسA,$!=P ˀ91B4B6Lֺ"og4t@ mM@mݍ>T𚱮ib8d6cLll&qc|-0'3/<~w4\|tzFaɪ{Yנ6t-#Hb3ı8VjXCc1dOT +3oce}~z.hE75L\=5-Ch,I5$so%{sIFMı817v0&;XTVfH3׆A!s++z ))"ö[/:@ndwt/ ıv?~ޗ}S) +kyR{꣯s"!Rt{^sk^nh +Ƃz8K!Lt?I!q8feep#TxplCN.a0UXR|e>oH])a0K$SgX'0ٟq%=y2ղ1@ۏk#VR+{ @^y3xޔT'Y{.o?$ %KE&<{ŋsgW ml}y`}ò{ސ͚:Lm`VKs%O,~ccl:W {ś4썓dŧpO/yC/s /d"oGG,~~ͤyIKLWW^/}_%Կ,jg'ހ Ufyw?6sZ) +:2qӺ{Esxq~&̳gcۼ8m~v|;׉8iM鑶뵵)F=Cݠ$@cL ILHCC􏩈C$PP}~{<$% ݜ73 0(_fѯ=MgP^ O߰y ކ!$=~7V!Rd cse e:#h$>+xyK+Dgt*sB?Lm* у_u]S25t,v#Wȑq?>2S{R#aCdC/6k*< 3ϋJ\;-[Cw6Н@wY4:0 Gt7)T 2d V9-hm[=c0g!X=GG xl'[p3=ѲЄqQϰǦ![[-&v؉c'vة`;fL$GS\VY<:ށ(Na |ayjiȓ*ʝʕ3ݔ=$[愬epf(Hicc{SP2(:x$!(*n?/UK/w6$gGL*)r F%O9s* rg}-ckl@%!4 +AhߌM-]N9K-uma*$MG+],ljj@iCePPo)CН$PnNS!6J@e4U6]?MS'hu>[w4qu:@zJʱ{-hAz<2Lrr®Y~ΚE~A!ah66@A<0ǀfq&m&А ឦ ]` ta/)q ĮQaE{HYaNaV6 3]Qg6{9d7l[ Pb F +*e(P*SS +J/Pʥj-2 ʴ:ڱj 3Hm-ɞt;oel?V~YpYKbr5 c̉ջc,NY{&Μ&38]p~ᣴX,k:gHL6}?ѯ' v ?mI[-~x;gr!q68wsΕΒmQQ]·˨#rs[ 7c?}&{vdVĻH"8sIKi&xA;.Gd##h^e~WN0?HH3(qe3~VpNEj'[ٜ;nG<$H9X< WU~H<^W^ef\. euqDINۿ^p᳹ϏU6K<`,D$+5>>ɿJKb&>f- | +Ol.>IQAaM2z 2zQ{u΢k~8 p ޿z]uq-l$.%~u9Gem~~|?D~bz":'~BiUh +^VXe]SNڟ&hq48Zj%v؝lj~>^n.NC)u}v!~D_v<mv\pǝ;vd`IЈ"v;;eZu&v;#bl/"Vc(p< 4z"%kЙcp_/;muiG:ў؊ @ENA{;ӱ;arXeQÛ rW+b f8S a@䩾";=}ll>B~ *YoaT1v|*8=ط{Lcz\cQlz+۱ݍ>l`o6 ;s:>GNU QuCt~1lEоkپ Tc ~o~;@VdjYdg:YG-e:5c_ ;~σaWuMC,lr2ژT2c^y;u£)TE G7Y.wmkUh9WJ4fy$;B5ur%X| EΊ}ṗs&o/E̻,HK}ܥx#+iժDb񠂉jO˓˝lSMG;lqf܆i I|HbxSGdQh- ϻ|Iy"QX+3SD~ +& y24Xr5 9gϢ)K{caq+X³Yφ$/"\Cedj(fsI>'ݲ=&=#U0?;ӼMvū_nF5#\O&~mXflؒ! ||e6;A+h9/)>O&d\25 +r73D V:HJW xmǶAlcoC%K"K+>|pN+=`hiy׀)ޅ~F5}faX5 ZZ" +nUƱ3h:Z+neJ;=HYB6BIH@P !Ѻ/NT;նK2x:ɇ0p=!?}f^LRpφ`@Vr@G Aw"0<A!\ŜԪX<71 1 '#hGw_C0" 5m ṫ` ",B",BPGbP !BpS/ t3Ϟߧ"$/0` %:BrXa`F6;XApٕVb\r>i:_PK -:G/Ґ9c+.q|h"|X ~5.5uбFl 0a|x=u04.zE4)x C$Hl- yױ;'jn i\ W8tl-бk؎nA pNlEMlaY6{ר` +Y;y80_w97=Ecg@Ҁ= бQR$Ή {P1j` B΃Vݕ Yk`Õ(,7U +U+'F|` + ^EMB@n/+iQ'B/ paT/D;C!XB"0cr>Q88/l0݊M?xy~n07|cǎ0q)SMs^(d^^2l/WYn_zWl۾ܵ{"ވ־o|#G?>3L6ğ=w>1)BY"D-U5ڂ¢CiTSźƦffpvv]|nܼu}ŗ_o~OD%}y1<\'_ gK"0X8d$ D0QPp)#`@L6-F8n#mO@zH(=&c̾dݽz~x FEyy = % G X'$`(,K?W-=C o"[ ;=Qo;p0ȱ4Ï?!Idr -bXwAWM1 0 +z޻}_>xo=z;xɓOkMuDT__ba~CٖsJ:CR Z G#e&\WfHKi h0a@À 4 w|kfdKeUh_ݯAųs94HASe *g)AxӀ n_ToO*HSoTb.W]ޠZA Р%4(ײ3n膆>nE$YL!`*_mԝ/QsР 4y"ySIfuaƹgc,i0,5pCu~S9Ѡriȇ۝+]xWY"Z:ӸdM3^Dv 97V0N6CC4N۝#>1tdBG*@C'ie$5hͥotРUrS!\ʖrz$N:Ҡ#{脆ƒn#Hi КʷkJ +A˱)sNy6K"cwgI=q:E+6 Zg +Uo-/4CTРa;rV(ՕБu9'_4qbf՚ *ʶ̅ڸ|5ǢT۳,8Ȅ#Eƾt^鎗{<6XjwУ-VZzQQYkF}QLVנϋIh4X$&}49߻w?cW{YE˫}?Q +˱lpWDL|rV\`ƉмVmӰi4l6 m{Pdžg0|ǐ0aV]ց灡F!ʺ[Kn۹l{`?)`oh@lǧ"sf\޼-RtɌ)Nm-në= +5e'#1=0htHh#EAg"F Vh•Ibm0;;6 7`2>A :SvIQĢU]1W B% OXoL[n` `Q/c×hޫF'Jcs_+!DtU3(˗vjYy`xN+1™-x[VJf AƻC),ȗfjkۭTkëK/ck$fLGz(6lj;^i<)7m}Uɰw>&t%4aS&Hsĉe!e;l[԰0ݸ/WioƮOW}/>{cI_ᜲks,p!m,g9@Ov.Rgu6A$Ⱥ[5X=ښWǖͯslwrl$&";$&,aqJ'=ʲ[_vwMæaӰi7X?ښc˖9_ 0tJddD'%x:,&rA>'>\0EEh`NӽGWpkz^`x +Wc"R,Bq&<$Lci7_uA[=kV};Ǘ/ b$fǢ* ˱\PW@i.wEfx΁HmjiHW#-]`0(̩ IHL` HwEĴϙqrxsvB@E͌:yn8~ ^I3mfځ6MmҔK IJ qCwI֣yGﻭѾobKl˖%[^ p(t4uU}\?ɩk3Xb?<1{B1 )ʠ)u +e;5+jK״4Œ^S5x{z~q_=a8 ie/ŴxXj(Q@ӨʨVf =[rSPԤtuEhx{~ {/ͩ0/!=k[8P&ڪY V $7yMRULMogn`##4n%ubD@tPf*haTIȚ^ʸ,oe>OUq x -"8g3h.PԗMЬ] U,*WPW2M~K(d+\+x{ڍ^o_=NioYz!pg'ئb +Z(e^ik{dEDUۆa}B{_k_ӜB3sޔJ(6y +%<$iCPMAcqd"mnf:p~0HA\^0K Ì*QJ 82Eg`*)=P3؏6r[h/w`}o羣=\[u᣻nj:|ͶoZp7ȗ|ImKu:mlB%a50as5ޱwDGI^{Ivx\/$ٝh cD,IFIdB#mZ47"TՁ>m3V?1Yiޯ-:B}Ky/eN(^, +юd,A#$9Z6mtoJZmio=aqS5ݾ|OӂSacO0.v8hx'#TQ*LIHLʆt ޜYޖ~0˪a +аm=ć“!A)# xB1B 3QFg2R!@ R`, }owYr6[iì+auc71'R 9#lD}qNܱqZӝNUzuuk@zWEAAP I\Bx $F$@BȅpAEVԺ9;m-ʶ?*9M8bɢv:jh"(VV@ߠTei4EJtLpavwk}n䅜4~1+=n*(NU +<L;sYINiBx6 +_sZfFGܰZ)HB':!TUr_JDot$ H\$\VQ"Fa]|VaG ^j2#(Q6"*r*&!i"$]0 k A]0ݺ4!>DZр/rz[IV-9~`qL45z]ECmdULDD](ՀOICVt^DA$"C V[+{$SL:Q 1hG 5M|CF^kʇZx3UAPi/  n҄di=ۊ~i+zd%C6@>k\OX["d>Еq]iB6gx;iذ% +gd9 $*MM//uxUakfR2ȕ\o`*X( 0,OƤAq.<1*; O[T{j8lQƒ .3&Ba:A8/ W=hS g4IC΢/}ڐ:=kJ]* *8l]Kh-nH6j &_ciS 3Ҁir`xaؚDy]Mݧ 1M&o +Zr-s.j)kjTAAdGO۸7`pHGܤM$Հ!o?f*wm2~\?h2b۩z2lnʯK @1'TYY0FG)2UhӲ4`^2nK֬f{}Vm&pҁ-ZwZܥ5UUz(ԦMjJ m3GrA A%h4 `Z ЭlVy1>g~ |y؟~uG? ӷmHozޯ'|%:WS 8#^87Ѐ`SӏT]=r{L&u~C*gN{i%8 dp?3 x \aheeh jOy`~RMOU!KrUh>Du38lj,J0pzT~ޡ{&`jmյk˦t˸("R(HɼX&QoAqq˓2,ah6EeX=7eNަ ;63e0uOɧ4]jnH"QRĀvߌ帶la,/1 G#Œaܔ>ehi3~1k<ʞ1tȧiPQ'5D^LRMl)l8q(˛G| 0#xeX+)z 9Ys{xJ1?o'ud^H2kq2,9ʄq00|hahe>o옵fϘ+&;jpQNj$ +%h>鵐ifqfb5\Éߊys&``1k{ڦ4vTᢁ/AɩYL"2B5=+ v:̂*;\q`r!=\= ycʚqOZO:ᢉ/),duPbM97Fz\Wjz{Be7&H΋ ( un̬uyP>8Z?]'[E(fjY1)QUoh"^jN^l^$oGs4o-Ҁ28>u9Ƚyhlu^sKO3;(jzIyD. As\5KT1E7w>u>3mu *].NQ!iWcZDX ޲=7B^UtpQ+.hD2-hM;[l'Apd:d;,{OHgpj]<5jT:hCjJ +]QI%d@ [[ߎA;.}߆w[|pRB\G;A-٤}SKUT*K0)!D=eRoh`2xo.cxk{wt#;]ds=c?bv> k6`B:EM{MDZ"VE +Ӽgwo2oM{ ireӇŢ#3PS + }fj;8wym>3tE`uÅzAQlnwG6{xϫkE7]HH ~5_8ɯs뜀gq+>~?>].Lm`=acܜ>"ˑ~RJaiVUXaS/%(\bxa@ @Յ e nH\tzK?Y)ƶX f#fHvuqҨFą^DJ +a]XH:$?y.d_Y«ѶOo~~ZJ^]rrj[Eۛb.A\Ԓwͽ xYbN8ww`{-CplInF'LǬ/F>-/,zTB^O>{.V~1vtnYHI׽{Bc{C: >gώP:}$%_z^US~nˢeϪq%kҔIe?R˒6^L|,Oxri' ޥ^y/ >9}Ǿ+22AnB:@$dPɈğ?Ǐ۠d~u9;3'ܝd}/Ds;d~>O`?T.@WY4v,dG$xPt2\11 ЧO| @<(1>0nN\x??G )eUMuƥ6-k8b#S͢v횮馐J~Ү*`wo2`i(`!8):W@KD|Ъj){g3Wzǫqdq 1>, Ay-"8YhfNS%o_%B)X7oǶ;LyeT;- DA  p[ZT ͷ4zS>KkL7tDa 3fY`l^{j{~8 &x@ ?= +R7 +EUne2^dQDLr9I[M#D%@P؆~?VN8 o @A$o @ (pM@/6,qkًxդfu㍼*d %vk\Cn\ӂ9Xgh ?)lń(9 +R7DkPPqKf9T$Y?. c(w 5A3xی{6gsv` ;llHklԪa *,ђY.I38aOr791fkpoui6ٶ0 ( KJlK-Xo;_*%/K8 P*cK3\iaY< r|^|ǐk2L=>_USI;İ 6mNH OHT$+U=Td웒rl+Z3! 6?9(zI!73`zѯP^e-'ڜ2a@d#LҖ*1:HFמӼ(/J pEHy,pWt:;7 ^)m.3ȷ '=Zs&6qg +6q[ͷOG$$_py"!hgT6! !E f_+Rl.[buũ@36.}"~'>]W6SL + 1f񌒢Su<*qOhfuqi6gAm8%h?w=Oe4Ĕ=1a$P[k匭sH_g7)hv!oFVϷ0&96gtdul`5( _YT8PG]s߉5{4;~elH&{aL0Ejm<,P2|sszl e1- +?N٭s׏oPʝ~w8 JW14Gu'C0VЮ#ԫ%JFWV]R-fE`%la*2 +& 7Ym((C U5XB~dgr[7h~ }hč87w*A?:Lڞ64^or]҆Xѝ&jL/RiYvCA)Tu6Ae} +{48=?pkbPVg(3]BGiK{hnzicgXeTCP T!١} փNt[>59w#;vމ)/)+F $ev+Ӥ(󻒔.RPtSj]Τ +eGrJc(D 5f&P}j-~&swl&n.Yh)YQtвE~Nkbr[iWra;=VCjRic.TڄjP E &P)46_.K{OkVW<>D:Ewa>r:lHd(qm6r[uKT[|ks+AutpP.0Vhaf' ,լR:!]: sep1"@L)FK%tەYݑ@ 29!kZb.zۖ7.nޭY["B>ߝ1cEGC z)?"WWc{5: DUՄ/ +jDA?iW7lZ7ʷ;[%NJd&Dr'IY\hR60r-ʺ6WC`}UI$P,1oDAÖ/V:eņ-`,oY/ݱ)|! 1iTܽشDιt^73h0!-/]6(֣5~c#턉ӗR05nl:CLy! a1Q_sOq!)%5#03g!0̃T2^6:ע4C_XW L: ip='>sCa@Ci4kP z#T=saTؽ;`fVg  ;`xN@vvG! R\!pJCPy8Otغ.̾߄?m?.N8BpDt=~8+[Z!H[Ck#`X 0- - "dl2.b" >c @gaЫ\BXK&=ה%?}*_Ŗ͐iŢIbhX<" JFA0(&~> C e Cfpc/شLVbJ-?k.A7_"NDˊǣ%cƒ1;;AͲ^bYgT2Cb!,OK= yЫ7DvZC&3O&L%Hq1|4JYqZy->i':OJ|C> 1d#LĐ3ѫorٔTÛcM'M$cؚr]0IU=uf# ȮZT!΢<0ZOsjӞqkuQj-"eA` @XB$d%!@VI %$lj@AA VG;ߙuzݼ٦$DbRfw9WiQ^cUT-U3f5URmJ*0P 5ṗƝK@ޱ C? + ;61|3$-!xUF1x&(bJfX,tf(FނOg5p}o1(f|Sv/%V})$;͚F.MeםuEmvC'hQCݢYаsh],^trx77n97Lw@,Ddu,B %k{=eե:uS.uܥʐt*ڿB۷/7&V,tOmx} o*<^DAxbyލ0>P,8OkĸDT6.HO:{9F#OV{xAW~%=3ϭ/?ulmWۂ%/=J=:U|?HdeP2дpy7g3w{jd8⇃ȀX <&(Gdl1?Ƞʨ13?3vjjqBn8J:j`G'`21| ;7`&oPh1G a}C )ȁedD#O/6 P{]䈪F (䠀Kc.#KqgKhpu?ŀ׊@ؿtAC}"c_zAW;(v@ہ;\BPn  :w#-ya~ C'z6 UC_ + B 9t ;{p?*NN& n +nlw p?8_QC< +Lq;FVk)+>eRƜ%Y8ωgz4Q0kMa?M47q1콌!} Xu;1pC:b`!7Ey!%x„LiRK33oT-"֋2$+Ill2_;$'I$ʻ厐7Fz, \ GN-M"EǚT`R%~BL&6.dN(&pG~H988l' +]mE P7ȌE2&GrpI/9iγ"Szx2*}L|DjP'^81Nh~ʾ}8K ii1U vp9l Z$N0gy4x2L6AT'f=$7< Kl#&s)' /S՗@ A +N*1hb d| Q&O%xΗL(Ɠ+jU) QS4w75}M{Ҁ6D6%h'h ĈADA pm|("F-lTže 'Z88kaVmFwII7 +i~~~}FY;A2 Πq@PB ^WfΔT! sF.JsѯzJrИk8W\+e^_4 1b ,oB! APw}A"NUqSJxBrR9aC۴s%Ime]+nnYfSV)) !cHɽ_oCP% I/ ֔J zP*5aniԚ>Z*|a98fkz.7q{ʹ=O@dA (F0aDY0H R'uJP + ;-ִWSXmzNf+2~D]nt1k%~fo2 0~Py]܊?K +ՉLMeQkj\rU[kתKmVHaыLzqWb1CO@s0 +&߷uasQOԑLe-ZyUqR+ +Ygԕ[j2ZkkU6NQt.bA&b#VgL{BPz7CF7}V3GvHwVeU+mŲ.5[4my6kR-4UN#rH|jx>A2 91PRo<݂x.NW@Ʋ5΅ʃvz!0$lŜ KHH"N_Ԥy=Hzg04Ay,Ey٬,G} "}bg}OXeeK'!vD _0Yǩo"ȋąs^kJ86׍z99`t2~@2ȓCByvK߿靐E?)ԯ&X׺5\L^sv:F"ed? ƿK \⇻)t{]ue5yn4nq2ueI 1@&d tGeɍRR؞Z`nvb, S!O" +Hu rK}*e:.װ~vxcOѥ$Z"oieLMoʲ@[ F{^ ؙΜ.zD{@,D۵rZ ?8rD݁A bfL6lL0V;f`Kdp3% d 7 l+Gq@#[8ko G-x +,=j] bOrT!H4dT2-pSbj'tC>ZMISs?Ç k +LDFr$j@#H$C!ױAU&46Aw'(vGUNkp+o5SB!JbD}ӃP*CD}qIE3 aQ*qGt7Z#`&gV[VpV0wEJz@٦ }}/DІ.ݐr%`U 0j(6 +pUa/S 1f-u%o/&|E@j R|iA +~9_y" -c>CzϐBT0Bh2@EjpB e(;`uzP/R e@SWI-A+vw>o/e<{g@|˚]b={ǖ lMi24kp/70D'^' RʚBka~mg}#|%#3a&ϰ&5==-:+ZQԣuTD+ʅuBf! H,'$!Ҡ("e(U(Lx@e(λO}s7i /l>BG/`X/Ш[ DՄ.3#6'=0] 3ĉjқ:kci!i{JFӚ0#NI@Z +݀xr 9{"=qH{\v[laSBzYF +Hz1|`D>e1̦X 5Q5P7y7@?H @O< qzܻ,\>5F})b_d < y`ۣpnapE?tݦ,p89 ٹi$,~'<=E3ch/qǘcӬ*h䥄gx=?1x~M\!_;_[ 8> yȷ/5 Yt Ac|bIo#e\=;0 cÑ͢GV\_͘>؇:Cɹ>q%y?h] zjPo4L A f~ 'J8=leC5Q QI^M|or=񁬊@vܛ|ܛ,`:jp!ul,Ap#@䐏bv/f<#|`l \QރR܎V^N9OJtQ'i= +G,`Ow& iנ8 `ڹ} 3 ѻkJ&DD0 GMIT: wc;rjޑnct3:S ])lG en G `2w, oo~g1Ag[$KiPyRT'5kkCWlǷiYjl|(9Uѱrfr% 503o':M,s&[W8nR)UK]^6a֖ 6X~%dgEl|AWIg)E + b K1F|q B̳(V=1mxCY0;̂c&εk\,č `rlLjxcWʴ|Yu6NQaK:|a6.ݮX:ҝbMf*7CIC<\:W{}w/<صSS~ՍuquDPQT(bIl$$,D*0:ŒZ;NZ:nǵZP*2)UdK9}m^|^K.7VzaZjBK5}F_\c<\mzGiafӛ0ܻ=|j|4쳨Ǟ$MW?l{I]voqf"k[եm+UnzZh|:^Eh[m[?QIT"bŋxFR.p\T*m?;1te!WrΉDyjx,k#]!ԳQ>ňX&gk *Y>cȎcd%rQ)#5Ңq+QhG3bwF-!?&H#!EjZQq_qY_iRH #ܰ8΋ŊhM\ sp1nq9fG!~%d͠3Y /RLtFkӡ\Ob ICo2 : Ʃ:KayU4c&ϜBp,4? #G2_%dBR+>a.| sxF=qs@ ݄Y0)։AXISQ-~bOqp?;"s;TR4HH6•%t0 `Hp\"b4GvnM-13Vw_,Q1_@? `g]!gCzztPh +á.r=3'CM*${yCBEXtY m Rw26MV/z/钼vH?i3 lhS`¨DFf(Ь\_ܜvCrH1D%3O ;r,jߥh@aEvy7;S0 A1lz, +8HA6 MPnK|bH- z9DWUB𘂠z'~٨]BfoU A %@ǰlr2p`^cI<BW(w8 V)%$uWT5!zJ _6+_(ltrH e&f|U7h2}`t06 +cP2A J$7?OCj!L0lSAG~DuAYgV\7?QtR6?I:?K 94d0 \`Qr$TOCl6Vh%o eLpq__ӫڣI7?k~"-ցjWuDd !I 2 hQP(ThI ǭ{{̋yy~y$A'b*37EmJO%\OŚx4C  b'iݑ/f F}KF-%:v22vfAi:Oǡs=_H`0Z:*J?,m: 20% qqChmݨ6foT?'j݆49u NU<*А^ _b`406YAP24]f2e\w|D x~j&TxXp%=6s@4j rѐǓ +) [`bc1` i,p<f;/_ +|A;sT!5஘I 7X- eI$->CX?\Ij(cO3 4#76N0 Zd{߽\ml׷m#šC.9 !ƶ˜LV]Q[j6,KeDŽ =<Àd0 x9h@ZjKf{p?pjw˓S?+<ڕߡcSX8Z-PKj~!Bl0{R2Y:=,VGr=/mDP\s`z[k sBfjv,t^<{ j]7wZu@E מVET$xb%Rν)S $"B˸D5ŕhڷxHGz,߾ோ;^5YovYcS%]7+Îj~jrXUPPl,S.)Du2qrgH\&餢aH8, DO7"@@*,XSiy}-z.h umǟѨ1yHJ%e+f% b~jږʑ!K餈tXHFy1_d 9i9%FWa`FN֏oU6>\w1ҧ"6TU"Oe!<32%Q*f<%Ii#b|TȖ 8)GjD́dtm-,_tmkŃ]_t_w]|`eDAmLpfV"tnKR%q)yI㲇%dՈznLHK +B@ +6X֬6c7WG0}wv]:֋5-a9AZRNV +T#$Jđ%"\hrLǟ7J#rn<[%/sڥY-xg ~5=?Xt,S~gZxB/sI$4IŎ gj/C5z*4 F.!gCȚ0 -Em-xlۀl@З}pƁ}U7ܭ>"Ϳ{IŒ81k5Rji`MK vXQdbF0 v<[_o7l@陣UeEmz]~?hn/$%8vC2]$ow/4WԀWKկh!Ab;,å` +tYk24cGfMcݬ?Q }#ف!'Gz6⼆pq^o 7}:Y0y!`XNKg j,eUL9or^!p]/?4$BQ.X=㴞0&+Am;2]>0GzbL;Z hk ,A}kPdk-[me{Vg]1f=Ϝt{jx&{9:jo|}{׉ϾGt~;߁pF:0Yc>:̓|ޖy9ӡ7Fy:-p.]gQMy? q +.,* l!!!{ I 7kKGwKU#-X+:uA=zL[8 +B|潚|w]=hil*5{.]0wp3GN RqU"֘[>asbOn"){>G6bڸ-Gx}HY|HC4ЄaX(AQ> a@TNq Gq2͓$ߡ(2)*%`8z dE!; qL.}6D3e|4|Es262'aqh/Ȣhf3 2* (\GAi,; <As +Ru t:3ALd> 1y +J ' JCʀÄF KTaP-!DXK/ldAV'ɺ.g Ivg|[xbd=xM4d'ѡ`1IgB'^9pGCI<ے!ٟ +tNf@x&v.Ywg!>Y/yB t&xCȀ. &E [D(@/8nBܖ>BE<C!ρ ُQx /(#hPy#o1&BPPCUꓠ4 ʝ =GBH#3 KGR9 &'}HNJ1&QOn=[}KAݝ <Ϡ#4>(:qLT}å +A1(Iy -|v{8TgP^RWhʟk4Owyw:?.)4½a#*}P23L}*QhAd$?ҵj}jzoW ˦QӅQ9g0"7x&XśU@|e渱jGʰs)wtuV+neEc88ᑾx_~aKyrpf.l=tГ|{]Ċ:&N'ؐ=ա#1+mWU]GF&K_ +n[nZd(0[mmECSC-_zl/yAo"ؔ-Y#zY[|%+p2\+9TcqK?gK:-;,J/Y_8Z4h 8NJ),9yL~#d+ȷ.ͱLlK2ȟ9( vmpo]_JSMk{As_%Q{k7%γfGpYeM>'( dȾWOz4̣a[4;Yp؛=n[m .ѕ++ۗn)ztAGd9׉+eU|Yy+׾ʾݮ~.'0FfQC5&2%?1Ad袻[~mC?h9|{ɉǪ]]mK:j\]Etm_Wly8yƟ8H%CESf_˖889v!5dl!ҴeFiK4L^XYA@3AZ6]MDj+.;fw9&G7%ƞgTF.8M$, +%tIIlb樒I^֥N{:+vxof:4 kRe i"anH^lYXVt/#\Ԉ 5=/%z*"9z&,9j649j>$)j%=֓0{"_B4{YS.uEp@ +k%Y5_qOfKf|Pw .F +&BWLxYN\;.v% +#<{+UͤHߴzrLNM~jK +ODdg%222YI„)x䇑 ~d7*a:<:~7ǎ.DDaDrxY~nSћjᮽ&ʷmZ_s2P"wZ~ܙ *d 8ᇧOq#Rgy)~[& `A O_B'=q/n&yd,@؆%`mY`Yn`ug=w4{@7|I:H5 ?BHI t`{R"n>|bf/s/m!?삐OV"xF`'!,ɹ 0z}OX ҂Ag,7{Ɇ_g"D.ǃ +QvGlYMtBt"s+]*W5Fh+ !:i__#;?=G+b `>7ҁO=3@$fAb"h%[WWGmtp:f}6aי D @+5zq$X?r'j"Du"֕ +S g8@> JdHJ[Q+<: D3q,]bk,d;2{!8?Ds3듀UHXAPAK +},N&-*unH2 _x+lƴEwÆ؃Q7Q9/9}pŀw3Wq>&!?{ԯZ{d>@V#֊ArArUU=,7J$6^Z^%s^[%*7!q+C;Q 8/DN&A-d_Ɠ|Ň-֑{@w. …lٲt[R["WQT;KRgIO{[7c! qe#C1$WLhb- +#G4g _4egy?YH_κs[+▲%kҞ+o.J{IEeW@ܩj$>đ|)֑6UTN-g7G8/yZ\ИNn}%7,ܫQ=V!Jy27ңv[V-@g_Bidg'=6M%sz_e_- ~6K]nt^7 +r 9戞;O?O9$w&8|[ٮ]ٖ2h[ͩ㲦ԷƴwI dgQ@zlZhRjwZOkCf>VEuv$ٳ!}*$\KlWv#Ir8}`ZjMk귚}#ꆵVE}Ƹ|{[)!yDmH@6o<l&} ԭmݣFyN$,P}U.+*wWdS6g4e6d\Kٙ٫NQdsqYUDH$[G dΥ‘2VrG6O]m5n6;^.{vW6g?h䷙6 +[ ++eyU; jks?լ}0RiN0-1VU0.{$mJ l޲T͡ p<߽Vԫ{58xthWflYWf6nIY\#-lTWO0vZn|Z^03 iMqTU?(˷y{)L|28k݃(7x_h {YGՌF6Z +Ě*yeNfSkʦԒ4Sb:ST41L a&.&{S͠|>rǔmݭ%"J};uʍbBf\.1M),,ոLZ^ُĀ>ӐX:)(UƔLV&Bٜ3(CU沧iFuh:'ʿ۝j[W[Ģx=rzSS +nW&./fkIiViqUX٬5X9SY׺-CuyTe4\ѪuMBXEAaIXE@0qWzZD +REAPAܵEܗ#n=3v +cNUԞ,gg|~zy}?ѐf͂1=ŧoA4ӵV+ok2?mW{$QRYk+;.b}˶S"{qIyy%w,>{I@m˶\6E~у*!ݮ3FtmuM原Tյh'ly}OqOj# Ǭ;&a)*>K_X?+w᜜}md}=@V^`O2w  Y٧DN6 u1ֳ.3&sՒ"/jT6慮;TnuÛf=,=sӪo2/ UYeCswFRևD"_IUǧ M%S,\RU\,=㰽CQ>wݩy'G,iY5-yc\vSѬc{SkRNo / Æ/?R>*FGRGCo#zTFtb=tG_]ҡkT%^ 1MmDd+/d/>08g6;>'^:1U>>f6#9(TѰ臝Dw]۽j/qTyÈM{\]ۑފ_q3m,k |VS\1s6zڌ1יӣ vyŴ#>3D]!h`?Utr뮈ӖO}[8:>˼&<ت};hVFByCx]DFvAu:yDgD7#jnfʯӖ"kNkzżr =ZkCO]JOxVcz>Fȵ=U͊t2T8w(C@u752ω.4>/N͈V/y/eTFWfɯfOxdחa3/N׷!oc.܂M |{FD7$/!5Z!Dul+Xvv'_=7-)_3{p~jZxY4C +UClw~d5IJAlbY?hGXaD|K#Q;#JÎ7n:Z(3 +BHc?d`l.ATVK\_0l_Lj*P5˿C)EpVCԿ.4YEjE( "A% #@#r A("HM׫XVG+VWZ]gߝ/g|g]ך$i VcjD0!D +hzG[Cq n@=_\r}As}F} +ns[x +ϫAy9*Φ9|f9DY@DB(KD*׌F!.mz?2a4;Na1vk +ZC狰oR # ~H{/px*ٽ_ +LJjٰb׻ͷ=o:~y_#!|\qw| $|ÃQ>P@)wusW`Qn2#5hyR/ף5n3Q-߇/5uM  +N :!x\$hB6&P(APo8.S3)mOEHd`\iXf6iK'Ed Rtv阽';' :>|$l*@zg!U 4S V, =vS^jR +\g [ͨ.Ǭ="w99)xOHKU|%i t D0^y(ewE&:bh F 0$@@)=Į%Ωs?A şS~+[ovlLqɥgr"2.GRIZYEࡄc|;+#vl6Knsc$SA +j)0@7b-ǮȳCcSSfz3%쥓a㹱.#->J ;,3*o&e=d}06ߐp]PW%n 8r r`d0q-=-@Ѝ}M>*g./.qL'꒮O+IX") ]E7!=*nFgfONTF*=ERώ\>fP陕}z;D/*'Dˡ9a~5i(akRe +-D}/ +=˷Duz|o.5-Bg7߿f6x@ wqo]GSI:mu~nG߶a6޲z1hQoge!̩R^[.*KחkUM/+(L U~P^^Z6j`0pXWwT hu:yMt52-&bEKh}]m[UM6]e_Q*P+K+njQ@ɵgCe"y;B;9S w!!tC}fh@nj ՔUOguUMbW]CVm7ϐNԱu/ D{X[~|pL[V)DBwNc=fh rͲ]5gm[Gn˞YʆܠRzBNQH~T +Ș +Ht@ĖZYpـp{C |i/CC._-+aNn݉[S;mŴݭՌV"0G)js23^;B|3$toL>,u'{RFj+E^O?dr7 N07]X!@*Bw]Ad Bc _ݤt{+k/7ZT_ks76mDna-r[;~cx|D_|J>KˎEћԂEG->v8T)Nв@]n|;)T{s%35q0Ͷm@yW5;dd&GyS-<D6zvc_֍Yco,dYbjmt"\8\ۅHMkD Ds;^ ,4㹼~ocd 8= TxV{ .\;vhH5mL¯.CwC׏ma3>^gsX~G[BQ(e>*  MCraxayFc xGaw$xKp' l`3vog&_$*BM# |Ʉ@CBZ(( *.\,\ xH` X&c ࠇW!fpU3+l?D"\" Hų: Ix +C =q?/8T 籎簝'c??g5|M˾Erb(xS(b +DZDhĒT /j!8K"f5SdZm$=m2] +{ +-HEbfy"z} ];ҏ|!iү 9ꏨbD2wa1xd] ԠkyXzLVG'zB9 q h( F|?b2 ?ɜgfn3~_r +B,#dX,TzGPA}1a4{W#"f2ς友#; @vȨAKH?0q}5HpvE,UO ɯ)cI +n e@t 1W͈1Ҵʀ﫧4OmbEۄ?+[+M:VHiPv}>dj3q]3r57`g0o/iK9XߎM9#sdkQ5nBN y\8 <; ?QB+ y#p!uNxʶ [Ÿ] X&wg<%ݫ:0/<8S6|n:9@틼H뉸Axh|KD~F!ZS4.y} + +|&t3I l}#fr+Ȧ0k4f,9nD$s& J{jUwQ1k n$o<.x:rVȖQF"vIv$5 +Jst0k울 NeNEOU{JX( Z0D] +(ަi0E&pJהFߍyǷ ʣl2v2&%ݵI ť3ɵD K%)^U + +/ +Es +!Bh`/ {o. +c2{WTKEV}9{[I rU:]M/6 %}_7[͖7[|ĒC_dD[ :U7JHu!ܪ5*5LNe莖˜=jС&K<\YH)ʨ+d nQnz 1!Y*bRSv10x{J.7[$5; לvU< uSTbt<%7GEϒ׳dYa$8̯~Lđd"412D +Xp;O눠kXMaщԭq-5ǷUWFRW%TVzeRkYE;')O'̝{/!s[Y)(J"j& pk0hkZ1i8f .ZU*+{H˔Ԥj<|/_|b +.1]$[=gp{W#vVvYB{>bc'ٸQ9jU#'!@jYR.:S%񫚙'+|*'88|"*;R%S"h5[KLqf`34&w3T1Lz-#6-.Y(l5+ȼ&WdC#- n +Va#FpV#ZX+*_ͿE{Wp ``#6ფ!ly +@N{Ss\»JC:՞A=q;mAԣ͈zL(Auy{oq`w0@-vвuq1Q -q/xl#GN *v:s9>Վiq\r@ o/"s;ٿ}52GpsgN kdӻ iWRX0o39jUmW;'2w(tێLݒc} 9. ra ut 4|$@MH3v;b=IQ>as7[MΦ[sf +fjvg:`Kږ:duȎ1{\E+WwA'@?@ίXΟH m!f[Bਞ_l쫏^'1)i}g6Ky+wVn|8x8]Mh_ο-3'pC"HvY(9yѡY&/J9hZru3W/~,=A}ny;P gD.~gЗL{(m# a!: 5px7?ՙSa20 f`FP"JQ,X"q%Uc jtE=.Y{uƵG"%( +!;O}}'~$~0Ofh#v^R+uBW e{; F;m_ x(6Q}اD֍"j)]5GPps`|(|H?-"")bϏ߈5X/v~nH>6J-߳* .C4'DD8?( + + А:H>0ZArCOY +yJLX R`Ev%,M4/q-T{cDAD 38Ӆ㡽.Cw&]mqm{w'♯E^d֬QSzɫly]jyh'P=9]}GK4wV{Ju#qg|&xBSFӉПHD1v( Cjxm#TFtfNLPɮ+( }߆}fDTDDYaVePYM*X&FM0.59Ѵ1ihKs޼[ą3r { ʏ2hnڒ۪1Sb_ǯ*Ҫ=RDna_Y9sMF"",MB0R߯iPQt &VX) wj+\ټwIl徼Tʜl~Yv)(NBQj& +S(Xlaᮔ^;4>#80Pk=uL{Ӽ/xE}ZhBg./c$18%#p0U$MK]O=O>d(NGQb. +w`1JD}P:}'ih`A=hcZU4u kbMeՉV9iҊ~-FX_r'N>++D8E; +QB`4ԃs5ԃz{vH[Cje-ZEM+c-$u))Y$TzU7 Uxm];xs6pk +bJsS 5PH3@/*Ʌ.3rev.+k_ٶ0Ӥ{,wdh9(w辩KpBr_:lEX z.,^.Vô6T~GK5=Z)GvMw[n̳>\Q缮kD{xv;a="zNϤB 4MC rfh a]';m$gxF[bFl6_7 o7䴺)AU輺ɡQA5h8AzvV,Ns!eL83 Gx*NgLбB㐱Um +kpooȱ>^AwP~1?OH1Łi=3LL{յ3OǨޥzZtnT!ACӷyFsh"D3\p-Ds8I?DMy`%6U" lBgE b eJ2L^U++fMOe?Y-k7g]ew+bG)F)O+a5Xs\3 )ς@x+܊f֟btRk(j/˔? 'ODT up~ `$lF򙔱xV2eы,?xO{*PuAo_t?_#?%7j`X~|0^@0WANx絔Ahieޞ`og?hΓ|9g|Ht7B|{`'  zh%hp440ppX%B0H1Bo FʗRQ>= X=Q[LɅCy+)hEˉH #[!`|E~\BAYpS8RB7(ˉ +ro }bL x`B/Hb͇C<hƠ3̕A#z jAM,H`Z&)&5t>2L$U)}~D^ KK0hȠ ]̝ACo l`rI$! 2A%r|INeJvv :2hOZ1[•XB\RJj٨B: Bw,\'u}GEugqSFA"3u +DPAd230 ",BK5ZWcM=hbY-b'su߻}9(zy'V&q_ Nq%]ev^Hihde-r8hQA:'hE"[|}mqBLb?ǖ( zŨ-,rw( e}ow?$kxo%7WCgҋ_w?=߷{'+E;oKQܒ(['e8s21E3fNPxpz]8oW.Z ?Y̬ Y 0/2]7\ +g'\e +/p@w$@/#@oZP/^z~>+]}A&ݙ;U'Eb;w>3_q)0JƧ(:@38]z~@Iw}҆<4{~ެ>;ܛs\Z&Uٳg7'dY>=x5qχ&G<ޚ~f

#z}b!\ C a ZdC_E yN68=qh~y&sL?ݢ?`xOn>A]gwd-MwN6]V@A`Wal-pM9G2p:ҋ},b>H.p ,ݨ?$Ev/6߹r{Z6A[K:K7]`'QkԱO/&f~e%<疈JGT؃q=ѱ{#4=]7nmtۯ6lM%YK#٪w͡hOPc8O7cq>_'d$8,d_۝P=>Ұ;.AԵ$lSlEGtmMֈ6eY˩1sC9z:N(#5hWұ0e7gRYp" S'g67c{g7'upKJFu=1Ŭ-![ܪYĕ6/Yn"UVѩ6̥2+yy]7Li :Ƣ8н}I ڍ0۔)oS1ņ,؛m ;s䬞l/^g\Pu1$U)&uMCR.־:acE|sejkQ)Wjvţ3q$2 +ÍxAe Z!3|gVglnG^[΢ DY f itMuZ<ʾ$ɱHѩII'ܴI7r/Z52ĉȴI0.x82LcTe} +AO)tX6eiʟPj=VٵuZaIBC]U(ReS*,˶I+-K5;w01E]#.BdSc +PFF 9Pg?\Nay4;ʛfq+ Fuj,ĚqҘFYdNʊmLXŠKhLX9:RXU[<^H}ݍkW J8 +(8g6NZ`jNmzN?f`afnMPEESkٺn]6eyZ(*X +)JYYػہΞ;0}'MZB׋ǽ2-c$)nJjG%W?ō'=vpUB`J56<ցYki3d^S`gꪉ~E+߷bz + |NXc.tsȥձK,i)X,1$f=baoy-~KU^)5cFi(ޔmJצJGxiqoMnx$p̆; .X$lhIix^IUDnIcDܵZ"sVIdގ5^u+7r~v'l3`Jy*qEX[Qsl$S}Fna)kֹ9[V̭3ʮ؇-%$}0=5P-gťʁi\&TwWQXJ(W wݣwy2df3]/ӪKR\;-] lI6h )wHp8_\ɞ:P;`yVCNdQ7F׍j)3u{&կro7$1T(c1f`6ɝ.`2Wûùf6hXt$ G<gSFcwAUQ˴2-Z-~ˣQ;"ijro`R?PTY@Ƈ& cO!g|&_$#%;`?;}MCO"h-ݰ} `;+BgDi#3~n`k/b݅ F I'3@9=.ak[,m03Lv^NOй^6Am?tuނvU*3N5?evSO Hflo|oa1:w4;pPA7 -`s̟ɹ2;ك?e[V`'` x@7BdNqL9ćᇡ7\.,P.W/{rg̎ X>̽o,v$'ehB| CG{"$(C iJ0~OzJclr}jO][B 9 <9Sb(T/yf(ў:-TDA@'/R'yN[ߛ3?;nD$_}š-&¸P9U^x<~4^.0#;ߟi%G\ )PaI6Re١Ԫ֏ k괶MM6ѮAbN} :F9UrꧠǕiE`_PKufT :kA+i_ !7!q6Tt-? A$b@k"q$>ǫPZ%vٱDX}ب]ti;֨ڹS+D7Lj:##ݢ{-T3$88t%|t$ˉWӵ ki-Η=>wqڹ\wYsssy6%6{6&]jH`T$>5@| q4Ay@+#Wӝt[ZF⋴dډS5?gcb)+ )yLeKgMi4Hm5M'UvSUX*iIXgk{YjveVc5 Sհ|w cemyUWo5+ o" JbZE( K!@k@E(޸junkn۱vvt;ad?=s9s߰NJbMH k) ^ ك{x s%' 0!n%&,%^JR/5|ϹR3qS։ةPG2{4!xW!s΀e$ kg|¾Ct+J\V卵WI*9}V8=0MTL$[ƒۘI=!CCY=2/.H]r³ זDظTuYc繥ΕAt_fMMtfv<gTF0즎Їyj^]w!S[lϩ mn6gu4Caͤ&s>*Ie#YBCDHYCB>9Ήװ{^.p!g 0e b GP5&0z +ޝ,}`k~ I_Zȭusf털\;')Yh?P[xJ$  |s×jߢ7 A R7 +`LRʢܺKeM + "]`Ȭ3VVs͆v~YQaIH?+)/n(|+)1"4#Ucpу. {F[UQyнŜX[W]_]j6BJj9%m|cqP4*Ht+rޠ5~#0t`aB 8Y0O0{Ͳny\VQS +(2UXEj/-唞ה^dޗd3MD1AJ^W%fA=X4By#45Zѫ ޥ~E@C]S_kͭif!azSz;\Yu:\YHUITf"P _]AxkC?4 +`Cz'f,@w +;kW j0\Ž-nؾ$mˉuY [uMeW/ة)ZxM* u]xpNA{&q38;p;@57h~D@t[ۛ NDn^>pW BCȃz`uP y2cc}8ܻy3itu` cOx>>ޏ;x}~lFຕ@Cq \֥)bJr:ɣP-g< <ܗ\;JܖᦼUp8^E' 霽:'8^vMm -,U)Q٬jifM~/-߿-4˩ŸS۟*p-lQ犓|P:Ma(UOUϰfRn1MPm6MWf7 +l0Ԭ7m\keYb׭Vh %? Z+jslgXgzj~:J[EJ,6PnLW . )lڜk\]n^bԼfy\d\h,7W9aSs\ Nq+H +eu-??;w +WtX1QcJejtȴ* +OY4KTh;7h.?~vP}^P}n#~zБ]N-:3.mKvʺ{:+=TFiXCEqYZX, +SvfU6zY_L.4W:~Frǜ !{vziBЏdO%⹷7ubM7gjHwP,,ΏL떢u͌lsdvq);|a\NwYo _G=97Y#Y.{{3~,K`E=^&W{^VocvJ4yRp }بR=9$A_ٍCf =s c;eH~kZLtNr"}zpppc-4CJbe6%%ppj\&#}YI %)֘ꌉ!;_3T#R4b JIOde7 1P,,.V:,UHA@*`-k1Xb]QQD#UѱrԊ:k+ڙs@wŤ,F/(GFWύ8;jSxTQWc(a>_# }xk+$|dm8IZ%BN(If4-yYrR"!1ba\eLBUt|M,9"V6:p kv + A>0^舶Kgųf] ޹>-)9;r=$eѹ~Ȝ9aّʰ4$Khz: w=}lIV|(fYb.sFx <%!e3˦˂KQ~-'-Vy[M(Yc^IWؒSڎ]*lH!)6=g;ؖm^!I.I}*$BP# `hKWjlҪP3yU UeXxUYRzVnQyTWW+>j +a^c{s2|s@鎭WU[` |7q8P3kH̐ Y I{6+1n2w55w1lmxk:VXX\s;}FZ:K+* <moԪYG]׏[\?Mx,i+q1K6HVȆjdCLN2T+䃶^7τ={tW +MDofm]2 kPO  3CwǀPosc6.C}$NKE%q\[Hv l#z,za ˞u?0 &5M:0h`<c=F`ӒrXBz\U3X>"$d382;s `. 00(лв]:!e +mv0o E2 +N?!kvN}'5) i{M'܋HDrA..iT5/Z\/_\JyC2h/`pB/뭐yO33OW:赦;X_*8kx!v7\[cی@77,]N)KOgͣp4x0mځ=jz/ȏI~"r~T<</qC.נ(++7&F,(,ȲܖEvvrY˂+  ".!xCEh&Fmc6If:i:MSM[vڴ}z<_9y>|e >X6e7pmŕOK\@$ dXqu,xFVe +*U-])[kkݵMp={aj1drrr_w~ko7CfC $r"CkKGmoWkqKp/4 nRZ.GRZpP9E;}VC)g~֬(b}Bq}Lq==WΑHH둄CHW ׇG17r}G͛`!:)3aNi(-)>)wfi^Qg2z{88w}Hca kl!Mw07ߟWЧ>(U Qϊ귙.=CӞOQ[2 $<%b޿{?@ωlsc9ʅ49Lføv33 @fkזs5ތF~OF-L/jOJ[>})iNؕND"BWO_zp}b0L +&tRݱp@Gt>ի/`wg[]6^g@ێ֬@wV?Ӓt3Fݼ^wKZVw#ơ#"$9p7\G߷`=` +ci`@J0C1)Q0󊸞<+ߝ[ВrE 9{NÈaޒWޕ m'2H1D>O1wW9K(D}7 +A) iN3X&{m.,5V4 +ZE5=!8)Ae_HSGD瘃[xqz~\__z_ΒhlViI]lvcI>Yb9Jl5N-,+̃RaYLPZIXn6iH; \>b';(}-ügyQۼxQ}z ?jXxc^.=.vv)jdҐ0@+w(RV, Ư\2ZBm6^V{Nr1糨{{i'҈ߕ>j@k<ɃȣP]S!> kjX?7vy@E}eaOp}P, +(q]ՠƂADET,NPXh{,G$1qu]{Xۏ{@xgygΑڛ%_>`Q2l]f(2C/)멷4y赌A.| b38~Z9P rxë;<+"Q1ír\\p4éUp,2!9V3yLYǻH?RO VF*gS݀cju#`WDak261ZCcIڲ*K%\@]+!=bԝC݉Eݸr6ԯ_ȠAVh6#GdeYPV: S^ jO-Pwm.߃k=?CIl3Yw8ߕF6eل\dikbR5љ&+"CV!V`zmDQ7+|; R@.Wtll]> 7 Lb|II}g'&w!h!y6N(F{;Q׋]# DuOrLhv/C?[7lO 1yI#_ҐWhv<xռmּExD3=桍i<,`!Pqk6@kA? $#dYM6RDJvRK!u/+~xI!쨭PpW;H32$t䐍dur +.2i.'WG ƙ5H?2|B>N"u9RkC:k%2SVo>~CG7A8RWm! +GzjXjMf|tX@Tjds"@# ~I p'4q7F \hK_hZG9&ۇGx}Lԙ0&He%rM8O_ŠS 8tZ%#R9SThgG8A'5qU˲h%|:bN+qJ'98̃UYê +4jpHՀ&|W2cjAxQeNW^/'7~}6}pV7lGX3`?`8nsWu2:AC=84aT9F@YBz7ˈn.yJ\C;N;tQwðԹGT{$aL敃*|Tx{JHfKi +IA3!!Z=k, `;孁Pg} lʎcPR(bdl HVJ TX)Iy'e~LY֐՝FRK03Ov@ol=P4[Gas8OgHy!s!) !!9!5!U!쐣eOKC"#TțY?]8iG,=c~3XP7la(<`G`q8AZc"[eLeʳƕLFEq2ݸS^~EX(\(I< ԝn_>|r8nU =+LXcFie%-7e&2Lt\E)EjZL1S-0FlSϏ8gj1=6 ,Pe s :W|j +{Kھ>XX? +#e&5E\F3+Pydvf>6#hE ()Tm(O|ǧJx bca@OdFwƒ0XiQGdcNR̎LNNγ]mMV71.!Fh*a`+"}ccbuX2qH &̏(͍͎)K#"q4!SR4VhuGEyafav .D&葨((("0 ̌ (qh]\Q0.cMh4rZ=&Ic\kmm&A;8}}yIirjIjI4j{'JxU?3~F[6a>(ѠԦ*CPnH t$=WV^PVOW5MߡYgMYHc֋*^TZRES.qaQؑlZVudD9TfCi*LiPlJN]Y(_Yeƕjq&˸KΘqZqC&#CT ҏ}mf`69x%RuԘTfbK0ʬcQbBA>dbJxyhI%){rs~0AZy(R+‘R9HLT I\E4L6-U]ު^WY>J"r,JB2`y)PK8]LWA߳H^FB@̯}a瞂hĺ0ǝ"ĸ3ndX宖Ns/nO}M><<P{ + ~u@7hYGo ڥŠ$;Fc@G8;#\<өG] + <M hw=n];G;65+P`0^ہN``~ jCp(C!EAeaqC1}C"? 6je6րv1.Ao8]@8B{|a#hB>n~psynu󘈿+27ԝXg&Qs459=@{?0# pZM3lF{p3,?gyٟ!a{(pm>/д.d/`=fC70ԧ'J"H5K\~¿ƍ b^?EnD|B]k4RCIX= +(z%-BR&kOm?rw޸p0>&?62j4hGLAIþxq1GxPR*Ǎ+GsMԝPS20l<@?F-5Aո޸5ZxWXwq+0"<⢤MT8UKƱs qW\ %uW7hZpYӉQ\ňv ¸C8? ΍3n&<ĉIdGoN~:G ӊx0n11W&%atrF&0- _NI~GH) +^?`ST!|:lG0V#ӝ84ߛш3۱j웹 Cv`p>ݳ10v%%U'8V? _LHjȹ{<3&̬)8>'$r&cp{T`: 5cgP'vö~ak?|^ .l +>/څCք|/@܎FcyG92]ұcq6-.Rlw/# û º]bO~qui;X\/=R}F4XLk6c9 b r&G/Ė$W|ٱVW.jձ*]إ[/vI!-;*ޕb$7SjU=c;3Ҙ?ov$/޸ذ, +Xn}+Ra%=W.H Ƅ'NQ?RjjWr^\ Ekp4riӊ 2)I~<'yNGWJVRn0͐/BBl4ԉC6 rUe8T.j* w4eߓ(N*;STu˯lU' j^,^h71nFȘyP"\ֹ-B-΂d,NJ`/( +bAAdHyղ֯dۆ4fi,5L}2dZU%3_S11׫=W̽H;Xx:O#c㳪EpFIB81(rБ-6!Q"ګ{dwY>ey&& MCMZMZr4;ej\A+XEq 挄2r˲S/dSYlN)ݹINuVR55I4)I%)RCm|GiJ%i"ߋk$UNjr!ۥɕ,]]EBLHuW ]򲪣r|ը纯UUT +U+Wg`/*!mMVXE] k#ݳFz}IEDŽdAyZ8Z1~SIOrYSZU!ϸ\R㻤Ž@H55 IFJd$LEb<[ðu ⽉f`ׂX.omBw{P ޻bh'bh*6FU {'Za'|/^@,%#k& jU8"W-EĪdĢn+ºKuG|qXYĖ,$&niTUk_p +"$DԒPJ2UcLUjj:Jϕ:Gr#y<꒕Ȭ g*]FhI#tM#44B3`i M7-a *tfpY Sa*gC~mw@^dQbOE*<7Ps#)7Fay +믐 + +̟j_v;\y)`jcmAv3yf.fN5`={e!/b򥈥Rpq/R?- T@iڔʿ4A~kS>jmVҾU^#_WOjYQx?Vv&gR\)"K/ʥk%O<Xp1Pom$5qQ cXFTޕe) +SM4PIYhx>]B IϕR)51JjIb۶21 ocR P RCk(b Wovm7) + ĚzrjE oTK;$]++>v۽ c~ǏZZ}-ͥbbjW#0Gi%oFɺUh$/5?(G ~ŏc0$~b9EQ:_|F^}I;l 5wKa MchJV0E:\:Ǣt%B{ KuL/gds2y4]!T=AOI.?H+XMXPܥq>gA*KczM#c/v?>>~_zNo:ptp0JSjc &C0&51II1/gה_q0ބ10fXP+` -6ПPOls&\wV6= 0a&~j [Z=W^u_:Rtzme.4+k4xƠF +)O ίu/`@hȉ+f7r}!>w7%,gҹYn!Kktv> KP_ ٤4*3ZzCǪljjm3S/`R _Z- +N!Mhon6\[b6R\wϑc*=Vc=?jCZyF+n{>@NZ5/bF*#r#7i{YQǍԨ+ƌG(HyNd7xg{=Ê6Wvg"7*l.an ZЭ跔=Js'jvLbR53fg̈YaT2c?5b/ScSbM#I̯\%gˌ\}2|))enE1>=*U)@=Da)fn$[IcuhuX&L;by7q3qFzWhD{o͌ qڽ]iVK4+>B =5#>4`%ۆ)6ZSmD{d[1ѶИ`+UXj,m\Fλݳ 1g$b>ã0{ KHe K"I&L2IfLB&$$C!"ITBR, @!(}cVVc] +B_Hg3s9|/>X$E ҐcU8E5IsT@U-wdґ +G@2#Xa:Ŏ;BGYn;[ycq9.YK$_mqg.j]L,kc acSUU +TE<',ݩӣgFsQ3Lw[,q+'+yN+fNj?g8IK+MuJ,Ty]̈Qif3ȝ;KnEFk\mǽvo[Vr_\GF9ƱlMԀxꉧ,'r`fE8;J9SU3GK= qɔϛ\o@^o1Mfg<`9={4cVy+󱕒c}fCV?8+/n-xBRgT7\c_-or}'w*Q?_n0#b&w[I^+Z\xm&}$=o%PF0 7f|>xhA,BeVVQ2#*RzTVj|&)ԥ`- +V(!x lc 4o2cؒbی-͸"ۈ+c/bO~o&j`C5o(]k(FӜUʥWj֪"ͬFnԴnM=ɵ(zۚ\16&gJm<h|Pu<شZՃ4>\3 i7ѴxMmthJcuC2Mjӄ6ii|qkzCz[Qk`mD#hl#Yy&-)tS4s!&E:TKXܗ.S p8.jkaR3нAWe4ހRbc‡/L>e~>g|A`fNmh5@8 +q P`%:X>qBx_]}%~1%ޅ&V#7B%B70vޯեh>g^}~$%zEs`@}xËWbCaADA z,EL +Fe;{v0-[nrt#Lqjh8Чm>GulꖀiEP0'oeX׈?L0?gpjJU^lbPx;w@x#F7b;&"awQ\r㑗#G~-QXM7gQ;O-SQp2"G#q$*q`i9-2 v/kΘV#cak6X.#/a86`Cj~c>11_Cqy,$Ȱ31;VcJlYi$+6%90HAOPKL=PISA&ze?Z#tI %UoW9R2yWP~XaJy;RU496*pz9֧1ڌv d?}ѓݙCM7!Y'KG=2%|'>KL!rl/碗͙s1  ec [Do=9 V8PxWtS9ڕ{QNUy^ g#?¡3m>K,;&Ygɸl`\*cїyŸ_΂j +([ +OaZ p6¥jJ4 ꚰ>ªzB$a-@Sf4(cCO# 1.aV-EWQ|řh/΃D*.m^4aS$E0 u3J$a"?JE>Nśi^t!:Q%,r\pVhЬEv6VZk`n&AaԾ& EQH5咸Oͫz4KI='=駛qfܚ%piQ)CSU6UhԕêӣAgF&}F F@NZOIB[%*%qX'{j}񻋿UZLXj`-P:FC#j -1tBo Ag}Bcr:#w#K V5HA 5Їf$&"p|wHdꓰb | .&7P[M`븪oR#$32R$uHYjA\, iD"*cDAtH8MENLm]'{LwXǿ *pʐ%DqEׁ /BEyjMl`֓&8֪16Mn?H}~~=~_Y⦎%( )Dn(/WS:`ʖ@Φ%r2mKʡ|2LhLcx, W<$Rk3`\r2#s͡jgQ[ ٙek,3ƛvsZ+*Pb[嵅OΗg +S3`VjeSˌ[ۑCh(u:.:.Xn0g<̙+[F_sa +SyH1g`^.@Us$z 4fp'Eg  +m=E'{xK4bX94s퉮j#MCd;srÎ]ر;ر;h(|Ful]pwr߇ {)5՜ ݌>4Ap&B4hΏ{Hc_N`G#I#ůKuX4`;1'-cٮqux-tɞ%CR[1Y~ւ}8694.HbU(Mm™&>v ~fتnc8!;ݪu.4@W 9| -Mywt{>Sӆ#I? {YrU +nGL_M%݁{ց 0=&&OVۃAcYp drXw@0C̄9P eP`~aY̍;ټ' K==⭇܁uޔ_8 l4r9 scxƎi )>s]u ~˯| | \K68ش +/cHgi? ؂.c*Zkl7ң49Y}]ZZ9flAMOŢ:#WϚdDeo{g)Q~hAN^Z0UiEUUnE&herU|w+Wrm]w?<5nk0I!vßWÕ_n/*}cJ;U *4X;<1*J,{T\,POfӌov?)E]C)!*mU2a.mTAE5k)7Vy~7L9ɚ?^3kz7P2VkJ6Ҥ3J &=UjE7%gaz<+Ŗ7fn^ jzM9X=G(eJSF,BW(5x&k\A yOcB+%FXZ(.EQ6XU<+Ė|l%69i!]552{+w >4)l&MPjX&и /SJ +ج%E҈ CE#\ 06C9,{rhaVᮚɑJ쭉}5 5D㢒46jR'ktQ@#bjxFOCcNjH, Q-נ\ZZ#mPGjRRc<5>_b5&.R)qo%jd%ŧix|4,ޤ5^JأNh`'P-?<*?we1 $n "" 2,0QNHAA(MqZ5q4զM6mzĸ&ƚXa9}"ΡlX?m _fK1SU@Y(/ir'+; ,E&C2 2UZJRSdHPR>%RBNJO %$HrT#,g= 3 +boeȜ6RpeE+#=ItsjLJ26(\MG'qA;Nw(4bS:F @QU5IVcwU^56=VS5Y!r>><ekzP +)iluOy-P0yڇ>+7{4>]5o_pS$l7SO7=ϡ~z&j"9Ff3A(h ܚ4K}i~i<[dZ8ZL-P kygຈmlyh*^/|3Xs"kĚC 7IÚ%%m,1ϵxXE# C N01ҾCP"p8iFjz͚ 5Jc{Jj}?@?6f p뤰;YT':ppzybFcI7xZZ+ow^BmxBP\wFzw>{pbGs֏ ŜC9VM(gU8@xuq?Nx;AEquO/Nj[9WuqN ?%wŗ̺75f/NLN>V 1,vb{%Ө;[|;xR>prWJU}s_DщTMNΨ@Ə7𣋼:~ŏZu[8}D|E Bm'|.85go-/(t"шZ:s_lخ|l6bsll29=قldsۮ"G'#$:D b]Pr\l.`w,$ +ϓTVWUD̮r]9 ];A1B9 (hr4*Ѩf,Ry ZDd+G#r"pvrԾѿ+`ܵ^ Gk4:ıT-TiL\Yn0˰/2,3,31 $vcxKʭk7V괪*RRU~V.Q*Jc;R{;G: rq+YȦcn:JFd)ﱰG}VuWj폴~UeZr6f_T=/F|Tg"S8%S[K8]ͱlsrx[}嘽,Lr fÄce.vLg2=&> 1,wvi9Tk%?k5t2Y$Dq"nG9orj8`!E8\IL&1B(iK{SH9#3jJCq'_vDSyʝi%SK,'r %pj6iLU1݌2ьQfL4-0`tݙ2y_ d2LG_d}>'.zi{XdU˜jɌf*3Y&w/4i'p y-0ws_c=om)]Ɲo6t=&ezX✖.kߜ,ȔjٯZ͛ٗs J*fwa=V|En+x O=ūt?*%o^ΒVGaֺ"tQޓDY3%R=V +=xz1{GN]a92k=c`~53tRLrH[(m $`H#Ϸ\_!9 +}ue1ӿH4)$(~I$ =5XE_Z#_t ^}Wt,RT$k$S @:;I Th$9")Obp/ yvOL\Mb&&+#rrC|ǥĠp!ҮZjBVCq$Y!6BLaCSl aTdo1'"lgqHLݢէ9(Ji+"J_1uBp:ع DSbsMa}aܰnBywx fkf?T#VJ٭aH=Aa+\89JI_4)ҟMDZYXI׃(ORS_US[Ƕ\[U\=%=@vP5,O8"Y=%]6mzI0H_)K0l>.wR )ZL-vj5!/Cp'V54Xք,(z۩g C|D' z "9&5xZpT% -vz'57` BcㆎS}&Tyi0(:5 : HtRwKc)j<)^xrS긭Mz[95YiGcݲ9S OkI7e.5ӍB 2{2ceey(Kk]XXXv]`9DPEEE-}3Ѫ68ƨǚ&5UcըʹMG϶&iLL9l?qg~e}yG㣍 Y&FaV[O?r&4ݑ Cƹߢԩ~?pҪ 'Ki.g]l穋 LhݷS c)+C7`?vj $ur.{gxhV.37kznP7I7M;*D2f;y6U+6S|}.UXzM|;]jsrE5zH]< t9}" v@ Z3a,tS|=t}M>|\sOzO BVȆB}24FQG@Ǘ9 3ЕbA\Ru!u>}p?^0zݣ׽C.RC('~n>_~fb/%||% +x6Otk?Sn)qG>H^WBԟqsϨسu8Mhl6uF*ާVc%>V2e e摍ϯilJfSQM49αͷhf x%{Z1p"ơ4-6o,P +4jИTmnq_x y-5+8{wn}W0zh%KdhVWfvWc!޽LӺR8MI~Tc&X[Us<1=/gjjb(Gˋla5øph?YCif5iJ_&U}M (Q]HѸ8C5 TFU[UWo<=ߏ2pFqZ#-93#gjҔ>(BlQmp֘~+~e_UC,dlְڪ!T~q >O ИUEktI"2¡9*PJ4@);҃i Vgd(͑TG9du(9YgdrF wAF2:)SB}ځγ$:P^ ,g3_Yٲ5(ۢt%ggWk̮*\Jp5fuoQeEຬ(]EgS WgђL1P%PR]e`Yr#+sY<9Sg<);S2Ez7+;y*sIaSDn[X,4&rP ^pV,o4 P!2WdU薡PE#Q4NE +-ZE'̃>8dY]p9dj FEvǮ"!fRzD1j56$HӚ1ZsL5Gڴ4uSv~LLJ=}}}J,}Zҗe-=/kMي\!iZP[OhgJ(~ԏ0h.CM& lXoӈ`]~񣇋5顸{ ٽ ]k4N>brK $B])f:[`ki8`ogg~rr9H};¥{Ev$9P,z)YJ\BcU?t-=7L0cQq-)8ť|?ct$`]9sMxB@w~DŽ q` +a2B5XXQfezE|^&WT_?xNDH x&@QGՠoLNי1]e +?>Ǐ?Y>c2D|oI9d 88>//w@<)3̤NL ?>ď0՝?{wgROyN9%x%cd5^ \{%e3)/&.lخlln应wEVوvϓ:^<@G!.b(?hDcy2ĶuDڄ]?Sm+_qх*?J&v%} (nC +D:\fkmt*t3zs7]/Rk3ɰZ嶥jm\Lʤ"iʒUTZM8K[T`T}wj9ME$QnrvJˤ3i ƗR-gE)v8T:Lũ#5-u&0PiєA^MԬI_ ەO_ kx +G҂Ҋ. `+ܔ9"T0k#Qi*7eyG(AuY`w]`e]]6xM0xD⠉hhԦ:M4=$ΤvI۴;^37{y{wiJ>SMM,)O"t]-)n~]6pDo}=׿%؃ +M|!.oNP9M1#U3&_,UVSSE嶶i] u.XwzHb=xpgيlAS!|(^UEUY\QYM29m^a,-<ٗоY.e|9)-0pvӍ*-M0 &]*pĪ̑,Wi*-5,TRŮ:&5UW27j{/h*u]9rFc3e.KFB|P e;GYli*.RQyVe(S^&OF{f)ӡQ]FV>L+y>FG*^3T͑[|oF׸[SQ5SӨ|3kWo2|ەۯ4 \UZ FoTQ=Fh.& B +}/P06Fk[yoHCY2uLRz` XmJ-ocB2)f(= &rkxȧPPɡf%*!BCC݊S\bo+6znڌ5]0Pp]W>mĤX6&*%p¹J[4,p(.ܨ0/6&|f,4b96Dx5ƌ@=|mA{D'Rb45AC[R@pDT#EMaP<0iBSBca<}P{{$7eh6ugrј?v6ʜMncښ 0mx9c8GXfH⽓1[s)V)m)nql( ".ɣ=åM$wc:<_O&(ӧ &⩒iX tSK(kRˆpp [eg%yt2'9drcN/8&s-[ֳji'7UjCm^0}ƛnr ]"W4y&걙ztG7B=V6,Ԣ\1ovaM]QD:Ro ig3tt:~͍[`+<(f"$#I̯e'{5N1bhof=Cc@~ Wad 0*r޸ΞqM&:$fϼɀ$`8dA>ؠAd,-=qB~#M][}wuO|ʯ~g ryAXzEa N +n2.SY4yy]C4b9eh'{̻Ja,#tZ\S Z!}5}L>U3 xG;h^ms{V3]8 +Je|INS4hTO[}?#ĞIybZg)W*7eƻjArz}}Fwㄧ ShGV4\ԭ~b&Tb n_}ث ѫmM-v,ϵ'`| />g,ƒ8B-^T*G_L|7{٢mӉ9:w [iɨ Fܤ`< W;k,ExNT2yg?fۈ_FtA7 +Z9#9NZ֓I:Y' +\9yv2È?#KBh&t0UjgBF5׏p6XfƱZtR'e]o;v.p8qNlp9&MNv-mvJWrT+[v h5[@QZXA\1& +  +!:'}<_+Qˌ7ъFQ4$M,c]OxaYEVW^eN{{J;Q>!ctM:^FݏNtf6R;Iha:fmMEQڣ^C")RQXs< +uM!}*FjT tj"W5=dƲ7k 7,jpV7PE,+s_ܴb%4J{JCvJ.Ym\)Weʘ&+W*ߩd~ +Z4ZHAD˜*@#S4hтk"6P:MAZ]ƴwRIJfa X<1ٔ0974dnҀ9~sb}kIieF˜, WrFAeY*]YzJ9ZM `<ĉeȖ" X-V(b ֣.:c +7(hߡ} +Skj.7-}G\ܓ<:B %CYXc)O/;Qb-SOYrʫYVI6+^UrD~ǤZ[ث&xFNjr;^Ɋphƒ8$:j0.kQmRD5jq*P mZjj9Ffy|Bu|A5WU| qOPٍQ4` z=^0>Eü^P.Z\jvW]/ۧv5GT_?(g\.&9=A6Á23|43 #7964U_.4&ab1۸zsVW6t-ribAL"c+ǶDObIcN9TYPs46LJs;0c`w^@nwUf 5V1!a5&9f6Ԍn&لnތc+Z$_-xIL|1yyuz8c}:`?GgisyǼO& ٷ=0ۃ>9g4OdNi8)<|.[O+q8O^aX\ūÚRZ#u}g\"ӿ30+FHaW MqM7-:uqSu_qp?a`ә>^h^; s͌I.1_^ }C~w=ue|>r,!݆!ytVLX1K/W[e2c̦Z^ً@'~yy_=ͫ O8v?;NDZ%n;7zImvݺ6[E֪] Bҁ( ʠ*kT.T`@`m2sQS>w{y+8!hn X_8wp@7)82}]c^e?̫ +<߅o79|NFb-COoc\#Wp9/|^u¹|<~KhM^#80lO1|e.c_ރw&2؉_3/^P'=C%i/pZO~|1!} +"zARBLy,|>Osyx4c$csyy0;G{ W=hϳ<*wnY6e6NY]adZyN8K΋eT/·df }?edNaA{)tg"֣=Sqy9 ܯ3 +OTnawj~ m+'`6@;vahO0y$>f{;{n2ŵSϰހa<_֜B~c7EE]TK2/{]B?J5hgI8Zrs̜y)u&x"<参 ǃ-hQt1"Eo2KnB>@6X=GRff}6CKc@ ZbKI~hyYE6VhF~ , )Y}E SQiT]ILkiS;,>Dj+>V%%9ib"6N&!ˀXf2ez˪cU99Ty:;QޣeJZV2V˼jQAE-\RrU!u9Eqs mohn0*]7t ԵTiU)CjꔴXSҤZnicƄYEyj0*h|JTgX>E:'?'n݅=XK۳|ý49u_;-s)(WaQV+TѦhEJgάkpnr*[yZsrW^Ru pSngN5pwoc-u@[>C )VB.1WljtU(r+RW:긂 +ܫuonkUsJ5_#9ϫ}*s:Ļv|OA?tbqo&FxL +y,j+P[ZޠMyu7)6U>(g9|'e="|Ruޜp-ĺV|e:^$Z"s~|KwF@܁rҪ d%"#O Y_%xQgTxSJ}NBw3h&hڡ{Pa\a.UF|rFBt-:'kt,=2GWY!D.5Wi8{ 5سly Cc~;7zUSr cN1d5OQy|Lj78SEc*hct U +9?ހڣس^V>7CPǵIrag+Z +eʖʚpȒp1xiE%ɔL%I$1ILY( IpB'Po+h{$qh~\r߅uc H^"sʢ!Sʩ%) +S jV `V4NaRRRl֝Iّ]hϠņd6h3//LH/S/9t5Hu i࿏{vw #A<0sqsc,1|rl7mF1f#+>i<>]s 4y%lH*P_rsN0+8t&ܧH()^b)e`.ɐц?:񣛜M'х.;q+\̎ ')'/aS} 0Pc7!g y?QK9d% .5u!}0klVO)^ތ6)`{`5=0XI}ƏuaK}u\kWr@nzcyGY<D^%-ći 5M7a&X90Os6&j>괟d+V곟Xl!y}K؟6Sϟ!s=U|R</hr뭁H(!0 XBqaC*5?+8plI>| L}_cuM;9`ͅ9x7Z}k -Ǹ(dD\,FN?#'')3q˥|xCulb3׻Z>W]yD&Qp$ U\0!Vs%q@ϓs ,QTg~)!ĻeW9IнFsƺFA}pC&k@&0@>r0u-ys% kTmr YWIe{1܏-S׀CX5ȵG6(пјwUH}r:~\eM! s?ΣijOZ{$U1#1J ]v[>_mpmu })'hЗQ* 8fy +>=w$) t9Ïa|$љY;6f_)b 5خǶ&b{gbx O)5dt;mG/Q'*;)p XUf{&wѺИPn.NVjd ~E=Kx:\?דDtO`X >-`U2K@ +\gQQH/5?z ORz^Nl߰Ǩc~g;h$i= lYnl WP:l7`{'!n-n_%sŃtAzDwm_P|ت]>`tdJa7#u:IDQR-4,MGZYmbÛV͵ǐy,G1C,E'9 'F;5:KQL䥅L>f2H6lq~+93=\ssAOǾٚ5E^8BpDJ8jnV_D*P#ĸc7|8V3pw1wG6Q)pd‘GnRx੅M؟Ld4HR1è:g(UW^1DwAýxK#>6s13:mԐ`ˀ)𔰓U W\ᚈxC v~nw]Al}`hi`, Y̹ßI)&;U^U'4$yRTRLPij݊.V8uS_T(u)G9%RQ}_ι_m>@xV˻JP=Eՙa2åL2TYrEm5WEA{kߢ^y䶝UrF8Xʸ HjFJޗO4:Vđ,Y**U" 3X|WF\~96>>`b:ɧ20ہZyVJ)7WJI*vf*RRY N@9U*!k]S˵HNZe^+쮳9ALk=YHI;cQ5WR> BK?/M< +*ϗ'';A׃AA?L pew^g;n ,$$\ T +D8V^Bq2ZN6#2Ң >q;9oyn'[鐫%g+{ ]Il% +e VP!d"Z "8<<]LpUq-@ԉhܛ_! +c> ) $Uc֥ &Sa +(Hw#)<as29C>q-JFP .~1͵~L{ MHi 4 -JG ll+@5c`*o >40E70cۭ +W/pdK,1!a7fF3bll m B&xjG؄;@ |Ro.<)> ?:cm9&'4^6O/3JκsܺbCg\o3@jiy\g6^g8 9@/}o1DNQCbwD&AzkN# -:Ncnx_`='d62!'#FW?r&eRR;㚅ͬU[uv ~&v6IZFPI`%XEnE㮥>yl>7 ,f=F5\3KTh\5!%>擤!s`1kD- ^[csX|0>CMlFY} s$A n–Z5d||X`5?b ߝ%b&&ϰo_`aM<~H{xy71RX:8{WYIň%@#_&A%WL$u8xWXQ>8B>0uUJ &^pKd|G|FwUV3]6KD_PLpoFp*%U~/N )ڇGNvSO8jQv85mjd+~Ɵ9D!Mǧ);Lr+jOU,U*.V_ZUbRmP*Q!y7^'q~&>@^gUcS;Y))*wzT0TjĞb{*tT(Ѭj-JsHOU/Zl( "Tr O%*HV^SSSI++5W0*7BMJ3:eK1VmlxRS4Na\ɑJb1ǐ' A9J@!%7=A9$e(ϗP&#}cr?8ʫ +o6$,fwI6l~vIHBH&@J$ +$AkJJJRZjŢXZdZQt:0VvږaV;0/۽=s}o +|ӷCyd}Ke+{y3݌slP⼫`M2|ey*(!Uh+ت`>9ò7RN-F 6`|KZi +|A|lr :)wr(4KP +Q~RpBpNˆ/B׏܆hDѲ!|PNc%|a#hpJF0ߕKżbxLq㤸Sn~ǐ Ѐ (%]%\a8g|JHlHOq4di X65|ՆoexhE0W!Д./n{y೎Y|< scZlŏv0 :rEE0&u٦0k@3nIk%e o!ya|HsvB!'KA#KYd>`]*Y Ճr\tuL-1GlkKx_ o8I/9kA!h.\c 2ꄯMS~w9Xeqrđ&fNjn q/X6,ao=puV?&kyGC&g3dL(9!Qjgky?ۇG>-})wžk) +!#6ko,c\ɊA(fC~yCv&ړ{OK߹F*JyW=烀% qe#3pH\΀j<9y{@&/|N:gT "bc|'ku4Jg-_-__߃?[mrrz{ҿrGQ +-@t%"}v̨N|StLF8$P3\PEM/3y^b}"3ɹ#LV92l+C +3l3ԑ)eX%x?<>j* + +-tL4&qXsh^x_xONjqJtR{L(P&˽v+p^Z!3Ne8qY Squ sa(C2M~] +{mf{Lm5:'`6?)=|w|_APŎL籟.Li$_y=Bz?"kzDZ}p_!B%}'] J)(<5kn tb#BŅ9!:NwpCȎn$|_)nSV"xfO*xlyxH%k7xxSspd;I쯇o9r8+[@ +ԁ8cҕhC|E\ +;{Tn6ٻ4wX܍*ɝyyrgEo/(3?do%3$$`BH@ Ud(Q"EED +TPM(Ȗ-Z""Kw;=4s3_sg}ߖ6(M@rAk&Ь%vJ^ ; KgM@ úZ|u9I<9v,}l+팸 O8:C_ mk<b$J.!)A-A&.~OHtOHZsѴѪŭ$NVi%M["VxsRܢx:{u>4 gqYBzt}N}.ѽzDEģgq%+ġ~ŢNy}d8/aKbrg*bNE} +A3A "M~K[4[<~M [[%VA[rNj?]༆ey|1G@(h`*]S@K!M>b Gs)4 N_(| SC,u%7$ђ4ų `6уv-dwCaآļb1a11NSaȤϋ8!5F -ESw':{U!<\>y0?*>⎤3&C̙",\&57K?GӚ +4JC96g! -dSCI23!rm3A{Z"%I cfqdZ$-*<|6xcw!^"0Å("qkNƤ5!96"M%3 Cso#:24s4/%RLZJkM[f +ESjhrٓ\gRGB %xPEWjI],-VI^T0 GFZќ^IRkA#VN,c.'ZϕW:g/\hL1$iRUkkuRG[bNڱEAΚh˺نTIn}Rɻ@S3$( 4[f\" h /\4DSGwΆ݊+yލCF3gDv6gTT a[>u 4UFhF4B@?hI| baX_MbHДt%0>BS .z$f*|ըj@8:FF0'YPyH`pΪ4M LH9:KFf T{|jHh#OS4puddq'qm*i~RRB7 ೛%ljۛ ZoIq@>CRM}jP~D&%x8(D笚|9*Ŭvh֘Ws/wQqN2,AI5F(SB)RV$M׍luxUyd./(ǘn+ДЬB݆j>׍l[ {T38؂r99<cBvOUdN[`(Y9y +6izEqe-Z^Yqխ暶U_WݱSv7٫w8vC 1r17~¤Snco5{gκos~?.x?.|EO<䩥˖xz3ϮZ k^Z~Ɨ7ymn߱s[{o{>Og𑯎~}Ϝ=ϟ.\JJ]IYWQdg+/RKrR+kAݔ7) nƃe-ʅpa2b"NLUV܉w+3~ܘP~< y G+K<Ô+/b:&e+8fMy[sP>| T}<:I?().^J>\ͻ%~__b2lvǣaO G8#1<\|LҚ7?3' t뮶;f[mq&O6}ƽfϝ7 [xe+.j[ȤƟILiLT*Nhj~o'G~83gϞ;w?]pƶehbm֮-;zW_5a3Жj꩛sӲZdOG. 54PCC 54PCC w +u%^]/9 _ԏ-~kwe ܝVOѢ'~HPG VFծ=Ͽ1}C&|ww>/n{y /Mٵzo.Ѳ{_d'װ6Rk]/޳̾{ttp|gvzffgi;fiNд2/AoF)TLP. E["-)'-߶g/yޘᎀN"_ +)Uka"a>W~ՓĢ ?J!&vezzc-̣>$CkSFkCe\ )j3J-)|ʉ鱶d(;nZs>w'C71}fDmX4 >J6 3O;F.^hW}F]υ +{E"f(/c`4Ѭ7h^!}w>85KhʙHAΡ 5.-F\ |{Gq{im=/ZtUppdK*8+#KD0 +3{717@AoPa.57d0~DK2qH9yBCOmHLU1tՔl2"8dX2, K%e( %6@du= +םj^A\ˎ*$,!2.KGv[=ZP +$A=]+#zw^ XaF*bZ*SRD &^\4h`C͏@v~'x<\վAGi]8^@(WI<}IXA-edYÍDVa( e Zg:8QCHz,I^PQ%xI-02,탡2Ad jk.s[g-HQ$Xi}yJ&E|Ne2@ZFO AF# zw/؄9Ќވ0RYeJ($9J;C`M􂜇}0 P/69&Il됼:y*LYT~?W@lͥt%SYBfaC*Pn;ӑW_ހ}]M*'(bN)%O2qbzȅ)}^KgX $'mo N_u_q y[r=P"fUdVp=!:qܴ.K``ZJ s^9z5-&i *ઑ9u(I#ObDQHnƖP VKE2jVwn '\G&ǼԲ֠m0NJ\ɰuUH Z %4Y@" 5Pog1ip`䉳ߦq/g(MEɱZ,T"V $KM2TjA})Ï9;g/(Ė>Ȝf+Z5b m @92v~ jl̆q'G%7B#~̇ސt& n磛#XB. xю?S]1a^‹w>LpP8:H"Ol@H4@D E> Eߧh x 3{ =p~@bIb)y`o%65~) +}OztGr( yĆ_ x {L|@mT+5s7*Nȁ3GR]xڅ)|9x^d\ \dyb.pPdmkkm_"8'q*)c{&B?P|5 +b} \hXL35j1|%/h`?b!4У( ^@9 Sa6r%'Pb 5A(=)|FIS|F!'AcIn#V4jBkn    {C.bE aԞ=ag*"tVP*GhHLf)sUQ͚H%PY~5[y6V!zgkhpwK +Ly}\DM3 3]WdkijJ$#d=U$yA +7B-P%P_6`ׅ3$}N+5AIL62U`#%yWFSE E[V\Ks2[nh`ԱCbx. 蕽|Đ +Cű-NV>ߊ=jVy& ޠe=ή0ۯk@G +*h\̰O^LA m(U42fwO'pxa0|YPa47(t%1 Ο;\0^vwvgԟg oB l;e^cdUd ~Pb07(PfG?^;87rzĸ~_|)8Wх5SSrITdC!b@ As/=s߼tD[gnyQAA$LN'3 c8FBm}.)u#=g4b4~noUc[Q8ܾMYBy͇fBHOI8t8:K + |H{ȠLdT}ūoݸ\7gMӫ[e`Gp=ϡnO"@EdYs@\4yjlflV/o.=ٴBj:*n%}lNmg[SeJKn/T^P@QQQ@@PA/],YinmyRؽ +e[ +C>yE@)H;a#ssEfKϖ?,?_V3|~lEfAx8䌃XH?Br_({Jh3[^^0_S 3`p^AkOot7$磐dmÐА +P+6/ +f^ Gp1~)$T1|RB.玦TMI千.YoA777SCkCɦC ?#4wPO?Nfo0qZbNYLn~(VbOKmkZeu8MB ̵Օ??#Ȏ,kNDs:#:'>V\9Oe t̚R2'L掞8Nhmנ镡1!?mb#~GPqEfV 7UO$K.R+ \f9\cLu%uMXyߪoNhkGWF 5Ak(9ԁZ$)93Ε4RfiNb]6*MZInAӉW2v -&Ġڷ6[ɐiuL Ye>3YK@e6rU/"4 SjbMCb"5b@ ЇIUBEI*w:SW.+Է[i>9Eߔ+UKr7Se@p^*6A3x!Y!,!*y-vANEM&ACӫ cuԆnvC$e^X_/.bm[rĠyb g \)ƴ&} IQRVmz;hgyn46,bhغ ;WB;b>tv/KWt:A`jNmg\}CEŴ6NΠ7Ҥ}4E111t"/,1AaO\4FٴC AJd2ȫ(8Um3R HaD ذ$[n+A? + cSΙ# ͺvUD֜Zא )F/ +(F;Lj! +14! +rfס^w Y]1|6QHUU5gvŹ=utsԚSͳe׈2xRKFEMP81H|ZOgk15zq4`.dzXFPV(3Kd&Z/asbP+KVPBCǎOf{~4]=|RPIZ-` I-|M)z圾ЂxME os?߻IocA?c)ґ]쉗RtIZbAe򺣕EHE)B)2*AW8/1/o\#=s#ǒF#l{t%/NՓ % ʸtM~aB4|}MG 5 qtl^44ra8((>' ) 1tIDIz*5+ @};XpgӻG\^km'#!_ٴ_DTXrR,-s4A8K`qqY9UX[~M6®QUA۠]tw \ԮUGg<6`**9{".#u 7 '8́j');m{k&h ho''DX_A!NW1K)LY[FfZy on: L㆚ P 5ۗ@+@t =  򆶤YIVS~AƷST*e\W;^^'cF:/n΢wt@s[\d FPEt$H3>eOsJ0)/(kh@>Ӭn fvhN1{vgo'h9_ >u6EgZcin=aqWu7h4(N~ ="l'h0SFI721MGMl/ 4d`B mȠ84'<@sgV;5Q9Ts ny*rQ(FRiھ,&#{ZsJgK|ݶ ۷6@|ftgB&'=TeH[H}U{˚6˪Zs}I/S9K 'h߷ +T7P1!O I=;scPcƪQm%WY.(IM7ـ Ad|LgGX"nJVx+9J%rS}Zd5LV%THdHm/6%^AfdP] ={}-*[[|SJј*9(#6a"[R)|Υt9Xe*\of{{8 o@eЅ փos{Ȑ選 WtEi2ȕMe*icAfa<&ZOki*QCP:gZd`"/zn߽ʯ'mytSqф̚t^s4{g%wQ5g,lmEڬJgd୛ m?gz݋NP*|3I;! RʼnC䖸 5mkey_goMi#֊NǺ_ъbZԊ"( D K! ـ!!@BB "ua(nXQHU^h?ܿʪ@-g{~o٦w7iaݯ'^ EQG TŶȟEa|1Hx]&]-E"͚`^?eܡaWtLmqu~)~?;I _)OԄi_hY=A.3+ݑq+rnW-n/^2禰gl}'=$qϛ2 &[ftC2.L?+N +z*)ShSes s +)[+,vU%8Zyps T z;v6ُ.3 -#0l&. . x D ꞏ|ces`"5^Y{JOD'"E5 2p!8 ;Bq(7n\v{>F+,Uyv.5ก +.I- +vA@Dl 8p}!:.uXb,15(`ռbYȅK2Uw ׇ _ yC7^R@qX;o;w]8|6s\FV[a4,/Aqp[k=;\ȯ f+7@!H26:C6 pm mlO +8{q\ׁD!P@rԣag +BdIR&ԉqMYϢhc.ƓޜG{a87Nso5dX݋`J#o;A ccx⇿LNHVvL7(I sU g F3LcL.SITS󞞹's1{.bXܛ|mz^y3-9D^鮒d L4T ~m8d{嘳@_h[;V'(PJIki)%F'\WTonuwWIeU'z+fjol/c}I6K m+ΨU\f\VnFeoÅwE*I> fh:֥ݰ˧֚.n&(袔[1Z(>D$h $k+{*%KGuS[o{d<5mq|셽qj??gpzB9(RF/oeV[׃ZE-M]5rI@.i' 7crk]:_Szp؜q봋sd 2hD Ӌ>n_ҧʫW\[1(\Ax*P& e~Qaўw5rr,` )||dh2e"1!>LpW1CBzmM><\( WyPzѿdf--hxomP1^R#g¦iIIVD6)/D~R:.rЬ,N/TV ֭],[y +)u߃'/RBHoƒHgyQ0 +L=ED] +DI(>݂]+Q[W_M[f1-cC\ÿDa)5:6`5\,+E$Eq$rV7z߂jZ'W ۄpN%4X`E3@D߅P Y &( Nv /Wm FI,ˣF9"/*J~ ?*\8 'C| X d}51RL܁i k|s'Z8B$1"۳ uod8:;r8 8DC+D8CN@;)/S~l ZCDݑA5"*{&#Ud8p@>3Nl ]80 {`ma CVsX@s`5Qd3c&?.n)TC*בֿ$\)/]N`,w[V6/SW1F@g JUTC4$"1 Bg $*AHP ' `jAj9H7Z $d;A, Q^jC>Ak6*8$l(|g<59jCo_j@nEDioK 0W, `{kX3_*yBJZJEZ n $/F.D>y;5?5HoCIH>,1Sd{jC<, 5ujS h5<:y)!j@Ky4@ݿ4$ig>3MM$" q:y;*CaӇ,.1ҽ?'qL.\|Q&$NzEseP ONM%O_P@<Ґֻ<eh@!Z jYu&o5C\D.S^GU$ͅ`̐n1p=pS4\:9x Va dYˤ~Hg/$'gK'd= iN%  t=n?e5&S74!i HCJ9@ї^\Z;=z4C1O# + FI%>aOЀ~9x,&i<4А͛lG68`H7K +ANmtaLs)JM + + +.QY2%Y")u"bb] +q@$8@50Eڿp0̿bv9YCu7DrV,8dI6Rr<ĵH i(ߴ׵G>trÛV/,أO[C0L]5SI =V E fKt XBkUSjOL~Wi_  鶅 ^9k>=퓝#ۃ͑QqMzZA(VIXb>Yʙ,uIr- RzV]@j +齒B  dW'`#g! ƽßo=UǹC;|{Z#"[o]MIjRE6') oTWV(VX5֝U[++h(\Aj|l>m/^7K>fs,ؐ'NYJdXʮK2_f dzh F<ߪ!zA=P4;A%r@Esw]kЙM? _p8#,-:Ym+jQYņ<YK G*hez}I$jp^ixo\GJ9t[ivO=W{y{7QUmqYd +݄/4s +b)R$Ī8V}pKsةUu_8t#Tov4t_6=sꋈw]`X ҊsdU4a|S$$E#LMaT! LdN)σM~kcK_o}vvo8~,x8<⻘4j̒byƉ_Qy"Z4`k0mz{i4hހ&ǁqܵy 9O"n|@F 'gR> ݈6fYM\d2m&Vp73pp,gnWA8vx2 5c/OOp>D962{"1>m"S^gEYQϸĐ҂z6 +v|yl@jGr j`bCo+ o=]ޜ3a93WgC3"㧉1ԸkxI!/)uJTm sE7Cj?EXzf?l^s_);xًٳa'fKf`cfKʂCgy!$a~W}g{e(]P;# Q7la +8 +` xd( yBr&gp>;~`}juBR*G!lu))6<קix A;/CԞPH i =H1= bPz\Qoh<-^(eCUM-tZ':-"%,X8.λی-~^m灴\qJw֮ udO~q|2PG( ac>lpNj2[Ke8vGEłH "BH)$${$!H*(( X.l"(3{9W?p.Y{ofF0  dI_}Rb/Wx"xW]^ <|s8ųq0}<Nb8!cVx} sw[1,b]YHLelQuҬ`ZdY-IVQ¾guDY@< ␋ +_x:[9pˣ!5Q-e'& +㤞-Pq$FDk +(ܚ|9ǻenkxn1P` #|"Ȝ̍j]w{MEP[[L('1F:רgKjJPER+.4ŧ3M7XN-Kt_>kDP"ga^c'qqK>˞^=SgsוGŜ*OJ)*JS9ZSXW +tr]:ǐ,ȣ+*,4EC>UuӜХKe"[q`/j, +IgMk@76޺|tŦڳ1ѥ|~y +M_La˭LQM-àͥXL$}9UBȹn&;t$=)Y-0epD`anj{9vZkgoaGQudC g Kv1[F?!RS +zdH4%Y0aN8u)H d9s8g[lIJŴ\u]I㚚G1hhjsP+]ռ\}xn~sDr^G{TAPI =uz:ڬ5>tk7ͤ﾿Mw/uk zDs7u#)y)6YAO9e;푷T֦P{@!AsSwZCRs?U O>Rj&;ߨ}M[Z +W}^w76MUK,Ց=8RAbyڰsԁ ֫ uTqZV"D '(`A^Iyݿ20duQ琯UPi5w["I^OjfƵ<ɕawY9*y;zZ]k^wiT4لݔxwg 10dBVI۰ՙ!NG|=xa~iw\p7?W^)m,m*m+w4XƋk/ TA!GRpn .q.qst [q3c>VFn=RRL{ e"Ibw:C/8hΎCBh$3b\PpJx֮CyK2c~q_vdrT]ptInpF"Sp},t66!l"FMl I3Ff9X!AN{H+RƍQgSwy*wlHڨTG= cpsdX"[,G\Z $7@t6KH  +/im>MKH{ +D6XkBA2]d (["O@~bN{@i 9Z F?x9 ϙaciǩF9ݬۜ{1HH@?!i&Ri#g.Qi@sTnBz!<y1v> eJ ?Vެ#Cbhw/e=(}z,~L:%|HŞcdA@6}GnRŨj=˱j*n_J2}rcf32gҎ$MIٔqQ~7לG᜻ vfOJsE]Y*HPkPNaZnZweCI~T~%c"7*kHNT$Kc͢ܧEw/ sGxvt'g@B6$7ϰ&5oT#G:i)E edY$oH I؄ld)C@+R>}/Ç}07H^0iƟRO~O$,i,K0)QN|BȢ`z@`/A\$%%!5v_k]7t 7S.lt9nF f=ް|܁Uǵ6[B!ڐgiznT[$߮sڀxoʐ8dgWos0f3iApZ@bڢ2Mq? n.a~DX+"UP"  "d&R0 w~T]sJ/)h +k0x QbF-&*E jQQDkbaĠ8?R9Q_3kỵ@` ܦO_,Z_t86]aɿe?'#a dëcV[L:@?}b#o$`W{tC +5@; A_m@%kPkj~CfeK0Jjn@A((g4:I?|kXyI*x $%Rtfffjj3Q*jS$bZ\uab'q(\} Tp0zSs( 2A hBmT‰c4탱!]~^qD:M"!#M)Xag +'d&n,D#fa$ȋO0K!G>(B'j m6s+.\I9MD*9N` (7Fx!$fツ^kx]2_K,GT-t@B{,Z_]$$)\Na8XE= Ìzs\2Nl숄^ RMVBd2ePڠfV*`u}P\\cB瀿<JmQۂG0ց~Ӯ^ 7Pz<^O$B°7yi}>Ǎhc'|>B':8<WC𼍑2M0,؀oNXׂ䣮wvkʯHH|;čWH^: 4.x#=h1, -GrR:" `q'yq~=@$= &j ڐw c!o& 0 *r4bY0CFsȒ,!M[t=NU")3`^D`0~폰I𱤡-YI|89H  #D:#eDN3afȎ\E%+!_q U7xw܎ pN}!kH) +'c-uh&W؁/1("B`p7Yke9⬐˶ETxATGLroc?KO~K RSS?{i_c#:u6ᐼJUOjoSp +'r"Rqΐ1QcM#)'XkF/%mG{~B?d%KD.vX5u3Qi`slBE|q볢0H+z/}+K~?Hcd`v1n O ?dh=L-6kq=NƙLR +=d,GJfb *`[%ƶh>U^ذl`=>ԧٝG0odg>$nޤ__I\2s)pFn[lu4v?5c5vwֿ) eG+ ˙%5oDH:2p~LξɹΧ}⏰O2t.KC 7:y, TzdVG[ʾ=VF9Pis.)/w"`8P#~}bC:1J"n!ȼ=sSbMsF])c~.SPnrn(W%3ʓNcžQ[=T ,BBxyɮht9e5hp[Ԋ˓vja̭J9jsT}vi.|oC#$ +$Z-2dAC.q {'i:&C D,{ږ^;2(+r9gJ' +*GUYs[eu-FvAdOse}N6V i(&A;}_;c䰛p­s}Vt*YIVe˯W6嵨~[TsdJiujejekq@H[2YD,%!iAGF>s:jh[i~W#J:Q#gW *J-eٍŻuMj*UgirYB?uz@Q5B];sk:~#-4)A)ԡZ I - +*HDP]@?8*~Yѳ}ssv: {:,{~'ŠBzjZƲԨ3Y i%9ՙp0W(D/D)췉y@4!M?a{g6-—KR.~4qj4h^\:Y]_^+(.*N/gd)ŒԌ 񟱒@:mCySn~c+ǯx`q_8ΩZAd +ёTaiEfFajŜ¾#E%/KiG $I;8-88 w>\/~e*=3rpAO^?۶[cK8!)LjFU^Y\Q/?//[>_LRZbٛ$8I rԫ⾶oý؁{q{nvh䘽a^k]gOhV0qјĴdL^M0TWõO5Ki1oxU+q@6\ET)I}QFˣ{*޴!ݖ17ݶa LjiO$3#>$Mr,ȅ#q)MU2Cu6d7m\N ;~8I jTDfl\o,jo: {FeDzS{“zbb#; WקjHjNgv̦_ -8$t%diF4;$ݑFSh䑎T^Ŗ86_p& ׄ!q쁊D$߁!c`V761=/{5JqP)^^ >;JBf6gdtmB᱃F՜ACƾ,ǴPOhޝ6wBš(whñԉ9mb%~cPI _}8-ۤН /οQKrk{5.T@%uR=w1щXE_R^K>KC  />/iE%FoZgaAլ HkU-ɫV"WCW9FHՔ}B[Z~Z/9})gOrveNfB82GuRbE| |#5lYwT [`wi} ӣ}x={ɏPcMeC0cy^a[I2ކP_B-7:=P&\hΆ80dWPh' bpN't/}hc{6m@]Ĭ Pet7||ϔA$י T%OX黀 >]4.#`\5ƨ LϬ_9,P-R ,?S@5"Ib-adVp'EBP>0O]QM^[TzYuQ Ɛ9! I@ @ A@(rUZPE +*Ȱw;9]笇ظm@X  o#D/a$vla,|Fk~`We0;xۜ{!p .B i+n hkrx[6?nǹQ'q-[FÖ8āh=н0 D Aq1O#pR=%~h@m 3@ ҵ@ez$|e[IZ؀ ws*CfV=zG%v?&W0e 'waO"w6x   Æ9~/ϸnl$;C8 T7[ځ|فa䮛 N!F#{4i!U!_ٔ>oA%W;9-<þ$`ODfhl<%n|TQG wN::>r~u.;Zm`.W&<AȍԄȾD WA3JJb;D|IoKIyO%^H>J3*dS +4p1:?,y7s_pyP]yW~1GyFԦЎ'XGE6&Z,L( %;Hi{I 2+F,,jB&)&:Wn*J.eW{;i4IsȒVIT|(0g-$Z.UíN2 +TU% iC +nE>rSiT՟՟y z ߾C7u27ۉZ5/[|ٲ[WjʙN[QM*jmU-M-4cR<7U>42_%di> +35LA,ty ]lrxOgwۂ_;CO=aCAֶ2fS<֨ThX%B}0/D=$קUR:U)?RHӎ1thkuNf Gkf,ںkyWS:s-=hUR*S Y#0deIU+*"0$N%ǘq5@:g6t1f_Km^t?p#`:Ἇ7R4ԲwVW e2raS(hr+F$!ˬeHP<3Sd[X15@ cbfq݉Ř]K0W4t QrFVXY_aS֗pRK qb\&-O+=JA]4_8̗-,qi O +1P= f<^g̍Kv;φڻp;iSe #ݓ &ZJMr`:/2O_^*yNi7.*a^\W<ƴH=;af~.al̽s0W0}Wu8/l_t.ҳWl:j~IH (" ;BBB@aG(Vԩ#.uSw +,0EtVEq=c= bʎϼO;~|}&GPnj'Stbo~~́ՍҴ껥? eUe>6 S9Gg?2ɃVEnvK7rk. ^H +/usYq[[ 7sbMFuaӶ9Y k +U E┆u9&NMit tIn3 .3^9w^SǰVՑ|פЭ37\X%XQ"L{~:ܮԶʬymdmC9TeZl7$chI-if+ qA3$MScCV{n Э _}#/zq|εIJŕJ*-A#HOr{kJxBrA7좑ܭt~NZn2I##rߒwYQ۞7<{7ú{cDfknNS2KR2LH.$ &zrX艨Y? +^3C \?bY>.Ԉd#hݐky˰qooLlqd)jMlp-:2{-O)zIH8!J"HX>--t?x9g#0 ee:@i5 !e96̰p\C8hՇ" `Bʂ,R)!*Bk ;[s@\#/x7){4<ǃ.fqq!cBE1"ST,B%W"=U^jo3v+w)n࿡) +>HmW] f{!և‡ T\cMPCj1de6C!>Q DHhu«)5QʤL @JM 0&jTًH CָCR6 Qrq Zلq鄏 gLQغ|AACil2} fl)2HϠY_8!e+<8!vCKľāIp1\h"G$wH +.HpAFڕLw8(XahS-^dltf',rw6&`FQ4%oL::!Az;׈Qɛo%Cҹ7I{-GK+ D4ȝP*yLa5%B )mP1oL6Ɍ=~iޫԆ&7rGQo1IyCWW/dclLg)BCBt!ő,:飔c}!"LPƷ:̚ bϱMr6s_`kcN8MEqkKXܪ {H @ b B-@"D@D +A^VPֶ^u9ߞ3)1 ŌyD>$ < {>p}n0 1[ n32+$lw} b:XۯQ)GrU`0kq&LxO1 Q f#@O[ a#O}kTm=0}ډ}Bs"oףX}i$6hWѰV0+ +s~1e9XET2K^Q9A~E6fLH@S@V@((C^ +d!o5n3aNKǪ]/wt9Q~uqXN-Q1J8yj^NB03S?*?g$z$ {s羚P?llew]O~{GI=VkȉŔe&tir:NfQJ8Y9$Q)JRR^y:m<$HX|\^ԯsv-K.O}ݪ7rV>VANfgf1ӋjMOu^>/NPJԷ$?IIeH\@\k X +:G.5yionm>KWg(Kɔ4m#%']ƍϬfeiƴ$:7<-3.#%. lb$ zob0[=\&:7;/j;E W_v_U*є(ɧB-K^P•Djω^H;)ʋ*|˔|J d!"5.7 Eg0ri={vUM-ݥ :gv_cĄr5-4uFxb$[ܒ\A?LQGl2d=iv'poٻǩѕ7w6qiD>YP|]>&Q*4qw mWB-PA;?k#t{h5h0phUw-uHy^/;,1 +0idҌ,M6ɍOhoht#$1a-0 pF;0r]m3`fouw)^lw+{/J#E] J ˒B'Q:*(v#-3>xJ÷!a m̝`,߷A ,hrO-i~%s0ɇv9-t9(ax@!p`9 l ,n0aߌ@v;(ݎ[G%];1MοÞOʾ\O%(wƁfdlfGmrޟ~n^BL Ѿ"4 I\dLCpfbc!Ń5RlOh0P¡Ej9Nh8b#MN dBBgCbrDd9CVI;hdFo۸O@p꣞Sc>k ᳐ENCP@^ᆌE gސlB@|<:S!RԨ/Do/G [1|l hf;U:A=*$(j='os背f2N/d~~C]'^OaM)^Rq|m$ y$ rȋACrr]3CS2.TkyP~@ȏA~6dJ +|:a9z[ gBƄ>c8i80 :W=79>Эvc4ۂnAPAu,lȗQ!ѿ)^E*T'* d#d@G4LX( aaV4D{%1K튢|O"Ə y%~Gnwv?DsdڐT ߳`F5}E=z&L`dcn= +'\y0.+\2lZb憘gMOsN=ɪHӞK{*+y&O\0TAtLi/vNuĂ 7ucżsJ>?.\0s}Իym9,?-wnog\?]}oD|$u0R.`ḁS.͇=/4[/[$ɿ(*n)1wƎKNw=Rv<[7E)F$z".5,uL,Xo?T48˽oҐ17*fhiHRRF酒EMs-3ԧL4'L]c;ڣϳۋd)!J~r}EoY{|_y"űo2ksk._YB|Ʋ.͊c/5K9P|>wϹ%VKedZ n)J{4/#/x +b}_`߻FܽR|~vLU k,WTy|zߜ_);qc2i@Vs%dM}Q ỐOsڷYVp3? c> tF}i1\Ci`mrkU{*7iw<狹_(o3~n9h2m:oHXնf>L0?I8XUA)ғ`B(@( =jjA@P((2눸zQ 3{f{vV|>_NnMF*1&8xxot~ |NΌъXQuTY٭9.}|gWF>UVJoO&51/'&Tſ +NZ 4D#/C ++2TVkrRtLgve뢰%1Gz ;ryr)R~1)ܿ>YƪLa&KEļus->TC"{٘p#W7 ưnA:hO6zIw VzE':J 9U*%IeQ'Nt=h/L@ +TP![ ד`]tk 5]Rwҗ]&ok7BۣKq-IM79'LWBȎr0yL, +M1e?0Y~rD#CdUV&z 0_@]=hxVr⸁pD0`ƿޟ:esZdjJh*dAC1b)VO(P T{kn~x{oeFgC5='ݼios~)wC,D쏹k5t$9ǐ27zO17ml36E|blՋ6<ȕ~WNP0- 7HP5 #(^C}lgIqLO΅sd?8{ &`V`ǘ9f32g̠촋#:JR%n+Wq gC5(~/r!Z Ɯ% Ygf~,"/|&x6dtmGUnߣCnO6p`sY9P@ -HUY.B )RyLR7*71[hP),SOeNwen6sew,~^p\O;Cde.|-{2!aYb3V]5+ꊟJJMWӌV}(>o;6kb6ە/a+~*p<@k:> }Kې_|4kC:(r:k!T +5C^pZ>}w <H[_Hh \~:L:IvMQ" +ְD{P9Jڍrw2Iu|u &9+m8)@ g)kHE vȜ` dYTg;Av5&@ $$$6!)67,E*n8RA[EQ}k=ťӊ֭Uq3_ۙx;}srpig0 bɴA$ +ZH2E1ʴ JYec'6PT9I~(“Fp [83ؘǰ' hiCzu%icj&v&ON߃Ѓ`O B Jπ_.xzǂ6p0~b8A\4uxg3O>C|x\-,@0Yï {M;H3)W;=%wÔ/x0ȃ&|<BDd,H:τ(} Xict `)$- ?&^[?i >Th\H>D,Ku YB !2m@½V"i EknٓWB_ a5W\R'H#ݘZXc!F](#,2S֛CMʆd͔dpG#vg&W߉ڏux!px.S lH`8G!ք`gr{Qv4bgمD)t01&*4 _c3fE;v7{^u~%;4 sI\I>{7s~c +RV$4ePͦ24/-!E: >&ϵ|3So"j9O=w60G=/xߑI;vM +3 " D[1`@*&D3>+ߤL_$~YT|?V.z}nFs#b{=bwUywTyߥ7 Q> v&c a$7d;3,!7#ўL {g c NrPչ_Khȹ&v߅s1D <}Ip"Xˀ|ăs8Ép'4!ιtl2K %dsobɬ&?$3K/w)|*Ι=G :Pui㟈&LUw( dx CIb̀B R2 +{ƛ*WI5GneЌeJѢDNgN˽^w05@rp_Rhhɠj_Ȁ꘴?lww}Kop[b RH~6[EFVQlƯuNV+.Y*Ns:v(@Vo?,r=K%};;RC ˷W$VCؓ/M7&wУ(#Qo̩G06NX'3ZȖgaks&%C>_GT䷫I+&gRVRZfQ6Qmv>-"{9צU[^RZ*^Q$ސA.o9wGxS#VD5\j}\?!m,DPSO;!oQzR[3~:7SohUڻR]\Qo+/]%n.Y'k*ڤXUMYW0Y?U)aDm{gՕAP_&(TLf ֦CnAlMU``|wBmMIs2<;?n-_[])XSY/^],+oWԖ~*鏬(9]VrUQ.rՕT iiQohjl5M]_M:4:-p|澮PѶ[ZT.kzlXпBаliTW}" aQ(B @ؑm( ""PYdY(.Pjg: eLm 8ȢTEgǙ3=a>~s>9 +f?pfތ=!)B3&w7- :íT~!3߷1 ײ~\btqjZVWdx,ҬdX]~at,^}w:}.();x{Br%FeTA:']Hx uE:L8˄M|j2$Z%&EŹ;itK+L)(I:Z㟘75Qp|o~ ^BD&}8jh]π4\nAG byэWYoP|&lmM95qU;U.puVnTUy?? Ȫ=us5:r%j8Of.-lHa^ttz/Z}=b]Zfx;:ƞ͒G7(=:}B|BF:V7^:{Nx +۵W:?yO^T]ׇ^+F5);ǃѽAOﺴ4BU\ۘ{>ȔF|rT^^v=#}#mJ6'jEVH]r.;hHO2pl`)0?cWh-KjэcǚD&Zn*Q<ZG+2[2Q)'9O7^F;uߑ.> g_E̟d+?Āp{߆L3Npp~; ơwRL2,X +kmb>E !T*ք!>8^LI dlT,q*+N׶>~LW4Ӡg3s'|:Dx ꩻDa5`ɿ | 9_!(_SW"y֑vuc8aڽ԰ye=c\\tm2YYpO'-Ba -|P&(Pq%HђBW=iS `0F3 1 +Ә+{XY2kY|uS}.?@O߁2``Aa1 +5ZJTP+Л^4#h=up,08XKt0Ļ75LU$;x #0%uj}4d/K P@領F)AWJ) (t" EƖF;R!"Jh`8 AhyǵHsq'*.Zoω7r,ɖXD8(g?E,A660G \ QJ\ Y ?ψrȝ/j:YB(>\E t1QB0MƲ!Y 2Pͺ(EQK  gijoĨ;Kx,(RfBҜ0SD% ݂5%;_t߸Jkx(i ZG>b9 z }z3u< +qz:O|I~`V=.h` t "7N qQTM ֆAH$2Ī3l5c ~[>`-c5Sfe~ #Ɯ}Ƃٽ0L ƋBF cJjH}1@LIJQz#r߇zVM#ٳn'AF}xiۻnzЂL0X^W6!``U8ߐ4|3-5.!q1GQkG,7[޸VNa{rq&ՐΗB;_ y4F=֧#TX`̿6M{W"H7Bd]沼5_g.}ʎ{fk"f|*k1vWZ~޴b.#" t?>1>Kg O.Qx,ŀ^ `38xػ,|+>Iq峜DKm%8opks=}2f43J>}pIʡ^~3G 4@x{;W`2@_VBkcڝ"_!y٦9zw,;XýȒp>IdY>--\!BEݔjoBWhN(Ԏ}ɂWD+,z*2m;xBa"4hR~/C);ªțfc?]Y뫊]H[@Y1BVaߩSGB:j&Z4y/#g$H;$l61ױTW*H}$B%M\(/, + nOY xb - ;jp:DUʎ0\2ckY,ͦ&k\wUEbʊ:NFQ _r*(VP~[|(B0l5g>BU t]*щvutc%߱0Nkc,l 3R5n^Ԑb]P+uHd|&3e#30x=KvHU=ki;m_0ptn.>'n_Zm}W +>H[4@oƤ`GLspf=1Ze_LRs`6`a(nQ5 S≧3JӾU_zk;qolcoLc9a91 5Rk)C:{PWX\(nvW(hdDzs۵ DQ:8[3.O08ĵ}ݶYٶG1ֻ5]ƶD\"ΡKԼ +*/= 0"&\Bֿl!:!#ԑufq:': ;#;?:kXݵ&$F$W1h|~z=}?o ? n3b{˜XFӛ̊VsBs>)Kk ~ׅBy yV?Kv@x D? ŸBG0qLd0%c Mc{ xgu7v+{u+}u+5=Jp_A_F9\w`l7@0JttTa4F1ned8 Y8ebIeI 52@cs'?25P@` EԔP\ 1l1 l01LF>ba c/jwJRC,Hn!? ۞ Fz0EYf&\TOal>/r* QD('UDE +尢O\\DEM‘0Qn ƹ28_BX=&P3] ^"°O,ߨ[VeJڤRUUG/Tgs⧪+⇪n}Sq[{jVwF@/eP`}\zi=u\Ԏc|p<˘VtS~U*~QV@do}v5uv^ͥQw5y2FkHWɕ(az{tGh.R0#3{g$inuD;nݽov%n=N7coK;bOIǶˮޖ]}$7,5ƣSk<:OQ0-mH8&dհd'dXdYIgs3e]~õ5NW7HL4\rA׭][ަm}^9U3~fݐ{S"6&d2:HF'6Q7t̓МЏyTbq~t[]͙i{iBέ\ΥM8t2&}w }q_GRJEϺ4tKGtfmL,+zwNq›NxLdnG*/ZN~I[rMuG5}qIK@H &8L 5! !!!!B-D~AumγMzvqwHEӒԫ|90;Fzx5OռQQBgC$kP|sKMgZ;> .=w$e@q<;eb6tU!ŕFQ=.Q#U"tGr VMN|D#2fo+) ;i Dokvpa2v\wz`Ys:P{qG2ˬ6d:jH343!ZHXi\:!$;D0ut [8?^|WA ,9ai;d8У;^rji&F7Q*Vnbh +CJdCJ,K!).R.>H_RT +DQ!5({AW ie$J/wwT_ZIqae-Q(w=|kXhރk}twKfWvzoUk%ƜyTe7J| EueTam5-hftd֌W RUXz͏eDL5;hϴ`!@[+{} =L۪_9w^ܧHr+pڸVwU9)ECi6P3&4l6m&lbB&fBdk*=[\?ޅ;`@Iv0ʾd Qџ\ЛvPԓ}-bnV>h0-<m[8u{\r#?Z_#3M/eȐoewbp8S-]YrNaUy,"_M|Tn'UԐZ\&MaSހׯT%=Oz{U z9gIO1!E41C׹z. 銌hԯ-iw {=k aC,CRDNئC +GgsYg./1n_nߘ7wϰ_d8"i46[4X\3 嵄 37%_A_Kn^ ,Pisc ?\tN B`hDSEoOu̐&ʡ'Q <8H1&FTȅ?G|&^(=7ت.Dv6ltvS!{lOVԆ!aP~`*ZpӄqtL:R͠LCsR|I_EuqӱKO,^&?u-Ñ#w6N/►*♺2jw*vEME4ʈhn +ҵПƃL##Z3p'S2'2h,ď,Q ;mu\ݾU{w+igaˣlnsۧ.eqhWD>F` }lAmstl6+Bx4sPzd\yʔŊBb5e Λ]7w+w_cmBKI"KPUvv4 t6L睦y 4,B8,pc7p5aFrD{̔=jG|Ŗ6\!uSiz)kN>*ve]]q+aMLtX*b72):F[\B:qP?Y@PU/bT5?F37Y-gUYv|cVtbYk25X2}ۗiӾ-K;4NҌA^6 ru КHW?w|98/#j8g> ̛fM -KeKr?R|Z9E5.fo/u$F!@n ulJA@5@XYE#.`ǕxZjUlF2Z;sng.8g>>&u)1$~*2~DV]Y$ILLl'bopk9@[D;W"!+H^૫QMmG3ӭ>ȵNSWV:u.NLVH:.K$Mr"91{b7P.8EC`{Jm]inTśXVʳmʲ Y咢LSAFK^z:kQ;kiZ2E]\PUnZV=CU`QJV$YNM.)g')v'(ds8]ٚ&3&I*`Fga4g˨}=@W:Eh[+WV(DVerی"ԒJiRqì5Mh'*o{DZŜb'z|K}jpvAH{WALl:O^UniCan4:vfGɖiY6I55تzv++ETuQOL9DU0DR/i?WS (l BԶ۠rW~>oJn +㬖u1D mRUjNaug}Pw5n|5s U3b7%zCt}v=7[*J5PjfqoEz S:BL6ψiO3ڐk6V*Y%]ֺ)s`7΁-Zòf&^l'~L !߽PvK'^e.=ӑ#Af'OЏl=R-4+Y֕mYdbkufM_Osak%[F~mf6zP(hU((H"y5E/_fm7A|oi=3zj,}{=e{g7>=f>yz LwoTy#@D rH!O.tȇe|5r B<x GhfL{'0yZLA8 c< +0~2$o򏁜a?O@ ([@z0F=7 30z ׋z9cQ- 7ö́1j5򄌑+)?W $ïK(ۍ(0` +2=1 |f Lmo08qLJ8 ƍcGg 0H YG6.Yc \#'+q/?dyTSWK¾!/@ Z*,ʾHHXHԸТH݊8mک^ENw~NrOqw¢)^/  (sHlCbh&M+_<8 xKKO>Nctf' HbGZdAC6=|Gwѽ8}|K ߑgcr?F>c!SMA\=iOcOg#SbH5|'.5ԘhZz%BSE]3QDtNSEWG-M1fO u?Ax}aM>nۓO_)S 'zRC*}I d+d[}̛~?$'7$XW<.z60s;pv*f} τp-#k +,IK`btV`Y.u˻w52U&߽6]n|ѳMF<My~ozIfC޿Ʀ76# uAmaG-Ƽ\%9Zy%FjM0=favo}OOՀ)c>׬>~?l\Ȃ aha߿~}'l_o0'([wb+`50@hlFcYqeF9 3Йۨ(֑p< u}ֽK{BVq +nn ++ogY^G-=w[k [?0^c_t-ě:aqFbe=-V؝՜vkNo o ;(61'ǖg;͑ض9 +|/=7SЅt>LCO!l/5ѓc;)մ31bGں=[n[cm\L_&X'\=* 1X쁭! Bwa0$Ѱѡ 1&T,ҨCh-Mfٚޔ$7'V94%6ҫVovZC,nKCQQ}܈.K]¸c]"0Iiq' AR :Jm(sEM^ğPи(Ƭ Ų\+gjm܂RZW#P BUQVW-Su=#*x!Tc' jLޤQ8' •\CT" RFM.P1ha, 1(6-+Id,[MQPSV +;ej׻ȵe=nRq4ew8],X\iP%28Z2 XNvQSK髂X& Z:\Q-Qg9(J+FuiWIcn(YS üIwypB{a4ܷ 7XFU7(oE42 ÍbrkS,klEV^UM*U.$W4 *\ݢXq04k 3!A4(ADqpU֩Z +X+ +8"8KlUk+.D:Zu}_Z?y}r?hL1+'Ǫ$;LZ_3~Pec^:A?iÖ8g~&h;+Wƒ&^I>7AR9{u{d*`}¬4=f15x/j\jѫ;|v G X{EwϔLmn5l%$ ݓWoy?8lJeҁ529ega:__qڋQq=C89NwnXۚ]2xuj8QgCls4و<+al܃?/ b, q=0DGcr504/"~}Ts{re.r,EvܜGD7H}zQI;q-ri9Ѩ }>mmV ⭱5^tWtSYNq̟Xbߢm_6*m管;k莿+gs' v}8 .B- 8Dz 6PF mmmmdۤ}hͮnyc!xP:շn+9 +d ;H΢l@@ѺEA0[TV%=вdKƠE4++JDuIU>%Kſ+ +T Oﳿ&3{_3[_ wE .R.uCKɗ"ۡrAWY E ] ombj/e?fSXhf? rh^U?mwfpػ>pbP٭P؋!vI/3xG@S` +j'hjXU5@¨#񥤆5kxk ^]zB/Hf,d~Љٖ@ˀO&|P:t^;5o +@] a\:$dwXNR]% +RJ:RpUu~ߜ%Hx]/dϦ{̽j  ~O9^D.Ue纍.O<Otc BTPwk`w%襸MtlVGKf#d<3#Kwa5,Ն!]jr}va2v7Ἰ}[S-.R\ +@!nӀ\!Cu~a/ZlEY`<7"{n\$n q͸Ah?J ŀ2EyuŹf)4S6b*B:Ul| 2ۚ0#Zŭ i4UT$wT9Si̴MuڴWUb*PԅJc~ 2W :b\Qq}nE%󖱢2YQjPYl:e^Ɯ>iNs8ar8.hvO820|aj|tmGF8BF"xY;ը&(n1PO|3Bq"zQt8/ǃKGhE2 jĪ}Eb'{c\jl!B!$K@$6Ibر@ 8X$vl'Y&vL=i&I:Mm433{y9^+b?uUL$L(8/~?b.JϤTJ> FI l +|,Ki #ޖ_LAYB e"dDG_ŞvQe sIZOKB/yȝK3kFJ0}n3уL̽{T +rr\9fW 9eAEEr5 z!֜l=+;ŝ\2S cr0GY)kXP!JEBlkdJ'+RRD.0ԓy 5LG aŸ!5Gh@h@DЯ$a!0\̜/񨻍(#AḦ́˚Ͱy 4iӥr)uQL6WlzUDQs=\,+ {xw/\: >ulG<>G~=<𞍄r98 z1iVIEזƌ3SZPJ\ܞx"Y|RԡZoS'&>Ij){|K !hQ< 0*A-3^d hE0cJ!MaCqG_NU{ʭ.m#۩mv4BfFԤYJh,]KNi~ɦ[ڴ߮%'7؇1wޭF0w]żcX[kN&U&VfG TF4nQZjFn5r]FЮk/'Yt6~5F_EO,g50_.|\}DW1y+Zu/iВFEtUG9*=QYhc5T4sm&Z@bbR&# +ӏJ!@xU&K>zpu6͘79o=Flc 61]ASF4[˩ +ʪnX;恸Jqʟp|&]ՇȗIz"CG/_p3u8mx 8لǚyRHG"^mQlFY]gTֵL}qq:46ZGHX#*qe_k%xa>}g6ּ::1wvw ҠMζm֖Ljn=LnhG; +-Zeijg[nAYè>_b9Qe5^Rs|^b;Gxa}x&ּ+?1s [ܮhhw~{I6W*֕IvFVvǘ:˩ +zy{-ns[ +[gDdZ$E,,siJg|XHCBr<(ds r뀯hf'07!_R:WƊ2B_}(VM* 6U M Me0?;ϋgnse@@Ӏs%`-TMP^q7W;AT(ĉff>XxkU@c^_ c?\p/0Qz:Ue@+ n:ԤnZpC͐7݀3!/o)ca؉?DZڏCKswُM>0U﵀&Ѓ)yocܤQ}E.>o9G윸x~Q`:ϞWXx}ͼ{~⦆5i`M󞬉"CFQl`.~ <_ @]Q }Fi +ͦIٴ66*TL';1E;w<;A&W E8>UQ1=H?y,NxdJ<2uQ-R.iOeEBvWjz/+/ x=K{+~rK NX2Z*L-!Kel%]ϒ%#/X +|* +})v\UlSl}Mbc#?4esZ 4tU\q/Q]}IEcdOΔﰦ)[+ZW(7[sUͪ #s5oPtU]*60>kt&T Q?wQ=F*Nm %4N)h"/_WfWdkr6hvج o"nYo̠6ABmАc̿B$Q~<)p0EaWHiCxڰܰъ_({NV ^ +]dLk$d>=H(aAha^S}ZO#=vn4ݛjfWpj/s'Ϡ?FJ׀7GbCdr#H91Pf蛤^'Ygi3lz2 h8;8R}J_#6{܎~f췏l:lvژȉ醕1aRVtYFtbaʅ&-jiّ" )+G7Niq4%CrcG ;ғ=FYcP'pFnXoEF|O v"-6Q͠hfLΈIM=ߐe41zWCR[c@a [5{砚}>)8 +|`BV `)-,5!Z>ʔULM7]?1nݗbWq\>r{c ;ғm|/#Y.h=?goÌX<5/e GAkТ!#@ Az@TBt]OZa]-3umn~L _|?~i扫t$))2k89ǹ0ՒJT2k7gk[=LڃYSL^&3iH$%QS{ Krٻ>5`:d1UKkR$iAzc~97⚣[XVu'4i^ԛ4#uNpK J?sYIjeC?14LӱظP\!?kԜsr2\ VAZwmꔌ5I^Z Iz-Y/(bkی8(bq1;¬Ay¤c> xc&;b|G:1SYQ1#:As9|ҩw X=|}鄓2v q~ x́GO4=ˠ5½ +PBEE(z<(O=޷z]ɸ-w "N! t;< Ji7N}7PHI2$9CԿp;7qBƝIS0"@!tIeKo4pe" WX0/#tpL.#?o05w1cbzx;~~ 3 'MJpT,=/^`Q|9Y0y\t$o>r|O~|F!Dϵg/PdcE]cAnArKĂܑlX Y,?`/G|b‡hEE>{F)[6SDϣ̘.c x6o>&w -C}1<%ă=&YEyCp m49q42,&$ Ud=LZțNr qO?/ +z%qx:)$D-"d% d+APg?u1q +xk%w~AE?4tN"|G҉Xy8&>y;uvQ ?uR8ۃo>?pnA+r7Fx@qnT\9C41$[1jlf4h:Ӆ/u<;HT}Pem:X5$p 1$$"B"QmCToB +~ZC j]FҊ6\lU~\_qQBYOU"1J F* !zR}/&4w|kuWa\QƗ#.hVs|يs=1|Nw'#k"uqb  $?-2zp۸%Wb7;>ŹU8ӽz4Þ8ٳ'z^m8k:CO`kO]"_ǘ٧1-O$.E&꟏Q8ÑEOg`f_BfOr2lav lpxixm71Fd7w_AB> ' ]8\Q|L|4h9'6{6`ٮf:S-ڙLv.Yݤ]nnbkwrܺ!g5CV_>T-ÈG<&w銿6ZY=[|0,Ga_pҍ6 [tyجs0t%zmu:vMl*[/m[bJ,ѝ.ݒ6x,m!J? +O?$[FM|@380J]b^q!ވ,fM\2]WʶUqKiB}YHҤ_%o5OW̸񢔐O%RkL!jy{Io$('ClH&$%IfQmNpM$2BZ +P )Ҟs=n#ڌ2tŪh1hNMaf3sRNaC1,36 +K5e0j*` +G11E٫`Sg~+Ofz^b)K29sG1sӐc 7_k*ԘҐi:A/OL_LoWUPQ*L,Ch>rp:>iBzeE6l r1M4侍>'d[PJYҪ2 ܤW(6uy8ƓuE^W(6ҜN`g!XK- 5?OY=1#?ov` UyvΟ-R%(ZBe“LUQݭqZ>8,;9,?y™'ʝQxɷTd8GڳX@~*P`ڢQ3a6=$fb+ +rٲWZPėX}5 + .ka][׫m]NVM_jUTXE gܤ:![G-^]4:u&rDiי; ^Q%k}j_ooUwj,\ub3^wY Gr`C3}Qye1LȸfnowKlE~F/zGn)\)\*ܮ6,x2Js KtNRS*4~$'j+텒x|Q䋃7q2 t7畖Kr!Yw]Q{;TiޣTďQV"_ <3:S P4vNO~%npUFQ9FXҘlRir* J$?IRF*ErVe*IXPT!*E9!{:;)`Tҝui />aB0H1șldBLf(5\ZO N$I2Cp0]<^PU T$ +QSo&7h"i4L#UOs: {\?a0G!=p:c 066)a ~nL>\yTƟ3, +ʦ0 '-Dk$F5O465"eE 8Hpj%&*.TӨ(1> +&y{E +9^٬IθI&9]hBm^]u KY+ǢVwdX'!-'Y00g#YT:Gaf)r +/lV&TƜҘXe\*T%R=PC_7f1&yeVr dia=H>}BR8Ο,$}oɽX{c?&ؾc~RĬvywR@Դ`5GQk׋WI%0PCi4K+MA/@t Cc4b嘆HG;rX/usRغv)XHk}/q ;z8x@Mi3_pz"©G3*ViDhe +B*"r8*Ǣk$T͆U[U}VRS0\$1θلyY&7Vlc<.=c6$z =08WO] Թԩy$&ߓBwp_F;~v[.vB-ӎxJd"%"SB ԩN 5j{q|˿C?N?D_/b"Od +fRg>u p6Q)\s;SU[whWp}+\D ZBӅ9 H^!M?Ө3m&SǎXC56sjnݸX|8%:Uj- @oX ^zXHo2L77Z3X Ȧ +󸮥F5*phf,Nc'Y@*o1zuAS;hvcGbl ^;CQ T6`sQl +n?Jp!! "',Y<8}hHBmcj"G:rĦ lZDB4zT픊51n(T{GUHOic{WT^o}kd4hg7Pih2X8 PbxņiuBT#'Ib9/a2a"axFq-ENcEv:Y=k=ן@|U߶^pĦXcBIXcզQ74QZek!0}$-3-rPe*S,1mU,65*N*$Pf)盅"JCơqs5>}{`%v,iȵ2j/e[&IK-Ŗ兖 y%[a)-%yjťeyޙ{D K] qDpFf`fD +5.Kq-5zXTkĜ4mz5m<96ij4Iۓd1w= |zemA6G#ulI1kLslJFɄU&3-X,VUZMI[a(wcm<+1Vl y+6"SH"?7wg:xuH?6#<MXmE%4X2EZ +S,7{2 +ۼZ[b~^*6o]BeKa?LK^Ze}%s4kahEI٦*t۲mPj+KlbͫqֵRul:lsm/ԬkCzu]˸9Dq-빮l-#QW +eʔ$#JLHY"8Xr]+~)W$/U~Q)ʅpEy'<[!܃Yż1t7|ۊQBRu&T@j:\L5IRԀXݭRYVxO^YՐLܢߗuJ@o/K} J#Pdc:9pHG#KPX&.q5َ,Gjo2;uq.,q3l>P/^0GO4l^\NGV G3 +w><\$丌X]9bCJLWcqҦ6H&gltҥ^եOuo4gH꣰+y|'{X[rzTB^i$1qO➉ŞdyRaX,|!S$.TFO&ͽNkpoRrFIII>KB^ޠgS@-H zdW BVHX+' ; <)XTeʆUVU(ebNL,n{OKqޫ)ڸʐ6'.S8\>84ʕ] \n ~OFo }HYSs >Ź͚پSX[hbBڟ8tf`5 |?` 4HnX< S1?$0o.f0fi8Ycc 1Qu@fύC PD3I&s[1efƌhLoiqڪ3fL ((@Lс<؈ =x*)`|W ~KwQ{s+=o^[6 Q1LLjۢ0m,&MSX<`*30`1FkZن;aX"FԎG=a֐Qe۩BFT'%`^ v>ۣ0} ڣ1}t'i;w,ǠF ؂ h?[?CAzdݛX'$b_f1G Dqrº+RW,] Lz?]  |d8paD8vs 0CK77[7E. ̹3_oI}^3vi=EWGA a:-Dr:0 3G_l]BG>Z{#=`7ԧ__ DQԾI@!j{r aCя =aOpaȞߓ{G{]E Ybj٬5{#|Dc1=GO>g`|C x/y=dO4 rjbE 20*;o!"\>'ug_KH2kDT} ** EZnnhYDQA@B"2bM01rRV&NRV8ff\*5qܢo~T{=缤O~ld!Hu'3enDٍ^ӉYDdd"d3AvtS"oq?xW?" ~ 1 1tKlF3`'5ڨqssg#>mj O9z<&ȿ?eg7N&qdOT@EꬤF5j8s#5P{8g;V!}i_2:2G;C5ķQĝL%_AԌ3sӨCBjF%5jH-_'QB//} Moq~$7 /DÁc 9}r]*|=c\| urQDUԨF-5>V9wd4o鋫˴wi0Z"6;ٙ0eG'\;kBq5JN&gͣp y]U +Dh9YВSG|kwqlCyeÆo$O^17x Ұ,\p9bu,ǙU85|z6S 9G#qGF^Qߠ1] sh!ȓx吻|!+ȍpy~.)DpM1lt-C[ :jtmD6toO$xm}qoc<6WL7OfRߛ70L.Ot%wW􎝆|=^ }`M.Ůk:-ScJ O9Sylv M=D+4xB y4O3 : +]&s6L*gsf2ϴaR4{bW*UY[Q?kP7S+}]s_\uS^})ZO.;v{{bs%}4h1' >VlDoj|P[*BoηUX3P>G\=X6rޏb|Y,yP<\{-]~tS\ `*aRJ=ʔXLAҎ"eBY$,W ˔br+-]--YtI#e?!,CG߈.10vƲ1-Zָ. Uc6C}PUT:(PLy!E_H^X +1cx@k[Hb[fB+:q#1&.헥{Rh2q<3I+s#kvxa>Y=DlvBP&-~,"d%ĞXVjI 5bԴc1ZiCvZ3\o1\r{y{lb>Kz 4&Vq.]#4"!RhX0&>'dӀ~M}̽5G%]3G%>4G%VhdeT>` + 38E<gTJ&;iHbR48%LSh@jT6Q}Ҧ+:mҲ+3m),)tUShShdArCc#˰ Jsz2gکOzguStV_ٱ +ώS +˙МSPE9kS+c͹,2L/RXݲ|އB}0 f8*]A +, V@a Zƨe|,3mIU7"ue<-\GacFgWA+%r:!-;klql}Q3dcMW2UP +#[yL@^RE7_W?7Hq؃R)`+5okTg/S |!adg,@PՑXuw\ xº2s/)kS +܍>iޖloaHa1~R=Ci}_CP o,^Ç<OXI-A GhFoz<^ÒsdwT2GvNI8Eag0?:Ǚg +hrM@-H| -/:'֣?<ŕldllj֟%hMFg&9GEq\#dG(+t|+e`؛=vEHrsh@:st4CjQNFi-9c֋]DNg:ЙCGaoA:N:K(gJm5b>i-mP՝ U|ǴUl';cWC(NzM=~WO2|u{7W ?w1ԄZY?T}40VEq*  zM f*7h+;8WYEYy!GsC+-)%)a_ڸŵ7+x(0fl#Yik͊P- %,@=# ^+eOiJWZxR#2Q>_ +h- ZE%Hy!@$ $BТmN!Zҭ͵{3nu;֞vNZ!~>Ͻ`͊O= S&',V iw$uLs0^5K>[R)G{Z +6g-=Xaڌ +pŸQ ?|mX +o^:"YDX\f!U<ຒX`d?|lΞH)EkӰ:;9:rLh)GCN9u]Q-\ʰQjIY̡TP/*IT80Tf?گ>8b팣E5yhV-O j Q`e<y [v&*w _4#2]Y&H4cO79rZM;렂Ʊ _39j&c6.N:tpQæ_/'EYQZ' ̆wd%["G+ ?Xu ;i& }60(Ӱ9lT4 +a+,ƕ(5`1h(.z^ɊLC2iTVh#HEc[LyB~'Z$[s8ܦIpf +bLa5eXX0QRBq*[`4(0zOd:yc/"ɴfIJG=L+s3Y&Pa0JR si:K0PTf̊ʽЗ?]yX}"z\loTBe(me-rA/{"z`-]c,Mb{,KQhO|+UA[YJ*WC][:l1pYUD+~g9 ۀ}M.G}\fN*KqC0TGB_]"hj!&y5*P9P:+ZlW3 tu WH=*gDjUO!wIBFs/QwZǀ'Ɇ5y0(Ȑ_{8CAGL V;V߈Vx2oR/#{Z$y HDGqKU(=C$ s[*e^ Oo*2}QHGZ"țRڔM*,o6`YUHj"ѿK['?m$4CB$!s;ڹ'Zg[#cR3 Hi@R$bi,i]G[Xܪ ;u Fl 11man% ¼"EB̺1q}~ux@s `3]9 ;v#%L-[Jpmcr60%&^JI$"|HL8x˥^ȩI @@ \*""^b2T@W=j>gmt]36v[NvݦsT|?D~;K NH#H3i#ϑm%1|I1G,Cy|G3y~g_2)ѐ,O"ƯgFCldbOajWL#>[_0o69aOƒ #5 &$dP/:jTι_72~w1N.~vp:kߤ0ڍ>$%qαRgrragaoj^ԓ24jZ}\ q>)tvpgp//^_ğYopjG708=]O͙xԓ3I<87+]Jjbf@FRcn)C\vV{k4Wy? C~9wyD)B8%3/ DQU^jM]c:ut='ye&I-`SGch"x^Qy1H}^Y:9?"56qj66LubTZGKB<kW)hVub]X1eG;Kf ?6I:E1g ~s7ڧmFeV +5f4`Up>V.X6!QҌ%!X50<_EugxG|Lw +d*g> Iǚl)X>#"BTGP\,SEsajTϭCFTmCyTG@Y̋ Qo +O}؂ձ!|u iKd煕Q~X=u1cQl2jPkDe qN̏,Q⟠Hn (D +•>.SL >{Hh%kS'F$ $Ơ\*C4 z$d(OB܉(L\|2dp:F87`O9Ia0x'29gIigk譞>'B>e`H![BIFlp&9H*F^r%K))w"KyUȢ(S`n:ظv``볎>VG-}+Ǣ$t(#R#O +J٪\Rݰ#+F¤QsDyUd _Ads6x:ْ>(}T"O +:X5)hĄLm6KaLAn6tۑ? HcNAF?V'.w/Zd=F.V}0,9ԋa+`ԧ!Ð +}Bk\q=LH5|Q4@A4 " F'Aj?xK1#MQ2gLdL3a Yt +ZL ԙyH!RU2d"9k^>d{|~y0Bc{?wp$(^ J5ři h!Pۢf"Ֆ UlRHqCSyRHoԾsGBl$va3#{/u+9Tq/𹼜<\z1:EPyCYH΋D# +rGd $:m:!qAEk-b]g|A#% 9i?wQ{">9*VK!G%=B$A ;y @TQ `NQ#"7#xŠO!m9B!H@+9Κ~/;9_ +4s]QQXWeueߑE=-fQ(̸ `T 0q8QU bզAlVMM`L6{bCRc4how{ xmcb-fJM`PW`ŘՔhSE(4\ldZR[_yE`oجloCkiYΧ6B}3UXO|)uF(6VvЫ +dά<Ȇ3D$ͭlJabWS2mzAWڄf_0'xni]' )vba'luPC!d|R[Yp156v)40wIwvjQ:jXG .@Z.Z}-Kbna14,ttN_tb\KK34@ o/uahj!j6pENc$\bq'-%r?= kgY,zA&Z@q.IX4iÁ=9]lix3o'3#MF{- ~FK.wuNĐv>Q@$M1p2 u1(}\4׸7qț|m‘3}ldIƿ>_{[4Ү)yWP(]%| [6]?>FC#c61qF./l~ `0)`(bJzآ~d|isY;}/\pedZ AwH0Ŵ}k1˰_}- :55u]|gu N|OCx̹7T} c ضa{.0.S0I v͏C8 Zנ"ZIJa/`߈"ih~1/Ƕ \M?Ч<~b*-a8k7刦NƠABc")}gcfcߪ^N*ȎSD2P-T+nKK_ϡ1L4ʓIg#?EhXrc;YvO^Ö}51%;JUhi#:cFg1v՜\; keҧ.]:6k 8qW:Dy{+ePvw9] ƧimZqGiV9hsV8s\ +eJ]*TNuA2_T=z6k\FXᷔaw͆SUnZ=̣U9R%3EiI *4,\JhX|~C9>5fSvVfspN_FъpuQ7N :sh@ h;3bʹvK| ]9ʎ UVd21fF ֌=Vi)=MSf)kRb5)\c7+9Zh|qݚy};`sآ#;EXojz\kj|MV*%~&unS5Qr5.at_7W=hTbF&6jdѳm/uT@T@S2 0 ]`H䲨1 `y ^K$Zf*hY)=Zֶɶv:k%ִܓ?>y}}˚ƎL}%q4bb\9\0 -_EUG$+7ª\eGڔYQ5ʌ5EJTjl,5?NܛEra #NJ + q-z +)?zrX͎1*#&U,*-ήԸjYR)JNإ2%Șx~)S'FNm[q88GE9^2LTaJ3D)Ր KB JI,Pr\%ͪiV'4˸Q2ː.;?^b911AaaV٦0QG%#dɔ$cRf%*1D ɏȐRfřE[*| w)<@75؇~gא2jSHdd8̓d4*yS~NC@SKoޖt/*zXlȤ,bI&XP,cR4QE +*(M+NTV) +M-Ճ%4CJɧ䔼K>yC6&35‹JzYQ΅Zz-X҉oya+>J+)5I0=hD{&3SV$_VqOjlyʳ<˳:8e ,\~Zʹ4\SHl2y1!P&JOոJ? HyU%ʳ*UcQe{"n[FVKիUF.wZVmhȠF΅ǩzr@LI1Z(7T:B(GFe遺 : ;лX_mQg?ߎI~%g#=Rb|J cʥUÛйM\\k1>$mIgiໝSQ;vMG'$]0P`C@uQN w+ +}|7[ًO +FwJ]#y‘PRa#> eԥ8 t4v71qzjiW|?-/҃ +܏WO1xNA^SIAN$'gR,Yhmy׵u/`ͅ35b%Ұ>Z ҅\Opn!p8>c"5ec,ýKKf+ų`ߐoO!|z-Kp\uCѫ 7RnWosܦHv;; PeP hfh(MEyEևb7:󺮢gKp>5HCax$q`\,?Yu !yaMZ`{!`{9)E h̏Qh;:.iofp^'Ѻ7/}J3G~1`9U~ YKm@k6Ӣ?ڵzGOѺѩlS$8AQn<r_ w_pYX;|r"𓈏4-"el +ֱc X:V;؎t^*ׅ5h 9$ V,a߆};plՐZ| -]ɳ|kyF;lݘ؀m@an_L b -M&kk^5SWUv6ҤjTiViӤݴnUNC}>}}.Wy%z"Y/_{Ob> +ۻ3>wiJ>EOOUE79𓣛}!\+q~F6e;K 0"WҽMyޑ`HRsxx/Yڱ8]c~9Xze TtOҢQB|c29wxz8-RLSγhqyi'Ooi=lff1s c`4!F?јop4Vc:Wy,=|`oŔ>1 D`1*u`6ƎjLza"ΏnhF0pC LÒ{_CI"%M{MlbdK II%LTc,QcI%:0,APڀ!i H;0 EldcdsI^EwUtmDG{+3wLYfV 37C;1"##) /ՆCГք6tw`z?:GϘ2іyYwz ^ω?9B x6`uKlfiq'L) (R‚@v9NgѦUGޜ!4LE4?-xo s@Ïy uQD\, Nݿ{xmtMc[:oCxhdj2q@FV Z' +ܨ-ZKg1TΡRav+(7~@N<_&-7p%~X Rud h,LGz}jTpp2Ԣ؄ +c;E즣(3@y6uX-/>K%"Y=r`wps:T:&9&*Mp a7Qn.CŅRKlm$iXga]GQ"}opKcm*q-$ RG7u2VP֊&E&.wm  li&IX9㡭BS5uv۠T!ӆ^(Fp +Ho"!R䳈=%.p$[;xuwIE덂99r(ݬ«CׂL:|Hu!7 yI$lBr ҖHlI-_Y̷۴?77s, ijڥZ Qn Y8H!ůܟd2pAф;! !3 OqF_|g|AfY㼓#VA}FK=J} io{eD$ + B + +D !L`0!J{e7#bɽ6ɼ0Xa,L|qzJ] PSSm$;8D'!b8 +-,FI> d0 1y7ȹf{5"Iq[\9 N98|_%~ / .) ._\Z!,8 ]u'0B(5wN FO3朜>dPg\Ҥ}jCtrt\\ȯkK8D??8{=<<wrx\O &5y vh}q- t=! P Fj0ؔf/TdV [=v]Ku_}K7펝ץc+ XASZQvg+tB-l7?ckncgX>Ntho+|+{n* ^k踂?t\B{lum29wtt"w71pyG\Vx塿ۏa +]x: k %^i optDoq>!;p(cv;i w|-88,~>^rlWaد@Z=ZAXf8Z_m&:-D`kwp~ >szK?"'f)X~vcN^F[4Eт&tl2!'*,42"^q6Q{rר_\1a#bP Gcᨆc2pӜ.E(>;Fvf|¤n 3a#<H#8 +-F"t)rkKwմZ)eZTmjKU}*{lVEσF]W=x2undy>уnOun5W&h{j3T힫qCU1Bc=U9^= y.RJxh~Km**qtS>TgYB*ݨ|V {Sy+0w^s6|;:rT +?Oj_J#5ߤb*ꛪa}sTw+?\Co50hv++2*3䞲B#u jv}L$7TA* 2 (F588CB)7P9!_) t21RJq%ڕP +xwۜC^_IqD7g C"De(#<[JԈ +DNRRl٣Zw}L֘Kp(щCp`<9k6d>FBr<̨~J2(-*F)QJ+):C ׀r%j"ǭٴ]&gzWq2}61dZʧyo":*1CБTCd3F*'k\T%b.TLje΁kJJ%QC|`jK0~a||}XzfXd/,`0oJfJj_5 TE +WQ%+@3T.¤Vބ;@_Kڕ|VKH F7D`aLr_hvȣ<ȣ<iFF6wh es-**12eXI3b3Ism2Q"@zcn^NVN$)I&O/\T ypײ ~ h +x Nw 8 ^o7h:9ϚQL3xm\|pZ+>V4X9np 9 +%pb]79E|Fk.=tqߣp_ ~ @z! 8d +%8b&qO, 7G;[s}F7}#8>oDX׏xobE.!}F'W\G8?#} +y 7{//x8xB/?xxd!]ʥ?8 +Jqq`2ϓ9cʚv鷈uXi<^^G~_['228}@-1/i z]@"b#v91::f)d̲%8 )=`A}`7x#vL*%x[fEA>Nlb=Ӊe2į~xVav];aA-63ڧamFnf:iyZG1cW6!~>gbE,C %F3QVXn8ױwl=>t 3mIB6wh=X)p1b8{V e5YЕ(އq#%Y/>`ݍ.F($ p< +G + 68jȣZӴ<G UJ\ #J7á{6h^b{?v[!{8v +!J$D @2-Dʂ xPW`k,@9GY?[ԟ0G^m8rК.5~a_\0A O:YT W*N.gd m$VM{Mn+rޓ+}GXo|/DA]U9fy;kfTW5-hr,lSNCݚ;d\%X mh#aǕ~Iww[~8:ZڲE7*HFyb=41\ T3f(8NYɲGNWfd2"+Y&YMj:.,/>R+цhkknтҖQ|k9T(ƛm,S/My2̣d3[n\F)%fĬШW#^wh 8ӂ%mhY y>̠NSikTF.+_l# 0 3ΰl +(0.D4Dwq;hc9&٬i&VLlkXSi&=iZcܲUt=}kPqQE! 0ԩ,+7lFSNx1WUJ3nUK)rF7r+%.^nrn-d߂Y?=N#_<&0ҧzs+&OQA1#RVg&),3]Y +*հI2dPp<(0C9?(8/<39AM֪lTi&Sy?;pMgq$*rkPHnȐP`~˿̖qHA>+#C *B ܼg9G0s%\*(EYX'btTP%b_qq-OI,WWҍ1 %gحNՠ:iV4x i|U<}/!㤀A+ Р2|ˌ)h`yr\rYX +0嘵rCƠSW.jB豉4/Ɩd%ӛ BM +0wE=\.BD."c'1!Mdb61;-s8KpG`O+yɇK*a@ȡ3$x \ \5\t5\@5д!`u+-M_M;"88Lum6{&P\ U jbibh[6ҋP@/DG=lyC2D-\X:` +XX G} 35ã9p5XᲈXĢ.$ml||<[\ +nm 5ʡ]ֱ@!H]/Y@ & +VxҏVx£%RZq.|j&UL+q4+ZOX9HfF$|6K[w+(݋ < d۹xvzю(8r965]@:r;zgAK2>Ab{婋t} A===uh $߽V3u"o%9KɓFbvI9V#= u̐ǜc@E?eb(Ea.^zCU>_Z>QA\%!Կ_p55AGy1~ [/ g?>q&8Ǣ%Yzq]9@"g 57<Ǽ=f/΀w9Q|P5Xr*.S 8yP  q-M\׸p@E~_).: x~B>G"QUmpA0ҷx̯5c=U K+<.$;?1?R>@k?eέx +^?ni 53|5ezqA#_L +^.{8 3w𗿂8#=C=:n$2y?t,Y?8VrEr?أ8G:rXD^]M2m~A馲.= ݠ&救GZq+YȑLLV8DDRKX%_"6cvv'iP6Դl_+u:~G-rE.9ϢB1į DWc Ğ2 YNy: ߰Z_j%yWx=19v-{E'{Cf$Ilq1 BjrԑdkL76`0`n&&`CbH'@B(HB[Fi.K@%Ye (mfi6AZN]5mӺ}m6MӦM۪}ؤjڥ4G.S =z?y99『w f 8$7el{W('ߡܿ$xqÖ8 1Ua#f<ߦg3q;cX5#Df= MSw)h5졅p$v1iL.x +8K)gYBDim` $]v>NK<n'2LY%u )tY='e*\v/q~J M5+ɢmIښQ{rڒ˵9%M)aES՜USj61m"Z~D XR(j ?R/1~ +b:m:r"8+GS IږVQQU6`(VBZ7֫޸Qu6Mݪ5Ri3)yNU +VUX>T3SKH'bCطEȓ&K"L3TgU\Z_5ZjUm(hک_Qgͪ,mUb{Sg;>S#{Lo&Yg{(C$;I!Qk,ekͭ*[*m媰W^2GJ[SI39OQsWޜw6 %33IcuKZ~vlF9{IW3SNʜ.*8'"WH>涩 Gyv?ʬQ5` Q)-[J&RVj0vƟ^Dw;X҃][K> 'dMSfI,kr@ ʨVz(PRB=J +)1N0uR;HfbM ~f/w_ዾKax e"'q!a$|:xĞqbMG#a{i{sp mx AY2`͐ѐb: }0q8k]A(nbL4n"LvLavL"&i0bK4A<&?åC){1ǎJw ցJ9>c;cܘɋ9.?7FҳB_Hx| +:;_ U:G;0\|Hv,bb,R(2 $y{8G^~;?oسEi㗩WH*_%p p Ǎ' 67%X,e +2X&8ҫ>_{Ŵna"r܄*_a |n]M>gVcB~PW +Iʊt9c/ggTW6\ۏ_ݛ¸oo=^I/G!R6\{tƟ6%inmzK4IIKKEZ.E\1AAȠ ás)`e2q2&sӝYiOs~/<Yz,GG>ۇ;h +{mf5*c?,ks51#ꋚ b԰>_8?@}^Gnx7u6v̀/b@2(CAw6ڦq-gҿu7g8?R<7{{BGeER?.jK?wvT=:uч踂89,C%tz gz@{཮kz _>/߈M_p귪һܷtɜGG8qyqa6WqR6K'Hz0v]_p|ܟ>ݛ,::)tGsc88#8Zܬ}d/ _R@m!B#_y \b3e'"֯MzGek=:Bt5JR=pt±nѽ(\Sݰt*O.r?b̘C"f'Q~mmIG<4vPAo ɠy#ynsmEo + 8,OUB$P]*,Od_ 2\G{?vX-s^tSsd+\x +)c:h_P +~/k$?fOyF>OqmrѺ!.sSc>;\䱧"p᪇pMdptvZf^w@dG\ȝ +-a4uAL&cjHָA9ʂ͞*P}LHuª4Z59_'`K0\RE-U$Fp+mw_ղqlI&&cqjHNQ8:CjU`b+4$JUI +$5ȗ4VH%oUqOxBwU`BSDEOƮGm%#P1i(bPɨ!Ft94y4T*Rjܤbs +*HW5r[)\ʱ\zD $#F#ϯw泥8!7#kȍߚ +YJ-*RBK +UX):Jn[rm3/T}RcxGi3-»[1nŌsJnFS'R*U`cO۞<{r%r9|I );AY㕙>MNgҝ+*{^2^5MlkH=Sl-~@ Fy24+iSө̌\P +93*=+4L={l]< K7#L_O̔zvx75RxeXՅ|vꤖz P#6(e3Ǣ49\#L*Yek.{LddHO*sLIs#>|o #c`;3 mcHrSCn|Ĥ* Y|vY +ke,K)EmJ.+x U\Qy|;rȻ chiCG3#t27^RL%VJe,u) % VRYH 2*ۡXxK^n"/˴2K-pg]9]m jF_-CF2֓b$&@>*-JLx_b}^ SH~gCcc ~cUEp>4q*=NsaXFh11+)`bA MhPi`0MA C?Vj)x6{LzӐأVBV7q7 $K%l\xa0t\x ǸcBHuhcC걓zCON0yy@0"dF\1RkRivHMdM4pġӄ&45GoLLk.Khhh k\ni)![ 9<h#;?;: 6+Xy#tp 30hs1 ; 9tG7&4nrхU]Gy,AUEpܳ:^J<a<2h6ƺ gGI'M/uE賏FG.Y'ṿ; 1pa0p{Lߐ {%W@Ca!WқO c *r1@_RqpfLtLRl`ut^o$6hVӐq -8.sfp>rFqخR+_W.0Y āt0Rοgjs;pH}A#GGs"^@ aG>|Tp!X4T |pƲ~kg88K8G<N]zS'u/ >z:=E;N*ңn<7U#` :._ORܠԍp/h=k!G!^7YJgz\hDt*bn 6^ 489x,؋h2GM>:p6Nv4#ԥY EfUR0we mXu8# teDt2!Ue/Z"\B.j(fmV]O{ jȭ7\~t \χc9)2xYŮC-Z@泳R\ ,F}9(48ĵ5xW:EiU5YJϨ.&j$ +n1 BxS(fYjC(i>'{ogG;k}+l$n9C5rxxK;\p%'/\p k4\5hr#{#PN. +idgqedY1@3zMaL$?r2C&X5>ȡ1A.%jTPFgiD a!w+'tCV:7)5C)O( 1|!OwDt.Xm)1PANO!ǁ紆*dT^Ur .eGxGRZySbdSd{< =ZQ1]!2YQ,jLN\r,rNi 9~LSeLȄ*W*,qB=9  +NUHO]pwL,Xߕ|VLl)f9#'CNPEyLxl2{2yeLJUD0(-U3Ui0v|:ɮL1v +ͥB+tr)D]᥊y +ݸ~0)\*ָɽû{Xfmհ2V|ߵ=růĔTMT۩jEZWj^vqq*B˄ΆKZ[µo5c[_U`8,G bK^2ٓ:hh5i|1/jZVXA>ך_,N7Ѧ _\[=_iu`xD@yy_2%ʹx>r؏{Թr`jf>+Te$9 `cU: I ~%ٱ/袁/h _s)qqlK3[j ML_>7\;ֲc4QkTT((kx[w +ሕKk4U@{.J1P╢4 ŗqE`ƎUn\ɼEi]l'${.yǵ1Ja} !Ϛ:mfG3m4I3]4E35q^'$;i츎[u r@ +1T<ȸѹm a-߉MKvǀz(j-|BL9~3p.Q3 xԭGn߶dN;|ܛ}6'Ѷ$3'qR<%&4S|qJ~DzR>ދx/9f |ʸ'yj= kâٱ ]0!,ڣp~ӳq0rN<Qٗc;ޥ`|<\^\e>PF<?WOcq|xiorM_a{ u| =&RK忚6W$dv}*1?X߶i{#_\Y3Nmc} 6>|d)];__/9Գ +3%OlOI' 3d,mB=E;bW8{; +,g_^U*IltBtl x( $/g :{'iv6l`gv;8hûCQO)͠s'I=. \x)9)#+yJ9ۉxs'5ۆ Tx>)3tSI/ WB)t~-vk~ƻFvNZMsEp]z>Dk;ddI8,ybi|ENbWVf{crVրco5(Xe1/sSG j+GYvꎣ7b%8pTȊ*J3LJY–ٲ_h9 +ukTz.?.7i<%oD,!`R8\)`. .jȥHB@H1%폎@TXb/&f:.cK4#1wsb=8|LfҖxxCCxt $2N(mt 5&j0T?CpmG2aEh9K(U/0q&{@AkX = =Y&zfͺ uЭ>HV^iPfPwމЋlxH9,4ٲ5f` ,x808!qM٠)]I l"10BTI##P$Ccba܍2Sc5#&F&G;Τ-gҖH#D >[3F5b( Ab${izз9&l^}p"F;b2!{asE +D&x#8j$,byb!p,dLY]ّ!1CHlp\q .U%NLH-Rdch +^@D3Hvgxq|Dp*жhcHu}67jʌ +?R#3I3< PS,> ؞Eq\=-R'6;9IAzɆٜI6|XdA,@W־+Y?[ړC iBF-(ӊ -A[(oq@j ȡ^s8j$,AE$h~?Xhڊ>ǁ-•a0|!St+R)5D@*zmahCFnlV7qm͐pnyQњ+{O#Ok R>5y]Nbs0 ;P^84~EJcil)%dtUY#Wq€rFtGz](9dj_8`]భKJ7HKwsؗ1TT..(rۮѵ}4f>z{ϟࣵLAϻsƌzfzkfL(քC ~h?j}CJ3E%/c_TVJ*pT_xEy\_^Hڨ;Wi YA"ҭ[l!Iv^يR9$Vd2nqy>=/<y;s+Nw $ ӟmWy0\*c<0gלuN@B! +G[Yu?R|^rrH/坑,~$K]Kn`l=Z5[7q|gUnr"~F8ߛ-cY đ\ೖ-K1Es)`[>zyH]PF(볫ܤ;dqFV Lk-zPߔJK{wWy~P'C8d,ߴ. :J@7 dzqF@` V" 6X ##  ZeWŔԃN~a~qfu#E".lйy.?Xϊ ;m HK=`(tu4G!gn_:^!B@zhCLZ8l$@ ++ @ e!OAx C8~ⷎNs]=/I֣3ѡM*{q6ljK~!}9Ym!!_7Hlް(Qppj`0GXs,D`+/xGF@ҚSШ +s=t##URuMT?|zq+[:sMnִ䂹33o\P7.B *OEtO1o,N4GO\ٞ~pc݌)GR0XQAl(f4 M)h@<׹L"]NJYsr,'%hݹv + ݆/U)|JnPW +x kFEQ`0|=t[ 1x}fpc3A&ŽpJ ~ 7%1,۰PRND,^HU0uf>7웻ñ]zQZVq6 S d`0XA#GVJ[(9 +RWvHo^0x3 bx +p`+gQ(^1ױ>9ږ騬*^x#qb ,Y2aHwcVMOb/f=-ȁ/} - `=瀾}k) +4`" C!)p3:mu@XoQv ngn3w:s+*qBV- M$NreO{}v R` 83JyMO4)XZGyQj{DM {_πY ̸Ӻ|)weUefᨈ.A]]dciI~\w<8/t Pg+e >*7E`S# 3\GHpχHn aKS[K 5uk;mɶcVރ iEHD_+߾U\'9GVXJ¬9M<~̨փI+qijL9%A0pcF"((`77Q#'q h[:-H,n#*Z_YXO +=Vy!pLYzY*K;x2}{"w7er"Iw:GSy\V[<6'Rչn%:溬'5mDtbZL\&$ +ܾ~vן{}߻<%E&gINDHJ"NƄdD] Q!c@ +d *>7 8PW% \ h`3^l:93cM|;egA :܂8XJ[7XI|0|N7w[{EkvcJȬi%J-Q#u|FBѵ<~ԠVTw|_JvV{J,͓ɯ)l/` R|Vxfm 96pL1c3Y0ߜ,/NP[@Qt+eKTe9ۏ-p +Ȯ|BpW$ %IHO޿y:~0?_(gD,rE}KcШ+)J_*=I,?!4l=Å[Pծ=Ğ [ }g OZO$o!xL=5dbBC) Oմ>RIr\r"#;@V2[kclzi5a#*Xm?;62.#:ĉ֙Li_8L+ endstream endobj 47 0 obj <> endobj 61 0 obj <> endobj 62 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (thatcher) () %%Title: (repository-icons.ai) %%CreationDate: 11/20/13 3:39 PM %%Canvassize: 16383 %%BoundingBox: -115 -1130 917 123 %%HiResBoundingBox: -114.793 -1129.6504 917 122.6416 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 39 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 0.75021 0.679683 0.670222 0.90164 ([Registration]) %AI3_Cropmarks: 344.832 -559.2051 424.832 -479.2051 %AI3_TemplateBox: 250.5 -250.5 250.5 -250.5 %AI3_TileBox: 78.832 -915.2051 690.832 -123.2051 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -935 55 1 1798 872 18 1 0 140 332 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:-150 -550 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 63 0 obj <>stream +%%BoundingBox: -115 -1130 917 123 %%HiResBoundingBox: -114.793 -1129.6504 917 122.6416 %AI7_Thumbnail: 108 128 8 %%BeginData: 6902 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD0DFF7DA8A8CFFFFFA8A8FFFFA8FD60FFA87D7DA87CFFCA7D52FF %A7A8FD61FFA8FDFCFFFDFCFFFDFCFFFDFCFFFDB2FFFD07A8FD13FFA87D52 %A8FD08FFA1A87DA8FD08FFA8A8A8FD0CFFA8A8FD19FFCAFD0FFFFD04A8CA %A8A87DFD05FFA8A87DA8A1FD08FF7D7DA852FD06FFA87DFFFFFFA8A8A8FD %05FFA1A8A1A8A1FD0AFFA87DFD0AFFA8A8FD0DFFA8A8A8FD0EFF7DFFFFFF %7DFFFFA7A8FFFFFFA87D7C7D527D7DFD07FF52A8FF7DA7FD05FF7C767DFF %FFFF527DFD04FFA7A17DA17D527DFD05FFFD04A852FD07FFA8FFFFA87CFD %0DFF7D7D527CA8FD0DFFA8FFFFA8A7A8FFA1FD04FFA8A1A87DA8A8A1A8FD %05FFA87D7DA87DA8FD05FFA7527676A876527DFD04FFA1527D7DA77CA1A8 %FD05FF7D7D7DA8FD07FFA87DA87DFD0EFF7D76A8A1CFFD0DFF7DFFFD04A8 %7DA8FD04FFA8A17D7D7CA87DFD06FFA8A8FFFFFF7DFD05FF7D5252525176 %4B7DFD04FF7D7C52A87D7D7DFD05FF7DA8A1A1A8A87DFD04FFA1517D7D7D %5276A8FD09FFA8A8FFFFA8FFA8A8FD0CFFA87D7D7DA17DA17DFD05FFA8A1 %7D7D7DCAFD06FFA1A8FFFFA8A8FD06FF7D7C5252517DA8FD05FF7DA87DA8 %7DFD06FF7D527D527C527DFD04FF7D52517D525251FD0BFF527D767D527D %7DFD0CFFA1A87DA8A1A8A1A8FD06FFA8FFCFFD08FFA87DA87DA17DFD08FF %7D52A8FD08FFA8A8A8FD07FF76525276525252FD04FFA8527C527D527CA8 %FD09FFA876517652524BA7FDFCFFFDFCFFFDFCFFFDE6FFA8FFA8FFA8FD14 %FFA87DFD23FFA7A8FD2AFFA87DA87DA8A1A87DFD07FFA8FFCAFD08FFA852 %7D7CFD0CFFA77CFD05FFA8CAA8FFA8A8A8FD06FFA8A7FFA8A8A8FD28FF7D %FFFFFFA8FFA8A7A8FD04FFA7767C527D7DFD07FF52A8FF7DA8FD0AFFA852 %FD05FFA7A17DA17DA77DA7FD05FFA152FD04FF7D7DFD27FFA8FFFFA8A1A8 %FF7DFD04FFCF7DA87DA7A7A1A8FD05FFCA7C7DA876A8FD07FFA8A8FF52A8 %FD05FFCF7DA87DA8A1A8A1FD05FF7D7652A8CFA8527DFD27FF7DFFFFFD05 %A8FD04FFA7A87D7D7DA87DFD06FFA8A1FFA8A87DFD05FFA8A87D52527DA8 %A8A8FFFFFFA8A8A1A87DA87DA8FD05FF7D51525276525276FD27FFFD05A8 %7DA7A1FD05FF7D7D7C7D7DA8FD06FFA7FD04FFA8FD06FF7DA87C527DA87D %FD04FFA87DA8A7A8A1A8A7FD05FFA87D5252527651A7FD27FF7D7D76FD04 %7DA7FD06FFA1A87DA8FD07FFA87CA87D7D7DFD05FFA8A17DA87DA87DA7A8 %FFFFFFA8A17DA87DA87DA8FD07FFA8525252A8FD42FFCAA8A8A8FD07FFA8 %CFA8CFA8CFA8FD05FFA8CFA8CAA8CFA8FD09FFA8FDFCFFFDFCFFFDFCFFFD %8AFFA1A8A1A8A7A87DA8FD04FFA8A87DA8A7A87DA8FD04FFA8A8A7A8A8A8 %7DA8FD04FFA8A8A1A8A7A87DA8A8FFFFFFA8A87DA8A1A87D7DA8FFFFFFA8 %A8A7A8A8A8A7A8A8FD27FFA7A8A8A8CFA8A87DFD04FFFD04A8CAA8A87DFF %FFFFFD04A87DA7A8A87DFD04FFA8A8A852767DFF7DCAFFFFFFA8A8FFA8FF %7D767DA8FFFFFFA87DA87DA17DA87DFD28FF7DFD05FFA8A8FD04FF7DFFFF %FF7DFFFFA7A8FFFFFF7DA87676527DA8A8A8FFFFFF7DFFFD047DFFA8A8FF %FFFF7DA87DCFFF767DCF7DFFFFFFA7A8FD047D767DA8FD27FFA8FD06FFA1 %FD04FFA8FFFFA8A8A8FFA1FFFFFFA8A8A1A17DA17DA8A8FD04FFA8A8A7A1 %A87DFFA8FD04FFA8A87D527D7CFFA8A8FD04FF7D7652A87D7D7DFD28FF7D %FD05FFA8A8FD04FF7DFFFD04A87DA8FD04FF7DCF7C7C527DA8A8A8FFFFFF %7DFF7DFFFFFD04A8FFFFFF7DFFFF7D4BFFFFA87DFFFFFFA8A87D7D7DA17D %A8A8FD27FFA1A8CFFD04A8A1FD04FFA87D7D7DA77DA87DFFFFFFCAA7A8A8 %A1A8A8CFA1FD04FFA8A7A77DA77DA8A1A8FFFFFFA8A1FFA8A1A8FFA8A8FF %FFFFA87DA87DA87DA8A1CAFD27FFA1A87DA8A1A87DCAFD04FFA8A87DA8A7 %A87DA8FD04FFA7A8A1A8A8A87DA8FD04FFA8A87DA87DA87DA8A8FFFFFFA8 %A87DA8A8A87DA8A8FFFFFFA8A8A1A87DA87DA8A8FDFCFFFDFCFFFD63FFFD %07A8FD64FFCFA7FD06A8A1FD64FF7DFF7C7C527DA8A8CFFD62FFCFA87DA1 %7DA17DA8A8FD64FFA1A87C7D527DA8A8FD4FFFCAFD0BFFCAFD07FFA8A7A8 %A87C7DA1A87DFD05FFFD07A8FD05FFA8FFA8FFA8CAA8FD09FFCAFD08A8FD %22FF7DA87DA77DA87DA8FD04FF7DA77DA77DA87DA1FD04FF7DFD05A87DA8 %FD04FF7DA8A77651A1A8A1A8FFFFFF7DA87D7D7DA1A1A1A8FD08FFA87DA8 %7C7D7CA77DA8FD22FFA8FD06FFA1FD04FFA8FD06FF7DFD10FFA8FFA87CA8 %7CFFA8CFFFFFA8A8CFA17DA77DA8A1FD09FFA8A87DA77D7D7DA8A8FD22FF %7DFD05FFA8A8FD04FF7DFFFFA876FFFFA7FD10FF7DFF7DA8A17DA8A8A8FF %FFFF7DA7767D527D7DA1A8FD09FF7D5252A17D767DCFFD22FFA8FD06FFA7 %FD04FFA8FFFFA7A8A8CAA1FD10FFA8A8A8FFFFA8FFA8A8FFFFA8A8A17DA1 %A87DA8A8FD09FFA8A87D7D7DA1A1A8A8FD22FF7DFD05FFA8A8FD04FF7DA8 %7DA8A1A77DA8FD0AFFA8FD05FF7DA87CA17D7D7DA8A8FFFFFF7DA87D7D7D %A1A8A1A8FD08FFA87DA87DA17DA87DA8FD22FFA7A1A8A1A8A1A8A7FD04FF %A87D7D7DA17DA87DFD04FFA8A1A8A7A8A17DA8FD05FFA7A8A1A8A7A8A8FD %04FFA8A8CAFD05A8FD09FFCAA8A8A8A7CAA8A8A8FD22FFCFFFA8FFA8FFA8 %FD0BFFA8FD05FF7DFFFFFFA87D7DA8FD63FFFD04A8FFA8A1FFA1FD64FF7D %A87D7D7DFFA8A8FD63FFA8A8FFFF7DA8FFCFA7FD64FF7DA87DA17DA87DA8 %FD65FFCAFFFFFFA8FDFCFFFDFCFFFDE0FFA8FFA8FD07FFAFFFFFFFA8FD07 %FF7DA8A87D7DA87DFD11FFA8FFA8FD39FFA827FD04527DFD05FF7D527D52 %52287DFD05FF7D527D5252527DFD06FF7D7D7DA87DA8A8FFFFFFA87D527D %5284A8FD36FFA8FD067DFD05FF7D7D7DA87D7D7DFD05FFA8A8A8FFFFFFA8 %FD05FF7DFD055227A8FD04FF7DFD04A8FD4FFFA8277D527D207DFD06FFA8 %FD0AFFA8A8A87DA87DFD4EFFA884A8A87D7D7DFD11FF525252277D277DFD %66FFA9FFA8A9A8FD65FFA85252277D2752A8FD64FFAFA87D847EA87DFDFC %FFFDFCFFFDFCFFFDBCFFA8A8A8FD68FFA87D527C7DFD67FFA77CFD047DFD %66FFA87D767D7CFD5CFFA8FFA8FFA8FD07FFA8A8A8FD0BFFA8FD0AFFCAA8 %FD43FFA87DA87DA8A1A87DFD13FF527CA7FD08FFA77DA87DFD42FF7DFFFF %FF7DFFA8A7A8FD11FFFD047DFD07FFA8767D527D7DFD41FFA8FFFFA8A1A8 %FF7DFD12FFA1A1A87DFD07FF7D527C7D7CA8FD41FF7DFFFFA8A8A8A1A8FD %12FF7DFFFFA8A8FD06FFA8767D7D7DA8FD41FFFD05A8A1A8A1FD0AFFA8A8 %FD06FFA8A8A87DFD09FFA8A8A8FD42FF7D7D7C7D7DA17DA7FD09FFA752FD %07FFA8FD61FFCF52FD67FF7D52FF527DFD67FFA876517DFD69FFA8527DFD %FCFFFDFCFFFDFCFFFDC0FFAFFD12FFA87DA87D7D7DA8FD08FFA8FFA8FD42 %FF7D27275252527DFD05FFFD0452275252FD05FF52535252275252FD05FF %A8522827525227A8FFFFFFA8525352527DFD38FF7DA87D7D7DA8FD05FFA8 %7DA8A8A87DA8FD06FFA8FFFFFFA8FD06FFA87DA87DA87DA8A8FD04FFA87D %FFA8A8FD3DFFA8FD11FF7D52527D522752FD11FF7DA87DA87D7DA8FD4DFF %A87DFF7D7E7DA8FD10FFAF53527D277D27A8FD65FFA8FFA8FFA8A8FD65FF %A87D2728525252FD66FF7D7E7DA87D7DA8FD34FFFF %%EndData endstream endobj 64 0 obj <>stream +={?h K4O,* A#OPx$ +]'UcH`[Hoǻri>{tիW?-΍f}9! 6XTPLiW,$N R(f^t0,y r eϑhJIϩ Ӂ{~`6HRUbX9ң%Eͮs1s۰p +X(< + I1]YH}Az'@#~?+o&h8DCȕajnFT/&n~mJ\fg&h,xځ h2fH G ~g^ni0J6`陖khkX lyC[S&5\0՚s4!+L471޳8KLf/ +&3z`P['&#j"[j+SԿNޔ`];dEe&3P|_VzZdmES/aLs%%`3$cX~w m{E2zQXzLIUY00z*Μ \L.U@"UHSDM6A"۠Pi4JLt0!ۂ+9E}b2:`22"Hup9+I ɀat XLdzc2GiU1Y +&s IuRJLaL~_wPcX~u4ᖓQ^;v$- +&R> +Qa G/i{(3 +&R< +%%ΌH^2JG!6e|[8 +y/RM(41ö7226MFE(8njl~wM[Hd(l[ [csvBZMic jBog> +C-M-y}[-pfR(^VABjkli} ,B(x 갈N;5.^'(`23X\ 򸋗GcLPR ;HW?%`(_/']:b-6 $lx܍ˣ`z{GƇBiD 51) N v6ʺ+ya־DŊǠ(k2?5)c'%LڲYu(8TEw$:'-\nC@w-)g` -h5QP]\[NDN!&?ַel,C g=d]@!m^ Lq?6E]΄(x6rt9ie嚟!N$niB|l;]ϋǣ)}hkDf܈-f$̉ K[pNXk8R[ )6a-'-GA=5߰ FX2har˅zqPt,)W6b8Kocʶ;xe;m<ݴMhsvr}Yr2*[f%Иg#RoF:n +QA5&fG$߻p;{EG`C>K PBD c?`u+|*gVfK[d#Ymj[k _UXDGe;lcڔL`iJžV(X>nJDLfcJS'L8 +?#ΛJHnR5U[Hb"iRJX"XXzKr8ݑQ 8 ժ xj{`Mm/S mi/XrrR d +(ONѽ~`@Đt=Y{GΨ^6 IY +b]e/WLyPBxe/8 Vn¬óWYȍ4 )Xr[)6bY3#@5 +Pq/U5֚R% +('=WjBuVd?6g'gVH}9-hLN7#FϨgUDhX(h +Pv{y*b$u% zM +T8өlHz4]r~ųEǰ + HO eYMGדڂ뮑؜V"߀!h;T +8H0ȑa}'гv6 Xj6Y]HXN!bUm7$WZn4p#\p|"E1h۳aCk`N/YNZm?4a/0ĥY.|в:\V5 ξ^\$WfBkyi5)7/#=fMUqr]\ZGBoeRlK 6vviq 0hnx^^#rmtkEkkQ펴w)WkmW^[z}.V\Sj{W3ruaII9`yB<-/ѣm'kf#H,UŸJzV.6zJ"FfZ!8k'Vv85Nx7pmDiucB$&Q_|hDFsXC7^wZGHƛz-pߵ6>;cvpͰi m}Cl80J I꺮h7mIAkdqOnj]%5=tS[N%|igG sJX\o¹&$(#ӻAC +lVV7<^[EoYרFի'k$%֯|' %b_p +}uaMqOm۹1>Ғx)aѺfXAn~ؠqty*#hѮaFفN;v H@$Epˋ# ȋ,Q1}MUZř\ԩ7w&J#Q|92D“|Ô@*穯k zU*+z $8ҏeIUl[r.(W-;rn =2| j~引;ޜ$(XH VzU69}JVKx-ۨfo7QϚmyļQ*ּQk|tH!V^qm+/bneu}bq7CK^\Ig*W^qA+1kd#+NԮHTQ*_WQi^q{lTJPE|EkAE+m ]T5'0`Ţ#(a-}հbizXmTJX>b%7Q:V.X(d#-iJV2:Y}TuF.ybFFN6 ID1+>jf5լA7+W'uuTQ=+\Eld<# Is44'iF6h譶. +:Z%MҜUk5qOE=쑉H7: +ѫtRY;30skؚ/uHoL/Sw'$'SFDw!1̟~-ل"Q>ԕ'{o߾,npwxEytջ{m{tsW{o䑙w+7__9?Kxʻ'ᗮv`[g>uW+Zw:t[D'Ǎ$'YD9 z;frjREw ka_-6MpHracԃ8Lռ * )О5m9{KKC#Lr VE"cj#~e3=p:+Fj ^OB6L-[؝\ۗ:c?FlWbڦV_zIHo +0}69]tHenZ;R"9 +VPN8WH%&}4gOyB3r2-ANe-%>-%A,pZrƇZ;P {Y$#GJu+%+xQ;M3vkEⰗ|_~ ۬x~.1q$ :zqç> kf_LzӐ,VEPb/ 4t/SD@]߬1B>qG/ӳh3zqY×7jf򰗕:\ȅ!YkMd}v H,1Lvhxʏs?^=N>ǦX@Nۆ:)"$Hib"??Vx%%DlPN͑):pT*Vdݯt{ݷ I W$;@4W"Ŕ2}xJᩭP7mWN$_Sgg#Nd_ҏP'ȏĩ<;pĭ[]Xq Hoƒ#3j6XU&v z8#'}2XAC$Cx5Ia"y^Պ_u @靋G u+H@g5$ #w3)!jVHlu D}8aA|C'(d.o;yΨ 5 ī :928T\^Ƣ-֯+N8NB!ҮB4+ +Л{K]POЙC9RDQ;^_Uq:.RPKyP1CD= +,H~ +WηL@Jr]a 9@b8zo"~X@@ ,.oePv L_Wm +HbPUfmޜ9(猴"ejDH8+EGdL#}LA:#Ttm42}.;ShIwFuv"Ge#%_|&AG9l _=5Wkkmm wZȞGg(N@U[WրCk@԰fEk@\⻴˜cJktET.h Ck`S[Ńj%$KjEk@NCWZv1l c1ƀѩfc60`1o15:5qHH`Z @f7a `fh 06KC*k\S+WES[0ϸH?yqV$ !`ޮe)03¬!`h1C aՆ8!ܢh%R P%rCKsזFu$V%Sl 0[J`hh 1,8\WXX~.[(E֔([X}k*KW:(@e,TDC󋡍l jk1J%P>$#%)@γ%%hjK8&[Fkw%R:D%굕%`oe rCKeK@ -e@% 7 +[U7y%hk?%%Ui dy6"FdxVl17"%K!:#,,b+4XtJ#`,<#3db<\ + uwK\} > +](߄++$ol*Q0Pٴx哯Цfh?.jAԦ=G2NdcԊBqCP w +AқXŨ8M\w m(،PI!H#T9$0\ԳN¦Bg'e^;ط&xN`8eT +ءR,@a"74O`"$d2? k[1B}y|2G5"ZCVqWյr3]iP}@69{]'2$z%\3CW> 21qw^ řsVj }h^IT)!:CDi$1U68ֆ$)oxqMuНs8 PT<,M\Mnh^h\R y+9с88ןbPe X0L Xf2O|ZrʵV(;4:+0Q?N9݄x!ywrg,|2|EW -`T j0ۺ8u7b@J@.ݞh j,3Y]`99o#2za˺u`m[\֨7KN2/6\ˣ~CT$# 蛓MBpyRzŋm#D)(| Hϕѡu㹀5VBw]rIJWA5ptu9S^m/ўKA& \|aFY?hGq'(+ʦDp>K\6dcSsK.ǚqHo< &*r%Ҡ۠Uxۈ|=pMo!U\PܬC  o!;.A3hb(rH=-MxQ7?mdub! Y|Ho>v!3p;K5([,} bD˶>2e J[T xykmH+#2mD͊:"iG%coLDΈѡ/fXe#KSKo.?K.7L&Y6 qh:-C9,9V4|<e(ǜ7ǰЊ&xʯG<'j";}鮷]:M+?w"x>.N]^JH)% ^L8oc!%4#h;wv) Rӝ<K3=_:ũK#)TݍAK \jS뱞Z)(%qAB%Cnʺpݳg`wl} $$~^KbpVі>z+'"DZq,9/i `h{ha4Ή -#E3x[‘Jso^J~HF:I}l?%I +Si}⯴rk\o Q٨~O(H^\H轥D&o]1%#-GAxs Ж" :%GTPX{`}TGFSω{Hx64P:#4 `0W:JaPos. "JA22!tH ehbS,Gh͆ +$~X*8+Cѹ-I]OǦF̢MPwB⥶]lO̧$PI*Ǒ~5Rcmp+! 際|9PplG 0vh-adG81-gɻdշt&Qc?I/H)zwYj./M/3QB0%% sYb8&'4A:KlnL9NyrZ56mHb#U8L7r ='RjWhBa`5cB +U,,>~n8Nfx},^/p.%5DNelˣ`~{*3A\Ξ]:{ً@CNy>_Im] |l+5!qonz+4}0"^Wz*=55;dA4*JV>*@gTk,2T#9[C ԩI#92T|5w4ٱiUi4rLor0Ȥ$zwIR7$zsir?FGҔa.MKԄ$ z-!G q.,[P*%xu(>|iLfo_s1N]@b"[AŚmK 98{ &@w ` E}FcY@L~8CQZEkq)K*L}DozAƶ>?Pe܎- lN JwI|hlv(ƀ"RNJgUĝ(GQf9b +(#awDZ-jG#9T m$UCk>Zbo4ّgEqoS1D/A&J$U२\0e) k4-)ȮtdyAꊗ"(3.DP8*-)RQ+AGN6??N8ae_Ŷ]m;^Q(+]m`[※9 Ȑp@\^t r=pȵD5MO|q2N ❦I&3%pu^'>_vi!kmZor ?זd.Sv]pk ؏!]~ڡFoK/6R ._8OBƵp9 tp!]t7Bi˞|( ǁ'9M mV,H9$A ߜhqk#Ժ!1˼D-b~midi#Opj6$ >(oqr5 MTX^L mbiKH~'G3MAíV)õ0Ek#_\ +^Tq)R6C\?&L-g#_EHzWoqݶAqj'&Ŧz5T:g*nQ:ٹ9d%tV Hf(NJd8Ks;(ZNӆ^[,[)S  |aL/=TS#z?60LedIdL `w$"v[{2,ց/{+DǮU+XP( Pط~Lk<)JZ!\CbI߀p 5z$ m@N> +Bƴxؾ]1HbpEAƼUk>~[D W)l%jg cQJ[wǰҡ!c ӊ{9SMoa7<#G 81.%"v+ [hurl2gHvKd[bJHR25V@[i,wyIwGF+_0߿`k圬8'n>.&z3Z`#4L"; >,| 7C|k +(ONѽkd2]Cinp2sƃ ) +Jts1h4"=!{',ۜ]=/'eVɩ1q6"f֨SclvLȼťm=g*aGF@Y {8gxP.حuʹѶnǂZ ؐ~^4~˗4PE8 YthΑNoH[$̧lGw/b!߉@(wrzY-^N%'$/1Z$Tegwv$>uN;gRNo읽@;eD/J";-w".iU`4ϤET2y:gD# G*2yv"|#x~CT-bYj+E"|m$w6TpHb@1B^MrXsY߇+T#H'53Ցr%CZPLK1̎uh #[4)",,]I /J(eXbRE/H,eX2w\tAGe\”TF/LKe`TFF/LO8} !sd4ٔ:de#!Govrrv1y?A?^fc~xy"q'Q.)m%K%|ݹ +Y&\\3b}FYU˯P7V7rIᲀJRvsAjm) utKW$ YWQ I†KʋhQ;}嶗#E4۴- +^a +$%Q܍a$8MIMdk#> SHr|;;b}*+"4 {28t\]5|'r-z )r@9+5F3.:B|ŧ󜝢zǽfFob8m[g,Zkx 4&%@(U BiÂ>A`<(AQOdLizc!Ȕ,e$8= =KF8EY&K¼um-X7 -քCpVlD-zcJgh H/8edm 9+0aIf- NL{ry9G"F,]A‡(uZH2D>m89Wyd"T++fG[aWC!(NG]pcФ[%t.K4k^^zo{w{`e+(o/+O#`?_ _]ݹsm endstream endobj 65 0 obj <>stream +%AI12_CompressedDataxrF0xoHnq"DJ| =l5Ej)vӟT %Pn23Q{^*3++WӫPA|]oPv/j (Lߺ>7k$r~o|$.琼߬oPp1[nGWUl\BDZ ?snuXz0T:ȅ9uMlGI/G:[폛l~{;Y/כۯ;2|\1/ߢ"oYLOww&*|~5Z[b _O0M8ߧ +z|X^}wfsrLUBo!|9VdBȚT +峎,O9@U^Bsb׃׫9OfJ4/B%ä'| },_,4| (^mH\h`u90G7>se@]nG5 2(rX Vj?l¤qU +Ќ F.Ͻo=`wd} +,[7}w7?z;ALӫ|_nON7d2_-tv|2%'%eJLg ϓiOY|N%9GEEW<(Ϣȳꓓ5]suw]]sW8g+&'wEޫwtp>?|n%v>C;ys\η'7 (q=]]Y,mϻ9 hnZooONO~]No'E ׋])0_\ՓFwz;92L!ݷw[rzM? +/Vn_az-x&/np7䔁q9?Y#K'kC SLtNZ@)&*~Lw5(7Qu أ|rA%3/:H/u~}w (F(z>e8/:wS-Eo9釨08/㗸_B +䁓4z: l4Strnn^N@$v2Bs^| G^ĦW5J_^urL>)30㊀jXͼs ETn4Ot"jND.%;Yn?D` AK"@]LWoO`$Y,ΩMTm<\NW"^|)QYw֡RInpE=t=On߃x_紇{5Cyg3on~^EOE>R1a#X j3[YZܻ[\d +2 bY[-ߋ>E,oq{]S#rՆ +[ jكW7ssr**4'!ևh6!{rTUg@*L<5"dG鉐<1腧3Om4SfP@KOQ'#I(-  +PM"2H&*=N٭$mv6tݪMBR%Id;P$i,g$җlZa%ce[8cvlmnlZ5[LI=aLo0yְ-b=aC|< oaSbsY< #@l[6֏4x@R38(P3 Ći^*Mj&()),sy*Ut mU*4VbCR+8>3.5VXe + 3ڰVLBPЎXWb60cRJ+h05XcU>VybK '$lLHl려y4TZZDxx=OXf:(٬rͪxa܎]J@t 4seivk9iELL| Y1b[fcVpz[A/t:kvդǛ öt&i;S0yV 4,.`̡;y} f`>K wI/h&vVUOB+YTq#M*[{c*0|d*M_T$|&g\yN+OXB .ͤiN6ѓ',Ujl]+V֪S]*׊b-b'LVW̵Uml I `*y\$~t=z37>x>yI><<{M^r1BWUds ȤYE:Z\\P:k9=z EdiL\RnҷG᜚W3.fԍH% +p_(k|~/):(whIemmמyMoIp +Hbϰw+UXy4#KJ | >o_v3R&~4'MIJޓŏFhMOݾ4M0GC5UgM[C5 KVYRUt)}mn7>7LÓ+Nံ,\q;Nrss†WZJGi9+(+*l<?M'vGF񅳁#59cY$ݓK@ge89YY;4,$B>@ؿKY2èL;\n3uF)}~]4 {%(]ݼCȅA9顼GVwi'-y +F&u$疔9Scb"uf )E z8+Xb3Э`D ]kcB\Hq +iQRw@U?WݫuVk\uֽra" W`Y78p&BMR\b%`b)&d1MU98NZetNf\K3YݵZO-wTwvGP;vOcڦ)0 + ,clu_cX:ݱufc%5n} ^πK*Zse6Cn_/,3v|uE%V +*!n*4H.μ]M^|IkmR/r'{Q62HܯU6^gc-rv X߉OFIe/6ލθE;57lu.5$J1u7-E9 ?Wb5,I!I^SLuV3 II%Xy嶺7$>x^| lձU6wnXN@grY/ ' 2D;8X' +As=z;T&~ ?bI%p֝WGX},an}oy}xpߒ'qvK#E/qG/qG/qG/q|2_y&WX*vi|ΔsIޓ2(cvP^V[vˋmvծ%Yzb ^lV y-/晖c4i2hci|Ƹ8T-:I;Z=JC.9hu:2U4vסq:0a̵H-pF~(@I 5>[@-/:/1y,cc" +2pdl6}FP@@_*t֠z0zd(6qҌPj0ש5,p}|]!#wYSmt$Q/YJ+H|_U}?SB^~EZoX<f& +SJ(`&K6=^UuGyS%QǺ/UݓGU:gӵ?U*;ޯqxGp'u_$)L"ߒOIÓ~?rI*^#uovXr˘lkK*Qv:UV gv7{gvbjzf}>KU7=)yh8=R<%xmF}]. +B_SNR F Pr|.+:*%]8tUJ_VP֐UʢCarRTP*۵nWIfyF:&Ǭ?'c ޺UVŲV_o_o}2WTҽT%şdv$EՄ-t.zCi/oU.4ÐdW1rH&2W~[tuس7=|;z)ݤaVnj]n;O&xnN3Iܼ\rPn:+Ia^40G_Gu7v{C݁ne(24=dzxdH0#n62Ehޢ[{_4[@htugMTW =֜dM^y@8ֽTl2H%ȢKNѵ[ϊp8laF65OᄖL姄]RZ:֞A`OU97H +;3brbqh 8ǛIH:l!$޻EUXUY8ޱ:!k`\;GN?}f^8'XZKI CXGN|Xlq-iAVtѼ9y;bMjI.gW5jyUիBt}ݗJr,_d;ËX6+GY퟼QmORk1O5-YّwQw|ؾY}U'AD>O0nR#{Ŝ^3.j҅6yjPR ] eddvphh%a3aHI3Tr֎t"js|Bɧ tTV5 cP0 ZpO «eDO ՏjX#0|_qApbz^] &wo !VdwɁ3#*#f/^Q@=nNWOVuk\BRJZ(z٬ V-ůؙv&W7(57Ƞ(6uFb.M V)3j#QlFJlm)GVvN({R_h'3#\؎G9g2Ӏtdz}v|PlK?}Zh'z}|`;"ZC"HHmnJsJ[yWb TuY27xF\>N 8^W Wp5&n^_h'^L;֍N@ڟz}vb -â^_B{l<=-oys +9@0K55 ڙ pWw$1 pue!_Zi-GYte]Y.Vuibw-M1SItՉ֪"rN<bhxףrhdוۗuweXͺ6ViRw-]ő/ЖN]6 3#i՚obW)9ӖA~1F"ToŮaዔԓuse}JiS@DTYwtl2BKOM`T.h1XKu{.*ìF1as*c,fK%fZ&S17v/ DFz7ZU'0ZjQr܇ż=E$1к"yMCx/T2  EY$@EɅ rW|;(d*eBnYɗd4>=b+Q6 .e*g3dQÜw8ԙеxZD1vcA'6K*}rƓ\T٘YI$=4{kQ`Gr 7(^AՒb,hO} +T-j\ ŽUC?;r Tu#luOUxUZA@߁ +}rƓ\T٘FU(Tmrj.c%EɑasBK"E\ґ0NFu_{9I(I*%44\2eH!Y=Dgc&OOQJajBR\\ƒ6ڗH |t=[̶j0 +WWbnx|:]N1WAoaz};. +(?N8WB 9uYEAk@bEb‘""s dE2YE&nHЃΆL:Di{+UESCQNSQ*^RMHVZ|ie~s* +L0 V3Z(Č# ,c|oM4s?. +~P'db]ܐg%$_qĠ$"H<@r(r_WJ +NAh o@Vz%%mSU %@ +Q~!mW(EisZ$mAAL F Ab̙(j/iB" •>$:tȒZ΂npA:M+-B˟ȁnRd_$^irT1«2ԁl!aG2$Bm #["8*4 Qʀxb8ʰ[򧄣 QȪ0{Y7bz'j3lG .!i) )CֶͅO6VdZq dO$Ecd H5lsԐ -^? $q+GzvirA˫R^AJxlx':VQAGd +ZPy9t+^Z)55FOg/C^YQAk dY6O Iܤ^b5 ~r#@ʐ +] ŪTNyڠ7 l*-l +@jOYLHy_TQHV,3TEP3׈4h. gFZ5ixDY:P$,5OCy2`TxJ8B~ș-~j06k R?~XB5I:yw߯|rЭlfNoWgf߾iL/ \Y.8·/!yL,;#::U;Fy>PCg|8qy>8og>ێw+x@oa%VYX)#:6ۼ[Wy%G%fuwl;}q>v=R=X)&]Gfz;;S#D:n]2 ٻp]t}8瘝{3n3}3yuCVX==Կr$f]o:,pдX= T@$j&bۅh>EHxy퓳7wc:2mO^@zm>,LAuY~^ܾ(}3?:zu6^ս^ս_ǘF/_^x[|CRԾ}Fw< dx)b n/Lg'.l2ߧwj<Yz|;tY}{;ߎt՝_=@/W ;"_t^rtM>A/noP:;mNgW>W) ~Gн[N7ެWUw5 ~Q;zu>becMۿe1fyX2ȏj{daz酋#\a]`x2콛pؘwl[l +3x;bz>cb {Cg !9t +o!s@TgHg1D@?Ǿv~5|n3yDBо Kŧ@2e% 24Y|J/ @ۀ۟EzuXN-3f1YB瓆כ݇#RM%8p3gfWl8uܬ;H臽sK=rr;'>pٱsQLOG;86W}2Sw:YVt/_͗>f>PL3ca,lf9ͯwӛ#ZPU筼Ў xkwAЗ09%)g)*?~uיBgt\7q,MgECw>wܡ3L;t?y +;bch r\ES;V ΐZwoPË|~.nbC[;#.sǝ~, Pg߭RYpuwN?`6sR;v (l W}s?J2]-XzgCӇXa]z0 '>p=[ fo< ѻ|pwXT;~4p10w^;¡//F0f/f>wܡw0s<<{0}I`xQhɠ>]x3z?j'xWn}qrzv?Gzs#hqhEv^D{q mp}z~ ? ?峞MyR0y=l+Mdӓ͏?;y8y]LLg6O{E%m뇎W?>ӏK 72Mo7> >g?^`<9h0}=:gbu5X-p81"CfwJc /8<ԿNz__߬oA<v3&aGCg bzN? =u[w0P>⁨о;!=vc_CgQ|?ON/F!Zo'7NvYn(Q y[ro![ȃ#[ȇou9K4 :ۼa~+wOw^NF>rGq.opp;^ptVF4탟孷=f>_}PX/o6o֛]gI%]Vܛz\oMruOsq}}zBώlY1͗'*l)`(?>G+^="Ivۛ 2؋6t7Cai|}GQY,ӟ$mzMo6;t-Ұq|mzMo66KωՇW^;B+#,7nza4^)i7|&t14^} /;ƾNCOcgtȁѯOͷe9G?DztquNk1dz7cNӁgjEĜz~z藏 8u<#@POg/Q8|#Hj&TEW|?-Bːu1Ã#*<3t|$ݥzFoxp,ǢeQ`EިqL^Q@z-Q9yoj@uy;[`^1tcf:N߯ݝpǙ -}q٧sI:0:-#XC\䳏l~]lgXCcsX1J8v~|5J0'eUxy@>c=^Rt~E{o72PL}`4nn 1q\3CnLǨu^{`+|ǯT1zT5zz h|^_L3U(|W_y7ĈU>3^),"¡胒>7{b8[/כ,߾pf:[l?|avas8֗·̱E/n)/_.L+DŽQ:˾A;s}e=p^t=As,Ogۻlj6G"{!dN3֌>xI%!a!$e‘h?9&:Ľ3+sq}Fc*kQg.Vsx @_z&uDKq3r/"ԙCy^W}[lG&/R/.ťWQŦi@@|K.coiKBGOׁ#B0w^|@ݟa}lGdz +Uup }D;tw(zZ~)]M3z] c/Pp YyL?cYclw2]pd?:wҽݯOAKo.C +7a| M9輯Cc`2n5鈸ɋòdzg3Wagr1!envEp1B͡ j/$ȓf` \C^FI~EaT,ԧsXIs4)a6 B\0j(ա+@g|J4!% TZѷMCZ강V&_Y| GFkpH5,bQfrုΡ&e1Rp8*WϐfF&5e,Ps4Wv~&rcdG|I0i*ʴ!cGV9_2F,RJo*r^_򟱝W9IEG8$CLxe.rHyИ ryH8{KRL唔I[K[`R&53nDLxlY;(Meci<_tF0">:Z&0%4ҀT<`H#˼LHGZeR\(s^f +@#5(`mY›"I P*@T!f|KM2J.08C Z]Dc5\Z qL X~BM *SDi^gELL0c}\'@se"CK| )32i鬈j*R_EM͘|mE5D+`,s EItno%ȅGUj 4}9y|e% +mq[\k%(O pn7x-1^f[fujF0mr9tUEcv*Қ +|S2 +kdoCxߴ&Ak +PE?fq9L6<ܽIe2~{&_B-jn3Za+ Fk2~F ~c' ,moDv1uB`Q<) +~!KdF4d,[G*ÐDeA# D C߽IerC$#$4_j>2_&?gx!ȩ}F|/&Iѝ~^_%Yh I__EL}3 g|w9m?1k(ΊawAjG#Jq|ndeBEc9 r[ `Q̉U[(/ɐlPZARЉ_"i/@"@neܽ"H8YT7 3|^Rvt@JrJEӛH)(TҴb" iAi'`a<xU͠\Kցk>|d-H0:-RLv)|YZiwjTTf͎;6ksJ f=@Z/A1 YdOg³ +%'߯?gō]3^^&u8oC"oWxcH( (`C$Hs8@$,׉ [`OR]$Η?7o-KA:]]-a﯋߂,`OKxȳ^ +لrJIjԨQ +-8u*hEŀ LM/O'm'yM^̴*X-$Z{vȓn'/P@-zY>}%UL- +M;eJQи*IzLV2eZdLٵqV${XDHehDr$Ӝ_h*%C/~~lNK 4Cຑsh`~M,& ˽A^+x ~i@͇>wV dK8N`ָc[D̢EL_E" ~v1 'RA#Rzӛ*{Se/ZRT"V]l_T9t2hcek@5{-E IUCb3rRVkbUcwm8\ʝsdoKȒ^-XʬX%zG$E}SDmn)}_|͔0"b\^mɯeJM!蛅NAg] p+&&jW):P|"}](_@]KTK/PtTK ^ra crX-- ݵhPOEJ˄]*#g*xZ,!g6酬^ꅬ(d06Mч^z* Y~ '€Pk|Zyh#?.>! 9 A9oDD&y,bsY=vIfݛz*_)L}F=ݛzQS-,GcU}M g,X a7rR"K )r/s(;¡Z|$R@H^ـ!ӿ&$`#w +BP#Ub't,ڈX^W&-`uՎt&F@1Tf92+^MXbЊ +lsSoڷM4#kdVUF` X+#U@0 N E鐲9SPE-Eؿ517+ SctN*]q:๳E[2J d8i4a6"rQ 4c\Cxi݋R{%v# e1% wz1?MVQ4 .'a50BJbFB+ńQeFP_7 4ԈAvQuQ2`( 23q\0| tH%hU(ɉ#n%$Xot>xNל$csr \(Rp3>/_*GBM=Mf&+`όBNR$ w ÷P:.fƿOB%KZ!cwt(آ -6tҡpx:LҐd !bfc(9Ov!#ؚF*j\GnT}2|"(t)x" k3v#2,> z~QMH y,NvWڍRcujJh2]%`eZ1(`Ȇ#U7>ԇJj2mj{ =~TXT#+S)+/]dF7T❤" +%)CqzE6l ۸L. ɴԊ)7BB)Z ~MfFg"6\]1 {3]Zc>9ˡ>2S&_b_Xh.Tqeim3.Ցw+V;KOZjɓ,pww>{1}k\ C3tX9ŭIhĕTw٠R$Gc?IckA jD +C#B +K63w@2lb\7rmbXjF8y  ]C Pxl613 +oeH3L9sC^>bF>{qqxf" ^>Xõ(E %Q?shPWEUVrЈLYy6'M_E`6u(~IŁdz,Mܑ. ImS,nisTd\)u(qX/1W! c-^P, 6ԍ(Q[zw=~ކ)} S0d$#N`3c@ȝzqӅ0˰ "r+Eݡ!ufH4IFP[Tmz rE3J;(e'XrRkاvpR^>@p'C'0 +H М.Lݣ,鐣T OVꀦ]'t"I6UD{= +4?x 3D1[J$|s +]k~lh$"L%qL%(Q&ɑ΅j0匇 B"L,$f0L E2 +~ (CVmS6s\#]Ӂ˥+)Z, +C7e4kdIj) v]\jo09Ma!\bhAFo@VS$Ӗ8)$ +3B X +A2.FCwg `Hd5زAVOvk2=#ٜoԀ`1NC4]hS ǕYI(|SSHp~ҩ'a @1A gP#F$R LL +%Y$Pe ,V}LD> fѩRZ)W-jp>E;|kJ;RTzKIU%K UO-I9TI|t&V`,xg݌ʏStCLs2:(8̔s2+N;GWond%iѾ),3g~#uI Ж<B:UblH%K@à}ꁁ% +4 \Ew/~ؼiۡaVt(RHv%~](9bf!e7e"!ԈqHB:#WIW.ůYRVxoD|tZ:~CV$(\yV%uӔ<5^FuH+^?رOh?tk2-M"IQϥrH+5:CDTa|PT5*&adV,ߋCRA!t%GuDJ ۖ1X*B1^ˡa,>Kwޏ]rDFZ> +fJ+-] +QQG3@g/$PSafgIC*mEBBQ ݯx,abIZ`:jW)Q> -J|Vס7HZ0k2BY{>ؼp6~IuW96>NXzsr3H3Gg 71Q*BYmWKEEE}tÒ"ݔP E*36qbeRR[]v)L3tEy DYO-͒" zp-r -\M6Y4蔝'g qV臌{YD+oxc&E3U$ 6z$ٵ4My"\H@{RH*k'׌d&4QgP3]|VE$E[!wk=ݧ`9dCCcU3$j:zڅZAHA㠨DE?PH@[LH@G 1hL;F5! 9St]$_hfrjʁҰXo)| +DU E31E{qd#Q*fIKTW 3, +/s7Ɛ԰*\twX̘8J/>[Mw9  @qZqC}HRN\/m8'$"r,qޱ; yDa!4 n%{-]Qfщ+j(z7Jv:# /EGHUxsmE$UfٻK(ZTg<~6g`^5h2_)2he_@kɅB& C렱BY ^;^3F#1x»Acs 5[C! Tdr&U_SS҉W\.ѽ2eg;湠e”ΥlISbNe ,iw'd hiC#֌p[3ގ*JGgC7t+PO֏ EZ8B6?Tj``ȑ-)TwV͂#eUkݥ{#"q S0@Ԫ'5߱1dLhJL?Ã]v㍖3_{A}ٱB9Ŵ-,)h{ܜ%˽!ѥ._qg+'nq}$ Y6q|oAAWQ{uPFNVRy-K(J Zp:I^/#'#SG t7e_Q>GN]2ŖΟ:Ҧ(1sk^TΧhJ 6 HBxBrȤInz#zZ>`Cnɾ PTM]wzEM}4Fwg@#* Ll5jwIarItD8]K~0t #23yԸ;e_[H%<"#rBf(p%DLJV 㥌axlܢp[vAC *͊6s 7~}=n4Һ(]Xsi6X |5xRw'zr>/NjcK>✟Б`baiX¤fVƣ+p܍[qFT͢)mCI^MmJK/UXEHQbTBG _:AP;=(tO?Zܰr=ӫWC)E8< +q,@J.GA$s`KF0Pxbuޯ$:M& +4rMZ|עxq. b30_ E)>Fv^#uJ,2J5@2i*n,2:SZORo![# +쳏 ֣,sI擆x|5KQqЙoaV|aX2 6΅n(KYԎl)xYiN hr1nj +4_tqw&^snT @Qƿ8l'l{5nfa>QDCR,q-)@p4o@u&H f +j +D!k/p]Ng88 /Q[Jb$6[ qo6% II14[Ϟ$;“z ْ'PpVH(^LioQ#YsvS))w8\%i ]U &>4P H| x +0qoք/4/^ǁ%ܣs>\aH3||}idźIbBr|J +Ez)Cc,XIA'[!$)w>ֆ$@tSe+6phg<@-쌂9p@ hvƹrc/Z3S<$3l‚;Ӂ$A>a%E[)4 +)zǖST"hV2uѡqđ`+6cce32YJ$yOG"4:h0g#`c%dZK2±Ȫ12;d :& 8qvHzw,.L-rmr1퐛t5qHpEHH.$߱w($ Hi(lhƱS Nq +')\j5{Tv)D ࠰R ]JwC)_χnwet*]Ȕ} Ie p+s>Be9:ia<Ȩ}I0p4] A4K$r7P?' ȱ'[Ispxaaa7f-2MÖٌfv #L]0EӁ(K9^s|7Há'Vaiclޖ^:-ŬQu]kݧXj*iJw9,oyD]4DcA*8FClF.-3KȅCvvCjCT|vv5!S6 lG\J,~F蓙(hԓE+)>h&(@Ytl(F}J p ηЂa ƒCDM25dtdY6arJOr+XOѢ4ba&.&ǮemtܱQFdF=X&V#-Wt0[_߬VWӛz}/[5g+{ ˑc4jukb; |ԶjpkXQټ璏=@X&O };)~F{KCe3P7Xq(t΅+r(0b׎琨$ )֋1މysY6[UnŞUF{gw50Uyo;'%3!m͆KZ2QĺdN\g|E'IK@tgtPfL_qøvp%^Q%qw+zt`ܑ5y~邜puugx>/_.jIl9ܷߴ^łvUk8ܺ%c<>n,>Dx1P°L8qbF9NŠ'J66@5zu]hlnhGh%9ޞlҰh9O.1)M*atEdQ5eo iLD+]A=)2gþ ѥ)*-p©rܡJlrtӤFhRe9AEZ@4YFTHz-L V_AjTSZ"xW25PV?66:ӔW(bE)a?\0TY+r%'+PÓ9\w*_'#A6ݿR.8ޱΆ{ޡ"T]>%^8 E]DCz*%-FoiApm `%Eׁr):ko7˲ꬋ Lٕr1jF +7'Lʌ0\քRWLgf+ +Yj6 )ۅC,L.|bWTh +?!ÒW"A?}\E{Ӈ"уu рD#%?`\JɬR%OV/):T\HA:ARW| 3|gaG5#ovv#n'ywWցG +=ʕCa'Gr)D_@E# 2?UGp<2!}pڟ-U +򫲌ؓXA63 P/!̆ʤ4Tx#ި*lU +腽ƋT)Ux sH@]mQOB{b۽ +^“0:vQ7(w=긲 cK2`RVsL`<|< 6+TH$ (/oo?(-G T]=þNZ-wW+v4F764-GJF!̎Fh}/}N +{PY'NK j{ zT8OqXGQ@g'՞D|wxg$? 34{LٝYBOQ ~oo{|b:*(r:n.D֏uWVTͰ/ +n?JrEO&BDˑcWy(D헖V 'foWs㥅ܒr)-͛bǎ,w)8:A6QdJq08Fxbۉ(;~bwtF~ưn?RP(" ;OyFBUkW zzi+V@COz\'p}&}I;ĺ'~2ֈՉW` ǝ_XOC[Ao*J(?kϬ_,~P-` VXXOh_{%g@^%~ou܈/mD>$.= NvI{̍>w$^>>? DfO pP,|a:B'oH߀H7?>A'"}"'"mHHeDBy`w:_c7w0p+ngLD3})={8cg\s ʟ'-ŷ Œ6N, _jr /W7c,h11B/) +`q`R8dSXenyg4hΪ +cBp7tr~~)B&`yEws_<^Ȱ EJwXw.J&X2'UMPwE|wD'n$/ysO@rco {E >)e?Gx_Oe6Ͱ$lIZy597R WMh%Jh6C +Oun0&%bAfy +S8 HP|#@[PC),)H꿵zs?^~g38˱Wt"g%roULgHm_T,Zm[ +>i:7m{q m_7xMg%nh| %`=*Jhԟ0 ӿ!L>NdiUGҟyW!5}@Cp(8Sq~{d(1= hd +)V2eA t?H{r>S!ݻ +1Go>gs?|]nW؏-1;q$ W(xgH4Oxw IǕ~z+; IڎaKk+ߪt3NY}#@Fǰ?Vi{凚gN(dm*Z+Ugpaɮ:7}=6Ž3D>hz4 !K ݩ2[vU5>Ac:2E'R7]c3ZU_BRGy9J#W}2?b'/0ʉ5S{[/T6N<\C7+5&? 8(Vvy%00Gx0_n>nRB ~mr-+X^-4F H#<3Խ"@:#El/49[6s@-V@il@VFa y)7c# hDF JA15E!,AdP yTr|{G1ъ#y0bXi\ag$zX`, P8K@4$ 6h + +f$)FıH14}"k`=(c:*|B+cYcχa4{"%LأY{(e qI:M0}r_rAn؅b4!O1`r{ +D)㠐CgwJ{4Њq ;"M@֋W 44|p(9B7,lS8thTX<0Goopz8Y)k̑"0~7k `^ Q5AA"8VV MG3ʡ?s!hL*SK h(G$qI}#`', Mah88e@r>K8ɟ B 51pg$llDQ@{EX`J("44!Q)U<|#YlHRbDJP"#[M]1`lTd l?Pd)7[Uniagh=B{wyS[n1*F;&sǒ)raY !Ȝx~`Aʂ8m O),724*H?B hmdQ> <| +sEV 3"P8q?X/ +bÿ <"q0؃7P>xSP z`GH 7~Le@ 4$#>$yK#ԇ`>KM(Ds29ef$&8)5章ď1>9a(Q@DI[1 `vd>yPpnmD &TݺqFM@FS@$AUS`M(`I!X( ˜b&ǟf?jL[a˽`4gAOJaLhA!b" dPw PaSQ[E۩a.p,ީ;/ 2+DW%d +uq}7U,bB(8\*H"=ccLW@3 E1` cX$;Meqw!t|˫oˣ")+ "RpRqۗ%}U>$ w P8|W9ѷ%81H q^՗ Ȥ"UTfm-H#fG.񯅸mV v[!4@X_;F5đ|pp{%(WG_޸d?'Toޡ +ٞŷT;Ki)<Q΅#9P~'Z0? 0 !>;M7j8?чVZ(WPAM١sӇ0>{_1 +/݌Ov8X4a=:;U?υa#q;˓l6G}(֞JeqH_@Y!l'@eVYyGzH<pcw߻<#I^sgpΩc7˵a Rm߾TM>nN_6 JCB rX?YZ'ptxD[~p1?Jld?|ll)h.pwOaPpM~| #:~C.> "3w'Ch669ASě&?, E qqgˡ j \EV*DI<'?|@n?ZW0a{_]47(/ /Ë?V/5F.~67@Lǯffa!l|ȇvߘ6a_Ys0뫕S4A{z|?;pбS|G5g#fY肄JNr=zqUN6* mUa3qTCQGv+UAVվscC`GS< +t-\!q6`VH6YXIV~tizN2:^ %,C2``tWp=ފ8jNp53siǑvt]p6]UmHG +G*_/T6?FeFPe"|VVxPi Bg~pD +&umYBYA蝖_0`~M +; bjN`ʆv8XƎqU8F!qX:qw1 4s@}c1ьK@x +0T$E: wD5g(R<怿2_Mw8+3䯥:]ץq;k1/YX9+ E@J~OgI<@Фos(p➺h='Sl_2VXF8bIU(pVwsb^T\E7&z{"PzC+#ȷM ﯉p _1ط.Zr[o[JTPv~Az6 sh +e,ˆc}ıI`%/k##-A_MwIF_H?t@LL) ~N6p\dP~5oǑFNqhkh1ϏTrboR(MQB) +{ɆWkFr&Y MRHqWkf"E?Jw(q0,?r̗5iEPW|7 ޿L</ODpK]4zN)$эP:&|G)ntJ5)L~O1)!z[@\AX!~ߞJC~8xnWqQN`W@*~^$zSfR]iaiPV~YOY<_:þΜ oVӴQy6MV>atJ~|A5aPŠ;% a3"J8nn%N/5ܟ;;ޥھ$ζs8{#Nsb)jƻ\ 鲫!xߓ*>qy$+:Y=ǎ:`sHq8e#O]d'j*5|^m+_5ӥk>þ(\)xz7^R!XRo° +/lGܶۑ_}=o*&7*Ͽ>đ ߆)r_}y1"Z:3g T +HcI0y<8:jUUgˑm-Ӂ诛+]ĎHWϿ4!]N TEłZ]sz ؽ['OkKp^Tssk.BUxb~-.N{'dH[Q)R$]=y)az`@^+^C&ZԿy7fDY3,8q+yI׶R#yxqq6+5]lRk?N@qyȪnf'H'1+d1`v70}n$awv._}0.κPKᘉi7[ѾZx:pF +&)7^7vTBߒk7'+y,s(ۏ@y=ڡ[+TU%wAZt>ٟX~J!aǃtwmA<;#yc-qd@Sv5\Roô"|1ԩok%w(k| \Jx_DtX1QpYNrʹ1NW_! +w"W ̖c|ܕ.n*bxzAK {Ьm*d}Q8|oV^,0 ++l/UA0Rj62KB@~{Go35Ps5k4сl~6ߡ@.]XrgHQamv{~^;^ ~3 y@}h/l$H*J":ZZpKa?ݴh0iڇQj B2^0l~ +9L)0<E΍ݬm(?׀%OOT c)O#ox)n#-LAM%;(s](Qo$gHDn;~I xp#ܟ3\`3@3.ބžލsmy#|;dgtB>>i_qoGf6Y~rw!x.՝X1!} %I,)yÐn*5PDdm6!6xq;x.WP}҅Xbpg|/=s}ysn KȪEIuи]eO9ǁ68e:zO}CU v& |үCQ\qMTxG'j C:o NבzK cY|AC9vfo%~YT}V=Nbu/li~ 7\)c\ϿO`-όe1闇q2wĦJb#,*D6P$t`ܭ<o2Z/:wetmu]@^ƬSdL~ MmoQ +tw#jKC0BHt@g7rWI_iWQ2L`nsHe+&<##:HEmE&+W|_P^$N  'Hp#1рxmJZO: E: wC!*n>Yѕf҈+*l3c Zښ9¤NR~<`敶xaI  R;ZD1#JcCW)0=,:cJ"g50;><}MC +/+9]gl' ׻S~2o\ĀB$5H K=}x}~iZAJakiZWcמ-^Cշ fM IJd2fô ]LKbùj^ffW8\,]ԫÄģ~=0pVcIwFDA}e)"zPA[@EX** I!9!t*2~Qx]{-\rC,!, +S2SPgQP*,}k XT&jW/'U*Đ9Eˉ+TA8LyNq5 OP@eFb =]Ã:}E]Gxx]Υݝe(2bc7 ĩT'SYEwQ$EsP$3$Rꕧ>*\yԉ󲋗Knՠy9ݙ\̪djU\GsGPT%}Tg<ܵr0PǾvt/3C4!MYIQQR_}KaGlv^JWT1S,8mAȤ{o"芄aF{aD3&CZ\[I}_; rX*9X {q|0~]* P[Av0/͎w%m GcXd4ͩjq-/K+WɺXT},'\P+=2+yĨhz;B~\xnvHǨ:qGڦ7B5Dd8Hx:~a*| 8J +|XA&.*S +Cb XG/p7X•ZmIc2:urCy_-+1CJ(޲.a;{{tg11bPB6>3Fy# @]/ +S,=ŃIh7g=^[T@&l13S*I!GtX +IJ@1vŒ]Z;I eAGBV9u&b:r>W1-zޕJ F4cMmNtޑAD`:-߄C&Jl'kL|Ϊ϶'TE (m$bƒ|yHJRV}cP']VQ2j0~]^|,b4epһ m]tw`L;]I~)j'On9wފЁ| QR{.BBG$|@t0㨀dMUi nXhz'ykEe8N $0\cr3_s9ЙMz;Is3+ʑcDn{L9X>VFFѲn0/L-+)D7fk&S/`zh<7I6 +4֩[@?2/ZD2Г@ 7&>vUiMMnbs\yTTᒟ @8@ `,&t`ҏIO.{%<< Bd9?LS$kr(;<»^7}뗡p1aה/rEua3y~OafԽoOu83m]>tr,/Hԩ|ҝܦgyHߞD/.is`P؄ ۣ@r Yoĸy,Oqx'j["ՍӅ~/j 2f^GܑOf>py°Rq;lȈQļlOE:b 3-"-cՆ7P<^{?ovTN0I:HzC>*xjkca<CEL {̓ d,}Ĵ~Ά.2%t_QDm@+7 QVrD +w/0E>k)R~%.}:`Ym@GNH뱣&uםBÃ]K +L[ȦTy<=_3$0O[aMne -%ƃ0.#F~SsJƒ:LZmz3#h UT)B.x +ޕ?e-VRn j)”sJ`&ip%CPįOܱr|K rg A2`mrJ( %{++a{d 0Se~֨m|SM  X;!p= +\-uwKWЄf4n5cksuĬCf_Fxy|&vVA8svZtFÒsцFm緁B v^{7;0 h-1Y|d3Hćm*^*S_&/پ  VEC8Vם:(4l;~{MՋW +1wfu8 7`p˜g!mG/Mӎ0HIC6ԧ@ @g* BկJ!GKp6-rV@!1lU Tuh̴uI!cii.yk a[*i;Y:@13dx`Ưe9cιa+b +b_|bcnVL2KpʢӽȨj9,6x_5oѣ;+NPAZuzm:C+P3}w;x6V`"D@ߴ{Qhj{H`.-ۙS~hw-ᴅ^g*L)9'^ME>! +yQf7[s > W N5 6~W}M-M+ܖBA_]gɛlr: ^'ݙl{V4pQs%"UJ.*7o=8 5" 0`CGe_# 5D5n_SGgN:~ZՉN_e!Xe3#Sje1~$Z=ks]k^hpM.4G&.^٩̈́NL{ImJ M$jzPL9GYwm݆.4]7n:grNs7ٷujfIjd~cf_!7~Sj9Z AffJb%_޳OE]=jsڨbX-n.85HnR7tzΧ.9v%&c &P-g{VK\͘ϿB1K2&%gw,-T9ae;45}/']Ut=Gj ӠZ7,zE?73ۘfCЪz6k۳ۉVLWu5+.7-eyP٪CB+OhpqY!+xbc+i{S"9K 䵨O#XqfYaнڽk;XY tN-Q:PW[KBL |Hzڗʹze5kdP;]&Nq]jc-{UКԴ}%2ܫUG@J+}"7,tjq%>錛4Uv̭Wkr D6+[U:p+Jzo;6ES8lɅ}Hij}`_H奍bQgg2~vcm,~n[d6wֹdRv9ֽ,܈x yz+T79,7.?@ `S 7 <ARan0^0YnQ{hV)p'mqulˋ5Vbdڬk4돾_y fuۑ&[ΤsǼISA .2x8# .DE|u,vrU}Rtw Qa']e]Ys/uTvk_lIS%*Mߖ6 +D}((mt' Lx1NLى)i;M*7Clf\z_Eyn{ӹiŸ^ؓbJ[eFJXfn&S1[λEV_سieb6|=AFh}٫! 6vciLƗxԷbs`[XQR㰤VQ?(ڒ/IݜUj5l2Z~b!>DpH-4RJgXN=8cXڬKppr5󦶑\m3ם\DfÝ@JﱂZ3p+Z>ͨ:f5p#{K.2btRHl*Z*FY:"ۡhxbk٪;e=~ğȏ$7cKK+YZezX'g,Y5}6IUsVOzS$˹c]"n/eqEtl[GIW +FU;Z<ZE>uyn҃\UO +m'bqޙ_\ݼ19N_[I ~<P'ݨ1FB`"f~u$ʼn)y-NEm3Y+Ҡ^_3.cZ|ZsWPCt-C=M6V \] :S0 w#&!e8JEpR;kսy&ͺz{b;̭|WE.#NCXC4,i'wP7E[4y NƓqut`l.r "hMN^t7n~^]0ч ac^\zE]_|I$$gӾd/fBX tAF@+kE +GKu9 mIQR=b3~L,',E>h-$7ϙ5N*iu`L=cntddF:;q\0>_- #[@,ʪiKy[*;dyL+~FVv°ZZ5jӳ^#TOaJOƠ6CepEV7)j1n׉Żٳvlo\uPd?XAA:$itv@50ǻY~5}4G,ueťUS_jMCY_ \O˧e۝0AuR*{x:PY_ t0m gXK]±Lnrr|iY1W)ک|0kڶPO턑Ʉ*$S 0{s˄l\پY ߝi,y x_9Η&>ؤ3u:f& KDi3SuWv +(V׍ m7Mvwfχ4]ZjLfC;b*dwe@ oYA vW[{|Q}Ƈè??qT-9)v=rͦLCtӔ6LF; q/u'7rl\/n`R8DҲ9m=G.7oN [,*Ķ*DZmWi57}-dF45h &@;|Ɣ/m l9,kF{Tu+#8S'{ |9QcksvY5iWftζc]Tڤf|јu6je*9ҫ)-w2?jHKdg=Vh9UR+.6̲(1=L.kg&{_lISjym5]\]*XϚm+DY3agklԞv)QtfXif3} ^KD {$R)sƓ%eGʍRljQ?1HN Vyyؗ*Ks%H,ۋ3ZhfLB{.jIv㎔_Kj;j 9W2Yki[׹Ufl^NXdRpq+;MzBp^<,0M'oii$c[piFK3ѩ6]bəx b LBgϮ&%3*.2f] jngrN[4fXJ] 0y3ib7He2S Anl^^lJvW[z ªȶt&/JUGțo/Ce2[Ng4 +E_qK-zko{Rd e\x;scڢi |x`\k0Za+$ .g.W}R$ujkҭ>Ȍds^jA|U:Ĩ\|J:*QYi6 [X+0[\tyi6akC >z,\z硤UR9$%畆8ltYk{.3EA9UnEdmEr^%jnr sșu=ۂҪlbNsAGF{E`lEk Kl2 _i'؊3 Wt=Z^0ű7v}2*,9UܘJyJ-2I |FT{"۝$ռw>iReGdSyJkYR_vά+5D0h,2U:^+ +r;N;lhYz[l*u.Vk˭}-4!Ŧk:5.QLRErkXSiOo쩪XLf-Z4OFվ4bCR}JfX:ؼ`w#0Rj`RB(Iv g9=EttŜՖ'u'e0C?.#9&;ӚjCP>jVv$JfNRG|q__૑iJq%O>΁gw.L^j7绩jIE~u9DSaTƼnyW%7YW5?eK6&'rNb:2pML9C қr;ue't,Yˇmte= 5܅`Ί_UD`sp +RV<ܹe35nMGh&Zszv (*2-YOHgDm#f^zwK''n@2(7VWH犵c$7ez~kV RX ]_t]UG[_7陹^wL1<.z)7`D;fk[<EDE0Gr99t^]}] 7UsŖsbpo&Gis9ov^*\(f4Æ8YOb |`,Q Iͺ2J煃n*2=;m̫S(aY90wǪ.zTڞiDx`Nȝ&mA_K{pշ9qX|J_QyOцrX~%;S WH[z p&'e&7wӳ@r@K_N"I^~ /JI Sw+>ЯpoN!\+vH9|>A?FL'^:|ihbZ*RX6nFGhҴ)յTsD8j ]r}j2hjqj"pMّb!W*S.Y|W90ٚRwN9eBuWpTp7tf:Okure7@ +{\7Pl $F؏6tznW&ARXmA9EƎtt^qEeiM3oWv}MkIg1rw6VM_I$aՄΩ}6,A]Ά`w֗'PnnhӞו>U,U?X|FdI*gg]]`q{ʱZ7 >J(W1>Nښ5}$1m +:w=;4 R'5er^x.}yș󋬴KT,B\ۮn($(R{ԟ{%=6 +^#VF^߽dyTrlkA]|L)';lT$rnhk^ v1GH+sJWxOWdMѦD{jpXIpN4t_& 2*Jh5P+<(ut {qΫp<w JZJ]lq/`T!eQ֊{'<ݸ0 X/&Ļ0%r7[XKmnR%6חFxr)HG{"\x^pFKɢ+uj=)cXqSG1:/ +٤eSE_׶q iK8φ76qcylG:pH.&n`qIe[/e#з|9^r-gqEr? g'K%}3Z l۬ +1g#^pG @pH"&Dh?@9.'2C2S}#ʪ*+n{B"rdH-W~ґm|BA:Pֶ+s躋)L):-iSj}~M!q9}Ԟe[n]**U䗶Otm !ظ0t*2|thĸjoR!/{(Q>OO8}5MAΪv94z3q$(iњJ19Vhyj÷À׃AZrt{Ɂz)Gݙq#G"el˛)r,k>^)BLZ =Df}]1BVTrH`k1ѭgs`ԑt]bQ[ʷ4=y44ȗ;gL-!H":;UIݔ']?/f'Q!ԋA$ær#x=aj>=춭f& w~̓7Pp=B)#˘q H\9љE| +nW3Utz[[+~MӿWApOrwyl;Fnҿ8xٿR6ɳW^t@DZ +~g|݀˸tnۨfq.fٚʃKOm;=~1j*"{Q{8_$=qVJ)Z|?{ib4Wk on T*X+&1+wsJqn;Y9*:|Nc}/ϴ/ +7+wgK3[ lMߋi}zHa^]WGau%FyT^dW%aƘx<܃)n, ;։#Vwcvÿ.(7]w+@KY3;ގA4xi )]eҽyxN˻snp3f}C,^;JX)aj[[&]O9p"-et|! ktQ\LyJ&h75Qѻ='TΔ~NyVk=(T;ýshCJs؆~mF]3|q5LG[@ݎnsnXק oXX?ǙF3 ]>AS#I~13*F<mj90+gy'܅:/Ӳ#* k׆CR֬0PO6p} NISl3h 41:Kg-wvMtHP}Vk2\~+ xB.eOor38٣ynȳ +P Fxzg/m-w^H[/_zЪԧ;(*eO[#BgckG/I)L;‚½Zbs8PO핏l{H{Mnc[lLuHZ@?X@re09|13<,>Qs(jۮg hifZգ)܊$;TǍ=l NV*fW!rwvi~{'Z-_9JPם>7a5kwDXŸQMQ/L )̓Ww ,.)trS<;}nqdH"_`DYI~E 7!U)o<2є,Rߘ *v>xRߐHqEYlf.+}Nb73lP[:f-']9u N4 {xhT@Uݖ_׿1 ;!MojԐBʙxT5@y綪#8mrOb~_>c 芳}Cfbo.o}eؿ˘3j+{.6ԊibK*UY~}n\h xm n!wFq´lP߀t[kO.-i"=%GfP_b\qEr(l#fnC*5"1_z෴a]^uXֽ/;![a5u,S!) 6=h߇eM h!}Mpzof{L ֒}}Fb 3g azd{Nf0HIq"1$<+F̣.Q]Me_\5R˞ZYL\ۼw^]ckJ\k̭kV#HH~(@fC6 >hXFt2[q]=D <]E2`+f7Qos@Tr;ROR/DzEذo.VAɻk?37ONEdsSFУ_vM)}$&$ _v;fhw%|3.fl-Ú ^Pi"oiyX3Ѻ50Ӕ#`нY4|:jʳ:シIЧR;:a 9AH|ӹ +DHז$Y+!RXB/HaI,ŬhI/۝5Xu!7`;[P{z54b;i mjICr3wT;8 PJ%0s-ʟ)ؠW\W)BǢ[VZfq#@ئj믺 Sf ] ?|W-~ޜZ`CNIc >a=۸Yǥ5ԱU4Yc*…TNo{h6"sDU{4\ g_qGcj _~-OiB} qUy_[j!3XTtoW.gڙg Xד*h>rv~Kb\yqU1ExɌ" pr Uy6ǻӘs-Ϫ +6G!7Rk{zF]VC}әb龑fZ3W\wCT?0* 87FmseKYeHip]eRVhdJ-4ODeA3nT}q +LSuz1R;sɒj.OAdeknbyVD?yuXa\g7uw9fDvZkse}"3jrcTIJzp.ĖEh)ԹaQj>pzU=P9{+*YoVsU:# ªV>&Si CO +i#VYoN_鏞<@F~KLUs;k$l5漟ԞV7lY|cŜjS'up^2o3F=J9 a57pr>/Jzc_TCn#4\P(x/μtF)G)]s +4&RN)S#xse]R=Gm6*̱`;2eM/|yͯh(7u<~Tibk{ ?1ɼ(Qj#bA<=g?O yQM oKI^v(書rÐYI1&U"# s /g[gmy<K0RuYn%p/N, 6|당J7%t'bQ'\ifvFնd`@7qBu>eas)2yvb:b-4HQq){nRk[HUrK%M4^+ϋa'EVX'/\e7ZBhj;Tip24Qu_R_5Tr()КT\Ұ1*BBW2J35K$.nj|k;j]B7DJFwWբbL>)l} (232 ,sI)IWH%=#Tm1j. +wF+&-j6TrdPw/3[kiAvojTWmgӠp]xރ颥:ZxRVj[((Z*qtT*5XB@4*s^:'ZoJjյ(-4},"N׹RcJuc?+'խOTW)yj? Xً:}&w^I&YZ]`l(uG/FǛmmm=ʎhv\:\ߖ47wJVYД@P4 IvMӥnw#og: ȥ-к#S)~[8g|>4q^jM9},ԛ*! ]ix+p4j{ԗEWNSiǟR+#ĿOX>U'ڵ0wٞDc i|nO}Ҩr:lL25|:ENebBM\lٮ̩/ibFk(f-vrRPwGӆ(\씪'zJ/-BS.a +*oK@n;`r⃄Z#Xgh:K+}y6UN7`R\{ΰPL(̝lpN_rйD,'??֫:[xߠUպH0o!gx&<\ @%Rde~d@|/V'@k?u*Zܲף^f@d_OkOLMG_6q$X\~j})#F07䷍xX/~_K'[Z +B!U~)z4pk].01" ռ5DިA"A]^|~Qcxݏgq 6eb 2dW?QYl̙EQL.4[vGy8o{Lgs%/fk(ZVO5cv^?r8[URP'7gh͓u+k]<=Ac>DŽMIr# +Dwh+_"ф D bt=i%͔u8nf=șޏSh2g[壌]&  ~_-ؕ s~[AG'I.I {_:h 'YVLr˝;ՌibFLs2'J ЇXX/HfuQVv;&άCOy?Njk B7C)rAqDK1"\9H9Gt+P!T//~L_!BnfyϘXkЛk1c>?+?OOq~z1)|4ȽO-הK0|4"B^kjiX~笿Ғﵳz\%q{FB.^j 5Q.ɫNakf/.C]޼R4KByw8eET* +<#&2Zg>-G7|P8!:49:уQziy KqדC%h^{o[J87^}KRy)]"w}AW**3A-nDϫ,t>" mɥ投%*vs7qTX/.ԟkM}.-x f:ܽLtFnfKlfe:L9毷w.{uܟ'M}^D9zY|nY3w?~'+u? #}o߯#\^#?}L;ܓ)3٫s m%hcI'F|^Ǖde;ڷA4wQ A؞+Chف̧4>PIrPt@}[UcM>hx c"IKՑa3-K>Zקu?Y$:4.e3lpenQoɠm_qF3"mgW{5rJ$J|3EV_bb O©`KbXb#yEv_p%xzds[sKT2{?J$[,;JkJJ|-HA(u Peʀ +%d^K~[YK$ÓT:&jNvgIpP̷ij}.z_9XmC>͏~4Q@de;Ⱬs'ӧ3Ujy>ZPpHW @SW{uR3>/DƾT3)׋aD{JGa*wgPF&mȳf铎kFC?ء'~~גzgաL-1. +b$Re)iclCQWE*1 5W1 s`CB=Oʝ9pihQ:Uo%pN#LYAfmŴO!5Ϙ vt=PxTߏ&T7C߳o+̊[xvXF?tjZڝxv)-ۡ|SF[7pv1U\ ֵ܊D_ 7"MO+cM*IzV& "h*P;~||xnˇW XE]Ϧ,|qޝ[ЄqJܛ$8hKHSjFUI{&0Nl8Q~zݩ\\RIdê~WH ̥ԟl$pnhFR7Z>Yr+:s~ftdې*/yzeȜظ4J9*j}&Kd}3/J؆]Ȁ6_qL4>)ݭ~LC^[4Ys3^|tNa4SV]A<q^:b $%X~,t_v~^=:u-Fp%4g\qWKцszY(TxT5ۿߥ}Dq||\4.` +j@Tl]yl5oz.2rVs~O_tޮB8O}ժ%aO[ .0~TH(y0wy]`)<kMHje?۩ϗ0o˗Pv +W8mҷE@oq=7?vӯnshWNN.fBqKMi +uB y?p:+'Agp2jtz ;]Ll2 q(4Yn}+UPߩk*X^'i&ӽO'l_ėP!_F)zZnqCm {k&K.eSgBCՏ ~P׷T_; )}H8x:Eޕ +! 2Y !^ v'ܣSyIjS)NoVD= T1DFBbp 5 / m4<ߨ,|Dq0KQQ!G}T\j.&pשP5Lu2X⽿o[2Q Z ,4OH6po{y~Zיiȡ(͟듎2Teک} +w+ߋ9~2Y !`Ou/->Ȗ -s7 Z+=MCjvKcT~5Xn '2@Řю;ծ_vܧk/hTOў +X" jQ鿻ksRݚ!7 U/LR]I}y{W}z^P)MdTVVt]TFf.9 5W?:}7žif. j[uA\) .u,hx|U'@Sm!.F 䮴TX:%HjKӓ2E)]*嘵rs*dTd_/P6تa5@jX`kʋB&@DjnGzmg|̀=vsO<1jdT?5db|~ՄB?g?/ƟϝLz+-!Z@Po +u-fQxRŽY73S<3r>nba^K}n(*S+ }*?@ְ1uZsVϢ" 5.ff^dS E] ZdHTT +/er"嗼Ojuci5i!Vˊӆ= uI'92V%%c՝gighًo˼l7׷TnO+XRA4coma_d=ϴ:OYA +BC6yL$mY)1.##;)b3IhՂE6,xia,敆VsHRJsy5SLˈwq;pN-r~qx)v5SOi3!K`Os $<æƾٳ%p«ke{@ KZT) NjILJ3 nrZF+0"@5+u23JU}3 ơ +Gy2hO`7;lKJ5Wfa|o24{n~v>fM)( ZWC} XE5EhÑyvZLvPSvP`NmۥWG?̴΍S6sl.ej1$~g*I1 f{Xxzo!wD5t#59Ӏi־ +}guwKƌ0ywa_Y*N'פ%utfˣTס,ڻWa&9nľT%^m{lkmFZ +vj5!YU7 U:Y&4zA/lH~{ĮZ]>dnzI}zrmB5L.ǣtR6?8#\TKp:,d5;ErJzL=0G38,|9m9TG"Ai=$Fq@h H>ra;h|ht#乨7lU]IWG#w쭤^2Jp  .w~~N>twjHR> ohj~PQZ¤v >tIc?/xј.z#b5Nd yp3C}txX,Ω8H4M5{[ WO5ilLu>bucL˴z\ ?/ =rl'_EZRm]?ejSdogtGHX!-knM$8 e\t?ܪ5ȿUf;vWAuGV˯Ah*_ kna2bQ0u$т-Y +׻>/i +)\g:MVۿJd(x(KO(CYvȥ +jW1>@hW@N1"t] +и8C9Օnj^#2O=bCڻe[ӵlꄌg|tͪG-32? U2B)b,tVQš"&&EC|wpJ8_k>[CUZ?*~Z3Fu zF II{F5o+2Պ6skAg ܍wUZ|ǩ XǂD/KnŶ(=|@lb>V ,-s5yR}nchubE+[O#fDwіNYo_ ^//g#[epNu~ +CJ8ֿ"}Ni֪%禈JRX Bm_zq黑g;mi h*2,Mi^iCyH%gԻ8M>Rq{$xk:4NmG;hZ6O2w-sw"t"ұV#Guc5֋F-3h 6\VceN v;`HmqSc}JX"zzbW&-^)I:mO*|l|YluЯ*/[ܤ-F`IClzZgS:|Ә +[a+o^=oYY/\)8n7ޯ7µEyeMeo/Xo#f289A76&([YWLPKqs7mRVi; >ؿA?WhOd/~MQ_II%$^ӟ+>;L; Q*Dpq)zBV?2h;>^&-9爁%%e?LT%]Xzid4R}<߸E5_;O=T|ګpNV%_xAEd| 2j:-c"׫;AWߍKJRR c66kg|Hd6SI+dPQx^=nvْ,W5I{`m$OkoӤt}j]-* %urXx|]ӕUܪq/IVkװ 3]@`C.OKw,@Q؇_r@:ݛ#Jr{X\GuB+ KjJ5/>jSlvt}Qc9ۅFu& )kiYVRz @Cuw\~OZC2Y7g4X9wq,pʶT&(̔ F~Z/I.B 0ˁrB)V@M^nj6]@a@b#,dCفʫVH3Koa~B]sGD#/5 ⼋!n=rțOAmy9_1j"X_hujPM}6TbPԲ%疆x`B!HȻ,cצ=ДnEξzBf$݁}`٪Y?_ Yp/( @Ak\wyqt$]qnN=z;`l pFmq1.P]yNR.*z"}`:'FQ?xh ch|H <2SwhVv,+r*?ǖ4҈ æ23&ߣ/ׇw@%|Q0}YAo_>F~ 8/@ؿ?o +92cs%sÉv'Jrz}CX2 Н|/%]qt[z m.&Æk1\|wafy(7*?~wՐ6 5[h.&%tbYV:,[j>7Lw)ʋ:[óP<ՆCi_!f4U,@yx*~6Zhu'[R47Ow1y)nwڹ>stream +چ"Ui2DI=eatt b_\U> C\'ҭF¿d%>(5| +RPlZŸLTt7e9 K jw:bAel dm'8u/!0. lXqR1Crbݣ粺Ķf3&~8owȓRnRQ_$*ܬ>6VeWEQW8 MeM& +fmp/KTX r&띃Մ}&a*㍓2oi0:UwW4Zz +_F-U5ۘEJ4&cbOb&x0NHtG*$,FJHC?\wÓ-](Ϫ" Es|}]&yƣ7*,A\/%rSu6Q?}h +uqqɵ;/I$U],ke si $s+7U6|. +̈jLѽY2kT}s'@AEy:;ͤ:E5+[DD7V7ỻJ~XM\CyBI ߲WO Z+jZ) +us>քv Ȅ7̸-bIF#q+@:j2mH Q + s=1~ioű;giR=fByIM`|UVsacHvKg0,T"k;S#-t{W5d ȶ#[#C}\ J_&jaNo]Gx?,eO}# !\5p箸*&9/)@qx3TT}6[8ض -)Y +5kiFeG&a93 >UfsgE8y*zߗFKφYѹ w_F5Jb N՛ԴԗfpR\ +[ T٠DAkLE_"c:]V|k.}ʨV +URet5uLW՟r{ȟe:^:vgy365BCK WD01S>w3;9QnȬ%2sp`/ڃbvM? +ob&f_o(-oF@%JT wI\Is(;2e&ᬈ7cWűT9Q4Xkk n[u6kiŻ^ƕ@3lITEwWS;sۘ&M;&ZKb2TqhKy& w1XkͶ'@"q޿jQ9awn*N)<#&!5'ﴧ/XEcSv'[qQHS'LK=\#z5ږ2uahT9=Ly]ݣ"ۙ'B@vS98XWnޟj~a*doGg)ϝTLV3i+ȅb56mAP֭̈9sew~ʹq6ThW3yX*WbgjEiTVmðUlm CX|*}Y\<[l3#W"_vk?;{4 1SS/`)qSMkfQy(X"asHFi1JhF +\1&Tw +?_H ?ql=k*c 7ŞT~9Χ Gr۷֕a_ą9\CtTb:%W@:Vr߾Π |ē4*M?s"Al`\ps (7?j6'Ԕ]N HuQ]2Uo4E{㤄bVϒetfϚXSLΊYZȩO ۶-|- Cꙡ=,UMn;cnljH}`ۨ1[!1Iw";+svUHS5n@CkUsz O@wIܣUo>&v8}bLݽμ7׀YmW&#O" V`uM)M~zWǃ"<-k{ps +Zֲ_q +e}.΀UNNk/~Ʈ쁺͐<˼N˞u`^{ _hTu1|*:}p+;|r4ӓk1tAY!g~ߞ]{e{xT5AԻAp55_!%(aܒ/xs* VvPx&o4. NܟpUeWq保G|H_=&:3>+ւ{fz{RV]G8jBJt! +{/r?fQ*à6 faY1{ŵwx~cOjccUӼ(T.2:;6~Cԋ70#-85ఃbϑQ jP`k JإF !ӭopw'ZuH4Ѻ5iZ+bt8&6o[-_fG+$hɵVP=!Ua-5b=;M#{QР +~0l +ǖ6JX@lxD+yN$YUBa';/noJZ˥+nTzx}[|9 EZy=gzm`7]anj c~Nz3(0]'_~ïd l^kK] T‹z;7y49>- w +^`X7zԟqaڜ˜Ttx@cN+up sFS%DiBfe6R\熁rǭT-Z@kb3Y@Lw6E&9Aŏa=5<ݩ=͛8 9 +X@٭Hσպ1LOODh +W^XA;&8 +ʴ[xxŬL@lhloJcw;,ZGc`{!xoyx va x%)[[sm0[`"OQ۝7,pGGgJ߹@;? A+)r{uer~ATBSĩV"0pY,~ |g#r̼o!2We!z6.\V :wDz)Z|I{)Y{l>a Y*$I503S̶lLbNͮt4r!|p\pݹ=kI7 )Zē< Dgዜ}e- EhUV[JOT:ǍvיBG<7Q~neR}=7Dz4z6 \V%lk?N9!96jleICXr,y¤F ޅmMYt"l +yLg]F*8266xߨK"RN˺=sS+SC/k"g ܶܒÖ?~ ǐ*iDŒ0-.[<Լ*Ґ6KsSOP˾K'P) +5Й]f3=Eq +yzJ0Rn&7UMV<ԃ_M b@MNMVeVj,C]wWtD?`KOE45Ôkj\۸57?2u-TK/lp@%nl}<՚OG#??ﵸ:wzTɟ=`qEɣ5N$[<<Ш]74~aOo )v蟄GS`yF:њ)4bNl2eЬL{J< ݬh_-K *wH +}l-zLMUݳ$6kȝ]*#թ.?gyPmP:Z.eW]__*/ $Z 2XQߛrtC okv1Q+[w9rRU@ S\ow>f`]{-#< \d9z"rw_=ŭh׳KoT(Ancmxէuxb[>{B o]t!ߙ%4(yW pF R@-ʮuQ`Jmsoe7Z86Df~`t$)RroyH#fmJ\M' Si P,Yݲk]s$>{H9vע)KO9y g0z]q?7_ h5&LPRS~VB!O:e1~ԶYoS܆ڇ_^}h%`[Դ=gڸՆ^i-ԣ 2/Y&ڙO HXޞ"뫱xFꠃZq(Z4Xm{7i JRQw- V% W!O*J%ikt#7;p^b^\ ++SUƪ ~L(x8m֪k~,D+@D\#ԚAL7cQ 1CY⽶~{p­S!ٕ+9Z`'UkzQ|ĦV"?"( p +fG{C) b/heA$V0I=7Լ?JvN +9+|kXŽ^ҬyDJ~U ;|J^hBcO&^˵R}t [ +d5|=7%LwH`H.PuAhC>J? ͪV9I텆4*&T[ߓr@4}n4NM B;(` 9y>D {^is_ϙ>չ}aXiWu+)?ZauN} =BQ}SbdLl톉S;fH :k+\ ;ګw\WD g+Pg$Efhl 6ScU"/ܗi=+a˜*sf/@ wօjs¢qw> ,vk%Su4eŶ5g3ʀnضxσ'!Cd4 +mHr鸋/ߓ}b5:|-3_szb g1 m.=ei;Z`04Hcky$ ZYeТ`?4)Qjn-gUf0bD_j:̶I6&n ϊ>=C<=<:;"EQ(lIzP%8+s; _ߎ502#k{G\v+qs`]*Ymagp]GݎTszv4ӫ7T;lFM\½0 " |BV^Qbvn3sx} 9kr:Q9R=R(Wa=d_X`hxiM+"WŤ{N:?H`w+|2Ai2GOk߾u|wiliA{X$/u^Oi0bp,'ǴpZ/@a L&(0/j'IѴL[ʽS0o%| $Odb^2Wd^%Y:hi5ωT?|T"A(6Yܽ'*+*~"#-gGBC^'W2"w&kv +1r]HOVr3=ˈhh汝 }j(9[([#\e3^&m$~h t-%⌱ܴaؖQv$(t)ff,XK?{O:[_cؾH(5ęgQaU `?;XY0X$h>#ϰ.?2}\[9aDX ZFƚXîN(ʣA .jU{ҾKW}_|9 uh wMM  O*coyi_-CEH y(3w5[,}f;3epAi*7/w{U  dˬZWu|BbazU[ +$/0&?ڬ Nbf['#GXylݪ|z. 6pAUBrUw3o? GWcJXt.TzpZ~/][%;Sd(RXۥ$qR:(,tƊ 5J{g pe3a:I1j7i+rp7m) k݋rO&+6+bw}\0R~zf*R@>Q7❟:g?t+?z5q`k +ދDl08s}{o?~$VU*Lyk+&w(1=_!Ϫ;=q0 C4n?òFU"Ǎ6xYײqģTOZ6~Ludqk ,.j̬8 3yPrea{^Bϛe 5;rE ,h/v,{Q\ +t#V !%~:H58#ѠW y{Oj=wgSdfu|܎2X=J:5|̹rKW^_?_tYPv#Z +,Yxvm"Mnd诂ZTC:5e:nYi3Vh(wIj}S ͽ ?$ ]Tro*c Sas i]U=xUB_;ꠁK8^azlx\<ݸ4tN)>h=۠؁NJw4/ֳ ; Xn}D{)Up C-h42A3Oq ZN64kq2ׂxї":?¨[qG6r~ٵ=yC1L2VﴂSrG׈p#|g0C{4@ձXhIV8`Y^87 D4ߖ^[nj^J68'YO 6t0zFW#wM2B5Heq| ZqU$;?y׌Hi MJtc"nW9Cw3ּKEK˙"nS1! UbkBGؼ- RvNb|C!ΆuG9n*'\Ko#;Q(JդO,7頪s~&0$k>5 +rN9QE%Ujc$!o~S6Ha V(iSBw՛`v% >K|OvðEo~4 5T{q5jXf4v9@<8ytX: ۵Tمx^ ]E`TPTl^\X =),bT|h P¸ +h0K;u`"%^I*PngM+UTW~Wqk7Uw 5sEFTYZ4%Ƨ(Yzkc+|ZtY|Gl 8F +SKpajTz>l69rGp[K\qg N?zaE.,}d3-we?Ac<9ʿXOT=YyD_SåíL$oN +}T} +f…/9'dcAo'D!(\Ȫj_T_6}XEâä&Kqr1O8W+xqja@ԏc|@/.Db%RctӦ= RlyN PruTT7#};$ypi%Itެ9RČʺv }gzsBw7Ҽ-rl7UOFp>lJ_m7*u^Z2Έ3X}?[-B$3~A5A)9Xk].` p ;Q^Zÿ{{zjs=b2?i*, +=;<%ٖ ܡmdJЋ%WQkȅpR՜;q; dq'j#cq蓺C<4hn@hׁOIO;ϭvtX*>c%H>FoSLa2~lv*R.ۇӚ\E$lst’GK\|=D V)8֭(\\oaj: 9[G%˪%v3N@p~ +!.NN\hkòjꔓ\<5[(CG9LYR ~ ᕁt:>7[\o<։U{0Da׻Aryu`#&EDR~C¿ 1 wu+m'#lk[t4MeofN=א;H9۰x'hɡqKO }L|WFXD,^$(gjiMS=q +^$u89/-A];q42sB~sLvi=}/6c?Zp=D%B`7m@e.WfULZu9&l_S*UϽg~Z`Y5T@. Ϯm6eeOV!i-vkڵ>wuϗ_FSXhm߈ sWrRc` cʎuYK)biZ"ӟؿ{hd; W+N+_OrhU-ѫZ6,(|!ŧ& !^>f/sL…mZhmH +hm\7/r'; hPڮ0J{H(,Y]|5:Pl:1J׾ق֕Aa)!G.V:ֆo6~7 GnY3E{m܄r;n[#hǐl c#N9Ym oީؽ;hZ%#q@)Lq}D [ȀkqC4泸‚fyh'UrJC^wejL"o|E?-j5LYzy)Q~ ] KcҬL=S85yl1*'MdH83c,\+nߨc/lj[AzO稜hڳq L2J(R4WȁB!~CJţt=?5NtٲV9ٙ |}.&7£`(鮡0kB(t[V0o*KKʈ]O-^3G&*gCٝ.lmz ޮIFkz|`K_Z|gkAҾV(]@-Ŧj2dWn;W..X3;=-$]~Y\]6T5MŠ_iQ6&5H=d +Y̑=OkzFzL!L+W1tx)eFʁĤn5Z:nppvnjթ$knԠo-.u[aJ_i "fk;oh̹v/W0O}:9oG;-Z$曉MaReK)=گcάDx&n;FCVg +]W!t;`W^OQ["09i2.u{ bv^!zV *\d)7KVJ  &J .(ݡ:|jJZ4ZqfF8uZw^GX.؇S[`S#Tҥڒh8 ;NXj*V^= SX$~WaTQM.<_8j[_.T41tg3NIΈŽ5ZgP_av[UZߦd<>GƜR5꘱ZǪ:vȘ> +\8ЧX[]`"nf|oYzxz'v,k}V[Zs=aUhb2xQ1`z۠S_VmtJl7^ݥGoK<,e:Uʾ̿vJ+cY`㕛i <=Vݤ_KXjaY6`pcY.DSVSC&s<&D?ZЮ.#OR&Ѫ v&EoF5π(xu:]խ_Frq%ۯ!7 >ŨܐMO<*"QoQ + NJiVϟF9!(Au1]@ROI[S}-p\26U7פ5;C@~vX0 l_?`|g{ZChY ;=D1h[kEc% EWXby|Ẽhwvaevd%gNN'pc7MIFAZUC y!6&h^1a d7dw[: e{yLR|މR[(εtg3kRj(r*R/Ӊ@fC{:8._V"Uy]{+zcO.$k”Kt9U&ai )7[HVCCX^9=bHo:B#߮Mn]{l.&PE QzPx4Xu /+zew[ANR*67J9"ߑeO`o5 t׊U̚F6tOwŲl>Bda}펖;1_|+89\}9Ƶ'הiCj8=ޮLړ^`JV䒉ciȑɚ_Mk8_0nDZw#&Yu,6nW8~ShsN,)Ub4 y rfN1 Ȑ՟yC| +VndpjZcz8(i߉F5#RVykp]V3XC?>_S +N_0XZTUiaD֍t#ό|~h?~]R9SAyVmlj%یTΛTf ?Ck&B;UA!2Te WrA}i',-G[oBG5 g+yݪe[_fWhx![S16j[m01׊ n@(*ҿk:۳3J{ +N3Tņ@~ ^y8@gr>Ҽn:DB# vٺޜ)QƱTOgiIG߆v~[8v_ |_#JTu.ɹ=VXZk嗈kU;"\U8VE+`f(BrgRĚOoS< D^9ׄG( ؕ*Ϛm0PR8zM"}KT +7(FO`Ǒ=fwzKDyߣV&}(cYnA?~gqoM*Pإ4F/SitAFd+&MW_9ubuIB]-Me?DX+N/#aToxb7S˙_`3uE{ѫ 2?? "e c ƻ}4V: 8JCjElAV`n)60>8{X"J$nhܴŨRn{5Ǜv'ysj-vڷ;kG-ڷ@%:@dߩL)ίvOk\ +vc(kۏNaI/wPo;aG$ L;~e < 웣j*TCnAۚ>2jace,ze}an\!RR78~A.vv`~ b0 lDFN,3T`D /tQ0-_CMŬ,QQҺ3%QM2;ӆ[w1l> ޝCQK2\.zWͻy[o;GԾ^lT] qd@ڀN(ˤdgœ_5<\4}vM~t}Z#{}X?z>Pm|v9*jkԝr(XZXa +_Sr8%?5,/3V.VuU/ݞ]sn0L/dj;tb40m;NnɘnyӲ7YGomPEmW +Ԟ}+^G 7 ~ɟF]m OzzQұ< B zf=m.) +ΉX}qI_w2pR,(x򡠭X?/@gFr}6v%Y:<v۩1BR8넮^l<7%}pT76Zհp(QG6舷FTH@~CLҪUkp)ʳQESӯYfrdt_i3jͬp5GGdxavhݠakxJm -mFmw\ۙ7:IkH烃=c.{66 EWZCNQc TgLZ4K*yA +΅o+ރ«u\b _BzoR‚x@4OÊ1j3&%@5zk_J8%ov>LuGc׫N+;=-QX[f 蛣 vϬDcdqS FCtTėӸ'w /@q{6jGG֦\^ +U} F.R`f֮wme@JN@/;<{f@>L8z5 4L[ԡyti5äA&dv鴇e-J##o)j_;f^;We|$ aLjN:;T8zT\`AQٲ0 ++K(քI/A&7ّlnݽd.9sq:ttzw,켮#?Xu_qiWӧtkz11H}}W*P89IyJA|h(?ץ6=J{(Kv)NXARmǚԜj_aF‹S0[ @y u5QLƴ1tn[UiMof nҞTqYi17akݵD=qZR:ݯ5J))-&^3;WÏЛgʘh2 U'e8N>i]Ktw m3tZaF`֣fNu\'[qāG mE;#3fwvY_/($ Uwؒ[AK$4譃9$#YB ~GE}tRԪ]jYX]i Y2^}V6L7uK.v&1V>^ r+X%fuxo?`)2׎RXJmu.׋a9b]O[山ΫV> h,eϳԆ0ʘOOTO$:.kӠ|ƌ],`'v3X]}^@RO͞ԟM15ų*͠33rD4"kh3:M^It{ADYɞGP pJ(sxzZcPOKcd Toz~{&ݡrw~a[|u晝sNgF|hMhTZ!=0ؕbr?3z7cxuq5z~/5N.otl4i ҷGv-[(zN;~z0XGZ 7 Gq뙮&~@fsLf~^oi{p⥗ח||(?Xo\bYpJSt67H\o6#MGj:4/~5<P +%yًklJBrþs9[{{^buJZGZ?~U6V%X~Q^cx>)k\cyj}[۝?Oafަ_1Ë^?37~>Hm&Oˣ4,zoɓR/E.i[79fkx}9ohBQ +,Q+ɾbнsD[1vl8v7nJζ>>5R Uw} +;LEN;b\= ڧtG>&5z9*V,Ў{RI'yYG$0t]l.nϯoW4=\b~ ޼BWX;I2q~o67 đs4fU{q8ETsӴM]Q&f"!)4a,էi#ɖĭo}1h([} +*{sGCإsQ1\:MQ̳UcЃulKȹH{/wJheyyN;W|~k<3Y!]nG6yvc`yҺ%FcÎÝl5dt "H3YYn& {m;ۊ :]0hbQ[;  kc@@ST>[wǖ\Mv9;܀*GnV|FP3P좞yմ(u7t[쏛fF4y6Y-Ͷ5Ywr {u +.pᐛ Sε=^ށ|Ub&m;'^ߡBqDzikr{/Œm4@SDbjW%|- +%'C2D>-u#/lFJR"JgzrGjŕw1t ;X"]T(s2G26=FfFcRm> 3u)y +zp@לe/fBH{ZKXe5->!f"N|񹇣%1oUdkKe .BUѕ +eRՒ0{'t-%G2y\̙v>ALz-Pɓ{b{LO fi}ܒ1=5 ;Ȍ~>d lG%Ӕ4=X>ҝ"Tu4 +Z/Hh.ǽ ߧ铁N.^ ; vEڶ_'o&O {XdDKh(ӝ,L r1o}kfq~a`!I~g@!0lєi.q`Pa貤! }hS>Q O<#c>sX WhD5O&zy=xl +o/o1j Q\wa%vJ淾~RRqqlZKt]&:t&3)EoJ2/އ·qgPò_'0]Uc/Nn Ȏ*aq×a|NG kPǢstxX4{Lje||'4&7 FtQ>>$Q4eb.UR}bn6ҩm,ꭣy~頍~ ʁv>U>c(€U`Ko#S8{@i;ԯ?0Pwu[s4/#(`#Uk?`bccB!REúy6!"X P;tTɞqO-w6\yFitо96ۅTҚ?0rofz>ȎHv USt`tTpi)nzJIcL5v+t]nh|.n `;: gd:[?IOnE<ezrZUt ^^T4φjFq+]ѷ3-Q6І :4+b]v̗x$cY-tuSh}< ު!&+:Ѕ;'k'q(p Kֆ?ҹW$ +פ^qD@pDsLAŘκ{u c:GZMw֯'. b5#-D%x19L*Hj4gh&vD<${;!Vx5Չ޶ +9C`c⚟1c;m|4=t!x%dU=PA!wDAs'siɴ]~}rhV Iߞ6(pYt9յJA)UO׳t$3J *f)Wd5dI>cy4$ Hmz|c%M]@^[-J(1t؅o`9xv#h=nYS*+QwFH.ĄQ`b`B]gƂ/vت>Z-ȖX塁V:Vȹ$A 0RXd@*1w"ѶgIL׭j(6u`ԟO>Pc>z:P6p[P;UUҖ[[mz;h')(q4S)p5˽+SqLT]B~}x<%%me?P wDθc̆2ԇb*1+snגQU h + ': Ka}ɱ9xr3=7Q_fL6BQE_\.P>KoA +Rg{ 6g0?hΨM~P%ǪEmwo^=jm\:6¥iškT+-C RGҝ ۮl|̇&jho6<ηƄ WZš"X +O0W⹍MF0 > +KCf3ʙtDXĦlͩ@CSwȮ6A^#[:ˑ} woX GnoG֍AقXԺ}v)4h'erCw05m"]-s?H>\`2RѤҹA~&TZm:*T١җWO__R$UZDC}W˗ n6٬׸@\l#Ziq8;gv}*WNf)ߕQvf6)khG:7D=SI}aedߨ`nckŧsvmca$giػ`% I)lm<Rritؕqs*az8{IlfXFEf؉Ǯ&/&'Ef `DAB+ rw4b}PC?(V=;[=>Ma^l1/V?j;oR҄&a. 7zdG +Gzaj5٭;n~pP<}~jVYq{s--]hX=腖P?m6nn4OS/Ut-,;flr,R]9*.϶ |+ +5:ҕj>3bN^7BFӞбC+z@Uj-˧S86rR?emsfme"c}R-QEBe8B%MUQMM;s),x`83x{ +0k~h\7]U~Ar lvX ]‰U4h honb|-=k aZ޻"]l+ٕj7RPXʌg<|@R/+F 2cSszd!% +jqaԈMUX1иi):5e}_XV"}j*K0QaEߍ }/UOT9V#Bgna3kG?_^bXZgm߲l`kՑFWt3^&Yʨ}N + ہZ^^lۍP(B߼̲oҜ Mqv/(y.'"ٕs^A_|geҷ[z[$S~N7 +GN_w^:3P[? J1*ddŐ:%i'z)σWaQLXRef9h/c\0LvT@] P |peZ<-s|!o.4=2*_jŋޢsk,q@E#I/,Z'V>>ΝOwօ5 &ބǷ5)/wUsi,*5\n.sdɈTRR{Bf0MxK,l~cinu*UZe95: 0Xwg!2k(Oa p~/z;;S'frk 94tNZݻbխaN@wF_/(՛ڭv_U:N`ʧЌOРdxԭB`;`-#YxMQHΫw*w5ZRmoC1(k6i;R/br:sbncF c\k"G;ڷk5aX?r`|*KgvI(Fu tfev/{v_@i͢5奏kJF!Y?CccVř,?y:6ᢲVr_j@m +F;+Ք={7آ4 / YNWTf&ӫn߅BטbV6OÅv#vn48v=Ħcvf+#Ńl7=JFK{(c=ȝ*q/ Uɽox?շʉ:yƭ03ȵw2˝lplfw/6ó9Azķ_-I~kP(]*JœTލo:e + mlY!jX+ܳ`^n3{wuZjSG\xQ(wg:'Y/nl31àD/yCӱ,ѥ}}8n:~zu<5qFNW3,shnoz̒$݇*?б?U9yE_.Rek5Ԕ"( 븜8= + Gr*JL?9Kn3H]-4;ݭ{$ɪ{XvH^ƣBiea3agZGt2-&1}4-!>Uuj ףM“$H)·M_eۖ-mh__['q[mvkLZP`2'IR5|{p#` _~\9ܛ]azxJh^3-t7(q`[iTQYE$&ɛf{mH.nm_]nw5?b>4B4; S&|<Ik64ɼU8oH+۷ee@Ĕ3% JkkU7dq]c%| 0~bm1&۽H>eY /݀L߈2]u&Ca0{K/<b9C~5uT+1r=H&f͒-7ڀp3 ꬻZ +.F$RKGשq 7̄D O[`E*>3U xBᯒnBXO͐1:j1eIr@JZlB!}L8dHvvz7FTzgrK{s2zWЯLjq~mjc[!XQGA!Uq wYre~\؋\[Χ 4g*UqB:P,S#ѩ%O|Rb!QK_8V FZu -4=]L"oݨ &&-RQW@y O::Pf)KS~{AOI! ]CfΎu~`%?os%njqsRIwW$JK [fbG/by2;0Zc" vj_:^v +EZ)4ǪR ,D}do5<ȸĭ*w%]*Y/T +y9'IdqyG] +ZU&s\tCI]gk2MEWH\=)o2Ǯ e pcH:DlGQn+E+ !(D{8 cw +;[YT,wicѠ􁽳<8u2]MQfZd6<8Ȇ9qx޿I[>$=M-O=YV)`h:ؘw-dg4lRv]wP \oS[:)#d݁덲ZIo%/[P +U2d#pCpknuk;_5 vΘS5oQj\ZW 1CHܒ4Ȋ|x|>_ydA35io8oF)k Dz% 3N2#WSA+AB@}k9Ň@-^͵p8˜hJ ůꕑF^v$iSnB$w7p;Eqtz55Erp|M$*tlI6bBW/z]Tm7,/UjHB]nM+ixM]?~\2T!]R7^=zG{ W-L6 { gȚ4>`Uڧ9HcMno%-zjlؒMؕ-")ż"y/VФX +t29: -s~ػe}̀ha?_Мwlxx'R8p"0Yz3 O_7 |f \;}BRgrzo8;gr/-إ6AF4sƑSeų&#v;Q6@sA Yقah,Ԗ7e$.s*It{;W~kٯ VMz%yϚ&DQxT%9E\w M5t'wd5;WE]0Iv;pk eR5Ҽu) $qV{8Vtkjfi=V?(PY׮MΕ>=>w& +E2.)w"To;=S7 8nD=oC^h =zf7'{a l9"=Ы"kR MG knfHgl*yt)P5LO>QpyWi] n^=5XGRLg{9vfy|7&٭c[5zІV  +=diD-Aqω9G^-r#7_ut|LgѴ}FwYMY.\@.6y(!_[r.Nx@.5/(s0\(9:耎$=,ȭF!DU1RO HAdr?7AY/xCLbPc,[PQgկkAe;/*L1 IWߗ\xUu_2{ɭԍSPdf#@4zZf|gS1vܩ~} U:uMhU ^h8dBX1HZQk;#vMiš?[y;vZVY_J2=4߱G]tcI6R#nq8Ǔw0^ H4jlnF9!:WXZ֒c!LF8u֞ zl}rՃ`>Of1e#|~Ku +p sWf`+SS)4㘉:MuqC<^:_TnO;ȥ :ObUTNT ʴNc1z<& +0x*++KM UyhWd1EH1Q4^Ju>Qx5m*jodL]jy"pj0n&Ƈ -ڑ/ۻ9>'[-c^]oN9#&x8֭fsb#Ѹ}ռA}z ?9A  lW +^x{ +gqWٔ*wIgWU(v‚l4߼G+nO"v) W߁,Բ^bٮxji#nY'kDC;>q~PsSns7|jc^~|p +?6?LKå6Efei=%Fcs_3N < W68㮞;þ +S#S9yL^T0+9῿+LeMSlXWAyߘSKXѧKy +&/yVL$eXUT8˹zRRaX۩Rk{ީ>M'Ra]meZuS*( eeyxڷgqAV^~m ?̣Y"LYoJY} TJ5+(xj@PkOդ%4_BnbOjR~G1^JT |VĒkT|_A_;d7Z5Cme2A'\\D6,6R?k$A+WoIAolAsɖC'qopDZKG0[dIrzs gg-4wB|U/FtdDxkR8TE66"OGLu=CTpѡ+bjzshiXqL=$.' ӫiY,W_ C੬pjqq}|s~`uMhUI==7j&kDm$o g>c'ۖTwt>Kلfy~jUY,{>|4•g%{Z`c_ʆ,*KH a`UQE+AprMEEiYIJc~c{qjzHt!(>QgN +C۫xTVÛb=w*U'ib-tG!lžsX a?VZ&~5q-+1ђfg|vmcB 6 :5Oš=^ _ +v}ܵ{uZӪPMG;xj85+BjjF$ܵXXT ]iGrp%9N\7jihFm)¬A]k*<D&mISaam{i_Ԇ'@&NkZť <"y;֝HCΘ^߮!9Xn.LZ7.^bG'jjD`P:pVG߅JĊ1il0_< uUW2k*mPW -~:=fRPO@6@_&/Ri7S#9Ř{Kj{"y֪6hŧe}>o9:dvbAW he- +f#"6Umb`V{2K2`;Yytg;moF odea:C˚VD&T +1313 +S6Һw֊6kAk;iAӢvd faZ,ɵNjf7Nv5=F +S 2NxuBGOCKVoGrӕ0s'gC*'3cݠ8) Ε?sm>~hBԫE&yIInXbzI>^iLt?;oBW^MiEsk3Rj:iB%/nI0e??9l.NeEU"xy5 +eec C5άCϞ*v:kiғ?i37|9gRndib,JP2|~{Ep݅WN`/xzӋ\Ycİ[;7O8woVҒ9|؛spOFgdQ4$SKfʻ >$qaSwFUwlXGyMD/\p*n {Am¦̛RknvlYH︘yb[- ZVmȵB`)e:'= 5�P);`FRXФE꘨u4U8QΖn赩w\%s +{}2FDl.V3xچR_& Y %?R O,ggJGhpU F=^B7;{XT*~2<,ye0њWE)(DٙY+Ph@ 57~=W +T _)@? q?nX[`ٹϮ`96 _xN݉~2.~oFFгbw>whene>big77wd5é}{FF *X7~"2TT]o}tBhYXն*sZ8Mz Ncr#U" yGkj_LѩO%Tf?:2#}]Œ{SM+;av2SC7ƨM/58Xx9qՓ&V*.8AcAuZ[}+IY +WL& ap }iOZw-l?tM7n~ +7 AS3}IeW|8m|)!.h#EdVTdۍb+h^rdy@<qz(evQbM2bߘ=(շH`Q3QŸgkd +;&O8|j A S9{ އ~"^:xЬMT |*#0%x]өx}LC֑@c?j/L^*0[g$Wx\&LaϳX ]dJCe;μs*A\M**JvĴB{5vN["O~ƗݫtGe׎JϻVVԢn_j9V KJz\]۱&h=ԫbxeUH5 isZi2ff +hy> Ooyx'?UDolvij&Fr{iWa:&>5Vu܂* e| +Cjg(7(9r&3(Ͷh:tHj/H,[IQcVVt&e3<¢/xskEr2?Y i +NexhsUUhnA*V=9TQHzS޳nWk9lk*Mvh>[v +. Ҵ4!~(j|`4~YByW)\t2~Է<} [}3¼fjj +9+i|PraYfS}:[ZjaxvC:̼sHwdm'ơJi/KH_uU}8rfJ[@!z:m[$ z*)2H)s}z2+EٮKvP}݌lhЃ&-YaD9>$ȗʐW~Fp NYzWֻE̱͙Q+dk=& xa|YXi)4'fkj  FLKwUQ㒊N[1*dm^(vʥ0oitv:>ļǓSDvp=%풞һChHE{mS|&1i]jٳC;o]p ^z<薥5ٹI{ga vyCo{dF碤L k= +~qy؛IL&oVvLK~ըfV/G,}Gx>@E\8hj;XzN)'m80;$?8'kW+8#q@r*nD9偻' O }en`{!rlgw_ +%=V_Mxa?kT:AddK^yyx]#ܩw~,W51)3w+չ)l6.>ԮTlT?}GMsks{svU0UnfiAi%\FՈV˴Q?@ +{:tnSkC˸鳶fBc}.Uug2ەҦ8>}m`Q ХAcjikZl"o:zn͈8'w*p6r-T8Qe +yW#{q[[[Pnq4 +~n`LmNӞòh}6{sj$?pgi3;pү/c'eS偠~aj #:0vفӖ} ͹-zauLx)SU?;KM()eSĹɩ0+8Q:Ǔ6yc`Y^qa,-Y,>E:Z3s%-#UX==$wu͋zvݢ{Nw8s DJY;FdŠ>]sf<4 +%tt_ +\8 ^{~\QJ^M37C\e^ιk WzȽؼ_.޳B0/@l0rzT+{w}޶R(0G6e-#ձ엃=߷tb䌛3(%,!;9_f]K+ABS7νH5ZE#J`;{NV=eʟbegMW*tuBn +MJ uo9Ұ8GcKzVI iym3S*0n2-]RU%eG>o1wZ8Ӎ҉-#P͒ㄝ5G V+#*\[gRwx z}h_hZs:hNѧV-^Fڨת@|-5JO+s:(ӽtn>>61-=pyڏ* +0MX* 77Z4@3WB-B5ߠoYTCFY,F"ϯ(I> +DmIAm |{pǼZJlmќWPSǚн뼵[? !!` umӪ?k~+f=ܮbhNt)*L=>܎a{*m {>r+9;VVγ__v .9>ޣ5DQ{J{#^ G˦|~ ͛xz:ADaΆq=D?Uޛb[4̾G?o )TU9 ο*q/IH?SR;LY;!< ŭZK8uwPJ:]A1\ȕäs8`t-bAϤVcaq-m67x;@~LDy]=dy(0iEk+gz GfUA}E3sGT]:Y$xy1C V7vc` cv^uIRScNZğ\xHE`,[/+Av:Qaa:p6ؙշ͜N~r l[5N>ڟfvٳrT-"=EA췝zӢ61 @n."u.5gCd +!_E't论㧣˥'a}T+Hׇ >/ 뙾J~^|tCXh`0-gp^EE/LkT,79yؓW k g[-*֫]W%8~֌An riV(^Wv`GF&`8^/G^Fr +nUF15W^r<$ճ2Rq*qy=dOjp>X`=֚mн\(=i!DO|MSF|"~fT}@rXex#<ɚ!ך*UcX__xNf{1hES59#W Fx@k&~mbY-tO?iSv+5\>yY SG://lB*Կq%ھvuljae7h'3uZ_"bIzggsqvW*d+)Pxo\3+ê7h7!#;SIܒ*n:=mBep݉df:G!^ʢ w"e.#/D-hb22k&$̃Zkq.λ\UܲP,pۡ)8!r6[_uɸkh;RN׌3;*esvn_jVkP- W@ $4vS `1ʐ〱qTg5%]n}IcGQp$W&Y &l}?UI Hg,·KyׯP-dOlߌ=T[h}*2˿ŭŖ4K;O?{+B9ڳ]oI 0we*AcF^>;y<:-ӻvA|xBԋK|Y){ pKP3*D<y4Ww;G/pۈcw͇=&:xDCS"fG;_W(^.~C@v}8zg5 \EI\jrRb{~:Z-M#t\TPvQ,`g}i#E+7vEB%+z;xH&2~(akQ"0>GG'gdq_=".fF_tRH% Nf{vP'̽4S{W]iAf! <nԥAVr>O W,̰xJ$6}r4=;^dH.(ӥg=0#Wn[ȏ$⡓gto41@k86,W`34Vr pH[=t^EP2J;d^ fΧ1-9脚3ɼ‰YݕK$t?YwX XmgoUFd 5c9!1AAJtSG{-0"~IīԼ^bfnjv]d! Z3_FԷU#0DKVxANI%'uڪ SvLKqVh?R5G餳 ńvLNu =mxU>pT!Ѿ^Dzהk?X_)`FsBY-/: {pa]v\B[_fkS1"? ߌ3~̘^k+>d=k9ZaeAF}pR[0z{YKDnyԤapWkV%k#7:.5>C?YJsrC ãQ`\mJhǑ1@oc٣ :ܸiTUÐn{:Sc _?͎L,V*! +"Pz`B5;+Wq +E{suPĸ#\<>fw YѪ7?ĽSS7[6kb +di)[TFAY,Bbkw(VU2s~Έ5jU5瞷OhnM3ߝ=sCCizwVɘmc+]G&6^p"sFԇc$*g)HS6Ŗ] vM6?׹܃KPq y'_  'б$n*B*1]oqo3gEy Dwg24*Y[Jmdz;k2@k=p!|6狕m;K}`#[G%`?t}'[uHNV.KΪuKo*Q{e8X{AfUVihf@5Cq4D¼ݼRZtyt ꩪ"vѭksx;%OMuD>WW4xUgk;V.}t P!"KYS8qGluDH 0-)Mp4l2YFK`|R?-/rgʻʝI8kCߢ9jxwLk4ҭ\[{|~2; ˽u,ֹ5 +~q+yx +BWʂ%u"thZB.Su*ut|9Nd8||.WtRZ!ء^͑UO>!}Ug-{iGE'Б.>Fn$*e6:h}_> n}߆ciDtGS k*dZ9=C-OЄ0Ih_WρjmεOգ޴Y(65q)/,oC.10QcnN*v|͐]2ewTyН޹%CH`oӚq#72M N[s kg";O0Q/,P~ЍX7@4 c Wγh)LjR}=WN29tJ±heozc7XBF4szDwBJN n$ +S_S8o>f33a^>?7AE^I+@I6>8*LhyãQidX/YmW[TK߂Z4?nԗ_ԃU}_OA몑5wGJwsS8 H>$[LV5e>oxGR,NGX' z.Q5Mdy|]m-V_:vtLfijȮqq;CwiTL,5S#xq%Y3',٧P+ϳAh|,7VSQ|-{ tܧ"'gyLmݧM-:Ia>#ɮ@_7?0fӒx\ՂЇR" /\5_ "K0QBTvPa; 5K΍c͏u+w4E?;`>ꏟ_?}[t䘗&i +͚V}͓7|<$/ٰ&P @]c/&ZύZ+٪1deʭ*4zν ɣ'בpnU*n׊aJFjfyW7[EtXV&5#ff+`lgLaհ-a8\S%[=kwȧ&عHc<־k]^VC-ʵ㿓iv.&xJLzW2jceSXVÄ)ln{͜ElfM{*CфƴubizY7O^ށ7¦8Բ H;C`) n[e'y{"Y6nK|Ȇl$+p:ՏS;mRf^ʛdhwk{A> 6ٝWvm֫.s`q |5K,4Ыt(º %t9bW͇ެ\ `>nU9t4Һ4$4hJ]w8 ²R lcO{%5*Г5k m H-svBy}`?|;h7yp鐼!]+-,'8X˒njW 6J^C|whݻ U]ʎ?vws_釙6KY%,lv") Akigjf.+(boxw7-ia=ڈݼӿ4iг4UmHj`2OgWli""vnhުPːڬ\ǘzkk4uwrfπCYIaFP|g-$NyϘ`/E[{R}EՎ! }=]ݮhDqb9w]ʮu>.& N`ֲެOm{1eTz}Vp5vlCsg<<=ubDDn?Y\=43U^t$$vj<~tAƮZJ89$TRp9qpxt,IeAvIcV\xv[vM3|ifn6(G:{TQ'fo\L=:w=݉&vM,*E[S:G6>'i;޴wݣ2t@#A+P,-tê?țTPvo!!~WܿQnaz;NJvS[]Q>:m,ND>=o)ܠ"N*556{p4gr}/Zs$2ZȒ_899R:|8g!˂ PͭA\ޔGQ{l?7.ӼҘBV)ġPeb*?_LKduiًmH{7h`Y.'WEL=}} z?ۭ7GrL^ciCiH=!2X}qgnSgNUκ\ⲣKRꝨN0(~HО>T8wޢ{5lג'Vg1B;*]Ǡ_Sm) b֣1߸Å^+._k~c` +'ةgg +'d-_Q%T׵.P; 2A +JFA*-yyz@w:闙IfͷJ,dH$տYj^|o4l<72w3g#bu nm]gd +Ž R +z ܆mq[D +NO2@GmZx7*0=X`7;(N? \@aр.Ƚsv;<bo8rWT΁H.c|Gk1M?FMbϙC֐ye`(Ypf"5+ǭǩɾk~W/R.v음iyg”(2#ôEބ+90iNMvv,f%AxpVSks3fCsս&t|U=RuXc` w$)9@ވStD=ceV@mnx }֪J|a`"}46(* +6"52++O>3aCf̹X CKlǍfF,/3蕀`iҩ è9iسKC%[b1qWX{P]-:oR#f7 *Y2>8J/.pWަP^Zpq$1J/ L^HOJ³(Y~٢hVGOKCbL j-X,VzS^zm }؛VP=5ӇhZrjO$ޢ¨X]jPM4k N3HQ7rFOb~ +Uܽg(`םOerZ1ij6<ɣ*ͱބkvv,KoBβSytKpƚ$/ b^[{O]UMv̍"[NK o8䛈,m2ňˈtHfqpYЃZ$\Z0\;؊bZ?K_#3X3Ӹ=V/SՖhB$^Kѓ{1;4Ca!?RWh.ۑO Eann]H = =mMzF>W-zch\Us;WNS夝+rnNex657$t&Y d1f˰lhtCf$Yg& aܝwV+i~8˽(j/TX6Kʈ=+w+b3SQl9[L{rޣ CģK[nD}C5*S>15_:+ )+ՀT^օ"'H㼐8߲f֯'j.ϒM-vvX-X0c$(`7mh`b=|z9Ws̗s r6bbdYd-{FϏ߫Z~JN/`ì3RpoyV1 R!!ld5ڎa]:Mo:﯊DKZ6^m6KJMie_Cށ߿Mq_/\E>7A^-SX|QMJ, +MS 5O!v+XyX~QU%1ɋWB?(FdͫP(ֱ@5Ei0Ö ,ef`g +aI${H)SLvt|v-A?^ Rc: +kNM'~jXrytN \IkِK=Fv}E_s-KmM!!'Ed>'C{Z+*!Clr'P0=aUYɏIR'7b=F[aǟÛ+K݂ ,wC|^LRQY}iEH=( Ipy}@DӟA481y\kIKX4ڋI]#2nhEg|'P?C}><%86% +գT;heRewR,O||W0nK`ouԅyS)y*(}_qL)Aǂ/Muҥ=ٙHc.ցS_1Zc `s*QKI84S]>家4yMCbȀ.9q65^{Tw&`ig8-7&w)UYbCv~,!@UynžO +\~sTno #@S6N҄QB R;omH(Yzrm'T஽J @.G)pMxWc%ˉ ݔ^`vZE9^ ػʁR)ջު>rultqGڸʝű,mًI-SM ]84̱R`.ۛCL/L\W: +vXͥ{/>8E97"J<:N(Y"u4!ͼg~=x$ɝ5 קsJ^cL|ZY6.j0Ϝ"OV; FBܣcq$/;VY,'K˟ -?#lU-kTwB:ig16弧TTcljUl[nJǹ +p썳\\(OrvF3N%a=6S  Zbd#pdc0w5Ac~|C|;< -hdˮv/R+;>lnTO\st+?8++Z=ηDT$: "TscTط6"9Q-U#Nr@bqeq3xuZx’G,T};pK,(\Qۗ6^W'GVAgOVh(˕|A)UD͍LtC^drʒT>JHC=]۶ >Cm<0ܫ򧼿uwjp]9?A!,lb܌6Kwp2E~==|htaua.{z5xRq [q)>n.c{pg;NMؖӼz.!Jz> +Sν֌Ʈ$:1a+ j˔JL{A$|G[(兹VU.a]=[ \~H.+bw:.jzX^rS$/E >Xor*Jg\~ׂù+wKNŝkBvC;BnBxԓWm UĂ.}j4y u +)?cG;S1B#f{H𐪡}'G/`8C~ ^cgu1;.k1]< +9T.:"w{m?`îkzyۑ %3}go0ڴN;sqH%~Av{BW5HKoF= OKh<qctS+b2Ͼ!rK PU/@/ZsA\2|w"@r^:nتkӮk^E`ͼEh.&R:+>nS?~ +  8GHx=4^'z{RMXu<z!tCjҝ0GL~ÿ[QSzR ;W&eyxC`aBc`y_CsG*6(zu,JlLe_0ث̺\5HHY4Mv~wHo0}JcbdyXsb47Iox66R[9k  j\l*$h`'Ca5ɓ 5yGX}nW(<~opݾӵn7 A M=TsJ^XX!Ǵ]^(>\* #*3l.+Rm]z _B2iVYvR$ܩΣꮩzEzK:iM&c5Ó|'+}ۊCݜᴢ IY?zN wiPYi62'_?ի.IC6x}zsZӣ\]j4駫=Z=N;t|/Fs`&;t{U}M^ʍӜ۷ͷF{2TtuFI 6b +0/y̻$b!#^'yƇfxPBxXI=ۗLy鋚;GsBY/Iz3Fx$>v9|? zXoձE[ 8&u|S'ʿ%؀ؚ:vt="Ψwy{J$ 2}FPRm`RЪӹe}:n4j3b9%vu(<F;ź[j |;KdgDДm}T0ի'jX~#BR[Cx"hr'EYUcfH]R|UlYl͊F$]7OX"GNA|fkW[+۬'pq-\@5Qk&tW +Yu +r>pƐZ%SbˊXya,Rv1I+_`d8Da . Jm֞c=n1($UP1k ׫4Ȳ<"16:.5RhuefԮtr]á<1=S=OV?ytw}+x~k D!CiG~c<<ޖ'K'3dNFw˾oMhꃋTez4b{$hFOzs/}ٴM]V ZܘW:g796ZrʞRZa捿Fkf8*:R 'r8e} N$ELt˪Jq)#N4)XYJ}mUJPOmmp(+z½ FMi`d1k2NM:〟m\F.#(䧰z4г{2ݚSq-pĤ2Vj(Uf44|);7qأ.Z8jdE௖0viY"unNpi|3vfZPU\*b25X]Y|H51jn`j'Y<UxL>./ $ca*% 5}A Gj;j?rJT.YJ:i<0ǯB%]3s6].b1YB+,zS(ؖߒlbW*(8osEфnGypdԆ`^v3l'B"Z%|Ӷq{*"Zc󓝓,Id4b굨&/SB0LJ6 +-h(GesL^@U搁r( +s9 +~xh;JYO+G,Ɩ4>*Np䪴-X]Re@*;'̲S jvKALh$, !{k Y$RjP,Q7Wᯤ"ߋx [԰ @/[Wh ʃO#O yl̄wvG# qjT`ru` A^~; cY:VsFܥ8Lѻcvk +<B`dN"T_"i盨BZ)^%N${ģuUuZ,רHACʟc')O.g&~Wt喍;A.r,\z'kUq׍4Fw>[qhdҡHAY5h.>u=-p;Z]Ң`ԅf&ex멹 .X+y.+๋#wTzf.Z`{XOe( #Adp#$@ +'lý{Q,{t-'tq?R4j +qM^ .[ dD"MoyTx]q5F k 9b'Z%Ňk R\(R$SU$dVQY)۲~ƅHw+uPz` B*n$}{aurc)b*Vl -KE6EC-ul tm()]1Kr6,(5dsEol+ s, 4+'AsC0 Gh`DӨ-ZrI=`m2Ջlida1+ܨnᔝw=GwF6뗏MxDhQh5_2ڌԘzk=y>VTTn)%ܼ6YFDJ@v{V ,ÑՕs^V+.7 + +Ey + 8ov+qEr6vqs/ɾZVѰ\"Ylk)b=8Q$ʚKf/\VE_r#tlrEw+ۛ:jCW-hC91mekXE䮯*iO/,ʥAjmY|`K= ^9nV,V:=ƌ͸9AlA}Au^MV vWw+|46c6X8e.25(.lV=X,byIvD6cExe0,{,N_Eguz; +NJJGr⎕Yv6ǵ]wT>yaumÁ@6r^KOwgW;9. 7zez.TNqX<6z;*.CTFE.;O*<;JV*e ] yGGbNVid{bnsWC +aL 0˪=!˾|$D'2?VR =h;O_ghYV +_?D^op}Bu/?j? 2^O~2:_L|좛YneVƾu`1WdǗg_<<^E/݂k{u)/]=-{EwkY+xB4Z47yh!y;>}#2WYE<]!lL(m { ovq<ۚ6-y_NfNž- RH;)TUW,񱁶sL em%D2d9Q\ݒéI|ːH!+ɈʠML7_ͯεɶi1w0y6/GfR!M¾;ӯ;>;KMU_)tw2)3 L b6VNv WCflƆGy>lgͩ,;R!ݦ9'%ҧz+v?F(a|{0'Z a1zj:*>JA+jKUUl~ BM_;|@^ڡlL] kG"+Bi.{i3/r"d*QcT`4Z]"WSg*=:&Ɖ\^,˅!֫ g!N+=__M6ە$\b_] +s0<|*%k`Tmy;o-&o1//Õr]/gEַv^Xy|?6 fV#*џj/2џjo6r'h~j_g5o?g6^7Aj~-uf~H|18~[;<%q­m?73bp}"ʽ^+d=# #ʞQtgDo0RpP͝JϨ2.H\xIQW%/~_Eui< #M<Hn9[17E=؝q MW[r,wiBzOS/YodDrFQA-9onOns븹}f ++d +3 ?i$& _/)xWh~VqFQ+Dp`+ջ)?)HBvN[VгT r>uF1V&Jo׍bDD]  \5yik?_J!\ΤD!᛻'rWaZϖ5%Y'izCy8TFPv.N|QaTE>N n"Hc\~]SGuk}bBӔm{Q&ΏfWK;ob`ԂN!][v9|I}Ї=oxNvՌβޯZfLHuxY +WRЅa>NN[3IA?yQHuŋo Ic+*K"a-DHo{=\1kyV#۵zyթp>&n囗 nsF?שLSӁ?O'h~L'h~L'h/<џ{_m-f~_ c[~?hfWw~k' +VÌap%#zcѪ]-EFS:qg uwہ3=lsl&MT8ro8YY.8sh?hi3:e43d*)yʷq/B{]k9wDG9,#K}fw7X-6?]yIt,,ڭz[Ħ/Oi +AbhVnt.p> +^'[:nԯ.o/ŋJ d= KM(GVm|uoZgt+;_9%W]jwG(;oDsjAے*عrbi8n7k}O߉fTb ;%~ǟY8_3 +!d Pf}ˏm}F$guaR`w]ar;U~z? _:DD8>_}vm|${IعlyW~%d1f2nv+WN= \ Rpg9t8:;Xʽ"7p?/f>ô< }޶7vZ0k3lw"KW3Hz*EAy ?Q&s~O7SG^zO}=RSo?n@V]']O8J~6r[ksFJ-:[#G$JWOqQٿ.rJs,X`>٦Em:<<ƺ4/}1QL q,^~? +'FU1RȕK[4Iiza䊠 sdɚtYPf9 :~LdTRI45EX8?߫{~ +eD)PI[v`1Dz;E6`;NWm-cH(Mm#>JS~ +k⾴dm_: 1Ɩ_9{ +/(JέY/MWi5j@H)'VG&&8BN(P^ dѩ&Ig4m<:ivͥv6:xٖ&l]}ZG"q5t,{GJt`ؤheDPGۙ+l |lEAA;@PNQovSud]Yuπ51 rd#c6o>Qul$_|ԤΡffCgVcNg4szZ$i= ;=8/c6bv7XJM@+;Ruo<2{453A)O_atыiuʔT\NN`:#_]Xq伆Tn{W-^ZpR-~=n臙Ŏ̾tNߦ-H@Բ~NO'EƳeԠY D,}>gK3m%ݱ endstream endobj 67 0 obj <>stream ++נ']]a¿r1eqVN-7"ש{^4'Ұɗhr!J% FǤ<nejcku%}W3뵬wb(7pUe~.dH$! +A\qzDLA:ѱ F#F _#` iFNfy-źn@9B:*c2[ѵD䁧ƥVg2j"Б$0KN$yB`OR8 _'ո}E҄xܦ'y^o0>Pʚ<HKyd{˸&'coz5{1jϬ{{]_/uė74AOEa廢L@Xi&9]?KD 7홀ĕBQˁ+Rteowp&kxeQ|ed\٘ۗtO}zPB}fТڛ٧xnɃm2O#x &ӳn,#m1?r1x{o:1p,9#;L̿k٧hxn(/cvKivLQos=ܞio>6{Tg#VZP?E܀mo~Ͷ23; ۿjU0@-VCJR L80=qh| pD,:A].muuC!#Z$J'Xs'2egH@o+HC6ڛ`As+)r_4*F>O4lT]+/o{+N`",.HZOMԠ>j\eSQu);ϵ7cW~c,|)Z)CYJKk oq1j梬\SYEZ8A_2ͻpҜwd}7W?Eρ^ :'[TO@ѳvyzp*~] s"5Z.-\7NN[R 󌘀n$H~_\b~[%EN- +;r:W;66W ׺|@UZJ?5\kk^!9gfZfSOYPK_&y^. {zZ\f&Ձ1j~v_?4+Hk#~ +b'Wwg}Lg^1[C2X[3 g\r^͈qN!.L^ݑᯑ# Zo@znZ 8\7Γ)ړTkSFA`hE/5}lvG6YNiXl&Mn}i~=ZIo`{L4Q{z +6$&ByDO8-0I'Y>OYSrygͯ{?+ a\46<ٕe<ޟD/& MĖa< wyq/xġF1=[ȩ.zw87YG1Zzy4*%AKTT?.KK"y +Ipj݋dưan EPFd怏z9|P%pbkCKdXdӦ8dt'? QZ+0.3 $ʏs_B랭mKUN{n +gȁsid{g 4;cC;_VGӓAf:bO g94mֈZq%$?fǢg* -OD.r4?W+-gEoESIyEhliL@N6@|8sqxuz33DKrgGC~:<=tr!"q_]M:mψҔOh񸶡IkckxLmU鄥gEl[@OPϭ/4SxTmwV}Ӿj23wЛxۘS$?(. +]H@402, +5xFKa?ݮ;omG +yM)50j?@^y,ԣ9kMΆkgﺗlH[pſhc`:~hJ' ? Z6wW N|;aq}-ZYLhD?kjξw1g7jT;+>sVT+VRj:f]*c?e uѣ ۆ*r~j +~meҏᴽk;G+hӘ!Lw}ۆ~H@?;?i "2F jqްR [睃)hNejvMuq؍Fqq6 .j.J9e7v!~Uk}>{- C ;bps6bms{l#Lz'ViqiVs[όѳtG<7KqY'/!.[C4 pz]\G@y23I@ :З_y[fRuYIC]VzrJ/,$Qo ESȂā3sdirO-[2nvs-]L\Cpqk4YHsOL`r+@8H䀬D&9 gGR`GSq𙡏[aC +"/w'hyǶ41GK3->piPHIWɍo!njyg$Fu|A$ߟ'qM[ pz D Ҽd@H/V/u 9l?(P/t<,>u!"Hh.:Ou-U*7φ Tח1?hY=)*6ޕ̀JhIBNQ+L\(FBa%dk4>qgH@E=.erz|Ϭ(mCRJ>]#VۧYo~ȩ$[ "Z% 8-q-mjDPw>4EsDV< +u$;>})/ HO6 ׀c +kWY, 頾(h𙜦9oP^QSVBr@ɣ?8T+ >,hR9z2D\6v"R1ie.:QlZ3T/5s8t+oÇP͐M`?ks$ }m(5ώޑԽ ( pt{,ى61Wh$QΎ-ضulI- ʁffBQ$Oq _G ,9Sk G2wΓ#]K77(>#9u<3s\fq'tI3FӳNڟxB:儔N;'J*%A G_E74?+$jbChv8 !| $NDi=|ģcz|47{ {%WYg']߂#L`3~E+2̈́)%0cfҠ=%k>v;?n\kA{=e(Ҏ ˲-JZ|uB%~3R%!0ߍKy?!׈aD1|p(U[МAD6Q<L{G)ҭZʧ1PiqӃ +oZO2䃃T\vf} kCTA]䥸R8 +7J5c *:W38X/Ώl$ H}mcN+:nNdnum&y2~ 1abLhnE"79[h -j@om[5W&~-@3io9ò7M(J9tCT| TaД*\+1gχtUukUzH`ΏC@o\?Se\ G_ty.CSScK\+xHI^b +ߍwkT`ȟ: 2&uP9n[fcӖ֧,(~XL+\R~ qmq^3zf\GWW^[+ݎB C&E4'Ϥ% 4N.=#xfkr}:IT#uNާFcY)~1wt5i6w^/`nm{ +gI@O9Rfdʢ z2":eB;,cc}p%e܍Tqje$ ИB;`RyY/eՔcOU3ndPpntTDIz4qf0֝JI|w7?׎B6^fa5ʃ֖.{%[֥GJM*P++6Ib%ĕ~WSʎ\h Qz_* ȅ (Ǭn¡`6 džmx0?0ps>sfun4Z +#+F0~!׈+R.r}Ifjѐ-7K)t1"4gM֖$ZU%;w;\:Nۜ]2.ʋmh$xԊ+MY.+QHΤc[->Vdb[n;ьKܘSs3W{] +y2cQ`},9Ц5;]xÞW!O%ĵ? _l5rz2C0Q*-h&Wx";OPlj l㒀Lk=EA[-? iB;pXl? CD7$?.)˟y~䧀v%(j+Ti+nW55=0+e{ ֧Źv%pySk;kN9%_m^s! Mը|6."bYe|lBS5]]TGƧ4%lL)y .](dKm`%0U9Η^dfvO+i<,uKYKlɝӎ }+sJ*Oԉ!r%F!Z_jqHJſFm8f-܁.rh>gi!'S^EoNnt ]| B?ҋԊlHe%񒼪6e̿A),Wk³;>w[[~<_niqU2>xCsz}CPk}:ÕNe9XXjb \^;k6}mXEsl21vQ\N|4e +sxdEMt\aX}.`~7'̆Vu56.H)K{$斢]'BI,gM1\u?z@@W z^\/uΔvL؜Sv-GhR9g͹5nq3rR}e߭7vwUB_V&0&T}ds<1<ƚk%*`ܸ:{tUi'` +Ӕ|Fh;srدgPFQ<#.e,W\f %Ik3~֔xfR"Y*y1Ͻne5VW YXZГqffeZ" 21ft:< Kjx7'q}r/d? dP.?9K +`ԢH6_>9̀ \fwtII?e⥪Vk;2Eg9 {v#4yA,!h\ħOa(ac$ {WI_ۄivBͱDžvN.(7>&[ø=Q6/{?e#V7g 쮃 \.@h)B'J3X${yA.sHN&>jRaw>Qgܹ"V3o8 ,;wW;Q`%װ].B-OOyRz߅ͳ_c\T#r4!x&PP[GGb>\YҘ} Iz/5Af91')DT?Z9ok*lɥs99QuT [-Jhm']0WAQkؼoL;BR*O.z[P hYwź.̢ܻPȓr <8W<`N غlI-> `7aOհaX)|xvPH@[~7NVZK.CblP$ +@y38ì`yp^dAиgr]㪫Rgh`5kK k$7lNV#nLK|]oAxq]Z1Io1|{1 GMDijM1{UyZ]yNugv9m =Nڹk)6G'^E\,uq1q)y%?cJ!.ʦ,Gȿw/>dօA*@ۥ`T~N]X01 #_ݢxVQssK?fǢ0]74 мk05b'ZĥōKGhz6 R}$l䡻x@Cu/*=#NBZw{gVq{ZE֬; 6øX&[qqYJY^.p=zUKǥv{8Chu޾[O`y,Dp' ]pS'/m@t 6DZIg\]0z:|ŊC^5a® +&sD6mYhf +)B'@ \_on%lw 9zy#v/ @}N<_fDwI솶:y-eWoSj E4-,;s"QD @:۳;j-zJ(6Yy'nQ6E:⢤kbnDqYB?aU}ϳmFZ~C+ϦK.q ;K{7@j?7JX;;=Vg`8ibEg%ryŭޏlyqtSE\)QO7xöyI^2]p>8[Z;v O~ިS̡ s˝zr$ =fjջ}i~K﭂ ZW@Z8~WBtN_ƣ[8%=$]ulMsF3ְSWvfeiSOX|0W|W2j墛nhŚpGw~<]/}l}>ο o]hi\ -mZsEiFV6\ij9?92}{ :.WsUK(zMyu:Apr,'GW7v_j>@;B׳JX\Wb" ̶%@ג2-)i GL"` !_ZwИ⧂um\PYΛ0uڳ~mأ=C7jVK-GLA3&| +pPJ7qwbތU41M\ԯ2irAvVC]NY}5;pX!cGc[壮Ȳ.7x:ppBYF(fb +ls3D ~.H\nǰⷸqU9x^htRU6SKc[](o-g}xm=5oUN"UA4-#wfhOZ<ݔ ?+$Wd>\]AƏ]cPU5kTWD[o9rW t\kqQ|NF24{ln g`Xd .w\zb: ۪W4rhGԦvMȂ6opٸ0̶Vқ61LScdhȌ#h:O~(\eW0w(!iY5u$x_Ua4U͚+)} k]ϗ^nj`3NŦ%ߝMAK.$2oPx쪇 -rDo h7ݛ ܌n?<`Q-[{\҇To[I@2b%]`Pd(d%OzIccOvM *:5NϪ1K!SLu-S%˫ۭqr6m{-lmR+I-|m,s<9&eR~`6cMbEZp<{!"@\Rw0a|ƵfSk*{*u=~JOmʶ:x,]qm{k.=٤7Ćco0kbQF39:j Z~[ 5Wg峕 P'1gbuoЯ˓̫#Es0#0^6MMN&C`nt1rw u5A8 >5,Ru$a4 ~8+$=I'%cz*[n էO˅] q2G\s꽩G˵qzP4Nw:o.xx!9>,A87 H: wyj_BGA BjTT>H+t0.of.!75 k ll? zv F^?G>_(wg+{ :rfi]T,g&,3 \ez * r}\U{0a +>Tl`sj5>v~J]{GSzSJb{w:@\-`@l<@Ejebjd3|P1GWr,l1Ag8&ސsiUem> H2gQ*A *QnZΚcY炢(xm͎҆#:o֢CҼ=/pI54 g7MTkL$es{~3<Î/QewG>3#!wU&qWj63~%7m[0/oa3H06WZfV#T~uu kmRB9UcA1{SWF%@7  s#,O5 2!h|Oe-u|GgrƓk-%A2o~ұ8OZ.U@nb=b?v +PL9^_o+/4aE2TI[>,BSBAh6x>N5܈tO#B|#JIYq@ZXVOἈGR4s|f7'{uR7 { Ftz|Rlf׀L@t>S:3@jk +^b2x(\/g2)rЛf\SVp6=r ,&Z71jC] ϡa/L_xwq< ~\kua~1e2M4% L E{E~ +Wd7n1ZE͙2$)W~f{=ދӕGs:tD EVMRc?d<cs* J3V.A^"hэ$bۑ\b7>bPͽ茊N`eI,wXo$v~{O'BQx|yKBܡhad/P2خD{ Q6z>3B-#vأ#fhܣmi\Nڴw`V +זPh(59&[{ 7GΫ>O @ >D$QPW]oc)JYw= +&󏝃ztnǮC}zZ6K|2_e EM]^.BiOV,; +N]LI5+ZZ2^OɵΜHybӅjdRx[ӄ3~_w#nDفBzklU`ٝ:F߿-K|j”Qת}+:0ff)dBG>'v_ p;vUnkg^%=}Y ƹJNj{CO}Kyv*TNg>wKQ6b&'πE E!S{hh{C7yGu_EڸVw>sn|-t)#Saz +)Wn:hsX#Y@(!{ox/D'r䮏}( K\do#n`W>t4ۺ7Mi!41o0R:D{ o<6{_*bP̂|IB_@~Cskp|\'to/ {%]eR(d+7\1No;ϝ#,#fݫlUcSZ,˩lLkj_A'WtV.2(ޞX8c"̨kLf9MQ_F+V9ZHvj2̋A +e4{D=JsY:3v>gb{muVPRej+'ndN>kJFԮM>xB%% +jZAU G 1ku,m#f`G\(/e˙Zᙂ"Ň!TҞmr9 ;o/ 2=c}}^'C~])>Ue{6 "gngX:k~uhbo4鄳=1d+y:)B/_ͩoO?@uNߏt8}~RS8 W8Z}'CyVu;j9خIe9u.gGnRXe]'rs¾e\U9ӿ)7y^➷̾\ ns8)+"rc;4^sN&bͮȞ7Oz +VeVnEOOaD 9|OseC 1.otw^q6=7UJMLaG`17 3?/0UZOϒ1N>Ә,0lmgo(b:65גl:vaMIe=YIMz upq%4uo~jE/e*H-NF8q&n5ڳ7)-w-ѱ)|۾n! ,CP%P&*ne_yٴ}lWoӵaT[f,5 ӱ ঘz#4U2ٿ=Z:=D]6RQzQY#z{0-~AJ@. uuהwd[J#m -%t QݞrDD3uB='Nf:b +z/Zw_gJ}NGȕK%o3y "jk.T/lFgb& ^ʦH2FcTT\%6}U +kmgiPxtuPa;^Ʌ|FS?]~ŋ3r_|- TkEJ6@`LH*IJW$6eXj<s97@@R Ǒ( ZkNj Wq/ Oר풳Ssj<_sB`EOo(<;Q[PtZ><,0 @It  3Pt]Ġ-]kȽה7'P4l$ +D+봿oSTd3`_ņ08@Q; :3Ѡvà7$9IC::4[i5^SmNpa! Jq߇ix]g(m&݀zDDs@Wq0CctT^jܧ\|Ͳ 뭧 O?.d!4Z+.)4׿u7@VirU!//;)h. Vkj%@Y:xXy͚X_+Gթ'< N^?G}t˾kеkgхVLk +G)Y8[E V>kN^/D2'[IpeNOG۟L<Ƚε{hCa|/ P\:}@3]GI\Ui~Z/b^V}%G\Hɹ5EܞQ +~cתڜ޵jqYdXt^fdEkn^ͱӁ֝-ݿ-cPxGe"yJ5 8CS;W<#D7w`l 0a:ˣ"{WKubs3{hVHLv#7gӄųgl^.B͏D0BX'/9Bcm%Y-('8&wǰ̾<HVtUͮ Lrt]즍aulK&(O11SJ[7ͳT3&nu3y%f@=۠:|"Z# *u|eΔZjΖs71MSCm"f囲+$NZu>VZ.#d}]' Wf.ߓF3P}۠%*Ez΢V<*z[V7ߡ)wG#=r@a ak.owmt.ոI[J,g6d\<,*=Ё a}w~U]B.+Y5c ;Jv6m|h-+vPeֳ4Sz7{9i;6+•D,,#Eπvm-BP֭YL[[.f9;N_lVysDzm +]9$ˢp[>v./ /G`sNo&[Ra4{WA fq<Ǡ.L jtgUp~+yJz$OQ40{].n1eu WǛ3pT~g>`Z`?CG{3`4TVR%$}Z6nSe 2C+eg:lr\>_A:eƄ(呷r! eRX!4aM=ڃrlv;b3,sf__\|[vEԖIQOt_m3]5u<4+"n43N~j9cqkoQ-TַJrZGڨ>?Q4L#wIa*twtGr[븝/JVM87BAgP{ͻڶc)GV>feu/vwr<糗Ia`^Ѩ2E%jLj];حҳylV?[c=uuBk/wBzyV5f:('L5v䊽R:XomѸZRŽ2ō; /1~gi:{I4:A.k5iԸ dQT2MXV53J1]Ɵ.ZJUƮR*,KM#c_'}Z?6Ø EWjL,ö'vh*p>fz;9mglj̻j֮Un_S(N1nmB/Hsz7Z_A26=ҩurar:.#4_ϲDIԪ:ﴉm0 7' ݃Uxq:SKk Cc%r*.\@.S\BG@ t +URkc޾'GIo|{siw}lU(n-Pe 6-B[3 xwBW +&3U_G~wgNɅiIj=cMYR|i5zY(M85=ֱa;!B7 ~xadtZGؤ f*ZGYȿo'}hf{+ ;]c>6uYah֓`7tg@dp}JI|7 bg,U)Aܝb8DZV?g7˞I_˸S:Gi$%ny-K3Ybj-[pw~7χr k-y,])u?IDG׭v KniAnIWF> ls`2RgKlI)v:d:GY#hm/XM0`  w2{}Vۙ$z:#V~Ӭ^Ţ9+N-aZD=:G8]Oޟn_Óໞ,dhTIwXEklΙVe3@ +`n<־Y _veYj>IvoK a)hMlԮǹdooxyfLeѩb6Bg>*iڒKnνiSVêu r[ͯ-; q_(BQZ;g~ +\G-`.5Y,UkF0Q[2cMX9u+EYgDi7W7kɯ@r-[AۂU}2U@eR"zzBƭ鷰9u,.Q@"5f7I*DN?YVՆkͣumV}^5.M3Db\_$6|,sY#1`'k켉|xc ̾UxoiZ 1HLx&Y\W yE8|-FbmuZCQWƛ4ܯ*p|kȈ!B[M8x'?`WSìC  1(]Aaǥ§z`rc雡)p`"Z r};8Dλ|;ot̉Ϗ?)7o)v?=_܌wu95p eNK'ujϏ-mD8cCW#tliӺ{d߀^r*w;~Em;m_X& [~ٱX;DMuж_V!X9k25枹;gA -l|X=ezkMEzY~&nevo37}`;_g8S;&\a-]S24tubDhR&-/z9no`Gб>MpU[-ͲSF0~A^AA1.huunjZ%>DWjh3V wq w6$όZc77!QxG)b*jR~e1=شjĬlMz6NQXL+tlW tZŪq1 c4˸JBWNu \m܌ghQO~#^zL.7߇٦/ f;YΞJ^gY6ԩuŋI! ˯?a#渌nt+9&e^eƁҝ%5;lw*F3]<@/ݪVlF29R-֥S>kf曤Y?~"B||g}.NIrxk VV=5({J52j7}E^_{3Ǎ{iIxK\^O.fG+Ԑ_O;Pfwbˋo(>hx&I P$q9 xrORr䶊 r=]{<#(@ +Ⱦ])"dw +RY {,Sڇ0Azns`x<&_H D#m?BQ6^{FG#P3juQ 9w𓃢쑶t"]U2Ȯ WQjݵ9-< mYGiʞ +`=O1(E,@:; ~@͐jzkRq?ȏd/Q}[ީ V~3-XMˡ ('Ro,F4vP ߿Ephk5`lo!j} 1xH%ׄ5Ofy'5Jt8wj_\X23 ?@,rˡFr=)` бIݚ G /.Sk/8È4sy2x-(W +շu-?-Ok 9OQҿ@B(P0[voƂJ! M`ߵc43 ttk>=<[I'}DQbaQxъsȹeZBNh@ +anW`u%>ڹz緀ͧE-5;E!" p<뿘|=㚜DM*"J=(M喝Y +;ͤτOr-"wyדG2^ MS m[0ö[\ 5[U/ZO&FL-ϫP35^( +$哦_J"; ;uݾדSGȭhm9.:p@ڵ>ނ(tX(5[?maZ0i:=qw߷Ѝ^>@vS6\AT;B@<DX/,\K"ΣECΤAe2~ sW]ggM,}f9Yg;.*Iݑi4'N +ˍWX);nlJM;$XtJ +gֺ47x5ko0SA> `<rZyljdBL*>vjìXoAo\j%&(t]*];-woMͰngνÐ!kaafNY?D ҥwsgP9XnL;qgR0-mΣ`SvSl1c8V + gn.6aIm~~XusZfXq*6YQ~Po 1 ۺպ:{={$kAW4&#y(K!X$vE8[,v2(S!x%%K;q['JʝNU:-c@O~U~΢U-l⣓bdOɻ)kh)rbX9,K1[ޫ_ƪuF)3Jp0Z1k$~pM/  Cp\\9gf➊v8ˆ gŽ:rsn {gyVF|٣wR/>pg>b>C?p0vH 'ăLIN&&ޮ“&9#?`qʎa(6އդ#=sxjC?nMOmIFtqpׂε1ޔCð*2Gwg==A1u\hy>8fHL9ÁL3ZN_׶ωC/eժޫQEůBbtT6v/ {Dtmt:[{W< wUWYhUD[-F,;<:mUum<Tlqgk +?Λ$TENBFMI(Bw_7a\ΤSЊ .;YįL\-&wϴVϴڇjONV2z'q._<`-&[|!nyꋳ#k9ytSwi"{wдt\=gsm6^[|JOۮi +xxP61644$L'nr\76w6cɮ-uNiJLzf8zK Umظ`}3EcP/ݮIYʼr.&YƍF47[f#h^]эWs>YVvAbq#|g͆p]@8.-Omj+X7<pGWj?tz,tg-q05{ u"@ +ɮ}<%<8*`Q.J~~N"x}.ޚAU(˨Ogc_3 $6Eou@jG +]hB;im\/tBu6vS !6rtǑ2ͣ޾cf,2n_ evGoC_ cy{OАSLt+@ k6~aa3@ʇ_+0I'!bU|WαPا &LqHKlj IVRK{q;E |8L{?}s: dHyp99f?ׯx=PήRpL9OC_jmȞ|cйy͊cOzfy]971?C+njd +~ (bԈBL2\had|^{jc{.#<íO8wUAX} lu;Il{ 3}5IE88Vҟ/,z@'C@: ]y~MN9UK{GǁT~Vh8:_S28[uZt\\$G!WA`q"vӈq; _ik9!lG(yN /P&o P;°>1Fި>[u6|uCݮA8xŸK!i.6:rHwdAo+; 8|/Af}լIx(4>7_;p2TT gU|`er͍<:˅:7qw-M3kf |6ޜ3GKӱi8pouɰ + =@NrP諰A("GOod)lrzRjaW{-j gך_6ÅƟYV^ikc|k?c#J4z:FX x8 Y5" j|jke3^\vҸ޿ƧԾr+f6#W{ԬŨϊC< M3M v^xS{{cԨ2X4#yF߀! +Y1EՋ-Eطc:igh⭵q1S5j`gÛLG gu6O3|{!^38fa$KR(\vm_r+t 8"z) +zky8?[2<7Dև9HzJsMYcS*uuHEn(xOoe,e.=e4Ć’4awWiPsW+T-־q8hyߟn\6EMDZPLeLhKŕpgqJ]+y8ige$rA9o_&n]:+]'zoݴu"15/.r3~t/V>0e^k]IYO:è鐄 y{^rG NCVx?83|TfE7@cGІ3[[e%D:cQOIv*|.t%pY&Z?ON{ `p"j-MRlD8͌j*z m׬+4"B~w 3> /.kK{U6bsX'+00$M =cQ}kx̰AYh &֪ǥS ~˞I~]~ۖqnPEv2aۺwvʵݒ^;ǔׇrV>>IZXjW!Vz4AokMB\:tz;}n4z#t;}v ІTU-1^#??d8 j+㵙~)֧_N^cҬH7$3;mPxwSwsݝ ~%iKfi2+o" a3eIK9xM.]k8A! +;Wy!սJm +2q.q)Icu?X,-RBgJ_{`CkzK+Lo]>12#'RjbP8S25)IӶ'l‰uAk{}Ng^/7ic-Vo:.6jP2^T+z7.tey|RwZMV5ZغakG_=VΦ3lԌua)iy*"Zט^ZPF0}6 {אּ!\?3+$pu3RWG<~Pcnlxgڒ鼙} FtJ{uU|I]MRCJG2&6JҾ(OR>b47,+{hwOUhtTd~G.~i)8G)4bĆFz%yziZe^qŮ-2o>}KWSo~ZW8wwv\=w4?ؿ`l4 ;AO^n;#?w7DS. 3u߬hëdw+n̖S/QON([UռT9:U3ˑPzSr_o}V']r;Td#Wkr +*%Vo`ܾA}jVrTS:LܨAI,Iȍ%B&,h(6l& PB?cqOodfj:2Ct{ztDe@ޖ>]7R bB_[XCpB l3Kf?&$^2 BC"F,@ZiP3(IDP= {`~`de@dK(SS"MH7d|i,Ci`HؐQLbr`-s@PY@8@6b:OŇA;%m{i\xo!u71PaƝuFZB 1| **@{ ڠR*q.ξ/ r=h*:X <`~fsU덝vl_mc| +FWqWsu@!nۮބqO 6x`)9BۀT82fmK0N+8.Vƹ~;GHV`-]u:@>ȟR[:ֶsUiۣ#lq˪~ +??{ȥUϻKrvGKNbHw8x֏M='z%;Y)Kkle/WgI%8-E>s/vjmÊn#{\NF]p"e78EVz/ŹfV>-:L=΢{?#7\Z0dZ1j-A:=Cp9A0]t|*41Od~kNRwP1zir9/Ϊ^9+,?Y"U mBuQݚRGZbq_b#Aʫuw!E=ؗx8E>qF!E[)fdxǣ>55)gדU>`c%>G%3#4*_3p:h:#~ %K梃z~5<N%Wzb:/{Sne$lQX{x)%wkVF& Y@` PfR 6~*+Wr+!m߲}iJ\sQ$NbbroGij>Qzȟ4 Qʠ-eIdŒNncָ,g[Ǽ3l:2iwV^3$t}&6˚ўfQ?Ḟ8$6 V_G'OI NeI 3%]+#m@Cz+}cǬ6oЎ=!)Jpl=)ljy="wƯmh/g9 ࡦb" OzpD_9U=3g%tב37nGCNj bhsYT2.s[nJT_w f웝a-Iq*b5Px-:R&';R/Ů]4?;pv2ݢ-s;_^y8|RkeNpy;~Opu$Lm 0[j(rfy !K&r9$/GZҝ+>PҙE,6<.[gy^4t'[VBn4ʥNhư54l5Uy&B0lX'̙"X ;]fϬޘLtOAS*)8oq: KZ}: B;'myg,KFcF bk'ngb) ?؟&잰3o'b? K&ͭN|`L:>:~J".P:]s +)wi:0d̵X/ZJՀ֮qe4Xo ךsmflY2A>FlNn\ |4Kcz{ŻbQKTBX?r$6$]aʫJV7zVunK?{k^^8b~ }0Y@r"`u'{mq+uWZ3تO[NcZQ]bOĺ4]5ImP*Pgck"~R3۫|~r ]gt}R&L[=%\\[Lzش$à1蠮}6PO:5US5%Q5LjVwB\J߰Y-WURw +yԯopG1bԩD:ƽz]jfkc'~3N2^ԵpCG.nSUP5*ܼ'VReVO5"NQe#2 hu}$VtQ<9Qz}כ~l9̼vgH2!gPvK96j7畷X+70(c$~z1JiTQ<dfzan> 0~10"hu˦ý2ނETD}|KTke]O( aP:LQzb.9- +o%w? ,e-ζ=5Uf9yvCÌxboi.RUdY fS z4 k5ۀxAZҌ ?.Z :"ځt%JxXܟ/_xO,*-M$6@qq6[!@;{/\ ;b) M{~EBJ{m Lz> +%r5V({XVtٻR0!KPe?J azGp9tX߿^`B3سKh}rzޢ9 +S>~@XP,2l㛃p~s`̓ϫ@Eh 䝌r*. [ҋ{I|(ұ2RtwZQnnJO~cޛ ս}q +e1]X,[+ Z`{1{ љx9Qr_s{` 4Vg&d9>Mso+0UdWi|[ɵO{3B2:P{"EK\jzA7xHjtTW?kEt 9s73pJ8y *y;rUH޼B9?\?mO+i(t}X@& .kJ$8$ƕSMfB |k;>-J}Ok}>8@>L[5ݖzSO )_.5rĬ+JVf;vv֔ l˔N9Hw3uOlζ +2?ott.;͜l)R֝NZm6Zz7l@S2V)nE[=\ zJQħCFj)+.1 vPI`SR˯mDyuǁK]޴n^~ɹ6LLZ,>ic͸P7-ls( UIf$iyKF ޵ + +/JwկR'aT$VqxfXDhuv9GW=c< +9l6N?CqLe +s+"{leW߇ @U@K._M: 8ݠٰ+ ug-"e;kke.ְ 6^`7v,+oT-3$9 pl82x^A{?/d!( +@ +og.]G8 ~t%l{j1*y8f%ROE[eߡЗX Іr`}SA/L@\ -!u!;z9ÜΧ[\Sk?tjv>ڬgx,'緸p֞:t +C"P0Az`}Yv$Mz(.ʼnrʼnz(A p "**s[A +:(&Ra@T>c~NC}'ue˯Z32 鬤?hڟRҨ)0 {xT3B"azѠWo UERyr{ʔb{lEu9;`"MjJOL^J7lP*ƺK7NHİƅ'U+bɮmwfz7]٣D74w^W@6adq^ip̂C}.v(x3[ ꎃUѢ\{R,T${H}߫V^wvax#w :t0;I;t_bRi'ُ/rY:E +os~0}pjrhk{WS" <ꗦF|`9ko(|.:Ris^qn;+[UNN<^O ^^"e>Kx:"_kݬ+g=҇O*EUCM{LW&

D +˸)6αwJRq 4 Jh+ffFS櫌m Aa'ӕ?؆s2uùYX{3\S ?v(eaf> =U!}^o̻89<)A711Ƙ[$-7ߓ`\:Ǘkd5WOӕ֤Dz,fvyꙓȊ3P!3ןb8G{!m̘un.K;Z{ oxGE $ |kꇖ{~ <8qNSEl|.QMmŬCN$:ϖz]7Q]#&6ĺ0êj  Qe2A׳D‚VʋV@ uS_),hXЊo7?F|NYSTRdw [n?TGýrr2zL"r3-dX7{mH0BD{9AZmղVl]PZe.;lT ,g}\vyR{y.D6-x`[@nՄ +U8>2G1myiFBqy~8Š.TՇ@Z\_aZ^~k)o2e>OﵽυymyE:q3KCY}CRi\^Mim?'6rL:=~]}je5֦&lqPF6|U}xXhKE)j7!D/,˫l`veZYG->b{Շs^)Zsrڋ@cJW#ӡ ~-UVG2$3Zx.͊ +\x qnjz `~(՛zσP6}c2YmOOOqQBݭ.[emr/8.e]3D5l1Ƕ4~~+Y/WìM3XewL}\P|>VT8&| /G p`)~umv+F( Dݧb.y{'3g8k jLr WICng2g%?٦{y{qM0_`̔JYT( hrmqi ^Q&5>c-&ǗD3s/sWC=wtPΙZQkbSHmHe~kyO+y+7:?pP|ښrVꦸ5R\@o;ŵ_i#Az@@)!AZwAK@ A*v uHE l 5!"Դ*ԀW ⴀlAjH wN"lR&Na0whƄ]6b΢c=m|1 L/P~yP2Ħ TZ33ig倴 ݬGR ) c A*@y^R'8r؉w L66Rp*ʃ/PW$26,8 ew{/HHt#N A,@)n z'E8o7J6{R\r̽.E9#lo9أfJdHq(TbЛ 3v+m~͕P<Y!@4@T 9^P~[=j<&';r!/ʂUL[Գ: aPZVsf~ fS }] ,}0rS3mh>=0W_Ԛm%Q,>lBLQ=ʝ헆=WqҞTj̈CA/{Ӗ?Xg$dj#AQz߸yh'ů .LX[ilV/s`Ń$R6[Gu~opBBH9IoW'r?WyP_|:tj]Om˔@1 +uX(,1/$3^H7Or>cqbn,܎\9}xO{)rWΏ?9Wi SkaMU(vgq;7>]~qo+ ecX(7#oi7{yhe;{*R;µ"3q +4b]vjp x?`v>Imlpf|ώބdW@v c/Bd/q~W(!*M$dun޵wAサvZdw`Qَfs%L-4;=O͍uZyWؤ.G$Bwv1ؙ7(4(g( øsSN SjU iˣnWB˶? cnj0zwZIqj6:*Y-6! iNt疪L(+@EŜ$(IŬ`kg=)]=)j֔,A 5 FHA]NwIFqu:"[꒒!g<)ϗM_yܻ$CnX;)Y5í e.!:jͮ- qpC*.?;L!闶 W,_*z#ѱ7leG<؈*Rܢ?KޛZr|!gs'UVsv1 Umƒ%dVW_/Yk~I u%\ݾ ]sT_g| ܱ\mف=?Y#/_ie0uS>1NRw9f9ç:Z:мDZ3 =0JZ"5KRR4riEZl!Ys`/h?7Ჟ.wq9,^D (K ߞh[]⾟OfhQ2f9iU)2ԍCBEOk=}d^9k_zEv@մ/۹ԙ־JmWקVhaKϒx2˔S`Zj=Wa1gPכ~ vO*OTԷ@q» +#N\'S¹KӢAh^xT|؋y +i}rHԝ]?-6( tEipjqsg;T+cȊ$Un[H⼇N_NM$%+ۆnGjahRz{rvTvn;ϛ~ȫh7=,M|@<~(͹;-L|5 SZ,]ͫ&mMI?]AaA# +4,/+De9hγ>^6H[r"W~N\-ZJ X#fgt$օf%LOӁ +҆n҄inɬPm 9Ou޳XqˆjMv{~^LX|6b1;E\"=M'XWƱ +d昝XX Mz16e‰zJ^^KHK~ s7YWz[oe},$>.vss~׫)J6WWBXO"\40gN9N?m JR%䀒g8%VD=ȂȂFI*5`tm+Wq<޸Ќ ̫* {.Z +|\ iL?z-z6P(œ \1z@B*7]HP%$d*-`GU:e<ף88[𚛀}{Qo-P{>7v ,5XTD%=9 8\Jc ifKXbr]?A"m*E{&Io;0i'."v~=L W>I Q!*ߗi/붲:n\9.;jzy.|o$3S{ 5jF6)p:c ebSj/F\%f>x^_08cJg`xWXh80Rm` N.p9@+>r{ķWY&7-# '{y.ձEW? =P +4YVMsaqv1<:+H?&gs -mkh*N@+KQ:o:5Ċnh2( C .QۚبLi:qݞ l}=诟nXUa{u=@x^f3^I}~rY#w0u940N L}&:Qnx͘f)3V d<있􆆌_C^GGxnk=3z2PP{-{-2nTdKBe+Óv1 +v\G.T & CVOьh|*H!#;֨ks6\dm##FlBX8]7^];9,}s_bhr9V/֮a=͋}b,zP ܗ6ReHdGasR_ +脖.r.)C:h-f6ѽu&n__+mܛmĖ_T-r[ʧ*nŨWhPUX*ƙXg{дGlMH-&zvCwџܻha]XCAnv9+g*#ccԁoZ0.ҝXQ;Xڭ.q`UANG kqн;A6ؼOylV4G#`1oKbQ[w[Y^FeUKqɛŊ9ʰaCzAA_p6+X8" +AϖGQa |vK|vёoџܖPYPXN]NU-f}w]>(U,S޷Z"( -/"].vY\ +k GyB|*HEn3?̛R͵Ϫ>;(?l")հ&_4^ӻͪҫ +dUDžuYkX.>;x\Jл( +AJcYlA[}06s ժ I"oӭ1&ǜh[ҀrrcXQC~C-h7+VAR`~c+A+D9zpYF|>_myͶ)xeG|Fb82j?D|R()r+- 1N +BٞUWG4LI3gCt[',63AcǤ|d&Œʣl LOi')04W2`/jA!{JS@>H)0|-@|nC(Cog^ 3L+eZI>&C|z)JOY)zߏwK'c Ƒ: J|9>Ҝ~dzp#i K LkTg).la[@Ie Ɖ_ y%)Z5C5Yv&f䎜U;y=b> ^n}"h,<H m{$[^^DRRbޡlR n|nE5{4I!3ITHs63t`x,ʱ9ᭃ]nY~oY|ƝކԐ0N貾uܐo=9\}aؘ:vGiXTHŞ?ZYs2IfĮZj~RKF>OyRتMCQjЭQTQ JZח14 +]_#fhX +\-00Ǩ`-wKW:H( ]~L9+0mlm~!n*40 F>? ߛV:v4^~'c~j)6~E Q<)Z3)֭)bn:Sm&.gjBQDKcT:ԲP$3$ 7;)m0s֋a${a2'?RNEhYǵX28(z}fG ª.x6 + 5LW'gφmJ`qGc 6wXOozvXlPl; .u?Pk$`ny?:(S]P+at7CJc1*LĝRwtct'W͇єejL,Z̓h +!S|`w_}+~?a[V:m"m^Ei|ƜnPF:oߖY>nv?w_2@Å6+LmG#[nc 5;wޡ3{;_Qږ_cR9fʋ*M3W&͝$vDzH9jޥ'SAAa5$Xuu%R*~M`azܝItmn;Wo\ +_ P;󴕟J,Wvk>W(Q-v Γ^ȃw'}RV>;R&~uYkh0iG?,۷hj9[g$u{rr߷VW/uس&veq vg-X4$˓a[p3PެdWn}‡çc4A=Ra[d56jʕi#W &NN D__l5% 0A9]} NL>&!MFKlZмvz=*<6N[2[N@ o|,7wcsQŮzRڹ lWQ0ΏSɮB!|\[FKcWr|-Y !\J(V,x0v] +D NoPt+k?(Wҷ|l|9k~H:p(dAH׫49oZsbur.˴X"2*A!] lM0V^6~tܠSxxQp:'W{ P.~0X;HVN `hiњ٨7XP|i/k J)\V |?8sVDfL"e79 d̛Y!J]m{ζe@@H>5qK>1ɧZ($;HK{mBghٹ='{"d@3¤?߻||R(M>|v;Q|~j>}j3;]Lv-jgH~/]_42 v>x2QokvSt/) b? v(cTbcH>By263hCI^k~ɜ8 & oGͫJ\)`Sg^WM)hi։2434G i\FSNR|))D0 +L{J盗Z۷(fumkx ގ0]-a%nʉ*gXK|{o4} ̐Is-7Zғ3\TۜUލHcM%!twD"|:5R0yB1`x8~>;=$,lM.l,,<: ͜ЊӼe{N`o +yWhrټ[B0܉gf[^ ؞|ڎ۩%Gxh^ΤݢKrۗ6.[z}?w v%Y +5`TR_{/ +oF]>!TOHQӗ}קtDp̭.%rm^{s'}\4g +f~KQCNB490}}u:6` =9<ٙW gk`3=>0vec3Joh/ iySi]}}xpw .U{dXvy˧Y%=x:870ڌ=/L7v'!;W]UKl%K}0}ɀw/Y7%EXJcs vFb?TEF.ml5/Mvا[ U!yɹVƚzrRi󽜜DI1DƑYW'%lp\-%l??ZK;:|4ԘuDHjl.6rg uZ%!S1_ְRg-V9g4LPc=~6wZ6ULbUT?=rt@(jzY,i`WQ0Bob{rP ˳R4sD]H4bl,v[{%-Ee|]? A G^('>miƓIZ<bpJг%h&_$ZsZS}dys)} P땑tsh[{~qbr{I[k`a^$F|C  +.4@>ñ@|G/9dͳh)F0Rjԑj #,m&{(L}FvdnT1y7zX'' + +fJv^=ǤZ ֥<13 ZmS㜻!/r\Ttd3Ou gW#-Z\}J{=QY(p:)#+{Eb?DYʣ*O6G675L܋Go'AwҧRbG2f Pv}(wggHYUiyHw~@8yc̬_f'Tdq7T^n HS̼&?(`q6T78;Z2a]{R770A.})TiL&̲r ffksfRmi&dS[d%jo5TcNǑmh'<)52 eF0v!8 97KUmxW`Phӕ}+KkЕ%d֕ǎmۊd;$yQLDFt4mrolD>_ +]D6` إ p Z]?/}hQ|Zp pzHs^"Ytۋٶm/찛r`-l;Ԋאd Lz5|&|!hCx"EɀWBMAXwKܹiI* ڭӈ]ʐ^2^65^g!g:ÿx)eD(# hgYȠ+$e 6ɧ +v w=^L<[=Ig-$I8*')[*c{HR>w%IJ@}XW3^$%hL'Na/%_<<6m>**8OC,P{:V{'o]%ojOR#yA^,̨dYrݖuLҸ}˘|J5'#n|3Q\ V}ynox\\\{ui+o 6m3u򹐫,d2.Y/_^ɧZ/&Jދu_|tX'9.>.ggjp5뱪HӋ^j|g zM'h2<.DIzJ&gom +I>Pn&H$b7,o7(:_XUO(H`X\O;Gl">4bt/) @^R[=˧@p%dlh u%5\4~y^ +:nwXԃG}d}=\tb!y5r6mҍ8\\R.WSoUmUt<,O ,$LsNJel%O4 *cfG[AiÍ(gދE!vŐAak=y޺lћOTX35{!Zd9[W: x%bX jqLsjۈ8 W'%@ZKɂI7ĭVRkşJخ?`KR9Vxڪ˾ޣ:pŁ]Isvrt>B!jӛb1kA"|Y5Z!ͷ4oնuwoEަg%8 f)0FfOZ`EÜ%Yl7(w]ϫM:$c@kvխ@48[: ǐ&+If+?/2Pnz׺Lؗt<]QaLٰ FNѧgu,P^thժpۜP8`ܐsd>J՞zE,SVCT>˔f+v!h𪸝uDtaU%zIJ)eۖɠ y-uhT=܁[k;atxgtY]MgkzҞֆ)Ums*.g2tR6[-p6XXhj8H 1>_\f?ΊLvXA}=RNPp%Ҧa|CÛ7:~ +xAg՘1 l T툑,ъJmߊ1>E*uw ⦋XS$]X__҂9~c*mq6YW.߰"Mk\6l[ vj^1~A\?Qe//6$o`C *mbz)ڟj%;KW'(abQ͚dYܫpxYK4qun-@%8Aߘ]Ͻ>66lM,Ro#Yrw]Չ*?<0j0b*F$0mJ3.ԕqCmž0:OMF{T)T#fF0;_gwI4NZ_$_8p3nƇ'9Qu1c\@:iCMn|Qjo.LO'@mw:,+O-O'n\޹la+S]{rY4";1unh~JkE25];wV.6.{uj36@-wgՍ>"5z>"N_XYhqf7!c>`&2FƑ'ݧ0SO3, U u'P3"Kb|N7-xE; 1Ym}q +*SЬV"6P~%߹ZF]@ٵpOz-/<罈"#&7bx +h &?G9JjXXR! +&jȿ[_Wɷv%a{ L#~TZG4C k/qI=4F+CQwhBKtެc-pgl\>ШvyUr ^jVU_vRW-zuz8^mb8gW̏@+Ĕ9]$٭ }#Bق(wT+|JLaa%WFi-q:qBqC62/Yyuhh[jEٽCjSg=zsU'1H-_\KS +OGtnc +:jnȹ먄u=ݧvle-V~ b}] +}[řwϣD-BDK\UwO6S8SyNb/l p}K:]N^ue'uc`-X֝.)l TypDEpY=}brIpm>IIADRDY ,Xxm:\af1Ei/4E\f H6HW4wWau{6 [y[g]Ҟ4i]J,՜iu9 gϑ6>o,ЙXOFF,}N{ MO 2KO5H +VJ~aLIjL3n2x4 ê{ +rlY2isU2|*#Ñb(<ԻNThT/?N|,|+,k<,W,_52wO^8m0´7DEtF̡ql7'\Y6vA|zzPn3nXaڅ +zO#s܅ 9wrx܃q흭_rW/SSjir,n0Fh2{GT=̤غշ>~AL<*{+Q9!g1B?u=T5<$4>D,y{@.˙}>qb[VPXMǛgxL!NH c&{2٫&o&%=p{?7n}7'X|LLB,U%b};דrG`6Ot3З3yeCmF>F1-݇=dYxkǫwHi:L$)XaG'띍5/zނBU6kkl[_>쏝8g+~ --\^^ZLyTr՚;g!_d!wu߹m0{Vٕ=3wvpVʋ?Z 8.}kNbG{Iޢ^Z\(ZZ(-* ǧ59` +_;ݮ-,O9q^*c-\t)-e1zvΥ!?Giίi T[nHFIe0jtm 1\zj;sw2P1ϧ Y7GNw=m{4)Imy1gupp_&zw+Uql i1FݟG\^n,ܰXטA׊zJkAJ;|xWFn*1% 2DWgZͮ䩰D=ߞp[&ƣ'ZV*jÒZ\61<cJܰor4ݏnX^;嫁;7A/ϫz^Aa3dP/Y 5#5=jH&^~zʟ՚E5o˨0+$r [Aw~Zkg)<2mh2B>hlA:0g&pGXdK@vuUpKZ1w/'.cs+D|+N.2ڲFw'Nz VLײ#>Qsk/ە 1H5.Ȯa{XVi#,^X=)5 nQʑJi[$\wïv q0:CLfge|:?9p 93bz*#Vg>Ҁqmۃ[髷nYNWBB]r<D*@2^x:3|E +6O*; kqJ(bhNm[ц8 ?ĩ7g߃;ۙSh+$yՠBM5L䟴o4m%";_;mߟ +_ ۷o_UW9v߭}1=rԸDc3mnX;H?Xz78ӍJV˼(ReIrl5mJOiENۚmK^rSH;C.<; ;e]:M3jblkWl)-V=5tt4Ӡ4֤wUQjKzLDH\s}Ӂ{vvWocaхuf̫N/,G΢RR)hڀ ie[4BmE-vsjղ#5]HQWG Kehc8D΁NgժrBmjpfsYL = G]ߎ* rh#ddc ;X%] vzG\ M oa$ߘ'ǭYGIb4mWK/? A{)8>"3ZzY4+@# =dGB9I(DJ %#9W_xpe~[8[H2=IuB8ѭ[cS/ WC;X` vQeƋ J=MsI{T>w铒rͶ$9$k0{ÌּJW>/Z滜>mfӤK6&kdqWpב$khiN[mCD}ﯔ *%{N{%Bdul?}&Inbui#'^?OA7'ödߴ䇍&H&}~_1` Yr٬7;- +FUK~húʣ|,^UfIWA7v|E̚}j⢪FhʳQwA=@s\_'{}Pu/?~Sn6mjeW-($,<;s⛷QD{ODR~^Ie3\fn,.u!,z#/L$HWE`HZ״cYYjj * *ITN0[&/S< 7(ݻdNjI`So#&a^{OnCü9w#&]-©j!SrJFhK\6 T*=Ws-{!bv ¹XOV7/%m]{mɳ]4e΃;{/9Z'.̗eѻOB ëuؽaZ&&]HT&BRӂ6x M14+TF%-Ko+l~@ULh՛6_ICa=;*'ٳdA{5*8,o ?OQ 0^9l8@E Wa 2fe2셀<&~ؽAezFo +-ފ\,yz%P'pr پ`j@O2f 6P*fhmaLJ=?O<;J{!6#~:v?%Dn+P)N!F'E-2h?g]#!`r00x u0ߠXLXd\Nmaj"Xhg,CGFPHj/f(lګ#(:Bk=jw*tw o纰xAr`=Zflszv*ԃ{* ?B&8n  +/l)C]:cu|h@>ҷi#4mk,Mv{`;81me<4I%chsh龾rZ+3O8gc5=M3XNKo +8szS' b^ݠld_WOg k繹ۀY9OQeGM|??u??36R s{Y,R_o涼.h]6F_OrIxjʂޙe#~_#-j]ջ^;A;>sЖ_W79;3'X+ZOSsD+Cd͕!kd`KWc/giyu67 >#tV´{u@ɮ9j`tߏL8{S=%9>T M5lF`~]Y*S,orIŴM8{$=+ya7O 3<ř7A`2na^!{mw;o}= +<0*ru՚r\ 6ỞfNfe7j=8Ip_A~]ceo-53?,xM#о; +Pb5坫bkХcEa`u\AxM㹝WKGʖ/5NΞ3tD׾;NbΙݎgK^0<׆/yV\}Krsa0xC[[J,_a!f~P76Rw{'IOַ>Ψ/nNTN5/Fm+⏎:-@*_OG:}Υ*5\wVAeAkV?O[Q\3q+[iqMgo%̓'Z]|:w/vrIW/mo3:*̉b5U7rpYtgZ?iu ٕleZ7i(8k(0+ttg+ <wK.n1TTXunJ~@d}T?39Eqt+gQ64OHRhv + b1Ռ"y3hZzzAʅԈCj'~WdARr+5k)S_A/O_$EEכ ܩieI:&>+?'n9LAzSzǛwQoD[Xo_s]UJjij-C:SeZK<%aq<"w~/2>9g,?4rmnXOX6!^koKzCDu!v>%izk -OzZYR1,''t[!IM?ǯmIÍyKY-A<_t|hq(teE/#l^mN;rupXzde>4m"Q牸>(=z9َGnEd5le|Z޼'vnwLyxZT':k :v# Ͻ/f~G">\8}㹺Z}ޅ\>O9] N-|JjMvvE6p>APuCEStSy -kH v0ve{4DvVwGXPXV"G5⫦[AaOU)c{;=ګ0Mz5-zGR|ưFS^G3KXg5:zq^~Kqk bGO~Uv _v>km]Ƒ K{v-/s2zekC4>= +#sԬ-'*BH!ө emerfYF]J~ ]P\@T]pgvXN vk߬#)hr3.(eh:͋5;BRxi+"@g'B9<UW-6_<,+S,0۬yNa\_YN])IwE T>/MΜO\I,6cM CڛV5CԀ̲MW endstream endobj 68 0 obj <>stream +(~fՍ_X&=&)zKa|v&bG_?'C|"WCFB,Jd.|aU)]&Gr rP.Gu{%K!Zbֱ 0|b7y0tkzmƽV#1USu;x^v/]3=aK-J⢷[ky舔gͭjQtUFV}נ\szZ5kUݫ|(*r=v*W(_fWvtX%^%NJTTrhKOxVv6ז42Leo˒DzF#_)ukE+6g+)M$+1}*XȽjȷO"Wl+pGPیu V.]U`kK-Ϟb +| .Pb7Ȫ雜^ɜ\ .*}ތ[ロ{y/!94sa̚|>|A7I +<fKM\u +nm̟u{ԣ%amv Y~bAC̓Zo#g-&.%r 9ꀘ D7 /"T@ %qeY \.{/dbTK`uiv}/Uwv 1 +W5vbAu`@M2L 2 quy-O3YPPTTV +qӳhLPq-Lԝr{ǀo@+_ i,u6(egҀز4{XNAO}@M&^m-^@+LT a7WڀY`|zf澪ѓ[h2=`+C~-+NC#9!n~_@EkЈlsߺ--DMğ +R27 \p4jN:gZwMZS&.K6oқҷi黨Ji?4mB/c?NS +3kv ,A4e3^BϠΌұ3{–?pSLG |nƧ^f +qp[3fp” 1M2dJϾYUS }Rn^B OPa<6.ckcw;Њy3Ҿ}M:rmBP3?Ig w:sk'u3)?'3%O?eZ|NX~lFkE(/aKe'Irv}o+_ܼ2~!(sh)n$lJSVGx,eKtu8L\5BEO/FwntG_~ER֬']ִ,Ѝv +ꅛ g:8wD)?AG+Br[Ǭ3wr%v-Enum"s=͒=a6ˬ{?$f*QdQoba~rEK4k}::ǁm}e7z v pBP6}E7&(j'N  8{~RM,ZH?U Yon)S=N˅zj7z4S @5za֊0X ߚ|oMhvy)%ދŝP"%rC5sA R/t~ɭ:?*;8O7w]}2K[v7Ü#3kȋV{+i(ˋﮖ4.{ecQl!:.6[]LrtRiyzNj#46qs_F*!_$<̀LuTB}zέl_yhU\M/&QǛ+:FSc!<8Ng2s^{3 +`7n2IiƦF}G&uIG:;|^Zm\o:$xE_6ŀvaӒGT9+OԴړ>vWKes4so>DEs?;ly=wm3whew7+V/sn:$@;BCiwF&_L ?iu\FpRYh,T°s`Ň4f/g7򹷹7鲉q?1v~}.flKrǚpԂ +]Nfu;x±6+m:ͦx0k'mu%̲g00AsAYt,-(jC#±ɲi'U̜ra]q׸5֗f~vqxBعQkŅ +{ros=ZLxTPr.JF0+Ѳ*gOOB6 +Ʒ]: &+F.vV^P įM_$Aێ2\#FTZEc$GCyUn=4g|o +uOKb]{k +H +=Ef-P&AR; oRΚIgI%N G-<>`OL'hm&?}b_G#F4ҧE{ϩ˝r=-SSRNs|K}#鼱^ޞQ)nvi]<ߵMg<3hj"/?<%WNb |` +c1MlxD*8zZ+UZkwWVOבV~.NxI']{ga&B~EہԅCƇ9Ηw!ȵeML re4Zȸ M!;91VC2!T +O0 bMighkݑ+ϰ-]CUغy^vpKO"aZYvruQnKMn)3u@ߠڂv7?aG|zVzVG.^4)~_6V _T>5w;,ՃenEѧnrbNLݮ`450~UP@woᚯ{n7H\zM㨐gbz EȮH=sb>9^f׉dP C IzM@  |Ԑ vrMl?4Zj}Ҩ0#kn;g1b9b[0qrgp+ң..qQ䍑kEW'|BS8& v/E׷]̝/+׸^EFSvq&읍0WxR,.{,"ۺ{#6C=nj\)N0Sr + oۡ{*׻x8cZ/b< 㦋7 X5i>|w7lO7<_VKz/}nJTtڛ 1 'OrI3kfF}2:GD`V΄$xhŭ2Mnn2ڸ3NkHO]7޼tIj^]%h^y< Ϸ_16kvieݍ1{8U|dvPӎeScIv owx|`G6V-ckۨG4GVllBl 5jl%iXU'V m#Bkvmz9n旼6bdY9(I.lUWWU9 Z+(X0<,XηZ};ܵ&BY嘼|Ml-r;wn퇗k.c|w G\FJ[:}WMlM6AԺJH҄IxaP1K&}fgi8} mEgwd(Tl>,T`m`!r6_IJ?:Er-Zv+gP{Oؼz)N1QߵG}uMx3[6fܮ{EPEWQ9?4?OjLl-{K.?'vMpۧ+CM{ZMTU#HEQVEQ^;5s_к2$## +Oq)qW~ܹ2˗w Jߕ&qX-߮p_N& O4NXz^5롏+ݼ[I\/D/\Ǚ>9){'7zbel2yևڼN-n$d_*?Kkx[P^ =Bw~HGN|TgMll=ryոgWÎ=6C;r;[focC<Wx2kh`2olgG'g~݈< 7]L}Mٜ<$O\fy|3?PF>4mHaTp9> +e4ZAG 7Tq1~ɽp{>^^\fvn1ۜFxwFf}޶OwV_YxFԩjʹ}-l\O_xygD sd,[4ǃ^X:M~6/=0 *n1ݍMrTUMTeݝ:tXȩXH|B؉۟skOnZYRv +^! a*Ih2^OOBOޝ6v۩ &Z}xk˭|چ9g^3<ۙ{i6P*Ȁ*FP׵AG(/W&Nm"\*,p|NZ:8zX(JT+䬮~ݯLm7;7w0xs95SXϙ CrmK>a_sPז9Sg@Aݹzhڷ}*Ul)d^ G{' +V>6rp&~ɟڞ7;n:lrnóGfoڑ=@j27v~,#㈯jJu6|<UW{i:ȶmՆYU%bcCZcKS_Vܳct4d/Gp-~iu7u~7yFGܣ +igㆱy}p}dxGiasCFD#:dnB%6*OIB3wFԷCi@8ֻlİIoQٮUW>q@8QKG͆mw[;S!4U|;,f;0@~ ;XA_V6W."E8=?6KlX.8Jpeս^Whz'wmγ|{=ə ֧'.rlx *lv?)>{+Z WUW^Ћ`/fVݏ:Ώ/ )pÚ0H6bMbu/4Eݏ 9t:`aiNvdfr'aK/stծ\;޳ɶ1ԴɽU˼qr6T9ҶT7QWo|o/sWnܠRzyLPN`8<%Vty%Ⱦ1Pk;U>UiGtBwXc8Ys&MzA @_9_z~-TZPӂg <\I.@F94uf45Qmޛ}h͍m*3!C&e_BKMʀĘ8?'U_s†Kxm?H\ޥxmC7l qznfʄi}CG+X$bcW*vL9cS,G++6q{\ z 涖Z8|}j:_F>[mI9],#j3U U)>;W~ TBMZ;/̋m檽 hV" +JI\O@\{v=^IBrQup*Zf +zY+njtylfҖwP1T r0"]H۔ +-XwVnNZqB^lff&obTH ,s9)ID* W+O.H(cEE'`!n!$g)Ĵ(,j + 8E.)1˰Og"ܛE X.!*T* Bn6 +CԚ$/ Ց2 aן4oD\777lc_(;K'o+r~ަroѮn@a(ݠA>&j{Z}7#(`snbaU;[ɧ j8;Ww_"ab|Np'9f0,:'Si,>mK|'Le7 ^nH#+v* OJ-C䫢fl@AP0\U,2JeP$ʀe@ޓ .~ꈮϵ)ry^G|h<:.yUT@텄T{4r'].hTG0kZн}eѱGs@3ϋ^0@ +2t@3VdSF`#z1)h4vo3'. X÷PMo0nfvsw؂r,{O+(`R3Z|3 `P `){[8/NG|)53Ǜ[c#\0` +_=Y` O5 p1q<.>P_5# +)dHO| ~7S8pQ<"8څ zRZ[`U_yw27 Lkũ.QU螔+<; [=h>&|ev&NCbu_7wi%U>xH\yk0 dKsطgG9 n_HuO ?`IugUcџg@l 7!^lTR,M[8b8 |>;zCUKDtT'a(4Z?h/+X^*nl|VDisXEdTB)xM&"f}cjMU&6Ð{a Qk3RRuȰ4 J%?*omt}8_FpIʺrH=pt7x.ܕy%[DGLO äUA*[K6.h>5R>7*b`/nFNhټqQ`XfP1ԓ[;C tD>CN69^N7s^Ym&rXwu1]D.3x}y66m:^:BdL̰5p2CvltlĖe֦- L dZ?cJ9灗|"V]C-ݦru2a1&߉cPMn`Z'V̺'d'`h76fi>ЗZY\F 9 5oa'M:KZZٚ[׍Q˽BH-ʵE"AY? 8}]V]mZo +4՚a՚])g*d\>.~q FhǴ=j”sñm{NͩZTm ֽhlS.i~7i7Ǎӓ?K*9KkVj/3F\pI^&~YUQ:UF`Y%I~]lwH~VQ˷\6`EtY Y,گčY+'XfY=->)ԧnRȪ!b(1Jͅ;MFMe_5Si7a?%a~kEu @n՜6;,"Ldq^uTAZMZeD֝DGZE!ͷE; G xrJg'c@\S S4~IDf9/6/LRfŤ٤Ub.PO<8H*=O.N}5qo*ܛ /B_nt5.kGe~eoQy95٪M߭[7z ohqU`C{\muM %z_R]r]{·FmFTJ{6jxڈLkO=NEh7 >Ul*w0n\ƈ5 Ŧ괦: 9OR9usD@Qypd1ŐE7WZ\O~ Ѷn$?=%{E85y) э՘8[#Δf7g&8ZC}!oU[JX3?.]TlTmp f)FlVu>r,綈?1((pv:n/+wKh 5&Tscn+Q`MO4F83߅pFUWsU1lP)cry~rUSNl#|Cp4)yDgFE4:/ 2 ?˚?)t o\zl*/Jrg@7jf`G>x\՚-NJrf/^9-ޡ|*Lȹ: > nfț4 $G0kW<ZyAF~ч/n,V~a6>]+mMyj@ist0d\)|jD`t+楸xp^!iBys(UVPN{pno`f@ Oss `Z  S T;ҫKBle{Z8+D/`imCV9ce=xa7[+T|90_$),21?>d8t'(ls 7~ +cxF7\PJ1fe~DuF4I\ k gER#lK  !)e%AIE@6vHѺdX@d5{5xp@a1$e[+OMuwҳEa4f[{`(-6hq4p[/y(3(ZcP֙T''j (Ml@ +&] @H!44*EP\f؞Kڴ7i}EjUgb]jQ&[l\O,o :a^ tL`0# U +xmJM|]O]3 D8aҭY 8&M_=Yf{t{6LQ2` OM3r]82xba?lo&c-VR?AwF{.MXglgb՜cR_7X;GΨ5Ý؀z{;m H] 4k /4!ʶa|GqrFW~BpM2mJDvi%̮N ҏkm;xu#w M:J}˜KM$CAA>];oݎLJ7ۻ2s|tV|;?.^&{'7SM䯮uu#7WW2VQG +& Z6K%|v +yR.R #slch_zn\phlpx\;9}- a{Z$Nqm<; M^)6f߸c_7]7Zq%݈Ryը-q]ԘRk 5͜yhŞ&Nɝ8=&7 a6Q28?ϕG*m/u;F%f&⷇O,rt؜:&@νtճyYK(64队U>QaȪq$XXxh!y盕k52wv:Gd6ppf=#`(}3,hc]71-{zZgN&MsO C#2-ݎ.?pCtwKN[*I`>rM }0vOvF-4,,3VwIm] gv:lUʏWyMnEJQo_&ϭ@o<njɩ{gXBW-.WI\ӛfmĕ9ul6T*v^tN!̅i]Yldb')ԱlG /̿RotA'/+,-9ۚyrگ>4/EsnbYW-:1UsN&UX +@7W v 1kpZ[t=+hEܕBKi6+xѓEԅ^e TAf#ñ1;4gK"Qw{~ۍc|zɐ6/ECWU= א0^K:/>P=5? I.tlBU'G tuЩ ubGFdҡ-67juli7gDheD_ ]5S'Xudjr*WYŹ|܃Lmr֭Zi I_l>e6ChX>M2󸳿a(5,gwr-2oR?TVa%WjqMgi쪝+6VaVILg5rP#F$ITGTHpӧ8I.&AZ۴֦eU\{| mO՘J5&ٙ7kqȽ*_Z6oqA)F\6^V:WQ jsNMh46V>vmJe B=VuިionKj})a>v,o<#!5`FcRYqܭ7դ CUc.NBXUzX, G뎨ۉevb7w"xO'kg=8ږ.DN]=kr>[;>Pދ[l;av COjVlD}Y۽6_%^ܓcN&ވgphޥQFPoM:NQޛH?9V%ο.;#K~4cUL4?+ѳ~MS)HԼ̀Sx3XΚ6GOfE7no. κalٍP ӟ{ Q/fynuj숚ѬM=/Da;y눞M#-vJCGZ9wҺ%U"yjҌ6_Kv런߭^_9-RoZIm+qsɆFʮ-qs>_;+4fĎ2ZgA$P + Ud;2Ay - 3.8:q#oN`ۄG˳/U=۵HHZ*B&nTJ]%O{znRZ~J!8Uډ,{"iK<]bDŽ{kC?#Ʈk]ߗ^,NM'fwu N[ngp1EC[qG|npY`0e$[pfw3wҜ$*`^P(<&wQK 9,޹Z@zTtعcZ +ZֆϢ1­ 6%ܙ^\0]a)w3y/n~ʔ)nk¡?<rSK6fNRq?Y+A36bW 7iiR*@F2Z ZJ@WH՞hKh4~"ջ|aRkSlĥc^%e*3™CnjX}ꄻ.TATЙa\ +haU+Y T43Ӷ_嶸Gr%}f? =B,m3G6V0V‚\aO5YAs6w'O6e> +䶲Bsۏ.WFi9$؈."ݴ]:[E8>u.V.˭PJ/f5'ԭtUE(NMุK} ;ms˚֧Rf![b<ޕI y|dJEf}gZ֤:ȣzz& 7z_j)Exݖ3WjU19|G$l Pls[*+z+6⤠[Bv+cz4p݀ڣ}Ivk2Ơfn6(PbL<(UZqZ|xX|ߪ@X}<5$U~Ep; ``)n3y/qX`v2'ȰaNYdؓkgy\&s8Bej!+@U@ˇI^bngPRN~6q +@ ĨDg*^ %\bzٵa Q?k{D#גG}'7ɝikQ˿cJ=x"_{}:3dnT< 7/ VRy3|D@dPi(<Z@iᚽOb@5"DȰ0+._by33kɵ.29Hiut[hSxS0e7+{͕ ^( +u  &_0 W}Sс5!`#i +8jXHk? +p07 l9̰5}‡otHNYtĿ-x6ʨPۥ>[t~[ +O_2r+C53ߧEMo3r8h[B<n2|A دK)fK,k#b\T:'lݼ;:7g6Ik(_ܸ*C6/@)sQU楇%11פ/g!q.;`.:>@:nN`}V[^*X%^X טR8Gh SA|@פAf|?)>/ǢryG.au=[+Ԗ i.^ߋ@? +=3)*#D]>L4 #Jt:FO?}߻Η Ϗ_lEN)ZIj<>;b@Q#yWS&FI@abrh1QGtithUԁCxP@_ڧ'{lRaUkQfGER~Lia,Bl=Fjxk wFVW;rf'Oeϼ^p^ FT72~:d~Khfw֡b/UfǖYibBxzsrqCnhL[QÝ6a8pď'/M?}~?AK'̡)dm&]foYۥ¶F3F9/<\ޘޞ6 +8ƃ膂خéc@ =U /-n|7 ]U]X:FvNMζ<2%`ߎ3m:wM,GU:G\ɳV[ +>?;? -:j"myϮ7) Jw)HgN편7Ztʳ!b`zʼnE2Cjkr|G[06ycWF, jm4دjQER`]b C0}ص^V dEwv\};)to[꽶yo\Y}Wsm|\1Ą9_ tMuh9XkzivRS5YVM"steOV;dR ;kbJz\P;4[lnE9ݴ'圙\ec|}:: tf´M-p*׉״*+ћK<. G>p};Ǻ{E_GA5͉^sL=,i@R/N`PVۜV BNxWƥX _D8לR?9 W]:I4)UuI3Yp1[:zR:QEݪVY:^0rD'AqU+DgGZ^QzrwN uw\ipT%cBO%\ֳhPO;*.[' :_ ~se[PWB`p.9ybwcthL=r 5΄)3v?!*_tѭuF{~qzdku9)Sᵝ^crݐ^R9E{EŒh,w;N%3=qssve`WWi;#R fDeD[ԿzQSlF(U [PK~7by!8nIJ ("]rsXs4^>2NXNy F*fjtJw董RQPp⩇Hk__Y]G/ec%lhSTQﮔ-f: +!7}cT'6ItfGԠ A[y89n%dryi&1U 7A%3EjSb4o9(W>VNFJo IͯOzWrWaNI߲aV58 ^ȏtۓ;v# HXq.f g$4<|!۸plйbkLL!F崺wTUN_*RS.RL Е9Nr'S):OBڹ53߬R>[!!#%\(ŲV_O8NggR.y\m#qL͡7 Q!fϴW*sj9kl֫ +vx7B2Ed֢5ٯKX*¦u\]s/BNЖQqf".ťhwnyYXsJuU0u$ ɕur +t;KGUi);3KN#ٕtIM "*F5ZD#ZNAZR{?ƅZf39!৵̇W=W'K6G%8,Vײ݃xOqXsԚI9W{#TZw\na^GB?z3. }J̢]{&6' 4:>~%eyL#@Β7 )/6Ar%[oJlq>*{ e&Rf)F@C3'4RNO:'.*o@2bYfSElMt.^Į\wX 'm[J|FqjGڵeVf4bnJhfCakS{9g,d]%GϦyg7.az1x6b(m (Pfq 73dJk]fKZ>2co8 s]s} 3A5?TV\_}Ő 9[lu?Eؔ|MDC&ӓ֣CUE1UZm0):]~gwg^|>Ku`a\,t +i#bٹu`3c}k$M}G~,Pz{}1z"=|8T+368e#}EEi-_ Hˈ`G.#!"=7N 1ˤ+XS{>uv. *w:lĶ׵ֺ װ=x& +Őclpf(z[L~c3W@|Xvמ2k}٩Qʦ駐?snK*Ժ$7M(c5"+7lխǥݼ$򭶨\Ty]N烒Yǘ^M-:sH=H= +nxF\d}nV[ VO* n6O6>z7"5YmUw1hW[ЩGu]7UASWh Â"e-/Q/@.Ebv&tXvhԩKOGs_(P#.JESjV4jZ_IJS σNTtهP۳i7-M|eQ +džbj|WO˵Apb:[3?j$mcq]wMzj Ϗi_+npF2eJJZ۳(fZ;{rziTtoeNn f\D0NE*u +Y._R}EPտOb{4迌nu`-|=xVܲE(8eip[r7~M=3&`GgX(w:O%TTdϢ1O<[ӺeRjQWN)zbHbZ=5j$ni힛`ELP[Qyh}F? )^ttW|swuг\xeݖͺeꮗz~PNb/M(dZ '{t&3| +Y"Yeh]Z;Ql0Beٮ6kv gUXQ6L7D5bdi %t?ӌtlk뚟~οFMVAMHUW _vlȜśA\Bn.)Z\Z9ѫʇzzEqĄ6w6/yl3bpM17aJ[ohA *QJUkYUe}|Zi^>O|qKv×}^`-nPlUFl)y^Nj`EeuZ}ȏkʶfǼF۾̞&:^. O\ԝ<˨l*:QV/a./wBYVˮoU|OhQRO[AŠlUlNN[9#ȟʯ_ā;M7鴷 u|gյ +g*51'e=˝)oPFxL2'ٹ.Zb”BaAx`܄<; h 8/rYhg&Ji䱥Q>t9OUfWXUim? |BYi!C!2SIKx{q4.b~1~byCQqd~^뼧&| jՂrI-jIo\FSn5MLq۲eu͔ ӡOw%)zV5zFzʩvkwQaE2! qWI,ۊw=; [+=#yMV2=bFdo?`jL5}9h?J5d5_o:yH QB:ei$w]Ѫeh (sl0ʳޜ#I&V?;E32c`Jk> :Z&*uKp -S trw6D{87g&2 xsѪtQ#AXZ}n]~92yؤvX- ؎f90srN{d:S5cGuRF/r9:/;'/lNxؾ,yoef`@=D,VR%j(ǹQaYw3K-ЈڒҖ+j]2Hq2 !&EIr=뿝xYpNd"t&ت}Ndm-Ⱦ·<}]aZn],NMlSjyTZ,hɼpv"`g]/p<jX)&Q{\0s[^r yJ^$oډse.}4W'—hV#j_ #CL#TyAo\y'V+=F\嶝R6W-,:_4QF(O)!'i7C4^QaX"ܤoIA>#{_&\_z-a6bs25&gh7llao \MV֓Gp/xֹu׺w'pv_mƌRN@F0K:ǁ^I]kG7JM HBoO +DX!}r;ݶ_9r_N$^ gU t2@Igs"d;;5+6jˏS]7C"nVMBLJݮIa;{M,k~(ZW uRwk^e_BpެQ +vM6^] +qⲼURKbuXfHT>,bldYjYk^5޼΍GvTm9DH]bjM~4iy+SY˚ -#1ǫ/]Sr&5 _DM"~g^zK#=ɚ5R|4|D y}g?lvܹK$q xIqH'XڟQ?#||7>Ljfޢ8]d} ]r6:I8;"o֦_I;Z4h>:7\ޕFڮ>|vPFH~l~ϳ zu$\S9,<48*l}+F;g^ֿ4Z5ip6?v#aǃ?kw^kcƍCb>Pt4:Ifvj$酇_ #lmݺSըJqshgnQ9 n~]la{ReJWa%(JMr3+Ko\WO031s$~>z´@V +4bYyaCu,[vmQkض_Z5`JҜu*5a704h`OXMYM:hW % 1 ??o$b_L0I>;q0J5?Ukkg&mkeX3V:%D5/*C&Vb\..+Exe]Vut@?_ ٬34ub^Qv;wè+,=Ig+9}.^E6RG^hdy)Y;l I?ju> [ϰ +[`kɣJ foXxkڪT Ꮖh3=/z]Of˕a_j.> uH +l\-4O±[Dl9Zh|ȘķN6 +n(46OhPi^: D.Y}eZv1wU]bLx.aсIzaw̵ HVWZW$:s?3W|[=ޤ҂1f&WӳfG  nZeK0~FHg+s,<8I},4!1ۋkKg[ 4agݱTߧa|:E΀2gGLZs]e(4PB>}̛^_Y4mYg?R/z*4Us3w?(~ 9I1*&Kz:6tLBZ4Rcuju8(qQK7Dn??,- Y^ WbqϢsL{>>x߄UDSt`/.]$.xz=*Ӓ@}״uVȩ-+fTKؑϝxa/nU扈#&£ƣÐG0PFO)Oûحi_FKւc)#sdپRo $6uE3Ԇ"k3an{> +g 'd~`ni5DKef؊ʰRKai2貕:H2&:dZ#+Ǖ Oɬc:^ +UOٵWY/eZI/K}b#}d`<4 ;kEtSv-+Y"ޕ$t u`i0grdž>)i'zzQi Ctdaz4 rІI~;Fnj;XrgpW$ݮ bB, >NJ6WjE -4~`v:=^̞EignSmRiԵOTW(_cfנTbP*)e}nDQ$n/R)ԉsrdz+w͔F3ŴX#WW`r%$jt1-%u݂=jJU;D^LMI|$oAo1Ybmy{m9X[P I\Ҡɚb>Rx"xlk6WLhM-=~TȧRrĤ1_&{]Hg 2b5 븋b1,WlQHl>l;,;p`5BΫj jwIf1sCSFQɡ]6Ϭ\ L*+ q]Xhs +i[_ LQ.z|ptof`^r}Y axomi:VœHC +2paPA0Of{Pr@wOzv9eVS[Do)(9bzH~>P82F)#X] +VBmzPM4Խuvʝeu@bAkgcmq;=13L̴,vtwz0Ѣ6f/nS /ewY= +i/j,{rvHj :Pįːu522.ld>ar)jcB`qv"N_x M s72^ߔX.b_zM1{U\.2xdQ *jg9PC!kv*5l, +:n0js ~y|&>oMOvA"jܩoSo?p_li[v(n 6U[S8 $rylm$L  ! 6C)SM@ءbQD}杨9 C'ŃDeR6h}J\zNQ|NSO}&`n/ٻ{Klg:. cSX.ASdrPħtߊ42 }f uNѺxg9b9qb' QHzL.ީ +F_7#}zu2:et.V;iې32,gۯGb'JmTUM}tsc@%n=?`JMFF3@ NuPgs 8 &~NA66cV=*OEm|Dm(ldgJq+:3(Z\.]n @Wg0/cfѻfif53)/- 0*JL;5\-:|\&޾1"\G6Dʯ-`ؼZ: +"}of~-7- vz `' W8‡?Pk[Zm paa\e*\Jj#- 8j¼&2$,ׂ,|F"%w/KW3'ء~;o⤘5PMLo@h % x &x@kEE?73BۻmvxvNؙ<7bя6/}7gYrW7ˉi<jetiF!'zG=|>и^Hہ:wh¹0=Ju ջ:iE yW> z[zRWZWjLև<\C@v,mٜ ߇`j#ѻfKNNR~G&ya.B޴̮-2֭n>G*43Lү:z\U.QסbkX s/w!\Xv>N O!vȧ-ЭJR4>hXagZͱ:55,Ѣj*y +5M-˕a>.enT|6;?p畜/1;>=vdMIuKg(OqὩ#̡ĽПj@[h%iXD9;lpbДjܯPo?pYzx4h^{}Vʳك}r[DNB9}wѱ^)2XeǖFg鸼\VV%EakJh0,Kf\ MIo _g /Qԃ6YWp,_Df9p@ny_dMڒ8{%nTS://ё=t,$8<ū%xK^TԫқEwE0]\889uv.$ͽPSo0ldih9 F*sޤX=^/.Ktw#B8Jrv\|;8)j +ۇTڲΑӳB:f8+y-7Ni{a0MьvYnnu.u%u_i}hxEs]R7Bݔs³\s̛JXʴ}}`;y[@u> ճZ{]TLxn5 +2613WZEqJbV71D4*8(*q.T˭~zFPŦ5O=x; iMΛX7aˁdfz8gf4V6&GA7Ů.Zi64¬u- $*{:Y)mpM*#&]+QR->8ñ;&paދ¸xq9 y5Dn%-S^;3f&.ym͔&l؊u} ;V++uZ+#Q-Y#SiPGv|_jxkK][Hj^Dntf)65~i4Fs 0F8oZ8/v۲ةOpr[ul_L㨛j2*3JL +ox%Ir8[y_0>[HLʮy܂_}oLIl@Kta` >LXgjIFQ"96\~.Ñ݁ZMsBw}OyuGҜOx9 EJ9I=rP3§:~?6:#-fM}fkR`tޙZ3#jtsthlTx*Tjoh8<әߜ.5 _1^8e{)=: Kg)l3g\bjѪưL>\Z[GeM ٙDɛM;nԞ9Zkk] Ⱦi;N~*l??jqu}6<^rq%*p5F[BV-G a`vb[YS:P*S$x'ob4'H"u "u|rg?0>:C8'ZYUZ%oi_>hߜl35m%JkbȱlŹG؊0b.:W'J꥛EI#F7N{.q1> ^88b\VTXnNr+yɭ5[ ,7.XK\/~`!]zƜԽt."KBacRA&&Z;Jmԏ&F[vzt6KdO$q?cbXnrnɑ\FFV82J@ڨ՞8EIgѻߵYW_yWC3{+n}OJnwn9ȐC@GIј7D 3]-M;Wެ9l 곱DRi+i' Lgߪ (n) "hۨ]Q$"v ;/~5o!!/; ]M 5š,a.)jl, 8 8tp8%!Xv|A7vYͺ#Y~|]hN6~l Gy> WT4]1 0^hg0OAZ79F#;hYܢ79QQ|nA3Vsa rEb)u3Y⦅*umA^DPĊbb]?$~k 3H% 2'lB+IwPP[gbSVNZwps*wM m$Y 0`h=d"L#(3"H(I$zx@2l%%"`z8Ʋi fصh5wLi2r4 iBU.Ҍ ƀ/Om^  G<~uqr3~tئxkYKNx'tN!2U8QS|6ɀQ` e(@< [Ԁ2@j,QP,Pg%e꒱ulπv5]fz;eTkibVr\ߊ72~[#jXnG6-om*]; 莗dw *KM0 +0P  |/>}&X^񷭟;@o ]XkAU'x3a\AY3S5{EFxSn$`$`LOLqn)%U&`7luP6kzU9`3F,SzGi4cTA:::TfӇJv2d\~t6e[K9e} +`Rn2?b!41m< ů' pAp|p+uy)u 읚f 7dB}CKH}ո+)1)gN_t}MWkӋjL;MV,aވeIO|~s,Ν2 UµK~f!ȏ!Yt׍|f W?3po7Ml$8#@ 3 ȨXerKHM[i0Td/s ] +9bEwoI$ >6*߉lcqHnM$qjW(M]fXSw$ Ti*5r_@ X!y.^֝ '#]͎5=;g'$.qninmϹbqte=8}/[+Ӛm$#lW;g\})/cM/<;a}ʞq.a{|2㿹Yjo݄\I22Gbn-+Ӄ[| ߴf\QsI-gơӻZ5Ңݨ/&S Vy2<%Nh+˞i~1s!;w _:\|El[[^:+sCOp՟jhss:(n|Zc1 +yG3!S~P~&02>Nݱh:2_7AY."t"ڋ[LY9wNsĺ׺ +WKMq癞m-;ifWA'^G*Gf̆`,˹-o==f|w=uwͶoEiϜꧻV5GnZHh9 4Oj¼뽵27+\C7v>9=KCyzthwо5ރzZ  ͚iFa/C=OWoB6ڶj NV埏{P<:fXpIǓ'γǬvG}q4߭Kt<Gzު IڶFkTMکwtmJr*J N.^_ kdkTߴQc|FMJdרY"{o3qQEť_$-OܱL%s9|IhʳӶx坽IVCL3l1 +7ׇ5|ޖ2xkbENۓL:4}2Jf1Je3-K{U86^}^ؠjz9zSM-{fiKv* f^akʲFe-oY]1U3m2KϛQ:/4v߮Uv0WxKmG;Zy\?LŒ.`źv^=fZ\i͊ZռX֬2>xt(gv~ΔLy|`A5q,@0.'((%;6(`V1ո{eEC?|=]GAZ4ǏT72`W1^AylMHyqVhG%1)ok|̼^iA#olr9ʠ /ԠMJ&&Ue~.\viC&?>Y>j7g+We-Yw܋A‚rmDP+KE$m(!%e eyY_JJ$s]$oe's#]\rj*0O@k]4\rT,굊 5UI7ۆ'Y9ӝe(wJ3Ӕr+n L,[{a(@Z2/#<?ci(iX/yr-3ҳ9{)]$=1ڟajeBy+&y˟'΁fZI"eLER$ؚyf+`?kEbŝktftgͶWrUK % Z X˪nkVmm ;6W?TsF|?~>EMcQZ mLO$KݜP\.@$ * 5$1ҹ{eq-Iޘlm.#'eR CݢGڮA/{IEMEc̢Ewi7v?Q7ߩ#Diڝ +ߐvxUv*b!kFo7ͪ{Vd3TfRLE꘶ޖ0yg['7jN;ېwi2_+PrM*2YY]e^3lJ!ӼRZ`<"Gp'W۹`521ޅѰrh ({@ݑG!p@.̟gwo1,SD֫5?N] ]wS#dR;Bt3zj{@sYz6#Xp7/L{FFsFHMI-[#Ze*"%#֍|(K.:Z}gs|QŎOZ6*Vw*vՆ%$Zͱs㦥ZU2"ITvΛx+'r& >$ y#z$hXëcoc|_>^-IF`SBPy*s[@Ŷ^ZXY9oL,RZ`;U\ʊs8sf[@ҕ$b25S°4gl;. 7QhNbV^'ïï[U~]MF';IJ?v6߿!bg0RVr,ϸu~MV/L{rB,Nsxӌk+YHZrLJ'>+U &2nȳu qmBRN W @&x,RvqX+@ 3 btm|g_'@d mvYx:H( +BrcBDC|Y wk}! t|Bhͷ$v $․ JFdfd֨Ri3X! u) zp$SM@DEz[+Nک_*9#ēΌ6M-p'v5Ei aڊଊ2\EC( " K.% +_k *=odPrO.J PHkd%4*(T8D B3M +WT|1?o`@~+<OPO\4kY:y@jS0}F :t/t!@R +4w^E{u`jB~޺BiTɊ 4YO4b8 'c"At)񻕭o6`3*fDz~fPҀٺ L-`f$?b=_P_ِhw|frT4\B<X׃ q!os#!-:/6U;4=p`8\WˣWWp8E[j +iW(u(2d6<pK!6<9A gn}C/_q@3V,%d$FD{p VZ;2~:ln8ޑr%%$ ENr_w+Cpzzq@,Xe7(Ҙ% + U6 it\:3ߧRh4/ u?oey_k!_?onr碄"PV'`O/-ez@^v@ = 듞1! =Ou( ;M|ߩi߼MI F|%ˉz]5F@gKzhbEI6ByE9E[{:[/R^ dz%=|v08R3}MCsJvu긿F5_ӌ&̼@ٶ^3 3f'֞HOP~xC|7wA#|؂Sv|vq֩ZZ籺bW lX̋Q!7ڹEP7Cw28ho?8|䡟t6R E㕸V=4c4wk<O;~{xjc`1W֟g.TO=xA&O:nL4 +;222>,5~4~0j{r1C sn)m;*q2;)OY[_Zf/cu>?5Wy40^3è'P)꓋OaPyM14#]vGж\ZJ9ʨX# (ձ}jϓWY#ƿ՚6BHbV;{;Ri5 +:\~mSF[W߭ڶ\W-j^c{ݕ)TXhP)S;fR9)eIRClzuhaᰎ-kGnyeu,S96Րp'T:FW&H-0f9-Y8/Fk-ڴ,ᨐOE%ɀНmrtróH|q| OnuR^e{nn9TFYu-bdWEdwEx yV̯'_pqU0A 5ǿw} E[f6M2C2}IeՌw&wDQgI*Q6R +}.$].'ϒ鸲d;]l%^3^mFvLm):-7v!5/BAo+ܦkVh3:dӯ_3&|ygwNkpKc*}A:.RAZ u x릝7:va+]ajl2z V_ 8gY:aYDL}yANc77VZ1J2g:rNMK)SI{iW`&Nmکt!%8Y_7,uŐ Őŏ>L,Ƭe DZ)ڭfXUMM,4T;B)M.@$g5XVQobJըZNW{%yDDz%Rt$[BfDq>::?8=1bXE1KklZʌPi&:qUߚRz<j[yŏb6$ʣc/@\)=$ۇm `?: > Զ*U3і;<;;W;ΤԾn[l“J KVkzz)S.#"o<^282ãlpH\5B}F^hoAyNRڔ{%7 YV(6m>‘X j'D|%]v11CVR|Q55Fb#f#BB燣XxbYw<\iq'Bs[Ğהa[a<,ⶅ=L͞t-gI6A,|_SbQYt&oWOI|RS +"-azI|*΁ _-ϭ#w* NQ7Z_?(y42(ӓGc~=!9*5ix]*kK +trsA,QlUDbDDѕr`ԵoWɂ۫ן\](łRp|C"`3^yg +m`UvfI#N'}MSٵkb$f -bgYP3ӞqR;wg^9qghb(]A5=))W~;wx5mnӹmNrʇ; ++Ygk \IAqx6pcLf{<7 +Y3=;fB婊7F1΄^!M f]PF%<.'l΋Z'#[`+"3f {ЂĖ(YAAŷ3g yy벃 兇^Tv6p\Fft B- xu3bpyC:>L<'u5+c-mKʮqpWnFo#<&N?73x|[Q.m/M>@C +%.n>{P.A6n5c?ۉ1]X.ؗ'{3hzWzNT.ޑSX{^b pk^+ X,3\b9:0!VsoX>I ִ{;cUZB{MT"; LԼf'yy:>+ +Us5Z~M`^hvcX,)pJ)2ng\1kob&Qzjf̱ԐOv%,y9ܽ/dG7{Ljwp=@~0<0~|}%S$,tn, +W<53<x?[h)ȎSc+%sBɹbWϘ';xcuGbtܶ_һ}1$X. % ʥN9LIiDeIŶLȸ0 I.'.x/nWBL[q_Ǹ.^xt?60 3Ȳr\ޥ +xX~KrSx- OH:W}:()p$ooNxO\,u")2~e|\~=h|(g'/\, ֋qԹjM (@U%@9j=Usj4K8~<S W?a: @]̂ +h5}CFe*X>`2.A}ԝ @U@o۲z6Dy+"Un,=S-D2WRRcxM0n,&kڿ8f?1 +9;v^7NJ c_4m9Ԉ81 zzrOQx%Mo"ow.3/) 09 .௙=xHݪʫ"44T̼IDRJREYX/!q&{#Kw~$Q HFKz%6$ |U.2y!rd7gJNRRBG ??ϫ2grXclⵏ2@4▧š@4glzmUW^$Iw~} nސD%$n3[ +ԁt6@[(QH+^(8qA|+Aopj<"3SHWXI}w9紷2ۨ[id5WK6699+a3*SKp4޶ >"XWЫ:魓iY9jkW\ՈeD͋3f'\͇{_O Iɭ6q&yYh?hĭ4w_֕~:.KO5ù8M8h21MF4Y64M08Ua !<*;b ~ sO.L{0~A7jR џ5bHy2V yq\12YW#=@e5>U~N#1t|RAz.akg׆ Xq'A&H޾¼0Ɩ>,dY9mfyɎeT[zްFmDzï3uz"] UodxS1oK8]kUX?ڧDZ@%b4ZζqlcSFQL=F~"Ih^4vX +icթfʧj1[n a^8= v5 ztTTyS A]7Kt ~_&b?}%lVe<`Qd^qKC?YH@CByZk:*ɘ)RT5a+nXTeUO$Um/PƳ7,1vY=MjUMNJ /J9WlӚ1:7_א6͐8! Fmɵ)NKb"<W,,Vs*c mvh4TR#xQ5}`RSM4z/ak%7bzܔ^1ћcXjDL( !^1 ΐo{֮X{a =6m +*5}AvHD:gK1*:{thXP2RLX¶{&pYIʟ1;>Yj(NE6n=9 0LгƓܠMxAEg5x阍FL6lp%QsAm =wBtwRMв_c 9O^FgSv QTqN;WEmP81s}u7L#C0C:uxh"svYF@T~?IQX]kbΘ'>k0ł'D n] +fsN7=W伶fOTgQ +AmN}ΜG?L{5ӷd <d#YL~,;@vS 3+96Hx7 -aٔe-Qw;7~9?wc>LXm^o=T#D#z_(}0X' ++&K TZM?<)@eKHP_(cob9ˍE3wsGXc VG>zie*$9Dt5A01(umVX@5JÙQb|2ԧE O7XN3Cx:EՈT(1{38ckuE}tJ vVFJQkɸ~04-%dϱX`.}ss^CK2 +j ` +`҇|qRuN+.U +/읦3 hWCsӯ;ʩ#)Ҝ@5o&dاr.Ih,56k +rˮ p\#3[ HqXX`v1* yzEya?;BKL%Jk) 9x:x񝗄6/q/.WcQ|$@L,k6(xO {Klj{ʼR' U+IlG/0l_CXE +zDU 1~oLJX.R5d> Y HĿAXb@ I+%`oryA_j c,eBP8(׸V KL?q^h Y@JX]@e," (@篯< O/_-/Dg|Sz7yww8SkхN%%P9~|ą@z_bɇ h.R;Y@n%T w V9'r)>ZA&L"7P O" FKc- G˓QrN̷[V#RIL7rβ97\3N-Λj{*Y0&xE,LRM]KCBdBlOII OV_6 X46Ep+fO50: +L zRsu^ ¡n2t3⯑ڠ,_wqN'x?mHi mE~ݶ QekwXHY  k7x]8RҘ7Wu?K?pԐ7$ \ل̮ ,mS@ ޮv@1(کWk 1o;-I] M I5I! >kR1B1ipkݸE7=+7'Э t[Z 6@4y:>ʹu +34 +ܝk(󈸦O2{X)E{ό܎VZu}fT][F-.^FEGB!d'}I`V̟Jܡ$\zmz_V5xumB MG7/Z1/~̅Dܬ&[LMә8 +;gmd>kpaR}-QDv=%{.G$8>V;4)?Oд)~X[etKu͑wٰ;̭8՚Kh}-z]j0[}c/4 a5-Pmog} uvɻФ7wiKkAwO,o5svGV_f`5n6Rh P xmP[RISL-t϶vtyqfQ5\mjkjS;:.t.1{_ȸm͋QR{j;]SL:B ǒet* +yVSU?sQQlWE`9,$gPTϹ3qUݻU m\>a˴g:5PzZT+^m2\qiߞ*J,BYbQy]ʃ}Xt5{Oƙ~cP) 3 u|U8<ͳjjV}˶|>V.iE+ULCsTa9 rm7,_LD#J*Ee=fˬT)<~[ T3_[j]*xcS-Xw|aj #rpFRUVI=;K%YVbYjsJe%F <˰LeZ~^<ߟyyqJ?^x{*{25Ons}g:HRըVRGdR58Jt{,Th\c{%Jϥ0V/Q=!WFQ{ v43BI|I tvVq>%rjp*@aNR++B ":H 6v`;'8_}y&n 3!bdھwo1s(y,(1gdڇY<ƉP,=26ԶU&x0ųFblR4gh9{[;6h)u +)1)uF>}m0ͼWzޥdyr!9r0M?5),5|=^7dЄU±ܚaL.dW*%WYјJ >R9$v &I8wE\j1&3ǘlY5vZ+s|Yj^q1岩e6/ԨÒӜIX(vDd,0;,h|ly6AGADDJ΀B)KfbT2vUJA;Xdѻ6u ZgxHpn?֪4|"r^ +kϑ;YLt[k.ZGܕyb0\*AiZ3^KKݕtu "4reMKiWg\+>.9p5wmxHM>|5p-o۵=~k{"g_q-|h"g_q-u!FFO ح<ĂGFVNprzGg󝕻t^k+Ebju 0ԓ.Vwe жKS7=cc/ ąwcrZ &L"?~>,|UZhu滩 /PYLy +ag +)G5,Lke6# tPekڨfͮct!Z9LfyVP,oBЁ+ntV*oivP^ >RRM>.8&Cje +o7-tLdf3e=:F2N^gh]*ʭ b\֧(W-- ]R;OؗO[ޠ`0;9>*Z:KH`:)v)MZ# +`WvwF =cزO۔ٳcׅakt^ +N=O(IqAAĹk{콁ܘgIҲ]sdpA=e{؃Wx~/ݡF<]izAoN'W= mcٶzL?u(8s?+yP^ǖ۹-OatZ(ri~w"sme+P}{LeN4H+-툕޲~DanwlXY6&k) +Fǖ) wtX)V8,*989Q$iDmI9$ +A_ävU![Lq}a^߶.0;rSb iU#z]$|ƣ:$k[yb[xlXQ1 +2^z%Oϐ~$ݪ"ˊsrIcj'y$~e32bk\/XӼc@H +ڢFf&{[HvKZۭ%*ԲY(|Q8b9"Sle73# ';:.cP,iHȠЛGQ u5[Aeed1_܅u&maؠlq';M5x^bTy 9j8c +HvjĠɎ 3$e5ƥ C'#C[AkD0|0F݀D["~{{AOQuuevK<٨=iRtx_Rf' r[&s]C(}G 3rkE|ӝdް/&4X2qV!$0ƈSkG[\9eqgf(K-7<6] eMz B豷;-ؽA_Qo^(t/s5nOɗ"0ӛq/_HUREGW42+NEL۾`ՇHנIO7O`F_|_~`s?[ g }݅cwcYҟ-T'?[ٗ?R7O-Op +g̈́fYzcF'U@'2Jo@\'G74p>QYYwh4X?!w` T@>R A$m}^q_z3 olWf䂑+Y..M+͸'ƕ +v>?(MPI_ +7?tCP=gIzj/j7crSt6H + +%mɓΙbq4ww=rnK`=Y<˄UYkJ=va+8ΟvWFxr.=d'҂$Xq~J0߭o!~\~g:ZVN{`&:.bZCר q +ƥ}aL+ё=qȏM!%w[~,{ήt*ߖ4V%f0V>z֮l'<3Q9P8#G"T_:Iҽvu$Ն`vwSfОU5/Ķv1ObS}r/FfqԛՂjTym4ݪ[ : y hmX%Sf*Kb(NPphk0 76mm_KH(˾-Z?`f5M6YgTRsiSiZŕ&HlfW, AD-jotu|Zr_p_Y!cq^qer\nJf ࡎ{",V"7ƫ +mwF妗,7qZ˓j=LVVkʭWZZE/-I-^b\L&(ޡ>:9 -VZ +6pY.Mek.cyfe^ +ՙՙ{3F?#&3(]O'Wa3rި.i/%UeZO‚(MǶ{,3.;0>hovk-!&7)!2<^E3v᝷_mmݙG"2A=8gJ" &s::P6 +@Qtq%%n@L[p , /]ΝҾKW0 rj~^Zdү/30Rs޻v-rdDs6CYtj~c;`=X~'I-amezÙ4Cf_~I$xz[]F,VI]I#_Ag2WuÁL0YVT{Pbt~IB k)}e ^:cߟN+8Fzi49x[o[ʍgs`2,X!r9Dm]b"V{i̓ M'k'A%9v^ۍ9\z,wR}hrRF|Bl/>3rex17Tɝo Fq8N0eQߛ(K V$66%"Te-RM#ﮑ<=pV-1X2vC e?&o>!ټ&hزOIbjb <(ZՒUz2د8 'fQ3-5Cԗm3}cD)I<!f=y2>mw%6nUo|{eIŦ% %cGe^NJ[EDmw +zτjֽ~^e(ch,6ѵAl"z,o6':dRn dd}É[O?$a:9`AYh[aw ^u0p&jp05*evXjQVY! + "̈́}} !ںO + ΃RN`·`gګī=$ +Ts7W[nʨq*%]5*͆_SWuE (!7 = Jq=Pa]wj<3y1y-Pz-Lp2Z" +{]:uVjaBq>X׋Ѽ Wș<5(.7l߁|ߎ~={R{Y{Ԣe־%KAaAwrG;'PöQ>wY}5/ڱ5r?hU>1ˋN*=8*[* J@iۏ7p 0!EO }_~cߘ`g ~cߘ0zݚC@K'VwWsy'^ {9wV:,(6WkNخ|#)̇Q'G;?$3_Ai7_@\Ҿyݺg>12^nIk[ؽ)h\]Hsu4FJ9[76YIY̽~\b/$=$I|Vh3:/DӮYΐG a*&ɋ;8oK_; ZK^oàp!B?OY?ۡ"nʤcݞH-'U:ȟ$(ό|sc&;P~ʆE^Fq GJWP:\tHNde:ϑq=4hW +@"fb.o:m$3t#IS3wc+& +. 1AXA9@OLw]Q@W}XFJncB~G:aV{ ST$vJ,= [cf!:<&BݘdZ o-♾q(wGS,'%'9y]B5=|2[Qh"e%rۜoJKۄ+ptoLծcsZ蚅Ycc/>^CV&]Xr.S{u@Tss&Epp31?.0Lo %K5БM]j>iEsӜ/ ytz1kСMObxCLxBAi1}@^`tQQt^aw:Cݮś^>'v*Wyn( ,nGp}˙ny@M7li+neAyW +L9 ~Z kV:E1q?*gsm:R o:g72] +5/uypX](TԝJY%qگS=yꋖmK܍һj4n\vQik.a[c4Z¡D=*Ӌ[^&Nځ2_ͥmBÑY(}(cU [q_-Q#?,Q\=r7VrFeb?. 0qM +s$V?Z%|nz;c-K+nrž +d 9GkI SF߲Un-Jeh|ivNby?E~@=2ɠH6~`6r znlH ׷D5O!ذߒ + ,s_$[24[r9M7 +>BPt2{Vh1Z*'(+628(%Tѷ:(!0 aMr` UbK?. NهdbSŮlI ՜>f~4V +-qE cicrf#N_õRgkV2XZYh+23rFv/K>_kq.F퉣P F1X֠sb11wEDmGcm,Jv&BBZS,ь;GˌGVk12yjP*>1~eaztiխ߽-bwkݖ:AnD*MP +mw2<&hY8=,b'Κ)?.4*WqM!GܑṰbf`՟ZԻn@dȏC+Mpc^Ű)|WQW#owRdĄ\:{jsh&Codfhp/;;Ih| 0ؗbɻ;TKSx}θ*[W=$ݸuJn[mu ыv]"6k| + + +O=AӑR\" +{V* tug1㩷97Sgv?A}@@PDDd!O۽vsAjNɝh7P}zHw76v_m[+Y|PuO^=-WDdꥆ +Zǭ< Qajbiߎ3sU^Yb6.O5qGs)oQX˺\H2㲫,[]Ps5`;8rJdU0X$*l GvvW8IWtW;kWEXME(IX/ѸLLAiSvߵeO3+6- +iPc!̥UjWw芠Q,5&lF#84-R +ߚ._ȣ*q,cOmcZ v=[r5s Zvxkzr^9rJ/ky?Q`~9lv߀cs{eu6jo`KPTao]yGTxV۝ĩʼn\8Yڞ d֔խf Pc:PѸt3uz0~&,`#چlK/x;*2˽'Ady5cFkETɰ[-\nZU~;HOeI+*ճrUO + v1`Kk +*hVߗ@'"^ek;&팸"Y>;f6#Gx&_$}gOŒrŲl^l{+L: jn!"ΐM6_ 8kׄy"N0'ϒ׆{ws'H '(s9is= `:#(0cSL.|*?t=Q]߇%(l_G_m]9f[ǀ% endstream endobj 69 0 obj <>stream +On1HI+g,p90El| gE^>rmVv{$k;Zg[IM$1bc&IlUSfz,bdAq{rQ.H 1ejH +R@:Rx6$W S)!ӡ #&`ȉ*^<0JP[.z}Aoy gkj%c}#7h0}؃tOF Tf.pg<#Lt?ʦ![B-*U>tӻ/)z.*VZ6̄"!#>;wn&NZkbm<6: +}3󳯂GezбwQXz҄9 %MF-_;av'ǶOvyOm<V-ЃW?+-ξх)]2!EKXap3rSrYZJ l؍vOJ`6 V>䪄=Y]w ޠU.[Uwd'm`Z\oIiC.y,NQm5~0!`\7'DUM۞ ▼BC*5ސdo]?ZJO[ڿZwҡ6jo>3y/9͞m:AK\CB'Sl +.v>iwSki%kq/3ͺ:,$+r_HgAw|vW8CĻYXMT1c?_YЁf2ޤ|v ұk_Kam}ǵ +v^aȒPrnw6C6<JR}~)<?+~R4u^TYwY;`4JN"_D3T;u5;uuKXeC+$(ɛOwߊ@^?Bע?}?:LA͡ŪtsߥMŻǪe*a/p-}( dbήfM&ae.;44Nji4$3u2>Ցg%4yt'm5k-Gdhhd^@+wWI_J[[ݵi+j挧-P\}$}ްWæ@gf&ѱ;\?g-<klPA +G 'G(-'n8IQm_=X{4hXӖǮ<}XPhf+>t< +Jxp8< y8IAzIS. {m0Uc~łh,O-^ Ey*rh+2B7V=N鶒TXV|c"҂8(FHkfUHMi%7_P{e3[{}-)uNGseQʏv9(3<(PiP͊k0jAG?!pۗO(:uacu %eY~!*Eg/g ɶp8SVO˼TX1:PfMa7_z[ܴЀ{^MVQo}4X9r"*rϢ$cԙ>`[&~kL DžSs >07L7 /#F ᨩa_TBzA`N;먳*y6aOnW`&y} ҳV]͒8@4jTmǯ"cGZ40_Nm:fM)#h3au\7x&dw]%V@gm)hx0(4]CQ Y[Epu`L:%#aSb4I4~P3uf̔K ΘOL0M$S֬q>ϸ1 WFD9܇l$5A.;heo㰩]vܨ?x)BSJm]FS#ćOۣ(P2W#';.Z0lPy?K/f5'|xໞjh#nw)dxДWzvKb;%D&<̟Ę^`D-Χ]ßOJqX{ɰKbܱNgl"ic _/~%. +ˬ+SiНx$S/KI`ۯp{i/_mJ>mޫb3:@ +-?'|۠af>', $ &6w5s> &*z{)) C㦉v"YnV4:^7Ձu\Ò]W5n)}탢UAg@GOZ{ĽClbRCHY^M3^MvڑD7~P;wCNw ۾q=}2L-=fA)saKPjuPZuXP6\U&~]_r w2=mg~eѢ:vgB]cq;do<ޣu6)Ͱ 5Gk ј  f Jȁf0j!(M&(i^ޔA>/E)ʜ[['ۆ(-; 7v Ot>K_P@$a:Js}fN&@5[&H箇|܏huW-˺RB\;3s}(NPB\;Umfo;uxY8W&7vC9cJ`Ja tڲ]K2;$? 3/4,+Q]N_D3V-k}ĵKy&_u%[5َ{%Ym9(tD(}UrAq +Sw1EdDYBcw&(];{D3E?-,NڼqV4G5~Cel]YF ƓAi@i#Bxܯ6,4Q]vE}p8NG4;,$Y(=7@)S&dNzڭRA+Vl ~6@I;?`(?I9w{4V/, `Ƌ}I^՝5]Tg-cI#eH*w7Vw[6N~+gj{|!P ?Dϥ5@Kel2(TXKȭHo{ u*>aswuw9hܷ??<V%K^MRHN|!oI獘٢Fy$?4 Ύ>{uY۳\醋uʘ`[Uɥe%ej{WĽd +VV\(^O|~Pdd2,o2o[>G;3&3c\f΅ co^QetNh>#Rɬ$Sa@6#٬qTT_av1k8zE Y\{Kjoxĥ}{%ۥRd&Wnd /D]j9yW/dGۅ >Uk}1}-Υ.X\ޝt|p{rIpVJ_5#yM>aǻڞ vĹn56_쌭yyam?@ oLb(l$a0[ +ȅO34fݵm齨#v_^u +5*Դk9i?F=xWNq!?D¯vP(XP>m"ScwAIVz/]FI^} EW3\j.ZZpl;Y&˥6 5[ɠ11 3#Ud1wB~-0qA`\~p4c-yǜu4CS/Ywm:{tz'ɱ%rFֽ Zj~[}|^"qiΈ^yot}e9J,bM2PPm~QkPmK/kSNuѹipЁzcf}IP$svdKN7u/3DXd~G:Zn?(yo2[L%pH"vi1>cIht u,i66VPglV:__VXd1\\=9UF)2zN\L'rt}v a[{j=mn]޺c) _"1y觟c{NZzqnw N؝E5#e5[NF|ԩեF`ҽq~2L[pDg>]zzʳ qYf[LWTBo[ֱfqht3}.Ϛ۩5\R~Y԰n5uʬ՜V!J/v/۞ 锄@ާRNw%Y{n,磬ę{9n~]qz;ëTLR/׮J"f7ݪl$aiv3_7,Wl/Dk<ȯPTOP#I@!SY\9l>\}٦ǍE=n;BZ"}DEr:)GNC`J8N0bT +hQ)R@rlasv=m|=hך~k,nUzbUH D97<%j xw$`Zh!P(5yXg~>h+O[f̯&oQ-ĮqL/RQDiJe8FgrjсR;z^ +P￐?=(z۠.Cgb6a -{7ҷY/~Q;X 'Qc$m~92se +KXA!BWT'lJ'zyOwS=@a8R?+.(z((  K@Aqrh ܣo7ʍq=Rnx-㭱=@a1UaP%Iʠ WȽ?e^fJL?a +W|hF)9 3q!{<UPdZkާxV#'<㳽S\<7()XMs u^@i{7\҉=jwybWWĜm\vKZw羻EYOo;]nwPܬw&d{e5 +Eԙ,>y[( +KNޛu/9,Ru;̒A`Çn(d[簓ݶjauw!dECqOF//Ӎ\:%j0 +TEy+Yg58*]o3Z + h?V9` \קAZCc+@_o\}!FO-D~.2 ż׀O~I=j^cPP3ÞR7ܞgJ]Y-M6uh-/"M +2BA7Rc}IC@ a>M9r}ZmP̙: fKV}Wo?/ uc=ԽtK @yܻrּ h~+)ݫCȰ'|skqV¨uק\r9oZČ/S(V=F8K`[;n\'κxzIEHa IqC;jFz*4_\T[*8y  +$WfO,\htH@]ąϲP+ MT꧀⦍Sl+{W6̚T"UKg + g +e 8gqu 0AFT}w`dTb.u~ߌ^-QOs9U%fo낞zA50t122%g2Jcf#1=@qz7A_ >b\>-Ey)[F%Y"';FskGDgM2];= Oe6Tw/f$,s*UQZǨw0@MXHvD3x'Wf%ml^]VZөpwaP4Ota]\=P\U>eޙi;3'sXkD|@q-E]D=)r:*Mqg1F,Bft܌;_:2ֲgZ*_'˘aaϧ8!hV-»ݛs'FЅwyy*)ve[ NYۍh=v8ۯJ峁6[. I%lqiWw6~x0b*>wXB{_q@}k0C|y%hWrgqb⪧+^v:+-]-L;_ГgRs092l,R [: +C:S9NGpү+`Yt]P*k<ؕb, :%"6LekVЁXS#K̢> +ӗqۏs>pиZ_p[np!59tHkD2e{R{恒x|"gS.Fwc +uSJID]ms]4;:YLxF[i͎hRyA~1VB&+A (~!߇(Q ͉dҫNGuoL;/a +Ki+||ϗy/ owflKw\/۽ƅU;gœ(]OkYӞ4X' JYɶS-~KJMkwVYYư"1;غFu>RO7*v4^_H7+s6:d@w'ͼ&578r;R,J du75lM=|!&~ҡBvHsc{_Ԇ +!7ɢqsq3^ڠ]TJ-c 3u NJ[kJc(Ze{ A㷨8ZiOmO5nKGԮq4&,˜[nRiuJqef:y+pUs&fDFS@KiTͦl7=mƬ42 +ZLd6تqrO3>QuNb21 f|t8~ԮA3z&N,6 ڻh +(߸j3Ī-q=NR"&u+Z;6mh!`ѓs8Fa$y\emv ,k*?Pa87mitIP\#01V'0_Hbl8Ĝ _/8桹= >[isQ)ȷ4'yCIs=SFi}^Q늏0xA_ȟZXj' :lĖ=Z( u\I=r%Dv*/cLfy|ɔI5aޡ?R+8бelϲ<=:rM"# ?KU(`śj  7  KȎG=jr8rrd۱w2A6w A c shF]}^O}|X/s(;K=”P/ heSk#S(K rR9ׇ mU+dž+oZ>g(R|O{cVQZ;][mm7&{[=@NAYe-d`o)Ƚ$;EVbyYk_N=gdakcK6>JVc|?Gԝ-\y 1Ciýom~?DqVYgC7a!?l |AWj]P~  ,B%WhѺ$~g;[0$)ˤU;;19 /s3H(:[È^w6 M 'tVZ&N ^. "F-޽[Wz:߸q8q2GpvNNj'ov9m ЕX\3ȟRhw-PIxvm@ڶb?~PG{el8wӽ(} z;&g +ѹEj&\{=@BQYuE%,'k[P4(6(Э9?̧`ᒹO岫 Q48rrvu张;}լe3/go?-?lDXy)W zbQX†Aۙ DrĽz +Ɯ"=lgth/`@96.waXi0n'ja@ +֝ 9B|t +.4So/e(/D (6{h9%>AIO~S׮Ӌ5?md_ ۽yXHvp$9n6{xmpJ9/dOoY @a,=AIW)CM&m}q8_{F 4TO.L 5Go<ɯc"sd4tGs}]XVA +ѩJ{ Jhb#N{{ۭKܽIp̤qt@/\SOUGi}!ScʸPuwUJs3=&5gVOjoM?P;(O}px :\{N8sa@$𸣚v++kjԳmX/뵍gݹZK\ҝl;láTp}G&j<m}(W(A9*S7WAB?A:v '{!ҚTTwƴqP|O(fV謧nIx;5R?ƟDՆ\|ҡ賭m\8L8*矚EzYk7Pŏٻ2! ^;&m/n Ftס.o $X9wPLz'r~6 =Bo|!Dj̃Eso,#d㳖d֑IzonRmp>Ue73/hL]ʢm5 o|!?D(7X9@Ce\C^}sߕ/6`W5Vu!i{m m{OGM8WpvݻOtjf{kuq.oI5>*[xj]P%ePE`HWhvW.ysN&ŪH&.,[Zd}ʻdڏyٔ?$xw 0CjA워(r!UOfZzVw+C;8=_Z`cO.f$^q(3xl=rpJjpnSkQ/{Ԥ^AE/ ߀OY7{[Ev"ӇY7ТȼUoAl"1L`v= +m b3uQ8ۨdEz_فe̗͘c4Gn{"?*(42>@IQS~ȚǛ@#;MwS/D#vYQSUS=1C/cgf嬶f\R+Q<2N!t{S]`dPj$gl* + +Y PXK&(SoP'Hݒx~ 67[o XZ '9A*6龵z~4c]N= v8wX+H GEkզkIdupbb'7qdgt,6֍8 #]t]Qe ׽qJ؁" أ"ab*Zsyzje]D·.HKuEδ|UܴBҘ뺦)׮|FnՒG{p2gj_ʵshԨX׸VAKZ0{ ų|? ^VnΊrYbe'?}Th輳jjA ?ؿe@'+vd~dcВ0o]jsgzGkDtQr"ԮT#g*|*r(}\F\εcJ\eXXpaTY,&o`Mi)XKu{'kk]zx?1RRZ3=P4 {)SV?~+[M$-7kIK0YUyIhFj@>+xv]~3Mq2꨸<2vjcZH|*&[Y*n 'H Uz"ۢaz qs~:63qrv/=w-q ͸T9o:i7B.o=MJ& 7Ǿe$?gK}ɒR\;э%C" 1)o"3'>ރ $"`<*'[ +Lbv[w| z0t\ Vp F,={gvc9.+5.=|Z')z< P@t +~Eg5jYn-ڪP2j +FPmy5</۴Sw8 +w7Bг7xa6q 6 j֤ +فZ\|aJs5Yw + ɂI^>,nɽ3"d<88+ΠYD\^@r +R$8HA + +kVY6!T{~5@ii?3{ͯ`"{r 5mη~  gjFr[9F֡*kg<xpjog$:4s My!:/2PfD%qֶ~Z[6l'(L1vNOY@dPfK dDYju@L:Kg5zfo nڋ|a¢:ky6ʹMjYcW L!2 +U\6CP Eʨ‼UlwD'N6)ԥ%ϛ^+A5W߂!6^ar-UQˤ ̋qQNEr)4~eEn\؂P_H2U'L9 f_~LyG 9<8IJ͠ճW.-+rXMv8U0d{Wdtʏ,3?+izfJB2-Yz~Dӊ6sݓ1U4pL&̴2rt gp5fƽyTbD>G:;ㆾ;MsPR~ +}[`PCǯ U roFz8}rY6ŵ +4P舅B"0*g٠C4Bs7=f-+`]HgyƭJP;OabroJ"7==Gm zhS+c^5'Y{JzL:pmnh&-!x6P;8Pxw-[&5ؤ;˝ + S/~;_+ }t(B:^@L{rYM-egZ9'׹؉ƪFFvRi0P po ^mO@~ +~ _0_Kz{*VCn9>uȨ$^ Z}\bfVw'Mv?#(]}(Tdr"n +Z2nmL8ZFe/ASsncvFrߛ r'Kz-z1ˊ[fAe 2FwRϔ,\P)]9}Yl+Mru2cdJf7V\[+(.uytip:tѪ +|1m.COɬT6}gzNqZYJ::^Io";BXKvf-¿<}y˾Q+aN*ƭ/0YV֯)',2G!?qk=a4]O:Tƴ6eU.rU}+*ѫJ~6Otʹs'/Ӣyn +a9We=oJ"Ou$,B'PXүؖ:5a^|>LA9lsXRwʹ8gWues-m +$Kv5.E^WfWZ-yyO:T 73goã;l褬~U`v s&Ȧn݆C*ŨhKffʧQ},pxόy鱠Za,i\[}NfZڦ[eΩH9nN΅V9VJy49)6[h_95SҍUeP}8Qʃ:r\\q&9*=y*9Et2<+TɃ͸> AḢA3Cs0k6l +{o}7},z7PݪsS*G2l"QR|xT}v^Rs;O iF3<2EYHFb4uk +r/H,ʄ?i1Zx[ zA0,O5XW,:V=uv=>h``Xv@ +.ߓ !ECUX5&@x"3!,C"E=d^TvM̷zs})/CjlO pЃ6jW'6s T PHZf2hhZwZSew%f2uQ|5_yfv\M^_0Aʌ}Pjޡpc(֫p8mv??K6.6 СgZ? (N0!@yXHV\T&[i#+N<ӄDko5{__`18_iT+ueg5|(yyLtmM>; qќok[IkuW|-P@ pb<Y$@h. sxUO¦ZI` +`PpIʷ= `&;پ.*u扣L56үRPh??֭# %~1@"i  +|8> >\\`?aE)z}:l݀G/23[W^k{xa}pD}磊bϽ_oطCS3  +<${Oߓ[ѷ^J%9NQ M}5r6i!szMJ>wnPmg[vʕ~'y{2}q̡F2|O! *)h 1x׮ D6Jϟ">8KђqoSH!s㛵6`Ig/z^ |?eRy7@7 W^"B*16VO쬷G↱9=JpN7ssb:WД PM hﻧ?%C{am+>KQ[XϬ#GK; Ͻdv$ E;mlt^yl禝^ s(MOQM=Á` _%{u7 q-3)*.OZ˄7:Yzw-$7cju~R]miD%B/PUDۇBCk pJ@?{;GhXDmo0,۳:@7|)Ů{¥Ņ&Mksj͘Y˞f+R ̉Nn\r]ȑС14 e.նhfB+ +v,F%{;o.7_e5Ub΂y0mCѽeܺ,ڝtH)>'ĐؠKȀuuϯЃ̚Fb70aYNmENbĶL'p}9M81FkeӀ 0ۧhn3>0?Ҡ$նL8/xgR2A#.+Ӎ৷KAN-tl7`m8 ͻ\VGh׻MϾ-ў`Oݧ0Nu}wd~]2Sބc& YQ4a}knmr oa4/OK'qMe#F>+GRS3N]LwRbwG +/w>bL_Sk, fE?ڍtU`lvpֹL"rKNujzs_vf ߽">_:6n_-ž[w _*^O)R +jF]!lw~|IlSѮ-ӻw>kh/obp*b\4./h^Mf{6~;M@i0 +uxrfxVvvZ6G Gsz-S:Lme?tSax7Jz5nXipӰW@0}n9nQ%YW6؍6.zq[ f:Z`:;GM?y)_FP<_R7+6եn@Ke +.XpF)m)_=")9 w0Xi ,$3-Q9<;eEY+-a UmVku z m.K4 +I]d3{ڰix_7}P:>~+׋SM pV4j9ܻ]!fYc"2M=ٱڣi +RrFŎ/Z.}`5 ΅]jc4̘?mw*om-Y({ԯ8#½R\;!3{c{_ns킉.ukX[-LlZ^ʂ%^4n(XWISi'a[3h0 )mw7+v/ׄxA8sĆ\RA{un)!lZBP}-hg?DXybI@Dt:s:@J hvOAXL ZegaPŜzwi[横f +fUNӤ䷟.;P/ب!{Omk#ZɎF$L9`O'.epPqUDݴ?&W\ R3gf.G +:PQ7s*Fwh>"J +"@&@F @|LMDt–@@zhݛlr9@4pv(x% =Z|B'U}5j(yu%@;@'PY7G)@l+ l > ՠc_!)I0UXq]L\X<vqIpe*ɻ-dQ +. ,U`͡  wd9_Pe + k % "ʇx +j'aD7Va>uttBC.=T -4ߜ +"iklj{-F 1E*& zTc!5@ؓ+vz-{W4u.Dz gY¦}>vΫ۠^^۵RurM\o0D?IEHo_$6񣳷o ivS(8b Re>N o`~oro] .='ZKxSw0/ݲ{N h29Z0@lR r8MP܂׳Z?˱G4X'R(/u ؕxڜ57sQz,ŷ]uNs".?2 `ڀZ^1Q~`:K2Q+[z]=TCs[N.-_ΫNپNMKMn͉3hnJ:۾3p О؅,C:z">W>. >TiOIL}kQ\{]G˔~oTXς6榥{ OJn5zWL{EaHנխ_~Of<ų<=*ݾO\Ź+0&;~_o0⳱26u>w}A^thJhQ:Q)un9plo]=eZ~1IFiV8]npl/{>\')ĤSnETG)W6ڽ![~,mL{N [wخ[ƽEftɐ.}ck]3a~i٤wͱS;T}5adJT֞mɹørP`:5'EG֯/mJ-̭x:lhm/]Eȸ ?Օ"x W[U?l|2Ηb_s/ήVa*A8bzP dgkZ[Dxf̝16ԬF=6:aSQk“ⳇ6tӵOokgBǞ|l9h ?Nݚ^٦Ri+cS!X/-{Q8qQA,;b+%5rO`|@ Kڎ v TԕL%7sNs* ,Цr7[Nsp,q+mGKK^+ZeX"&2?, !|fPhbŤnrV!"K[TYES.eIV.h]͊FS͏リ@]7?}QR@8]n{Wէu]+M:g\pΧ:QheFͲq/U^!ѭ9ϩw ޥbttItH^+a:T뱚 /jlz%q5Sl]9Ϭ3O&:!8'6[#hO2vyi(c y}l͹TUӬM'?,m*%U9,UxI)K3p,LJX)P_8nW7=|Ɣ T (T'NOp{2N뵘mU +\zVy)K\s'Q>"ve +_ˍhX<^> eÍYj5 o ܝߘ2@l٪50mC=Z=ʸf+2Ѫ`rjučiLʻ4(/#Q_ +uZtR&gMɁм3R`.F<w^ bP.ՍMu5yr뭨UKKT^F=6$-VDʹev + rW ĽYF>pFyiFp?f7 gSD'vAqNeֳ9)cVZ#2^e>2D8ˇΫmt +S^6''ng15.]@\Z\PWީs =z4;َثsL:PZUd=Gwc5/9 \sJ~RgWն[ޭ_OpɵˤgV~c~ ޶G&a'waRnHwhT|rD)B6iքxmԶǿ! ~m0HX`]Nks3S%lɌ #uƿb:dL٘7:Hv,el1艈CdW|mzk)p+L1o 1&w%ݙ@n:Y ÑqG'ER'N .ajdon=*P7d0POxWQBdp#pǾ'3/=GygO#3}OT%7#1\VrFqi:pa]7IJrLC[(t @>@ {G8%? wDi2[K 8H}y*otB+7LXCy5$HsH1 }X  =ck~A F56CAC1l/>m`1ׯ?lƢa@uΤ K o\w'7_Ȣ" +4> XhD HP+ڃ47V N{}e. yyn +*C` ao>b> +~qj\|@n+@ K871O~}!ld=u$Pמ5 I%T^)=>u/o +\vq?j*ZbQ~EEV3v6S7wosC9Jpy'') v S'pEGyF]v~}馝o`=О`'9%"ێ%E4dᝇx;mNwvMMy}k2,DX{'[8ڇϝw<_8t On +XUg^\@1lV +s6 b% UI^o9 r{ JD4%?р! (kker>pq~-tqf̗R?-@$h,&*CM{oTKrb;-tmr9906`Pjnݺy~O 6ȶu8g60%C_tSl2xe0߹᥺`r/@W5u+iXďx!' lmajV F8lΕ[Gnu''.z +.|6 "4r#st?kXZWe(ԍʀU@ ߬mm)׎apj!|^5Z/̊cD(B27VZ/'ثŢNOws=.3MO΅0۫o {G/6X_;MQho`gJǭ}+c9xH3箉6gR!iǜo5kLgm.bqvu93(cϻnNq97Gaé{<0kep7aE@OV`"0\`6=,֛nobѶSrN-S*-tWiD\8͌;N[(6 HbHV$)"A,,嬵׼sCw3PzJfN'.B`X->5[է?5/:iw@ŤGNseU9m;b0w6;Yn|^SXie~zÃizoy`bɆ>.=|Z2/i3Ɏ=ƲMi)V&_Fl @#IsBI^h^g\:\bEZ__oe3}CPxlsyFE*;/ ;>d; fޣ5ver[b|zB1܈gebDs/@6R*0Ν";Ι7&.z乳>2G<ꥋ4 oV纳>vxIS4nZ+}ht)Rh4ddlIZus˳jvWF>QQQL c)'-*ja y[,+Pƕ ==Q98V9Gⷈt6)dXa`^91m:"a{h&gݐhYf>rHʎsv"iM$:zGӞƝR{Jn^-18U +B6[6X׭Mi@ѥ=獦)vz \őοJlq;W<]pd-hIмӏ?+;&޽I-jg^SP~ߴY±WfgS~2}ȳ l1FؠНѧJmr;ҨY@`H%˯6$}Kž œ9OF e.`L'Gq3 &|0M>G+⇑8QY_ =A?fدٍS6jl[aX?؟/k.nu4$5>dz}}X޼mpeuig*LϾE˹줹[`Lp ʋFVvc@)ewPճQ{g,~aͿbοXUNgTtHũ"cݬLW./[f-]p;:3~=zrSUmtu hph0?IRfzzu}Y_UnZU\|+x+wY +w^-ώUMEmtq=vڈИBX%1Qw! Jt3!&lsV⮲4$,{.֘nuD(?ttVLY%!dN\<v JNEr7TGJ:}}P66GH:7yD1DF.W ;(1wVrCP)|}2}l.pPr}_&7-?`(:N>bP#Ɂ4'sP4\ ^QTJ_YL|L:e \` +z'6͜Tߵ2}1pxLGrC]6DNx.}\3IG +^/@(`߾:߻VWȻ'gY9yڅpR#YajK,DY ^x,m9?2d-Y)(桗1Z}cJ\S' `|x*U+2@|wf`/RX)8RXʕSh^;RuR(Z$sH>|2aNJOOϟc6S!X\0ODž0I>K2L>NBX7͟@aSL$R8n@  ։BB}vBBu M|=VH!pG2KI!/)_)DQ2-g ZӿsnRX@ÕS֯H.^7B +Oa#[`B'jH1=縷  `}-~7R + &`~c] _&q|J٣_ a^|(="EY=Ef]_SFw)LIaYRSu8xO@p]M:X.6KZYn7,l~f(խqf=*+'RS|h3LѶ E4E)Ek8Et) )Rw#KSf>?)|$Lڵ{дԕAP޷no_8[\ڋxzT.O>8(hHPO1XR4RHy)):_S*eRU)SQ%|:g,?|? +fĆ\}!\|.>9,A$ޔ+:$/@ug۬a">qn[lؤQdl$۹$=c<*3fpirF I+Cu +}saA\{#toY.Xj]l{E5* 24iƪif1!MrF$g~Y7W6!@ퟧ SVGMۙv?]yȔq0N-0_ut݉%wt ыe >˿AV%͘*K./G/Ju-:ܘ:Hwb>Qov%o=d/n@<v=\kL˃|ٙ] f358 +Yٟ` w_hwO1-[H3SVKUlZx>hWA/{z<js#,NLynJ9Nե9btQN"y`%GTߐ=A{a uݠw,0dEnw 3[J3E5]nPHq1rbuO:Zov%5 Éxԧy-܏VM2zXFsō3;厜E{.T: +I1mHL )6:%vX:W7t7&x4rHLbr,?#anl%"n?؟ ?_'bx⺣0wةHοϚ0( 깱 7rZ졮\*|l潇h{ã %$[nEoZhà\Ⱥmҵ9 |o]Ra +xFEˠq΃r_գ$~K +SZi+FZsnbIry=V1K+oOflUmgqzw< :[h|w;] F9BF=chY[]:30.ʯsWZ[T3HQ 5V0Mٷ{KuA|TIxOu,skد`UF2ɥje\ܽJ^x@|ݔcs{gX2t*:.ҶO~ =+~@.fk<`wFS*eG ֿH3a G)&h_uQoKRF'tlM/; xҨ|K4vaC|l4YT59/|ֽ3Hm6=l~ϴMqO.Y((<4(C8cnf|LѬuo{P_[|[*- +L{6QϱŻ۝@)5{ة_FmM-Pj:4#HfD5V:#~4 +{Z;il-I/B;;A|˕h|^tU-g -~r;R;(Ւ4hq41'o'A6Uĉ,*%a6"J8ʆ~OQF:Y) 37j"砓mn6=3c)Bs_b@=~Mb6?cL`lhNvN仩B<>4AkcdN4{1ґ**C8 K*ؗ-KHk%$6穜qvAYL}O671͠83|>qXo9ʧ}5rv nR0u)8hNP S'-Alڧ,ITsa$z35!yp)YF=Y}C!_=gvtl5*??Xb|%:|E D=&]8ع[|H(hnK&>f3{o9fwѺI"J%GkҮ?Ƭ7g_V*1Jfj0MN/o_ֵW.f/6ð L3}k=wNpnA]VUNQƯ jQOkc^kдKTѣCW:ܺM[=~\>dEgbJExjeTl8\oPۼL2FBbTuضGu~[֮3ëʷĸ~T3bM,k,*(8Tr(LG߿# \:ts\吽f~_E_ %\.WqYÕ oq[B^KFۅmI\B)d>b+yQ!HT7"Yn +L~|;Z_.R_2V)ƨm,a^(o>/_pvLֺrTZoOR))]t[++Kj7'U3+>2ǐ3 UhF>tx +|`)x:}`ňyg2s0ϹFƧ:"%m%d6Jx2E"&S0\YM}==E(ɧz~B2Iarxʤp +œ_)dL +U*肋9wm|[Ap0]~||b4 ,Iú y&?{Sgڛo@*kɥ+SX.qDzBawBB|4*t + @ ~Bd.NN!)$kx23a~֭~|8a^H2h($]RN5SxSxܦ0ps0qp74IKGf Vů^,HQ9v)pvkD:\eWZIW?f P{ą$ΤhyCh̤(UR$Y;)g)7vo{-Ws=sO u{~Go AMQ+a3K̓>v5M=Ol򍑀SV {bbH}ixYu*(n\,_F",_x;G2`gd̎NsZ22iP[vc#dr7<2Qן@]en"^P +Lp_;η#n ,w!ik0aR~]=+tGI` +S)r,@)qba咔(JԆ~ /<-f,k\+wgwkU-CqW\eQK[j^l'ѢB۹ YL)Vx6&pFF[ 7 )}70OA!( K3C]^Ňr+j'vRbm}F7Q9zU۲X~dHMmQ+U(,Mm:n.PG_RX8ŠWq~ @.Hn o4Si汭T_1; NZ=n x8ƢOr檳ԧhT? 8CRH1y)ܜ #,F~33[?!YIW sr50Ey,-q{F}>ȹIԝ<#1ܛVVQfC/D`i Y0R= ++'_;jMZ/nGg.w= disμoNжJu;_4aXAaj-qG.A?<Ѽ\ya!r4Śۥ~^UZ+jչTgfPFo/tYtnG"Q4`gOf1;ϓZg*Uz8|k!)""o[u=x; oWM[iƔjhOҰfyĵ@f8@ҬQHlJ5bYv|f g.ȮaOL +F=QmTM.]OBd%Z·^&dļlgRˆ WA1bM>͑^ }Ks U8Z+yқ1 P䁱nw2 j/<\ׂZ}$\ B6Tu~:Dv^7*Ji.)-#hI~g͌mF~;p:/9rMo$+)SB,9?bL#lpq'~ۻ .3b^)­T +.TZh.@ln,q@9޺"9Gg 퍫z,՗nM)=Ud&3fU(jPpČVSj@Y=ns"eg9\cϡ5%9Œvϙ(`B^ c"U|6HV6⧗|[#*sR~ʣ)S|ҎD$|: ynrRbd烒|siKlrh=F,þPrmh13]Qdm8/lFN V.{\ vjq|-);8D޾se3^zaSX*]DM T7&CiQ+"5uMF5@L><|K1omV'$?_$>%|NGcɻ&I'6&)kI* C2lI*fx9,a@c/Z]|L𢽸?J?~Q/މgP&Th|==mhh&p"ygL>IO{=I$xd`_wx(XH+VM8Izc|cv +7RF._?Cr2g +D b6sg>Lޝ`]&y+XlM~ד!y;s8kd/li<o=-Y5iFz򄔓>'8N>M>%4J>sSɇN[ɧI{xLD_ ?_鈼^.y'B };qu(/)(7@>Z +={B +K=xB5vB1PDH]n%su{a%rv|%@9eR̯aL8I3"A\;`0J +.hSfjap~vvs{IsY6߹+~//l\XM߅;Mؙ9pc^U;aulʶsDS;X9ӊVo36SV Y9qg ^f-7devY}8Sn?X gڻ4FMa$??D%E{+R_El=.9)U756d`\e=yk7{#_.t1kjJc,2;['Xɍs>FSCu.؞?xd~z& [ h0t[ڹ=waJӪw.m"Ix"/|R]7v'9p˃e=Naa>^G.XAi }y:o0>;x/`䱁g68CER,_=XN.~cr=SxrX^BS##7YT ef6*L++l>&ẝ| +^u;љ;f/VL?- ]_toP¦ 1>.i;Ŧ:Ѽ)^|ˀ[{JXڲ0ɻ/}m "xTw\\9*􋋄̜5O޴l30]wUL)z+:_ϋ0Vteuߟ7r0@u+n yȹcG-:(k:3gi<㏧YLZ.FJC>_?j/vg殷Mفeq=RNRݙdhTꇠ?ʧgm!W*@N~7,7Ըի1滐Mׄ.%%j + `F(B>xRnr79ٍ)I{Es~ csr*Bo烶xȫj)ۗ?V+2ϗ Eu$wZ] w5gmd4[Z` WC(۹ d5'b0yT膧[ǘl> {ʊTjm^ѹwT/tSu_ s~yu`{|%Ej=1$dE q^j9n{ABAa: _~?Lw{7iV1:ʾJ;"8{m? += wTVR?X+io&R{"Qir6ndI?M`"?)+T%dI^KRHxJP?`cp*l h |z<)u},9ZQcV'fJRjl{ލ?d'ӬmOWzINӁtNɲ D?îP1Xf yԵh>P/hN'kkʬҢ1ɈI) +ƖkA,թ kbsK"8-ÂꍎhJGA1>CA8pZw`RNԪ&:^.aV Z3qd6rԌ psgl#:d{I2Z*<{gu!O꒻>;pMBtf㩜Yɢ}OL]G޿BzM2 ȔjEOX8z12ym3]7֐r?٧X4"{.>~&ka5~mv~L@>lUh)TSP +W~sIn[Oz;7Gv?j3؎YJ8x'lSu!wu5%aC|[.'A K~eXdJ +#K+`nQur~J[%Z{3\13+yg1~Q4(,ρ9*4/w,:eeȥbpx]&߳I<+e֖e꤃m' =7&z1v'J*¨WDNQWP[iyE1FɄ.0VG1xkU͎v?I 14$22'\ +[ "bkS6ύj(0q;VW7|9;kËWm>.5|XP +~s/N>y[]E$$Ki2 "O +|4wq?w q +I•Yk$ mNw +6a +!0a/=GA=Ilf`$`I3U$Iffh0d\i ?;,nP rLN2#1z/ɻw}&i肨bw_D~ ؂&JJ*bQ@'fp{ _~qsEH_8O Z1 ( Iޫ\!yf&n?[]'btGpKq_ch}Z=}5kv|mP[kf7RhR^TlX͍#l6&#:/Ov7K2v3W1~>%1~VuDQ'$;6}o2+]pnbᲀK_~~pp3?a~"~~ JB!͔o;i7x=L3fwHBNi*a8~Uyڟm2/~l91_{|a'<\lP4:mw1Vގ/aړs.e?'ii/J'i&c.=U5cظFnR44 ivǯV+-uX.;-y{^? H[ݕd]op]+'yqk[㹍$uB7h,%E{Q'r?Z/@!Rm\uNs=ަC=j +עd{gu*X!ht.ĵ9-+,/3X򉗬ۈ FqYOwy)΂}J8/?{wtX|<+:q WzQNDGдrۖkZ9NfŸ R kl:n (j߿4NY;вed:/Os9ŏK.Ze-|CP1>ðCwSf :SnR.$n8J+4 PpjxmtdR 5̐㮸;0MZ`p.|!; 617k1+J`8𷷔VЃG©6^V^sfQ6:-Y'-['2Хx܃ss /z禐糨^BMS:I A V] pBw ڂ}Vh=}}h/^Zi>IYqrǝ~@};>?'Nߩ?ik׆ dGvBԥV:`+ !+ +.E~n21_Hs*x* k0TSK͂]q{uwe?k!9y)֥ȳC6r\ZzF=߂D!o̝E3O5fpC\(?B[3-cy.ڝ>3ÊEcxN1~X=]jtxIF#'((޶)%M{[Pa>p?xxAG4l~W2뇁yܵghN;-*pw֜[m@ Dp0C]E]k>YWyNW8-v)O,Tt-wx  >7-^+U75A<Hfɾ¿?ntg{V#dp[~~ھ{T`\4FYCoQWWr2 բQ0u^%g*ᤞmń;uFdm|SJwJ/Qgrժ.{ ?}xU}IDg1e~^3NUm?DBN}R^%hybi,<3~N]lzIcF=:OK>m}oL%~J-Q-w]iah.mWe҄ig&45sX+TX3p;&ΌGjF7Mׂle{uuKQFSn3l9.y.-6K +eK_qױh2G S-cTCΈ5 +xK!qxj "th3}br΃w|evb4c( +dǟXļ je@?p=:o?'(ZylfxMoL{jN pEi)ծm^p*ArRH +xE7;4#.e\Q7ȧY*R 'A5m\7l; +ٮDw~O֓nȜT ',aDݡb! >?,Wd˽hAJV?YAsmRe9|"eK@+m#vbUk +\2U]))kã[Α&vYؗv}\/&CCݭM7z2t({ؠx7Il脧83"s>K:ZP C?O;=FbEcwZοYRiqi:Jc+UC^qG*#֘:NBOo~nDv{vk8.ŏF#jNa{j4 fLF弚m*ʣ$k6pЀ +'su}YmںT7?;93Ae5g(f%EvJ!uG,e<J`nAÍJF{_k׶ԸPq^9RĮ"lE>PJ9X˓?{ћNU̞ se]mg_iPoz:N><؞TNRJSK/hj*7tm҄//K|.>LqjX$b!_gd + jvYzD2濃kʃѓIo*Ot_0^{4A +ךOJH~&l_>JUK>/g5X|( X|f.py!py1=)L~N_f]d +a2o*7=Tڥ֥B(PZ)elm++^Wmn{a5KatTe!=~`W"q"3r [a~hBd$n9air͌!} 7jj6:frFVpi_B eb"1DD5I +|ŅATz-@AtqB46N }G>T0S;jaֲȥT>HK[g)3y;27ε߭T@t@tThyҁUg=t C aOߙUt4xІZ4jsT +FQQ x6US-Nh'ZO@Y7{X^Nn$y$>IWTᛃewx}. +0@z vp?=[r}/ :͓w&)WA 7a- 8"`=](V+#g|%^3E%ZŽ3YMx(SBɧav`YJsk@]xDAbpdžCPK@oO㏐1_~ .cߙE1yyH>*|?C1+@M>ymW請; >o? +?i@fLz.>Ff/_~?$ fg{)_(6y/ۧW_ɻv'|M{sq}!L|,?F]|G+fNxk5Nϫe(VKl Z]1QC}m/Cۃ^t6ܶSR(Y|r vY\sK|<%_kv:HuBqg%kp5w!YgݝNs<oXgzpC#P짹sPf/phgb&#lbf` 1S1r +%>?G|(Jqгf\*4өB.Qy.hu{R;砬v?sLWzSrPm]]Uc[f!v>^~tfC;ʹq1NIJ+'p$7C_s7/d)j>F-7қn=rّ J9*KTOi.o՞w9w`8s`%;i .J3i0UԼ8.W46˟evjIn `kͽWL-˕%Δ {^w|+Jhno:nz9zoo&2/<=i}8~f_vScfv1: +Z8pޗ+:q(EmaYXk1z#'݃rr3广0TY*Y5cSu =[ YF6| w/~oi/nR<!wI7Ⱦ9leRo1cǪEW{zεOߧgGyOwΤj foOfpj'u\?ssnL彌 k;*饰5z2ffC%?޳!VK FnPx5*ť5;U=y!\xjǼg_o=Fl >c/! Lg߻.͉zU٥zNUs٢rԹ-?iv\ݭ\jV,h\g5NE;!^fMblgڷXM'u]e3-Hт0.rSUnQ*-0~aŒM|nƮQŵ5`-TdհϳH٨R-||p\r'{p#`A_/*R#bN7[=[uΘ+m=Y/@ lrj3ݮvj[b-gly3rw -[H)KDSV(~m/-N vu7hЖ֠dK&E$Vcg.N5ܻYې~UM &S:zW[ZF+ns_,P.)wޜƫɪ<Ϧt>tfYˈ"`~Qƾªsă=` Į^gF= 0@BYD꽂bzKkW% tS,P_;hh~*z!~La5 2 +EԺ\^_6ڽ恣#s~fF~-8I}(Y} WyůӗYw8|]Ny(GT ˥W=S>e|}pL9ɌTȌA%fOSvsݏ j2&-گ|2}]ȧoB:i#o9xn.~Wg:ݳYwi/3Lj/m-մyYJ_/#*|e/Š)N} -vU%rKz#y>'$!` m碾yFO5GCa w#+3r.Yku0dt., a bj=b*GswmEOc7ai2Zx3T뵾=}7 ĹEurSiynVո;3Wᄚ|6KJIZbSFfiU֯tҳLtY@^Zɚ^VHCiG.h)"6,gGzrQN[8< ,=z۝+)(}HTkL͗CkZq{m?0;aDg-'Z=6x.K:hpIӎsグh*I!lĮ3rH.n@M~|Z$i'R,6ɾ^{;qaZgӺo^4ϵiD*B9ͦN~S~$xQe)[=t?4Q[d +Eᄄ QT?;Ypsq݁R{[ +wݵZxk*Nsj׌{n(E-44aN h=X= taݭ6KG]xkݖ|=,rf7ʠ́+E ykvKx,6qD%FVh$Po̓¼a([ZZ^w~_z)UUuV(U obXُ^~Zk %rDžk^dJҧ[[\׎m~bL=6]ꩆtATsP Vn<ˍ3.EL}@WŻ=C|XD~q'_zAC6ԙ~Ke{%ғLg!f$*wtE:naNœ],&`ě0/,Cy9ۿ>[f?* Ԏk +m0a=3FwVsF>ZIxorUp)f"fBN`{u GdU CډWpnChMmfdlII[I6ƻF*Jm"N X1?:sŃ:\+D=" +D 4Dh ""A"ת8ؗ6dKQ\e6z>v]ʗt+Fn8 "+BdȲ|R-'{*DުD}~Qb+5 Xo!j jQ!j!jx~wFQL+!~ڮv[To۬WYz{iv_[ "Ҙl`@tmԁh%/@q?v*Zcm؁rDu<"{bvG*-T  W1V- +iVW#-Ct{x+K/1@[hY$imK Zl,.uB %½ӿ3[OW%IWQG;Iz-`sO&lg mn]8I Wm;23vq+grvε$]$EsDX r;"_ءA~Â3` vms #G[|Y_ +?.৏C=1A,ehaJ1{j0 %u*T1Ԏ{ّ~kpNOܞ>6 ?Otu/ۛ&$oh"(ۣ$?G7^ZLoG)aw%q nt\o_mzEaٸ8uЗ8\`yFӜɧ( ւ y8qQp287I)w=-^ k3@ZUo[z;zn݈,Ë#I҅z0{O +G ⳇsMɍ,̽qwʜ73?n* 0yP1r]=Pk|{4w8~(9Bm3iK:`=hTZ rߡ..^ ߃%bۿy†Gk@K)|g.Ւ=3^^]cTׇPJ:CǾJ+O% 'm?[t;7[p*m񭃲]W}Uw tqSv'ț2葐#E +_z +u\mx'z$G#_]7F>wY"Zu=Sչ(eVj`Qի/1m/Իh/ +bGnLuB%f07+<=HKI!+_vGR q:trA[,%7;_תMuR%IEGo^?]gm9ߞzwҬl'So5{]m?>7$86 +H3fZy#qhei]FۆVDVKz8=c;˙ͷ?Tٜ:A u6xgAOi+nXWC#/L?MwtYar]Nݗ7YO}9>Ncw<{o6ґѴцLۘk!+[ +&$YCN\ĢM42KZwQ/Q==&Af%ͳ$/`fvʣsջ{#byŗREͅ=nZU; d&jU;kxU/-gh+f<g䌌(Xtk$@K.R*ͻqѡm=Wn1S)zoq%r<4EӲ2gGׄX0 +Xsli!oUT}3G%^Q&JgL}%2j-D/@6un~a_(/`\X{u"i'EgY_yN9AN{'$ò6A_)g)u@LN&~pe`R2pq)^^\qЃuPW&E&WHa҂aMJܙj\#gCI {eí;c]Š+ˡ_:\a."=쯱^𖲎;0qiAZSW~r RD؅!w>]Es°JՁVCc\Ow%!YbJ',;&"mw}j&䱩y,!>ȯ 2h&n>NW J*|yWbd3}kos83\3ePסBPQX ėuh?~9s[HH^ˊll ~aәX .\볔!zBQ#Xzl$ .+zgv' _v& u1;`?keJo-[]_.PbX0bYjA. +zTsْSt1F;;h^K۟ա'`}0_7]˷y˩v|y5kS94Pqev ki4#赭g* ڥ#'i(nl^uvn/#5|薻8=ۭ]68R]`8[kć5N_’z?l0cԫe_E9wDM7"UјZTq}NH4el}xR{xFfBw;BzWwyNOIͳbX@*x ƸJ PHѲb_V r銛I]_!zBН䛠1g'Yn /2%-y;n^M)gn8篝}״}\?thaa ڰ>SkLh(*#ʍkOZLބHߠQ+8WV%1ջ=6PngCԉF'x 7ʢ:V2j93Z]?^ahumWյȞRi94^Hr7|hׯOJڂ|U;O#3uz2-zfj ]P2L8R +5-+^\;gR7Υ*TBK!CK^s0#َZJA L{,]|ުMX%23 +|2Fze.Ǽd-Լa6^ 9Qxnfta#T $b8_D""󟽌 ;j"~ϭ2;u.<C}-Ǽb;? *D/o +Q~`1VmZ\8vT Pxp1Q͡8HKWS +O@Hpnќ袽\cf%8˄Ł 4+-he;+_X%'3exdSB9ƒ]4QRz\R~5rpp:7APӱ |zY@?O+`CxsP!BmȺBՄǙca˚4K Z}nD͐{]-͎0jS]khEɍ) bB[q?=A I{}xu u:Bװu +MӖF[MeuXa7׋-{5Ec֊_^. ǭmܛqi@D7=9@ ]!2@$.V rQXyl [<O_8o޲1V/ atgWےadH=y,lΦ;f 3T&aͧ =\얗)+t7nŞNrv~su^)/N ak8*~8.\n\4d?LֻV|'ov1 C=^ѠP)$}x8P#\68EQ {/:w5:ڥtqnGl *[vmsh3kzU ˪&4%hs#Ei%#gwRo}BݵFԼqFT ?D7{m Oo=жmisn [Aiӵ8cRYդfsV$zNWLߓE˛xBĝ.մŠ7'[Cg9nj| `(\+|hI5w t6% exM7HuヿMb҇vv>ik/ՙ/Q2iyDFmYkZ>F-WVI>%?ʱ/w 86u@`bu +.bʴ뜗xT''ݭ𔺳 +gµL=:jj3֐fE*iaOpOkEf&6ylQffc-.z5{y]U}雷ۭؐ#l1w5;_=Pպj93yf9X񼶼1=P43:_z^5ԣ1 +VvoWoӄ]Nzٌh%YNɛP|KY~᥉X%јk&xtgO͍ߤ8ٌ?}* 3F邘j#Yˣ)o[\6㥣u*HIRlI #qTV" 1אA/IXG/-@]% :{LXW0مg.>/]Dȼ&5U#9#;2Qkn#3J.^I,8;y!k;K>s2Wjjx-;.ecDN d\_>& T{I Wc֌؞0tz5Uvk{ z#J"(9'Q,f9G;g=ҳєV]8ll9 Kb?/q {7&¬1=*4׫ʼnJ&)˕k^WZᠺ 8^SiMOgrJH*V ujmJҽXdm֧)Qh4}z?VMdM -{”2,a66LfnvX8KUx`"Hg8uߒ%3FWf { >?VqFKG]ۻ3Tâ?>h9^u~"m2ґ˝SX5iZQoDžZFb{ۨGmWeXg7Wz#$G= U0[+O/mmL^}Ss(nP-lGCN>)d6(HמhI\I&^ KW[K +/2_ՌD?cq"V^x7]xXxa̿XZ!ЦB9;OB9|j]*HVJOm#*(V&3"]_ϽZ'O#X9ǘ° Jnuvt{MIb>8tc`+?9cG͘GNG{/N/~tڀ/⵷cl=iSoݭ7bQՅĦUQۘ]ӾP#BUPn)Rooj-_B" KI5+H/bd93 /l~VI<\rYbm,iXbZ}Dw;?_N:*MVb/t3^;ĵJԨrx%u::6-qW|RzeM|pOL0g7<n1Hn"UME>/#Z{ >i'%6uu;C]f^Ѣ!6$;iU0*[Ә.J*W­2J9Nkn8CL#3z`V6R7GR%d"*x.[`?E.}}|_ƙTmB!\KOwllߏJ`ˣ'w/K`$2iݭPwP\JL&vOFAWJ2Eh<|J2BbQjψ*J l.洆 wvClJk`6'XvF +SiQZӗ/Zp +Q#RR&/'Ko ^sguy[So\šnŸBvSӐ+TΉe+ON9oP WѠ!M.rV9*cT])ʷJsB F^ftoA`ܬ*Zq_\QN ʫ$2n Me7*!ni2_V  b#GHkg-g0I&V{cK3Bn2紨%!R!V+I3a$eACahFi_ +־gF&88q>ގgL ؾU 8]MH-7%$2_Q\ dx.WΎr}"2t?h4 +y$@C1Ґa|A3qdEup e7H[-]! .ų +pxz Cr~9M`l2DA~a MI9$ -Ϊu @@ڬ~ŇWm@^@>n@(k(q*J!b"PG>P vdj1q~ +AɻUN\'6=foP¯_my _ǧ) Chbd~$Y(K萞hՓȌRo*dڦRgcW=B}۷?neRT_t{Hv~NOo)6oz`^wm_[}}TilǬh<֡ ̂WR8&b_Y?50F:*;?:8$is +ܒvv_P55k:ם4]h9k|a&ng~DO=#2>:/B5%鸪a{B1#֞k{Bۚ^;a|aFG܆.ӽ|gO.#j&ى[XMX55VʿHPW$$j"$@=Yu9|хOZբn8{wXtcd6:kfqVR:""brT\3KdVUɛ䵃e-vtIY?_rL*~`l~TmPkwů.euğe{Pέv-t>f40][ܔXI_+Oxc渍Ga987ߦao:o$oʯ;F6N_I| ݖOKPNrƟS:~k,+S=&{xNʦ;>1`&/9ၳ9B9ٯ2>G5Fb w9z7җx#8bwPڦJ29Vsqn}sVnr]iɀiL2;wz_~._B? 7q'# muLӷ5@O0SRXNFmYcܒ ΧDScJ btnd=/.O //?=vk +|$O7-0)4wUe +ԥ*īö֣݁p-S3G'XzX᧍ +חգAhP- 4Ԛ#] ]__ Q4vMk؏x]3nwS{^??V{7v,;j=3MMdҲ',mF\.*u|ZȮ͆`Q>.k:y]UxgATvG:vF&q2l/~ˍ~˲Kh)L>PDD ]p71ZjoȰ"NG-T>SwZ\k|z=hv|n"/=wmcPǘ5{VVذ~kRY~/bUvE\0RquK">7ܬswLNӘUj}- ȉC?4ez qp28eQt`֫e_Yް~ޜ)VV8C[Skz\8&zatq?(zƓk6ySms+-z׫ +w*\keɠ`;ȈlT)ꅛ[tj2μtmO%@c0L{NkߌW׾~Â+K,L#Uscf)fUj櫵Nj0 6jJqb+{yym\<+U*cΰ[\~Rgհ'l+Pn:RWs d=ʆ}:25;+&Zny Օo [)—/NՕp?mfVoQaVzH[:}֕c>wb54vsUu>}ug$z"0O3^G٣]SWUݰP]!%':" ̍_0]f %F[np:]C=L1*VDKwk,2#!7 v5)˨hkcU D3[!IK\fMjL^o-;x;K|PpZUs.Dɐ6l4ݽBUrT^tCzl70>Ifgok㵶xNZuI 3jǔ`P Ge֬ZR{> ;|A* b0B4dOB,$dIXBHW0('Oޛ:W^jU#L2%YS&(*>=m8Fj ӳKWB*TnIx^+!FU_СŐT_^7 n^Oy y:bå7`9( }xdkӳ ,ќ5'GjKwSP碩F&aGnF+sfⓗb^hs>4sR)\*^,^g1#3=c?';h+|Wc˚yuK땛0uiNYuAܼmԕF\*#¨ۜ +[N6-pձ/{/ñMEo;:Y";"DzK6D9znZh~F+:5I.-A`}E(, dT4v1#3W]mĉ o >O7;,-fnϝI;7kGhэ拁i"ruI05M%XRVdRmAIHJjDqdH/`Qc1e v,CǬlo hK: + 2rbZZ +3wwS9 jyun`04ȖҝVY(i +.Ex][9}%\υt'3" +[VoW2J-,L~Rrĉ3PE6O3v t9e9hx]0XMQoX=x0g&9zf(fzO߬{K1} _|?b_7->mne}ZJ:N )C(5!/Nz15QGk׫U_̸ڪ:xmDg rUcᖹ׃x݉?娾f/%ybtKӓo~x;|~0.'k?Bg +/v nY|BQ~c^~h(2ۚW/;~ 9F8_,G;yn `iK^&uVW]\2wa 9Jڄ/d|zA5~? Uns ScӍ݂uDtovflŻO^UG(1 7[>]+-';{#yu/$Yhȟa>uǹA.ӺA6 +.;v'9{c>9:ظ3O5`dB8,wcfFm0?!;`lvr`ƒy/4)W?ݫ}a;)m9muiFKiCObY~4Fd+C@m Mi74%O|~80>~fN26~az-Hpۻ-.Suvi7ʏJM~s}\\, +$r'Zl<|MK<=0ҟ+2Ϯt!B/nMױ֩PCi7wݺ[3"HM#,384u(6M+czWvWҝvPuܼR}uxuN+L{Cmy3i5(-]֭3'[s5Tr~hA1 Kxc}Xnm;niԎ$⾺ u:˙wQ+ګIYz.æXkb^i3S_BO3A/xE>X-(}Oa-5=\.\y|8Cvh/8;U1LZ'y%^-xXKǧ[45/f0m4vP3q]PXWΕ^S׆jMyŔ:ճ>6owJѵM\LjɟcsL*˻8=ifŹ/TmԅkF?>m?FZͷ90)6;oBP0קRּc&vwnry"N&&6*U;b͊pܗR.hd5вt΢tqYf)[nF&R h6lWuru>}iuUTQ"x 6>5V`W,;_&[i5vtm̻BM1O1[Ӌ 0xe}|io,o#(]DSU{1ΔQ-Ck/vNawqA]'VVΗcޓj:T fK}ğ Yikȴr>V8x ~z+I^+ίH3˴z!R:oA#02yOүRM])及9Ň|(?4^ tvggLQՏy<oNuRna 95)QTyPsscķ +FfLI[EO fHu˓JP׭7_g /SPrH>\Qa0xLԢ];Nm{ЖrUg8ʕmsOn^ jF|xI`N[Jur=W&r鬤ߧ3F^}fDiBDDNl޸]7Lzg]rcZ#cn%3.> tOABK]Q})7TӋ[tX8MTbr*^Ce6[j$!&=Db/ !8g 7?98\siyMWKf}}f}'mf;>stream ++AC0X0uyUUbdE.v vÛѐN?]vP6L z߮t]c4)YiEITs"t6w/0&U>d| +eV# ) $',#P;rrױ:#c?ejLϹu +yShGIij b?BD#?}(ѽ2³)tY5M H*':G'WW?? (}tϋ4Cj&u>kQcN)YꮘiIl`t1})C? +LX^%, `j~ +ۯ ]Rg?|ɬnW7wOƏ+F>9P<:B,|0̂N!1_3^m3eA彎ZvU "Qz7hb1`";Na߸gړ Ugԭ}̌TJ#hZYjw{QMDvq<tU/B1j( ґON@rO > :%@tA,M37~c*6dWGF&qvTИQr7e1N΁8*v2v䚏lO\PopyzgOK;T8nP=BԬjS4׀K +PQԐI.UU#@ +}.cM3ZRBͻԯ5<:ŏ.vXdJUn LugLa~,@0p \cC`5@9`Zq8 =|Q\ή?^jzKLX_5`G߽\6o}Fj Xah9`;`, ؙuF%êv: eUW/%CQ`!̡D<`ɣцFC'spgpaՓ#EܢO} "b>j?,?Ҋ'':E_C\2w}C^5YVÔ6=*NLXEISURC +CD\CׁJ:@c 2Cް +HR@;$Zfx שv?9*skN^WO6 +&FfG"|RqJ ȸsydPPKmgҪ@iW@ae@iYmH=hPxt`GܴߵϐuU[5.+7{ Zu6ƋL{&@ U _ߛ8%xE;E%ER؛Sg.>H*Rbufoߔ/֯P{%LUBjs?ad1?slڔp?:ܼ/BmkUwWվ] P _9:_*;?_7k; +rI{52UBFۯ#ح}| s{%rJ.Ϝ/&/9^J'ieLjp'hi4ϸj>-1./\]FAGA7Apk]VX\rp9^ΔG'i!ϏFX[i>7;ِ'w~uq2²Gr" w^cɻ,:/Z⁺_̏] +xfyScWcg)`QQ34nlܢh>ӹvϰ:kJ,h8,%D6܏ {#_yIQ޷59<[n|06rSn6Ki<ǟC-2[(tm)1r cfFgP(xJ E{ 'aק}^r ?Zֽw+>뒶 +toLɮ7>ڻ{rJg0,eVaKA%z' g1̍8.AZҚnʬ)C0ѓ//w݊Psq͕_$,oidg.ŭ(CXOWPhZ4A;;v萏*VPns-A@f Mhկf>P^/Bq#M#Xi[հ4TVu>IL Igz{CP+mn) +ބYf[c  ~zN29k-bw/VGvU+0zUZr|%Za}fOsҡ{m}z -;wuam wn~0K߷Obhw_5FX^;nwmD: s3e׷EгѨg910K75=̆ !ǵX*BZk [\Z,M\*LE]޵"Jul[+ ÊUG؞]P~iƷAswi{Xj~Ⱥ{owA-Y}3n?3T!8 zxRT-8Vp0~7d)Zks/β1Ŗbcwboj >snyM<+u<}A8.kst"lQs%Ѩ8ǩ~\̻4Wlч®tnh >fL ~Ln7Q 醸}ih WښŕZW_o4y-Ba}nH>)= (`@>ުK~Y%OVWMu67UV9{K'%vѩW'm <'<*~/fZ/D FZ";§pR6Ǵw+=#c(NBD+?oҾ ' eӑ?R@)<yoG2cW0ȉ"s~G, H^yk[!jv 1L4o_wm^w5qrɗKc>V>cf^) +mFLWtfȚԼMkhME,sV0bL#SJ!속dqhZlpgg8ɶ!%7Ä\6-a|j>ig:6bkv%+3Uo v%hWK 4gȕZOϜ%>6H6: ƭ,i;')K01/j0f_#u9qoʶ2 \Ky]H2<Ï^êeuRsf +JL5[ȒC-^SSTlmB~08);QZvBi>Fx[<׋^R(QT¶fZ%mѥmǥɹ;gm +kԋV0nf3M/i4% +=n7Wcn;121adXackӫy&ڃG8H)Y^EQw:ls NxWߡjjU>A/siY|#1Ʌd]"/Y胏h~$ރPj !ڸG@ 2asa$K6 6Ei|ß 5SЮhY"iT>Ts߻9=>VeG̢*8?S?}St}K Fb\Kg Y %*rj n{2F8:NE}"_4ޝ`PiWRvki0ּ 1dKHr阯7VMbw  [?- #  X.Xˀ<1 2o, f [, =ʭ(0P]0fs[h(ش?}=^fjpVx +PP +tCl +KqԣKuЖ 6-oWp;E4h/HqٻuT;Ph$ DOSr/X!d{ Z l疪ڭ/DP$I ("Y9?Hu +c2ɨg `;Lӵ@w(}}o晞0Y0n4`!`k3W`H_쌦,1?@LSn>/usez' UfF +$3il€Y`W `Cp8UM9DKJp x0}ޫ͑w XX>AioAs'*3,uh&_/ 2rHԮ̰?Rc`wS@*X1"@4CbOh) xum9]%/Aqߡ>q۾gNV} + t|? ٬?*WN^N/ǡ(bin -H0t|P@uPC(]E82g$VnIp:DQ>z$db*b~ݿo?N+ڻ P: ԶMA\ /n@߾&Фhr@SsJh&H=?i 1D kMfʙI}s~XHs\} Mku[z0?2'zr":&a#X_͈ͦFp*mW[X+\N;oVuoْ'~!,-?<=tOJNdtͿ +mͤKUNcL?Zg7\Bx>(V^'>SǛe}̣Z@ElhvlVjmfbDȊYה\~3yIl0SA-c6wGZ9v g?F.>nl&x|f,6)C`O?"7RR3}a1U68UnԺel_K゜gjv˲aMpL];fX[\z4m,쪢2*X AF3{nv8yYޟ.8Doh"Ԗ_茋uiRFV\ٺ7Dh謨AyPٶԒqUl~`Ca'=}Dna;m<eլT/+Wn`M7iY +&BtnIJqf&Z-vp S +ippC酬>D#YWSOъVxu uFjv5[+*|S5uT\+R0J %&3RlO ǃ5GmOYaiq&ųXٟԉl4}b$Hg5˔lj*JGEey:TmTјK$1gƈ|d p&ƈlA7熽zmzk#%Waro_ c}8MuWbhm>U[Ju|ae2Lye)ϛ?xb`S{!'y)ܨ:qxd7r43nK]tz^2*E ^س1Ǝi`W}rf'o +@:lJcJ+Aнy| +\<;=5llyFtj~I#:T/hc:AS:zymoy[O/4ie7W=}~n}]йB_x.O!2SWa+vFsG>pf*,`MoDh@'7Egҙ *^d8ۖ^3^srQ'r ⢨GZzy4'? ֹhYᰕLx]޶r08֛ҵrCSo,,$ϔ[ufwN*yySo>6Ƕ(qǘX`Id *F=-22AFqHgRKNap2xY + P)s2,X[R&{W|~K&d|rTGWǴ\C Qh#X*9tQiV'ZbV7'h(0.4ډss*.7MѕOhӨh[965=VLK7,3-}rl3˝yt 2Zbvm5u=Gc7 w5m]R?0riR]_48e/Mjj7u\ +xUJbҩ/w=.2 |, >Z=ٽ=$eNig/\}A:JG^ax+!~D)D!oW`%~tU_rѣM;c!isO)C ϗ`A %RVЃgeN 2 fg.#XdO[鑸Ng"M!BƟVAX9' te 8# ๔B ;^ EcquB!Ih}|!%왪[_RWFN>ҫ.Jf;#` mwB@ vG2b1 @JS@W+ +QD{M7%:_HPjTeR+E}Zʒq|ݻ3̷51|.gg#4 օu)BϢ 6=1>M#*b8BsPX (<1Ke@'u"/R.:dJܪ7q\ɿjL(T:*{qǿ%AẀ|_0A邼 _HȌ8߱{E!(C#  ⁕sujmQ _(nԥ4;_Zn|3j@WF9YQ&`J)` 0e)Ƹ rV_7#<|3G.y{S*2J +?BGO:_+~ =>% XB^Gv5Ap\>47>sN569s |CXwױ,I=nsU̓k"@hO!SwqT_; +oP_ݲi1.m xmw?9ȽcD !%J1a*ݮ61+Z:zf"2^tnP7n߆JtOmm(I?7Hq 2@ + L 9]v F>ZwBҽΈݯe":z.kjڿ5jm7$w+BmW{5}ڗڱ@5PwXA etkOrL?'eSB41(F1fcܕ@چ: ǧj>~@my6gǭtnfohU7&E1֨XeDM,u8IFrZ?<>ߑK6Oܵr9Ix/g>4rfXoV7>?j$ kufB9&z?jDMv0PnQ6e&YvsY/u=GCqv_lY6jf\K~a~u?[!Xigp&H 3?ֲ +J; y'../S-1官-_=z\=>G͠Z_e:1i㭳FylM6hj!72gh7hZ9oFtzd˳[-n4V٧NO#FvS4jb=u nemwV/>O?;덴¡ﮍp쪡{ݜOWKmՓ?f.fqA+suGH'r&.xa@AH~O^{{t"v:tv6DcL{[]K_u$܀ֹM[9|9իzUvvmշ;k_Zm4񾙊V;}ak]d*N|:nvl{ `I+>`lPZ}y6Rh1-v5o^+ <;\nj.W?\:,wT3t :/wun'Sh̜Ӏ_wG:d۞=j㚛75U=u]mQ9lrrXs3 ˸{YLT'B_|g}C-6tAЀ&[׀ٚKv1y(`c%v +zr;]1;>[ݧd"^vch7=|6sv9Rܤ~"٤#u63kInLpg+S/WZ.B{̶N1{W)wOy Q䀭^XJjnq:ljֵZox)Jwyw&l\_P.s.n!LGvh8t_iQE4C'!Ϳ3F٦K61G)lu¾T j50GgitJ׫!匌ޫNx*pYhF% -^* x,ԼeVȭ9Q)FՔÜ8nZп]`G<7 70~vi9F5[9vJeXtU]=b5q)o ϐKnZ_>]k;,j&~Z%q0d^[5kv;̔F;F7R3*L3Prh$qt'a#y3%凥x4Xdxl)+5UK]?ؕڞ7_JYvh\L\]߸EߐjO&6k-ݏK~ELEMJYJ96e2rz-אh~s9y IH Ŧ++g1>qHvs&<*wjCq`l2Ҳܑ/z:kZE*Ka`bu/oM&Kg~؂H ^r]'ڋW;7ԄgNRN ( +`$a4ɓeiJPcˁbuJNk ] +;_+= +ٴ.ٸxPAuttp9΂ !T1{Rk-.;h dP(zrTumD*װ)vf9>R"7~G*4'_Ԭ S%=Av *~x81|i‹Q{r;Mxq&)na7#D|l_+|笧~Pz(,ՐwW@)@L-eUu< uO:?\_?A[ Mݹd9G u+x4:O3}Ah.ݏbk _'@cМ ]n_"=Z1s@'',mi6VkS=Rgcܼ< _}GDeCKDJ^ !epp=լq$Ӌ1qRz.`2`[nLfг4"Е#SA:_0 )2*4$=ȉ 澞DM2G:e>t}i +']B!K@@q 9}k|FםO ,x ɫƝsYj^3)#AJ'TD8$"?kP Z_dG )HB. h șlx2zS ju?䪴(a6}zvDx!?M~"юw(Ip|ۯtd;7Pa*y*M@"P{7 X~j{~?=տz%IFlh$?/wz>,UI=Fz@۽[6Z+/H:KBa$rh_9LO`dDMo1:ST.֦Vbo[jqgfTOAbi9J˞w㽣x K_ob]AOC?)5o]߽⭠y>^98Jsvwʬj1`æ^{[{yvz%a id}>mѝAw1_u ~٧RƇ1r;io=s;눳r+fjK[UO0g?mό+pS]DdUH&,7{(\|1_5F_j}}`wmY E4ѥ:xkئnph_ +ܿ ӿq Qsu{"15+/j>W>vЃ~+ȸ>؟wV%WSposZVj +KoXn DٯafG=rn_G|;~gtɊ{ I0+%jy}]Ohf۲M*PZfڡK~Wgo7tm@hTv9;Qsi!]ݶ\=t)m*|&JP(*1…jc5uTjq驦Ȑf!;6w={srW>(UyUCt]A+T/f1*/GC4r\2\Q1j3E~,B\K!hyl[գvKQ%KKВ.s3@.me9sL3Ē>XŨڴ襳\t)lO!rNaCc?gt +ׇG}njd7vw[_ :Zj<ǹa3J&#lQ.dnZׄ/LaG.xiil6a˸&ԃ~Rzڠzk4ŠsC/l +ku.ˏ72p Dǖj]++Yƣm0bQ-.B6PL]E2r׻+!p+AsNR +Ged+FY^탼,:Qeo&sD< .9="k޷W˷6rբT"Ô[S ;"GxP?hV +W=aaRNټ +_HAƒ\)]BiKV3# qċ{$A\Z^B#ziBGZD-4[ql5\6Qq>hn' a?Q{"%젔VUAG^ 5XƧ=\78YU<#2w?8yCs20\p}Jqcឋ`(P5qR(çc#w`_L4ȥ*c<}27v;H^x:.6xJd+**['dkr=:沈~`f*JSf* X*YajzSpvovbPu lW#Kq[Ww h] ?p \-t.|ZyG NTwj[N3]C&b4_6ί/e>㧲xr-SeO;"C0S)U\v&7!\NIf(Ͻϔ5j0R,\`M^˗Z%| )悔s(zSȓS/M:_j̰UyxW=Y\#ԲDX:?Ի+ |K;)]B13ss$(͆|t8zR;MA/S$Bg}3>F=F}<-#Ap zDbShM'{ON g"*G];'E9 6Jj*q-BK;NA +,qm#qPsyXy)ACVXCj],e̮WL;Yd͈xhtE,LBֿw>@<^Vk& _( +|UA]]m +p}Ƴ\]l%}Em%]?xڻș=* !\TF❲C{#sh@ V]lZ%}a}o*.cg<6\egزd7va̾[XdJ2YOWN%SzCzMT%.2X9$9ILT/5nڍb_@^3eP&p|:rٻf)3LHY-2?h4> 0uRai۾e:HؾTD{@0r +aySyC{WM(V,lËZ.zKxn} +6Ug0+S'b=cIG_-1[{Sr12It.IuBi}4.Jui/+~`~tج F+qګ|` |8 ipib0D6qLR^1d;&S%kh+4.,'?.IЉk_ٛu2^.nbb.bf6?]HRQsL)"X6F*>ck<UΪMk~ ~782^`8Gև}>`GJZW 9c_B*h||UsejP"f#rYH-B8\l|7dJ@*5@P& kՓ=nDbZDݱE@n  QWP& $(nFZVKw`7Q> !<ȕz4ݴ)o[6 S2 7B*G<]BP+ҙ=HPBUB+ _Bd#1PTHsZnG +9#1-n< Xe*nk.߭ԻGny?yR|!؁|uu 4q16l;t hKIMj\9M)0啺g}έXe.jS*iz24y s+/|{zz8 +]l,WKR3`.ج䀸Y(9\`ns-U^j]dx6_>e[:8O$?x8$$ᯂڧ9: x/NcR/5oS9liS +BU槚9OSPp|ZIL +gEou&rozON6(A@M .@|q]9D@RKK$78?0KU{2s&Www8rh쯞i'JҀgJw#?ۯ6oz; , 5 @Es5/dk5_6&z%f2[Ӡa憽ĺz>U@:>6[do$nB87 -tҍbgUJZ;`^+j#֩D,~c@:4@=ѹ:8!+*Le~OkIy[:]q D};tRsZֹ![|?pn3 ź޼\5=kj_Ԡ^6~c]^\qW}X.V˥ ^8yIhDJ?`V0kD $X!_#m3#N䡫ڼMu[itT9L%x68rוs򔜾J2,TWD˅pF5r`a?Y؎Tx_5}{5׵wT .&TYsШ\PL 顣4*NuEdyO詞V.n)lõXa4x c(2"u6(.a8e*QH"UDT:2GWUG<|stt\)ӴUbƮ{^z?ށrpd'ꙝ>1r4cjVZ&9]F7\ÊbI5j`BD6P24U2J=J~%'7e\S4}iYM;ř9X .Z,^رU(dUl+aA)ԻH6'kM;?p܉7ulR@MODk9Dyze,jq.Vmf߳NUG}.zЪZh=ezGJ12J֮les)mCZ"CċQZ5#WON~}-zq1q=w٭:EEuk_"AEs uz}gtvRUOnNFTJqx̴LiI7=gT;+ 4Z(S'g1ljèȃ^٪)Jtٖ'}+y|rYJf*xqJ*ŁWLh pT2pmy)lT-#O/l- Ӗ yY02;]+EZ)^5{ ޴4g#^IH5W"^C\}@"g7BY +^|-5ǹ%q sjduX1Xb`,0fzA<_A=*ym,2u0NFm8Hk1^!+˓š/U\-߶HӐ+loJQ(wܺ_[Fo?(w^NPwfQV!)ƚ/hЌ)ը)':5q97R"ɗn0peiVY~y [EJje4u$"ۡE:(2Bڔ:Hһ)WzkϟMq=j9znm*U +xLX`Xs x?䢎 P%}LLi~mxu kV!g Kו5'T4].G[@<c;Ji5ƮC8LLe$!̇ h2K!ηgw]r_==L:n}YҠw :6=v59jR(4⸐)n &* c?=6#CkۣfbQ\v=7#(O|_xƩ+`AKavzG[xXA14wsrrI/] )Xr܃CmrZ&[:OشDkP2*WxE H +8Q64 +oe5ڞ )nXDo=@uDv|S3 CJUPSPi=\> ҏŁ:=͈H[b1o2"iT|0x*lYIf)5rGq1 ֦8@Y y.d 3<*upݷi-PVR7`Ѫcx @D\-9˧Ė>%V)mǛ{ ,+ck&heRRVr݈#ʷF+B"'YP䰡IJ9sxX}@ 7;  r~#}AȠH$p)mj-kCծ9ErpF> b>v)F.Ne](orUҀX @Q,hKPLh9;bUWU9VD8l)חNP] +|7[yO9Zl:% ;Z7(G<@[,ZL@gK[Qh)݁>|,,~} +#5]_)^Y@L/Z{'⁅GŁ{I "?=)b?oU/O" l +XKPCz*`ƇY6#⩯-x~̛FcG|B,1``nk00 Ll$c +JrceġX{I!jځ1ɷtO6`y, جM06_!ҽZ p;p\e\wvo?,= Xjx+ymԉ(b:#c撇(:7ONˀ[TV \c +F:>KMj<zh6 TB9@@XChѡVPR)3u>WmH&,VB<9 -k3 L-5q\ +W$C4(@ZRK / 5ZJUKz:IoD)~zȎۊ<75Bo%'.=$7A#$_ϫC(@R@r,!P =~5@@L0ty[,Z/>\ʽn4]xa8fj Q,FA MJtnOzCRxntߖdam,}Kܲ[XXZXXXi#w51&uRrYb=?(!= {njYYmN6V[v]+ku0s):I2!9XWlw4#˨ }uV_+1%Lcbi@qaquW ΖFZUW܋ JNhmXD[12~?b +v;"v r9W}Q Wa \uOg9ŧM;g_qCcf sc܌64"NW> ;̩u7O݆껒?qf\wݛ&󵺜oW|-Ṁ[li&'{Ϡ&JeҎF-ԇƕ.yO.ӟJ!IwƆ:%zi,Tk]U߽EDZW/2r+I͖O+~q@ Sʏ:t<0wd%]'N}:柖ta͖zc6tV^z?e:Xf/VuU4ΧχXtx&duTtj9Md]=tKدǙjϫݚGe:`]Tg +sJaSדJkQSleܨ/תsn=7xQ&LKhmg][Sܦ6ˢauQէHeS}=ϖ0/NVnf ѨP0Eޮ;:ɏ.ܬ9ReKxC޲ë!I9>5*τv<©a ])1z?h189}PLlh2;:Yϐ(7+^vK@Ȑ5%Mθ^VA+sELɆpᢓA-N +C$-W=8$:mCv~֭[<_0>ӕ2G}L(ͳ[(/4[$wV,׀O +{Bm4]$y45ƼW:kZP.!y 2HR. L 1m?t *}F/ YuT_~R_%Τ})eoi)Qv-ᑍ ;'2`UggbzÒXFe<(GL&6#rM7$]5^/aGa5jmf߮pοL6kϩUݼvqZ2jY|iz+ RӧEZf0A\cdXr0S;Rn$K:oe<,NyGQ~W;N>ճup6 1 Uh6Y{=r)-VwҶRoluٽp更aX]L\{ vNQ$Ql8qߣW +v.VsLjh:E1~87Dzs+;Ѭh[|ԫ6wJ|& "uwfl|Ӱ%ZO&« a^L21x?(n *9ETc[M~8ţ򺴇2иMC/~rYwP?ƥ Wn-^ +3ʤlw- +:a!!T`~Cy@K.˼jҚX GB~ ,ߍeI$~VVs*'fUZ7QAMԧ0$9[ p! ޘf^^3!]⏰r$!Q,4˱_ +lHC]įb> ^oODDVrtpATӨ. /ke^HwIMp>2ȳWh${Cl@X,t\bjȀ|]m@\,Z,6c(Pqޗ` >ao$ƟeI1`niF%inٞ>i7$]ҸxpXa0<* =)SB2 DTjzd2FE@sX+h, byJƇ@>PtPP3)b˭[E_Ƿ^P,z*uTha".e&8:NCxGMp@C +t n*7U q>` +20Eg&U0;>(=p܎ tm3|cGZS +ܯr:.3tSmdxREc<.cʀ`-yw˫9`+3 8<s>u>CP/nr<}Iy'v:fR#A- ]WYu)]\mԪnOƟ/eoM?3"xrT |:? # KܢgKC_VOo';R(̓dn{95ZN9PxAFLO +IPru87~`vItrE%$D]q ac< ;^g4V|{ӋڦKH+\'%}uR_pb&jaLk@\ (l#%^Ɋ_be|`Q.\= K✎&h|ƿ!ʿ]--K R7|m1wo6I}@ק@΂Rv@{xӖ VIwoιTFW26" +&w*K(_mm7!o_jm)& nۂ8ncWEW`WM⟬$lAFLmn$ Hʟ kKz̘)w-WZv#ST>DZIBb]; +lšM dF)Ms囏6ݿui|k<<҂sO?8O8`{x[9rnѮ2NҾ", MwT߻x$kMߘ`Oz}i~*E/s(6zm\9^݋NzeoibijW؀j| %TNyo?>: +k+|xoQxJ~PJ_Vᇧ&[~hV%XF]{톋H~9\&l:>(,_{C#4@3zݥq*;%zlWϴujd/-Ͱ |;P%ay57wCǧAMDTׅؠ =l|)w10E]e֩_Ammt)[>ΒD^G겂6䩷IrWƬNCT +RxN%= Q2FaaM$?h N͖^z4jq,YͨyxW)By*hNv$=bޮ  ]~;Sv:?VXv玙5*SyiC melU6%rPW?rU$eJf>AKҽ,Me i!?r>CuܬCܬ7bs3zd6iNY涺V'fA)'[YLݗ\뿚NsΠ>Gh ڟpqLvTw[Zڹl>x̿0jvS?7\3) (>d%FZCN>)0&N.Ass{`ߚx®x\ٖZ$|G}??Ki Ϩhq*k\ՄWURmD~Ю뮐[tdDIvRƖ]*[sY^nZe:LM%mѫi" 0k^djj*V7UVVU1*+YvT3/}45C)cm)4Z҄Rf8sD|ٺ?P2mD{~kaͽ|Yz7z,ܢf~%U_H0 ƵK.!En♸ +#VNi('IHn>I(Y)R.ڱ/z@/oX(g hmwzU.x$N-<\Ne#mchSQl}GUN}PNmOd)+"QZB~O +VP[;\LKuc d:jfVA&~h50%=-6i;Ոso}=zԱTbե G]ɟ +e8JƇbv?yasM-wyY\P5.HΦ'`:C~@GPvEەō*ISJbjI,WX|EɀRv%nj{<9~r5EiQ4Ⲕ +pyJ+NXIBx}L7rctyھXwt,ș_ Ilbϧu|x.ϱ}@̡K=7((KbegZޗ~FjV oas|pipH۱-G>2vee/cC5v C}>OI!뒳W{ 6S^Z `NF%LȦfh1LxyL6Vx,GS`n]힤85%y'RD)qnva['t`KǎvBMHNe6ԋBJ +LεEGJC +ߖYjVL}mhJSU<\*BB MvU-ORSJ\";;{B'GyK9?o~A ?rSdpNMIްuf*.KoD)9*XCo~eÖެHY2i?[gVyN +q\)PtgBrsI5AW ;j\c}t/=DMѦY0Q5"ԡ=+ܡ4`Zݤ6Z(!@d!)33~~{MPr-%UE0i{;o ._QGrADnlqb4wElܱ,b ;N``BIJOjvf0yLqXV%c*հ| s/4{SyNmB(= ‚C[P{J<,̲u΋§ B`̍2qLylz[mENtr{s5_5{sa;߃̓ޕXW#& +{3 a W0GWמ%Ke!|򱜿Y03~|\_j+wj1nGIӌAfzkwh)05ũa]CM'I֝^e/OgT+4N9uW. ;& ^BXg@ &k/O$ S:B[Ub Yv?t JIm)" J7nč{8 pެ)S7'-k[[W %[~7=(?ǟy#Op\ş׸B +_)Pxk^)Qz%?2T=>T}%T` / +t(ȣc@aW,f{הLKuxٿ)̐8 +?H!(lү!hzGqIcZ/CY&.30Rz\oĿrt0 %@}huE '7P_J /ԘZZ#xʍL!L@8X\MÓ[[W~-ɜ$|ʭؙ;lwrl/|&X.6@?U`ag7nuMl sOM@Ug[o!Y*3d`:())&*?k- Mro$`q@iH$Zb s<~x>g֙{5r{N#puV; M I!I "noz/8M,@l}4.P +(-̀|*@*@n6ZpO,?֣k@&k'' I ;N̆o߼ۄ&nQPc;n[Ѐv;@/@/"&bnxTAp$)*9a 8IoHJm[i_?$%!ٝ,1&X{-Z\sŀYOqnm~bl$#Y'Ѷqe{O<ӫ'7U=z*Y׽+?J4Q{RtK"s>^&='8t,oS_chT?J֠r8_@JwbO=879k'տ|fΏc,3ݎ֎S6w]~ὺ2OX;3;՞-'a?hBkPk 6a7ߝ/􄉆Rソwx^)e|<ޜ28VW[ve>oϳOל-m75#nvZBrIpSdxowx?^%MJvJphbMXm3_lT YXnyvFl3rLK9(,{mi{K?*z<ˬK锨ޗk%| ƽ]5L ۬%6ee&ę&xm!WJP~zhu%=]sl Qufzݗ]}S  S rf?ǪʦaTUɕNŰ$}nDgIJJtw%~^MXm%N$O:<%vY;z҇>+r.E.@˫Ű5-*Glh6~EbknV9쒳e+3|}I{3%{)&{>M`wcK{Mq)[\AgO^ءM̹?pM 釹YɻC&w%ΖԹg%2_::ާ5 +㻈MV?=!Bhw}b>Syx4eײ%Y%\ogK.w2b>I.ޤ1eЉ6P|(I9ش=5\֬,O{m-9D ,zA?_I.$'ڜG,v̩'0px&SNJpVvYw<8P3V|Ӷ?0`jxmlˣQ իnUjeq j247ZPf$h>9VQJA]!ShE:L@vYK6>f%d>uyCѮ.DN;ĒxV]BG Wr߃סZu!9:y6Q}ޤOyFcDl+l+~L2[sH#eo#W 7 DcCG^uW4<~P-p/MjXDwNoaYI]-+;R }z]=)C qϢg/*,'ײg O@x/P$< +@*Wh+^hA5|ȎG|gTueǍ&b#,@A*a]~qբMqsKCf_JF@{4g:v]'q_u{*"ʩ1|&Nr^rIBYPijMXKOCXoǗ!DxRLN +ې7ViŐѢA?6h6HL3z- +g7yd$ OVo+#4-gq"17B!.H(LZW@cڙ/BsjmÉze/hf*Hf=6m95 +rg.%Dc@,Ǝz;J,/5ukRm./Ao&71_ OBP,Ü9Wlל؋v8Jo{any1}?(\ YCJ>9P {"O,O$x=خaYc]bsEXp>2_cKV +sIm{3VS6OMpWsbHLJÈJ;^O̦!Ęv)lkxݏGX<1h}WP)\Rz琍۸Joԁi&W$l +ޣ"|~{PK!r4*u2rՒˤo3z ,_ XX3&[+5ihD݀Q .K <x)8G䣂Y\y + +~lV)90(8 qE L^.Zi5-#xFEJD|u]>Ƃ)8F| *-wfA_1?r9vG +6O"r_Dڄk  4@,@ ":jbel@q]>hV** n@byA!*7%mLPhc³2E + nu-q^F7)1PV e[U*#Hˁ()NLi ϶ޫ yY)C br=d[jBԖwfDMpb"WEs?gk]K>,+ٞ蜗bvқtiyOKQ!CcQɴF`JdV.bJ‘BX^> Nh]̐N3VqBp^x׸Nv=!XL, 2i֖Nq gjIȲ?ʈm3 fobzٍ$^5V/+Tu X,^4`ֳk[=k {;' +Ng~F:c.jK!|l|rğƏϲ憎[Ί"Q e;Ӡu#6~w?vzptq8]s={@ \ r bbXi@ +  p|abQ,|C/D3,"s'XVLKQJ*A嚵0 qYoK! $۸!8\\{Y@o C- +Z"-8lKȫDNrwrve@0nqՋT=> }%J ‚uG NUߢ@`u:B z;du)feХn6eez ڸp6y@>7vSb<:Yq3j\}I +`VA9 CGpo%E 'k9 o(6`X0QX c^KpЯfk3Ms_[^8`$Oͦ~?{)+YX2` $8.3/ON/tu'|wd% 3MdK3gw˚xjܭ޺g逫gHHT}3> )gK?ھtAQd |'P sd:}K,sat/?yjf>|ph3wXi۵e@<OD v(om F8qc{ !cΒJB]AD^6(&jS ((Yv Ra ɻtwd۾cػ<¨}Bg s1ϋ1i};[ĘVp3jul:kGt'm!EϿɶklۀ^i_n]%#퓦tz%H Hvp|m@R͘ Y I qѯ\VIk4T*HPP#?9)P-Wm O)kζMfGa7ds +df2ۧ2j82U~\|!~_p~hՠFlj$B(AАnG o0OrՎ+3.t9GYXZcںWod$[xf%(b=n75p/쑛 mԮ(7/kB9zejf|(}wvԷp?J=֚x7ZVI36z`שo(glinftm0 +rWkk$_k'U|ŗێ2Y`Yl!f)Css{V=eӗP=Ŵ-oIOc9[v軜iI_Ot|stnm[2\ uG߇#Hog3?_rR5n]wס"[f-A;qUk^^!uM,ÎGX}}} P-wq,qomOl3P&l5z%Xգԭ7nܺjwwe[Չoͳ'p&P+nM[ُMh xZi +|.Ꮛwձ'GLuP Uc'*"3k-W ٪ٚٲ+5൪~nB?*c&/t{eh~22' +n;/<_bI2lN՚ٸ7jU&܆p<օ*v]v Iw%W^KJ~Rt[=-Q+y>ϯ9_r Ϛ=[nɵw[6 V{'vO;traH,V i6 h絆^;m3p\#*[=!,_Sf=<3cHmH˅f="r̭HD9թ).:_~:!T.wՏռVs}ן٪8C ,~:E2!ԓLڞV̳\O9V;% -%5TdvbΉ$3BծֈgE{\,gU3H*[-d +yzr!%)pBJy<<ÑHK Hx4md\(Ŵ^GlQc-=Bj0 w+^G"bP)}YSId'ItkN:au(ۘQS,/57I$Y=ZzDbE*os3 + kwiC$J4 ߵposE<֋^xɪiݢt-\[F F{,RU+[hr:aoᠲq*4um`&JEA: +/TT%(H) H5%9d rԆ<<;{`b΢Wс! i +?hZ(x6f^N`R4/"AvE`{mä'y$7 tqa[k5pCXl\#4ɝ&>Ļ .ƸMG+FR:)GA6w&d\?3;w,V +XB]ubd2)#f @Տb/Vɔ+b%Fn/U^a{tyd\ց<2\bs N{N@f[Lv8"xi=E[ +aP}=R}= ZTއXJe9 ϧ6aG0h:2Q*(t)ҚGQQB]vǶ`!6FxW双 ڠnD@߈vDnz}OZݴϟ{#7HwUٽy.L:8!ka{Fv H}R򓿬ۏT$6oH*`\a1̆\F3lf&Ҁin )iSpcD"XyD>o~Ad1z4 Ҩ2#o[;7Tc޾ҏimvui  pdpڋ518Ro~y+('+|Lǒ e큄eA8tHWP"Wc?(}8Vm҉NgmPa?em,A},KL,WWJFk22IO>hpB%]^\5bMƽ?m%sUk{qS*[ٗG)9ڼKfn;KRR-9jHo; + [O6NNh~@>x=x䍹Ul6 Ǯ̀({tʣQmG['/ulSn+v]]m`2 ڏk:Yx.#/#+ƾt!\c>ݲx(rt׬\ߐN=%v˴7oub쎰0'Q52h[jG=Ohu qנ@fh+H@hz}oZ~~_^fs&T]]򦮕ZɮTNTUVyEUub\񶉲3AeKJq8)PP8<ќIp%OfYRH*^m*o C&My0u{8N =_cZEDx'dV4LTfiawBn +4 y۬\=CϒRlsvnsq7e@.77:gM΁M2j({]4G݉XMTtw*^YNn@pYxqJĸTpՍ̲J Hl+ Y1CEz08c np~2Zb#i.QD^d5d28iGQ692i9u' >gs*19;v^cBS"OB$kiM|VQS(R" sp:H+>ł$T#>ibDu#4ZG8q{;5ei\ŒI*|?=AsQDU5$6ʭ|JRDSAr/BA'4GV+X$ˆ&s#%2%m.Awd_KŔXf60ׯXa V^420` +ĩ.kB(OCBӠ 9Z^ rIkj'$!KWbjAK$.o ΖMwi9&sZ07lTci"6+92OGP#P&WIE]EX!VCD.){Y\>-X0q{F}@t=Q^BXxpv3`V=+x&M@Ⱦba; +/kbOFwΤ甞U*jQ{J^ V&Yofs&݆q*auA_7d`ỮiQO"q݀5C@hdAxԙX?_tj57"hĜ>D1L ~v$yS[DS 9&2sKmL|m:蠁D!;E"|bq/lc+|}Z(__${h!TQ8r.N[x5WĚP:'%»Y봈.;8dXJ(Ёrl!wtk ?RA87ݏ+W|`iL m!aHH <񷟜;RwI,@J<͒͞dlvBhOxx>6.JYrL;8dA! 2J=L³ D U/S_@JէO췟\9_y"K PHiH^>䪝֝LDv=p#NiG f 4k%oRLo//@ Y ˀw38:_D)]j5/feÃljzQ.I<ڈh~ڄQVZ~o>)A2p N0ҫ%L}:L#b&>z&,-H"<dB h"/yQԴJg +qt.p=ve]L 6'Xp'}'oiJy +Xl/0S i""qX 'u>A"һmLn 8QWwV190iY@p I ׄxP.{"Rf^,qH'I,]`rkx3?j6rU>"&>+%b:D D{7.ExSusww>$ +<@M@$E'60K?k~ |_AtʚjT=wIq_I"oa@(vh,D.TsP}R *Vr WY۠HC~%~HTFzo [f 7r}g(&++ }B&sիh +mIeR$ 9p@p& V 0Ӄ&g˛W:>yk'Ӭ&(QsXKz-pWnBW{n~4$FFs^RG{ULesb[,枴]Qz䴮vc_Nywr)zDžՓucf_ B?{\_~j!{jBtYB؏^m?ZѫgT a?zs +aȨ{h\9Oi5L (d݈4l/mVh +N #f4;]zyE~rNYG WP}8ƕY)+6=Ki.[k;θgg,Rq5#(DžaJRiZ\ESTflKvKor'2gQ[/WzP7Y(ڶᦱV0gsݴޫµQ +B=ٮ9YI\Z-𞚼/o_t!W=Cد{*_PECaD^ 26] s6\{{^7RFg6VDiF\|Ǐy[ѵBXMD>Rg``(l89J3Mbڴe9$7QePho~k  +DWB!7Ql0%rw,=bA, urj(qաX]#YHuye[Ưīv]{lBw7}P<|!~b3|n7=g^s8`mqun@"Iؖ3ۖ_~s-).7_(HQΡ i^Drq'lǮVK{.y6 gJs-:IjD^G ̔D5S>$$8e~sJ01_w&%?6i+2'⋣/I:F$V?Cl_xH/C̋%/urոIjwlw5Q+|d=mi/!psOc+ދ*ٔWگ3#u:,K֬5.SFZ0 ݙbWC@3~ktV76kf6N=9Xv\'akN%3->|TNi +e覽QwAS?𪌷!篥/JE7/y7КDŽnCݦԤItFd UrDmlRYy=%<7ѹ/D:/_7-,dV&NQU_w\_-v6T`+U:h=hNw-Z+kvϗSfjxϓu+^z6Μ"g&ٺ?uˬ<X2l^9ei'ٻmc%/7-ٿ|U/ _\{8,^~^AVl].{?s-՜U+}4r|*lsɹ>@?!{G}~Th{E?;0rLxvWVWf#S}15;b&gَqV4$N6Z~jm/Mvs,>/F=掫y7>Љ#ʸ$Z +k|[sqlA}8*B|O @D7jT}r-NE:%ƴEZ.me>CQN4Gmؖ> m> cYN*J +]95sVեUbn<sn\"蹮 _jW/_ٞF[f؞tՠ;[*"1cD땓j.MsP7Ѱg%fIOUl~B؏~2[twR-cAN_;7 FTѢzϸJN osдZ1X~^Z< +#JwE [gvBaeZnBū; _s$Z*Brlu]Ŋ-fNw+;SrnII? >m|\|.*Z>S``{_xK˗%{n+c8ii2FeV^-%v33uFȇCDfi?ޖ!4\oO~s?4Co~sp{H!7>o E~s-ͥloh_hfZH!/}4Iv.TXwQ.ڲzyq少,5unN3ʻiVު~ |wIY퐌k_ڐ#Şюr!܍mUklK?$msw]u>wg#{vͫzM߃|6(~핡i0}ŃKB^hvHߴ7%gy#BS9*WO},n،z\Ka:-ic> ']IW?=2ti=:`dE"霖i9u^#Ӓdrd}:_4'8m^uw>S=8iz|sH3 z[sn6^SiBsuWg/!?uOWKŵGIڛ3[^ gJq/Iw;=V+ݗv@zIv<6D[8saZ3SyoznjsS^ ہ6`bƴ7(4ނsδ m`ٸ ZXMo7fA8툕wYaqs:@އa+V%:Sq=P>7A4D]{yTS6Nt=[IlgR a7mYQFyJJFRc[? !,x$}} {%Z| $|xh|aUՉcY{=9 4Bڼ6laK HDΥ4rU}\p"{ ag>!'\WTgpU4hMu +KE,h6cueKÅa?!*W }!CPM{Ff96t[jyĤӌ{#S"A[+a6w84dFMM*k=S у8wzH6(c9ga빤'Rx>m]9ioFOz]i"JTg } + 7;Kiz%3 It7't]pyhS(H}tHP} f*ґؖ=9b5GBgVjNErVleEw_0N#2b+"w*ҩZqW{`߈7O3~\*+Zb[Oj(@u4Ǒ}n[U^#K=Co> ;50?ǵ-/KL9~=KǛnwR[*mGBhl"|ͅJjeߚn4ϹaS_BA4Z ]-y/ 3[LT;}}M=+7L0_"O+3y#_|K8g*Z$:H[s/ԙ/0z}L+C99ji-},FWwSA}:9fpg[͇#yZ}1Aٶ9b*W[쌬7d<͍yc<ˆ8~j6mBߟΊ +}^u|H4pE.|QSn]fzj }ՋٮLn-+4/%L=ގ +b󟁀;o|~B(beJ%#yENeَ?6uQn.S{6kuF7&$q:\GŔbVCz1‚ EÐf[wN-B)hKݯ/` cghmyu^o~:,T=hc⨷]d$R3k:IԒ>#!q +{( NtXSf1??xtSongc7a OR-iY)墧xUɀf0O +-nK0#3[դ+GeZpYobf,`DjS>S6Ʌnv<D+0weZ1lJ5z \I<2?.y?'ɂ){Rd5\33nޠT]wVɪkŏBQH?5aWeJ]J1W|_Oz:duL-/3Fx;jz 4Z>+]^;&bG.*ە &1cnI\v)k'7Li2Ԣ)?$5`9YBcĭy/[\6V =E՛kVO^ö,:ц7Z̋0lbnĵ$(Yv?;_|NL 1$Zެ}aqS\}mvoRukoNU]@Mj^%eu+5IeqZFS|Zl1 Κ/I +)hwjӛk-ɵfh3P&fek#eU][X0%'a;s5)s݃ /ͤ}bN҇6Bd",7E3*p| U W>;xәXIEHh"UjQe|sa_}n)xH} Ѿ!n~IQ +atY~R̐{dox{"rkDF|Փ׫淔Wx/XU݅+ӑO߉I~-hۓ0wTMùe,L)fTݛ +qqd,TCvqxI9ap#9ZR;_ƾ#Z{Sg_Љe]j$g^$w{hbƱ)5t(&=Ռ[Z5J^zoe9~o#t}x-ofa (S0Q$EN)벛ZZJkg%ױM 3|ZwKH[fJ{?~~|]JZXd#_\Xee fJM^pV)k>+w60ݽ< +j&akc!Z b9C'C|~|Z}fad|rni'yxXg}~*sB6*IpZ'TS6-Ǔ1rF0eZGSmȥt nBߟ?@34 Y?@Ro _f́h[C˯3M[~a! ˑOWa@Wuk;2ޝ G9zUխ]j[ f6VU7xs*g9Ĭ?|60>3!Q+ia +/p-szʳV;״8svY9oBbf1Zu(Ye'eGׁOW;Hs83p ̑~(}*fd LݮJvzU[ƒ9N+fdieKb^ |@zt/ i^'{m:{c掹x7V戥ŭ~u:Nژ + B؟=|engHp|]c}l&ڞ3%ҖTЀc}\KU67,řh_ו똩g>[jT<%ɭ;G¾Kل/>v} W"NB}t>ɪYw"g{caчp嫚b騐 >[O6p<ɬ ms]euqY5=*zg#Մo ,MZzmYiOaT%aوiC B~>Fΐl/!ѫ< {A#nEo yLUEE!lPQ{TDA@A{z%o*:92s]yF@;s9AgL:{?3\Wlvqv^!~c-*@u|!ߗC`l;R8W@߉OQ#{lOx8J`o$nS6kœ7V{oWw0eM<i;i 3>7TnT'~ GܚB2W>rtoێao}hZ[L?iGUnk(c`ϭ:s[[nr(JThPձ/,|L`GO;`k5X7F6*lI+񘸮ߕ8sm,a-@.@~ V>C:SghܯJb~WztNݯr(waR8<υjBd{U^ l9A9Qj!@Q`pOpN*BMՈE +ELkE +gY~Ra{)c"\_*#CW|oټ5xҚL7BƏ=gE/ɳ6VAEN[˸b}j% F|eݿ3]DhUlˎ=.2"6[dJj(5+~NWp)g_n\Ewnmxӭ0xYƪy:~G:evIeo)7JI$3bʝ~Vs*.cd0rn/a8IJ{ղd:Fw+8R3L{M4OE<ʀ" +!A =sD +?.R +J^3<f{}b࠳~gwإ<;x{l./{ m=z @9~4wLRc Q L*G{65tr?(gMP_>ʰqbC0b$tU-%te{fX=ٓעޏ nT*8$=lDJ;߀5 +P>/ tw ܕkZWF6ׂ +gJf'p1պ0I+y Z9{ĵ +,bq|FN|-͛3.)wOi랊qrvB8K!yZaQ0|;(;%U('< NeO~n_j*8\uue;} tcM!N tƦ ؤ/ bHiQkPfW }6c#7cq/A7qickĽ#$HViw.;:T~m*ʽL10-yH\o]:R&/@ Ǣ?oߚ ijq}~!&+لBhE:=_Ҡؾ?|e^gocy^66hxB.UϽruha}:(&0 {(i&(9*i}ͽ\މ"{93.+Eջusڧwzp;mT.=s3|!7F&RT*<^g2W(,.r1Sbpߒr~iwJ)Ñ'pâ0|[Uu4K @:BLHp wg*Ty>|dsf^j5sRCu y5,گ`4rD5{I +wiמMy0 ^SpϷ@zv"ƶYqg xT>Vswڛ+7oqݑƁYl{]&?m4,d&[Ir9e"w|!(KbJX5[u(Eg{ލϋ|f]Vh*F4)Uu{5nmk ֯.=-zqL}aPz (6Y+q>a?EzZN'pOG~b%),ylSJeKE7Q?"ɒ>Yȵ2:N8]ԷP98S-5f VoGp7>q^c}i};Wo^kJV:^`6`~3/2hFg:Loce $ίʃsN"_~vOKIM;G#)o9™yVfG]n.܍ʹsfXK+PN #{ig6ȳƊbȪm:8,vTO؉n pV6&ZCsGҩRH0qn UfbX2Ֆ|p7˟u c=;`YxؔY:wÙ,˅<պomZ/dwM +mg-˝b䌖]=z6.@ΐ_( ;<6hJgMլCՂ{U|.N0E?GwUmP8cI +='h,Vq7eTW\sgk.ݤc:/dpVeJ͛ds#U0u5FG0%gj}hVHe/\ J!u(l JܸYrI(V__eyemdٵ ӳ2NMџGygSS3{!lڇ@~a9b|&xIL"Venr:w~FCĽ/|$P)e4ej~nߟrpMk}lf`~ EzyEp4L%7UYyHd&: לwJ MV'gRp$fѩ$nLĖ~/ +NvP4w@I򠄶 yP^؟>娷x V7)+ק)`hH /d|8ۍ_4X~ Psa7X]|E1nTC<\d)^4YuC |_5"1h>^u9TN*/ +&;EEQmA$~̿J!eU][hIc-5oLPr0f_'ֺ]"CeU7+-e5a w +NGcJeyE&Rӣ{)}zVqڴ/4fԾyIM>Ezz$P.$ +YL87?6+wnstF fDWZվ*}94,M+XqRddReTeḰbQT`L +wedj\wVYZMj:eM;+pQ_%y=4F.yuAyO|7 fk9[!lJ)Eh(O2eI[Ҙf< Ż,R&XT; =RaƘGl>_Js|"oYXJZUsT{ϋN$"rY]Enb :߽&3V |f{1}^_Ȍn嘙=jL k2<CpQGh>wY܏1ȗym$U>:I^2IVoeS_˺YqtA8+MZ]57/n,GI0rjg XУgh]3F/u'1},Yl9j37f_k>Yo WH I܅A"G !wKpN⋠t{Naǚ|o/:c o7qx/_.bW!/VW=['1$c0$"9}$G{F#L/,F3w =?(!Ze1 vrٻuWɟWWN9``y5 1=֥ 1=EtXʕ>vEu6py]JB`';X'PJ[yt'w'HFZjĥ}8G8U= DKJG!3*Da o78^/?[I81pg[t [+GQjҥ2  p; =L:UEgX.EK>\"X_QڻFB?R>~} ۜ3>|/ J*UVNjqm72=_ea&f 16:H39<}^*= H2ﵱ/X>)҉)=3؅s7j"ѧS`mUӋ3| ӝO~:X++gDWetwA8.{kO# nf=c]2kZ0W&.6̖3~΢#eg8spyim䈃4kM"} c-ķSyy)OGmd먾yy; \R ƬտO5Mˍ3󊸲uT K}j[l'0Ks.iЬv~JR5*?+Mtc×0S eR|ŀރ\+~mjWϨ wlѻn%)@Aa(X ɫJxJ}~"~jQ7H79K^*u9mԒ}4Ī{SSX}pY~CN.O&~.<(%n/Cz7b8^tA){t4Nwnj;ۨ ++2:ᵻn$]ސKAQfك%?5]> (z/(/³9o!{e:獶ǛnE$c+.;5i5l\2j?ȿo;ؿ-ќQj|!<:Ϲͦ]06*V2Y;uihe %%'{oh*?rJ&򣼄'7mC^5`Uf -rOi2pN~IXhOws]MΗw쾺_u_VBnTL7hiǢ +a J%dRg~\C6lϢ~ +v~>. D2v`[.G.k_~O=i$Zz3եV99K2^g+OWc5AKkvʗA=Z֧}1"_MugY88 ljyd9}r`;v^W.OJok{>/#/h\.'p9j1'Nɉt`$&(uP<߲K?% y{PT@ޡE(,T#}Qq"5DX$CPTd70Re;gczBCt<)Y IJ#/q_|m\ ou9/znѧȯ=ƚ uwd#H<]]7J Ib +cn b7_%hņӂc(q=Ʈh?7}UgNkgT) ${|պKaD_6hj`4sīt)+"(<.:aE:y A*4scO;w.ꑝ[ݨ{Z{fE,_eӋ1 +kOj {fқNfVgO +.ܭ!.iώRRQ^3$W9-jmm9ą oхx(@]3Ge{{pOi-( ȿ/dlDmjkCwjxRŠSܺUQ,|!'MլaM:g|v9v)Oqf$v#HЗx،_nSg2OGr^?VOash3NoOVNg{#.|;5:IjӬ4&W|Pķc\Sǡ٣0\Nb娋sLi8X ߵ6Mue$[OS`by$<>09XcʢQvja[tڵvgd6NgEU{mc5[ե^C_n.Hzp'4#s?v=cpΩgN[̻* 4}lLC!F7s/յZjkXr +ɷlYOn9p9(Au&@~G)ρ|' +j^T'4@ f.V dgrlj +rd*>ss`ߔ&l;_Tۦk _ (M]4?cP^c?]A@[ 3`UP`p_` -|sàm@NF$)9QU\GfeZZ;U۞{{:^L'\J!P.Q cP(t$Ge7k ^[mh`R7gl L^[2g{i"wt%(m?@6PX*p4+|v}EckhA[+ m#Xnw&Yv6.f,rS_OJK>O0N E]KUE>}l`787(7('X4_;p~QUd16(e|si.(+yyd0293̔sު|V/|IʦpK-wρ-/^P">wRkj''|Gewn|\mxző/=vBk#Ր}Ƙ$H؃?N,3dO j jrB.01='^EC3FzRYzܰfkwX0,_ٹO mpg֛Sˋ&~oQ8:\|OZ<o2]e>d¶&rܞ_F]LO)BZUf|]&xʪ ~n>6݈4O?#|sLi%5|?<XsCddvݚg^P 3XV܊Hgk~<%![ԆB>zY)7#PtApE2sFr.Y|V.-mdd9eّ6D*XpsyZ(4"?7|yϦG{?\rңф9 |-Ok}LWW|U^gec v=(mͫxxm]]N9Ol(5l/>+wVE Xd%~?/}t*䆗[K.#{KKu$3.ڽ1½QϐvAnΑ*벶s=VbXgץ:߼{Wfo3|!(MBQ>lsAԋD!K;9g Ȧxcr m*j$Emy8'%#\WYx,eRM9dddn6ϛ?ls' +loI} πC~{eūw48.tm[nZܿɫw8  홽Z8BEOBVMoz!pEѢ#C(ƶJ{o * ?Tx * /۱2%5y.T]J*[_H\4ԔИI/thMxۇkzdkREړFi%_fE ) E ٓo's5[ۃz=ux2ab kֽ\lݾL';f\eàbbr"ߓE@-EZCxv( @hV2TaV`råO4&+A~l{Crӓehflr3 -YZI;T(ؑ5܎dWKoDM|%52q=w~9?XN2A|6/ +vnf,"^~Tb^Jaow Tx戩[㗁[A{[k#?6<iۍ5[7Pfg7*iܗ*-w:IJ)}0njp1e&SsMaسڰ6&;;p-zomeO}{Lz0Л:'z-I=\zGl\@k}{8ʅy9v=?L>yCH=GM41/Q%sfڨx뫌ux۝.L@_Vǽ㥀w7&C'YF y9=Ј_\ȎP&gRX +Qr ȺgpJO/h +^f +ĮUȪ?{Y?40wyUG}(V ҄;%<^sL!3ybV^Q-gX({>x|8N#8Aguٯj҂Nмn\5+X@ȧo4ȷG['3E tЩ)š }31X*sh 5Yeiu*f67ި4޸wC@nXCх rt(uICCnN9V_2O_*Е<N}m4#hK!vUfc`\l )xPmM?s;/luJnoW / / aU9;}=(4Cm1ȗ#nPvM]AL;9j밥БyYwl[^~˟';=?z痠-P(Ч&($#TJy-g>6 =57)lgmhO7VwGm|Γh;9Mݴ2X,4A:p=@jX^s~!O.q>Gb/>stream +^*M|O~5v;Zbc-=JNLc0ly`kp۲Üo׬Z)D3Va{7ӛ ++ _Cd;T[N\ef"Ag57+=5hM^7w> +bjuRnJsYÉ_Bs|[~'^uI&8#'V_p=,Ǘ~-~z/S*kKK1_hJRU.we_үspK۝[XhT(.@vNgK}Db6u֯ŕ~ LedhlDdEG(ȍ_k;;-_,Ŏ  <Sz~Źg ˖Zcmr'k>`%csmrbdi^oNqV*Z-N4e^95HMM="~T_/JFS}i5vV}IkF; +bVq$5aDe=vSw/Q-RRW'!K蓲ߝ%]fGf?ũS~tepwTrqJUTfϪTu+2 .ӭ^uq\u< DG~ S+? +q%MT]Ӭ#M~d[A~fV2{BoS 8/:p~'6S wrj5tyvFEH,թ H>ra/WAY*+@[x<ޣ>-R##WY5J[FJ5[I}ȩ(w( ^Kaw=l*isMoV;> \}TjI)#o9^ v~iJ.sY3vx?ӭR:Ք ;3͡%u^Zuo̚$Ft:AQ-]"Ƚ5I l3:oi;*:[ մz}[;Y +Wu츧m#V}7j%6hMTjloA oF%DžmHaȶʃeKzxCU~N~ Wy-n-`V8Y{wŪ]\esQH]1Ԯ|ב޾㌛_UXx1ffU *6ZtWބG vݹ"Եn`BlSٹ3+m1DFU{[̋3z:[fTO&vӑ\xu7-FB埍ϚH5D!|_/sJbP׫/vw>?~֘O +{ݕ5ssm&ºXIo[+ז7bA3jˮx!YRZ#X廴X, _)IദAaTb'%m\%y#'bd UUp))}Ԑ蛽R pKH ϗ{G9 ev">S]&ҥ^4N$8ؓG/Lmʹ~d~)G[+@8 b,aglfÆG'>Om,\Z-؉7S_n`vW! a rt9)' G_ W + I(D ^=BgAE>4x1ƃkSYw +~oܯl^;@y@w*qdSGAr 3eVݯp*;od}EvB1RF.|3P< SlM.|w^»oafcSu.%@Zz$hG!''r-HLc1RWl(43r)]M +S`V5smi#(eu$i 㻶uF +vroe +]Re@Pr}(g}Yi'{/tK~Zt#[_ 6XOftMiU^d"/H\r@ve#5GPQGw : +e4@#/)V} ׮:Es-!1 Ap;Tգ.V5kzGlnؿ ;;. lz rg`yфzR*DY?+B3Z{2>eAPȣ8--Q,y֌פK挩viTѶVĕJAq:lj[h/wj^2hV;\X<6U RPR\雴z'xscTO+njb6S3#DijMI}`n~R7^낽l_2 }~%[UfR_uSVJ\bW3Mn,W)O\`7`M/(5plhOf1v8q3o4E0*3ܜԿPD ~@^(~쎖ͅYl6w|1>G'*yYg¨90y2emu,rdUPqg+LN/8EK,=ܐ~.4PY/߅#|rnqC5'7bO۱Yl ǰM/43<%~‡nh/#,j~<\t/ `1=bO;#X\nz9@ -h=4JKwrw +.^_jj`ms ZމC ZV~,uW"dқqo!w^= )w@VySxZcL݌.=xe=>[P߱o9}2^p:W_D0y[ffSjofn#K_l+WKLI=:'W  +[](BЪO|/\BF?x SޔΫO.LFyv.0;0cj_siR?>Ǚ}wvGC䁪yrӪrj`Q"< -k@IۈL,~s]u{ptY/ sc"eEK)2ŌU)Mj;,:SЩU3=T7ƃ+w|%pT߷s0,?-qSk~fw;T)HDϽ6)}.@lY4'G:ehq)Q,}cvj=0 +d׌iS*umyTRxEٖ[ %m1a#/: ۈzᓾfn FP«6ļz;J4 +^aZDb֏蓝9h،zIcslJL8@SowјӠyy]a<\wOӕ'M t'b\y9Pc685#`^ɫY>'L%GAzBY&or$+CZ{ǎK*cD{D'/y=;foueRMCuEu +֓[j!:?HyWiͶV[#po`x{%Ҙ*yc:hv|Gdx3G,vMUljH +#^:YcsfZ;SGZjiQwT +T>t8*GPǠOIV/}1 کU#shnԬ/K8FZ~6r;∭뤃ԎXc _eѸz۪-2US,'`Srg\ov^iXk3v,÷X٦R*UnHNEƼ˖>.aTT8"P.]})<ՇOA\MI x6wUHULV0r!Fȃucytߏ)TΨ(=)lƧԳ75] wC@GuE&Uρߚt4n[gy4 JC6rL9, +J"=XDKAb&t&K4oy:Z,]PmeMj 81iߘeSCDjtFV,lER"^:uRRV1s !fI?Y-_Hz?mn3ў\rJmrB;QAdb΀Q0;*@F ok +] }7!19=ޗ~@E%zOqGakk,`XeP]KguEj&@[ ,6(H9ײ$$*!z^3 <ج*?B(tol6><v:&/ `} (@лtt7KhއdhC ^;<{ΣZۿbʼr&@O 0CWL*O}֠S5(`S@oYCvvaoO,Wf]NYO蛏k?= +-]:~+ +v8xpфMΡ 5w& p8[N4(M7ܹ>Q#{+w,oozlcpȌk?}&S^RSoD x(ӷ`c2sЋ +QL3Q N_;gaCY% Ql +OE]wv:5/Q'yTjpwP0~wa+._gɿSYf o@A<B?e-{^bjL]J=ۄ(\=^HXjh\#- &n?=nR( ɡK=CfFAyw]p2_A>Ʋ}@L {(#yz3ϚWn%Ee.2ڒep&Ǚ,͏uy:9AQn4 ihvr/MDz>>)eS莰ß-+VNSto"gV~PW2sbI zZGT|%OZ#_E#+:1 o:guduz@Ŀ$j+dIN }.=sty{rSu6'?NIj>t)>yW~%Vu5X=^Jq7J}hP ϫrpR Z۫Io*ȦҞЋlEظYK|]>+ i>R>.ٍR6jx:tn$-ErB'`{.: @Iv苝cن\N-}X5]/pI]B5,'9˳1:xÞmjm@S96nS +m vJ5ɫW?H)ID9+LhCsPxT/C6^Bm@6&ZuR共'OI΍Gtv1PרtVJ֙Dwl yqM"޳֮@-ĵHKRH>%144ш^wg2ǬvSn杴wTFlo`50C\L ؒR;2"1,Pc6V̛}xYmiw;_rۆ~9_ak{jp''ty/gyy5Z b03 =sv|%-QSC$rTrmҽEcܚB{ʷZN"*D]mHVhuG]OFƪ ztr3{><-pT"A{QZF:tdh}hFMd̍X.)Xr7)D_oA& >׬+h/B=woYM&^25«Ж|iRTINf4ZCMz';L)GsY-pZ!+i)aKHիMywtv !L,62h]9B)v^1CDfKvWo5Vzw#RJ?,F҂Iݑr6r&0sF|5f?H3/d9_f<!y_䷙:u59̳?VoPya~U[}Z thK(lk~5_ܔ/M) t0g3YpX"J"JGN_u/j! y9M4s-cӛe!4*R\/¶+L83%3D&ք^fLjp. m8V[WԼʣaV 0ʦr.3߿ +a8*pPr K<G7K_l.9k\N(2}LsGޕ 9΀&β%?H O2֩ TQJ+̉,(aנDGZ.g+,8G:"#"%KIz 9}.͟N#(N +@Z WkP(Qc! oU'j +6 B *E^{nr -=XbS aVHhI#L?cs7E+7`X^9F@@C4#qǰ)8b>KL-E NA͗uigMo=}{TgWG"t`9?yhɈ B'(߄= +QPmhukJ],fSa %vv~4G:tQŰ}b=[b ji wvhuC j7 +NI#ٶX_-F3 1=Ip)KJQe7;5\3]I6G'2܊Y `l4{K`tO=_;<gAX q9?w2A)L͎vX>L\}/Qs ۋg ccȉ:I/NNl>\/?-}m/BTi̜/uky#-t=k9f;n}6JKCٮT _Wju_y 07`νm=A.9ŵ1CDYT*!kB9!w,n;nԌЄ~w"SfY+goC{ϸ]x,ևXx0+ˤe-Pf2\}O|I%Elďžso+.k΃q{4i]zɆ|g5ҫVbc 5`Tw>ttY˅5D%4:eϯ ~ ߝFy9*I{F=9b~-v0A6qyx.+\htԼse!ȳ|mMfZsN Z12C|7[$@s(t~wvBPm9CK&5. Xv8/As r:,Pa^Ktj2Ŝ'(_}E~v| 眲[+ P@1H *a1}/]>ݧZ+9uslàJ3S]̕8RhjuS=&qv&7ƾ=\o0k؝CǖC(}x +7uz䪵 PlyO[hp2!r.w D=?Ȝ*@YmYO8gS|n .R0"ΛL#m~S&1~mڏW|/݁;SZ{A:O sUH\%fD.+͠o|Ӽ2Z0{L7~SǍ-UsSkOO0?rzd^vz7\e?M_݅2 Ѓ\92>.Lj{1 ;M*3ʰȭR'P6\o-}62<;=B c=A !BWnF܌|VǯmDof|@I%)LpG4~^N/I&]${:DwmP ʵtdﻧ.nFKZݞ3JFC cm] #+ND߽aH~z%~.u:EM!j<,0yv@0PWeیlP 7;7F&5;hYjt IYnD.K07VI~9'Kwqgu7mAgJjy7B-y-XV=+[';8}kkĺS"s隗O<> u+ҫA}tz-n*onܽ6ZNYq/y.v$~kL)RK.|1xc c/Ia_mgi8I{i:loUh찢C:Ow4j`}hq׵󫡜I5x:Zn[ˏp9%\` ,UʁȥWG#OVk6uW^w".5vҙF;{g 'yDmIMU'kr9RFD>K#Q9|!%]w;g_hjqi \+@n~5Αm#-7Wː/ƹ^ԚȌ1bT!uL#4G곈+}S.:st=.đ7K^SVyg-[B٠lMwWf-7w:&9tjpԱb?c'&S'xT\*lnI{1(`ē}h>ZOyYiȠrsdtxN'ǧ!q1』jZsbw9s w_g +%gw{@Q_Jh#۪StVUrRm[ g<>+8) +/&'J]ھ,߱]Yh\L(rinN{T3*z-MeNZVoY)u5h*Efr>Y^$ܺIwJNxQ?TRayrCJ,-nm#*9+ىԛJŋLxwsStI̹oUd$iwqęԎvFV/J:+z,䮅SR&Eܱ +tQPcH7wћK[W̙qRghU<NRvٖ]ꂐ:L ZpwkL֪7:8jTvEt"zό|ihStMjmR:^Q _+ σë/6X]n'kkP\eB`zː)Ϻ +R+2W &Cg>]nUd;ٹwsB&j ppܫfQ!ólwr.r;:]qۋ3- +ڿѨ38M3b ɑ 4'0 N,-qzK}eʘ@hD5FH_/:d-eL +E5E߬$ѿl@ãA|$ln,1A8l{7 ^ey9 9f}F sBᏟro"EwdPM@' +?tIY^kG!<""(( DϻkUO\iI!`0ƜOFoUW_Xgf;} BDX'PӉU/-3\pOqm/W S ^Y+kg +`R\ONF`^3=b }2|lwxngbJ/*Pe68{2=eCD7B712w6efeV蛰bK<@۷*oعC88U$!t^(UE F'Fg[$;6Ą bƃ1QH _>݁ + +, a udSk?BYå,9kļp\w/.[@xd+ ls]UnX^SͻD8Ǭu׃a]c;;{l R80[L*u{}R^[ƒ"^sp4Eaum2?bHEqX*Yn@6P)3TAY|۾>tᒊ -ito9hFm[ @ fgSjo%5+!uզ-R,mz+4yuOF-Ihݾ +.V}8|I6hr˺1TF.4nZpni7gb 5f̙sWxpMom"X$g֯//N;?6balQߌSiu~Ad_n)e7dvڿd_@h2Գ'+zq _¼3Y*蜵&l^dSkYΩM}z-&yO 1vU}cwMs*'#l=rEMKJM8/^y듕33kΓ۽;s'"rgGx^+{8ݏÀSKR*[>+h?Y%ywh5NGd:;O%-'ݓ]W`\wna5S("˂*PJsjrnsvu0`a$u=4gpFq McMyӽ ~2JbbcݞXMcz.N(0q~,[8Cݻı>\Of9e>QF؞c<^w^?Ò޵!yCkGY;Wcob2KLʱgj#gV i=lDAT3_O*m(Z$2#֛[-jx.Aa~j4膸w6 wl#=56~=5 U~pHܱ0{LkcBO!F S[8C}V~С;R1vwuR=ՓIkl]?h"d>{3|2 ga73*vn2Wd7\6?-NR]]Zs %F[}?]cb&JR4K3ugO>O>ݎ";eDjM̬(Lӏ⹅KhY U8b<=3Uydε]+t^?k1+||(&}&9 +0/i7 +}R?mOSW?xn\+E!\zCzkkMj U_gRUPU'?a)sb7RkEbQ1;?'hhvR 0{u{Vv?6 lk,.L8Vj<֪?UjA+P>^A.n2e&M˸8W?@`0D&^ݦsrՏZl}C;Q;aFzZ bU{~lL<*x)|g-!_ePvw]j*ݼ4g}%qP-g:6kf_ b ݸ|#Pz#iT+V>ǰl + *a" \^J)aFCnͨn6rQ]*U[R<C%7(X7Z +gfrLT6o3DܼJGF6yU>]6{4Έb.d +O!bx1 J6w2tfgȦ8i gϺ?;'6uzzMMtUnsB_Mdqk2;ژ4*{JbܫszɭmS++̰2Ǎʓ?~v +egM@P7>;c`ovyE`HdJѣ׵BQJxEgxf[#VXo#,銴\(8;f^R2'Ig +͎e6Prhp|{^axV#}j?_t}xmnɮύgwﲛ%W_]jPܦϴmȝfAl+81?eey37~٬~oXoMe]W\H*hNcw*7kԦx#Ý+ڭ뎖'gLgC~$?/Vyfݺn˸Q>jٹ:܈T].X˛S_+שFg{i=qn.ڊ.ɪvMC^Ygk@ݗF9r-HK̴qn]qj2uٝzZ}FJj}j+=Z}Y#h75e^ v.6*] Ni&λ*^V7KJ@\uάP5X\܏I+[:f8]+ǝF.-lS]2܊7Q:+G\8R6=:>t+X/ka=T1#EY_@bHw7Cp\S_4[(_^ImpRXy Cd9R6Q6I)IήtqI.u)"PhTWfIGxz`xKi+I%oS'o6D5Az{*k]7rj&zFabx˩;wsûoh #-]MFʹ [BcJ `ݑxzqsauNL# Ȓ +ɗPڋ{dC$ݪV[u&b +Xm{vV[VLUH.eA~p!DZFg}.M8R +,i~ڌpCc1;'lZ^@&ݪ?5ļcs7qJfu $4ouS7 `ʟN!] DψrI<ȫen[,GB2Aɓ0<ӞfQ~E~-gwΙO;&熹!nY9lk+;14wF5*d$m=̋8O )OӋYj0b?՟|7oIw<mVtY:^.'-oW;*fxMKXz: ҍԹ]*PҍPK\aS>f(#:n &UKo?h,nİ N8җd(7gÊڐԸ#$ֈW*yk.}DlMtdd~mt}I!d #`n4n fnqZC R; +zJx@Ѿ4s:o wVhҤGބiVL*W*Ȫ63)s;SOqlRt"Fh\_Aoa.f;jt܍ݽSY_{o9TkvZϏqbqlRZzjk{WO%/U߹4Ym{7q븗G&Sag{AGtu׉֬yk40=5W*;u(]VN1Z\ 7{W~g#;d>V"<=ny@{Y?DIG)y@1X@$߫ !H@2^C'0'#3 12T8/~sEhB ГMZ=0\@ fV ;d b68@ HnЯ8}|_g_\fYG@>(V+2S\`cRXi~Dw/\WG< +<B!(Ncةl;!`g8XhMae1bd<+BG(Ca n:%<7v.S`6S*DGvTK [󬾴 +V4}E=C(@Up:ǜDi&dݱ½b.uO8`>7jtF81|Kc/MQ;Lzf2͵yS%KD\ J>Ձ?ucJf/Ɠ{dX~`fvpҔ +#tgw[ޥoCns򦽬zЈ{Եl7͞ Z]Q/ކ+#iJ]~\uYǩ.S8*^tɢ#]s2jvIdgOE:q{Gh NKZ?wKӽb_v8+O=ݾ n'Ϟ^W:fUasoP@6PcsY^(*s,#$y:G~O?C-8̂Y y4=h$' +xISDVC|ؑ[#)xSܹ6ո.o wSLOUk^GRЯ2-$"{p4Ip!TS'|pkԟoȠWn. KEkPNA.Otl\=_?};JAw*ʀo˫"m5f|泈'Q)M:ؠMxDjm +/<۞nc}.OH Pl~IV]q +T6$65W~e_/h/V)sY񵓽xRDhjUw1 +n%W.=bjIeMnߗIoՕn^w:G%5[s6> 6Xp g56͚?5m4שyohifjƾT՚Vflt*UL h eW{Bờ6PhڤJCua.5I2G5:6-tJt?6*~T??8m}܄0MΕ4v{VݷccY>Ul=zGq5ϓRB4ۼT[s%>9J'Pm[F㡌/DC-, kq+fu>e3ҭ+ʱ666ueMbws-Z ;<oWYkBU +M$,j+q4WQW8ZZ{j&|+ͼp~Veo`=,Kj Hfٍ +u799f굢d@?xu-X}Um*}T*Fa>\󾵙+eO̭֩m6†n51b*4 +Tw3@D'Iv|2B,6@xhr_vx$ILbEt=(0X]#6?x* W"TS>(¢iҦ՝PfLyxqyz6rщɶ3Qt\>oZ-Y"0b,8N$tHTrRzقX/lzMAHZBm) /| uU1ԯ@$ Q,T>2O>p||x9xcg/@lg1mBZC8 +At1; er2"o5ޗ2/S؁TeqI>/T鶒OHmB MP #:ϋ΁@ +/gd49x/Xt_Ui9'8@34@+,@>48tbYjkHR<)mAVCB VbpZoRr`2NmbE]c>rfz](te! +@5iPJV|P7@Zn | R?CBs[ڄ..!k^zC7]L]罶?8{.@0\oh~W# J@k\%GN`{雫8 ŵW6ˮDEd,hV!V#*v<7ֽ8rR{—{>ofk̛y|_]˸U/UX/?%k6Vy=9Ͻ}ld&N59X9}Y + d 8&+2|G-v,⽤eɵˮ<.5:ʜwKSZ{mRcdiBdGV>6 FE/L^a$A3])X$ .Ƌgˋi{EbiN5Έi@ +G֬K)Xp!w_jl؇}`d!mtvg_Q܎n݁*u(NӅey]m;HؼʄMjC߱}4tCrR&{LfWk՞h'^Y#~\F7m$pw4FY;N>`5%N7#l}S_xeU +M螽uf?vƩ'{}[2op{XGEAO^GN7PNn݇W#%t&m,[_xk5(yfCރ͛ˊ\]Y/?kߜҟÿD) +GjgF'w}YD9 SugSXi/K.TL GqGXcs|p],Ň2|Yl> +<<"|My)om"`,`\y[.jZ 0p9b# +w{~]%Z+kƺƬ۟KNK\s.V=WǟmY z<^$%]iz`2C=Zq# +Gjٿ;g}4_N妾=}>/rfGgo<gW,["7-Ȋ%zֵL#@zwHwLa2:3 S, 5crꐟrKvʽdo>Yxn`w{ה׳g믻I\Sj.7%wwfKfJf)RpHH\.Cz:W0TŤ)t`j!KWgt{L(W^D9s餐r& +g_^g-_Zf{5x@Ec{Q fI_< +^&lx(>f=gΜ~{XkH;;hmoȞA{ Yd&o:ݬ-ܸ +ҕ-+՘=ڙԣmKpPԤIlܑ;9CePg|;n- ,[?5{ D_Hw%]튱;YѧHϖ=Gb`KʅB!~:&PL+rt')kH.=oj֊ک>s>/hQr8omChR6eaM΋{EiAî4el0<O!M=wdZb)2úRlh8T'ݴ`׫ju{x?ƄShkV5_~JFN3lǗ\wҊqqvwYdeT_$ӳdP +_ϰq5Kf.8Q*վค4cMGV{zM%Mԯ6UHh,kCcmr_ؽٕ}S`kq[R;(lj<>B.W~@.^<BY yN,Ut`͹2{ VO#⳶bMZ0|MZv5~WWV{<~*n_ȧ<^nGu'0 !'BMWc5c7l^ǽGl 6rY0 W깋YV +,5 Ro#_K!KQ(\@|r?y˟G},CBn=2! +Wl/xs&(l`ZVy4խ<>{ҳʖeT\v!?H!t(h~gl^&_v^n<1p zX[|P*N!(2- HBE;-\rv)KU8!oALBWbpx/!7a_ tk"kKa7<$ +z/qQ-QͭKX~rp]Q%3ְL@KCA V0uo'k;}s4hђ2lc_$YȢ)XSʓ3OIũq:T?N&N)b\i8}8qzelqV9&޳MމsdN 2μZ@.N2387;7CG%xQO1?m~x 0nT S]@;(M /ov^^|i,*_ Z4buFM:G%|L&^dz'Pky  U87njYØ-&.&yEE=M54@akqτxt G<w,'ɎLU+2+@ ɸ}+ϻ$CoI&~GR_}zM'3h^J4|#hl4;N8ht|o^iH4s@iI&]GIV Йwov@IB l=E^^}|'oU3vݺ;-ݿW跌YP8z#-㗳?nvjp_$Y7ugpd@"-q#OJܗnNw6" r I骦VriO:^@״-wJuS|=ŭ A,@9f@] xDmOzY|oT|D,ߡk0K׻<+ד|P3Gr+uאּ+VK[օݰVݎ}(9kyiEWK ̳P$X񟙬9J:Ԟ'_2mQjJYkWv|Kd"]o>o\]i zL?P7<@ ѧD Bpȏi.z] Jl)>D+^ 8D/xʂ[b $'J$6!VLOr>ﵟzT~_>2;P7~@Vlm˝Q6U:<+pzc#-amqĢ$]_|e@=igad.| { Fc"X)m<ig/׉ruWK+8Jcro6{c٤YN_jf7%.uBt2XXr֒!QixNV~ jaHLN>nN칻9vwz׿-2UITZj66׻mFZ$L@5ab]bg(|hTĬ>00a߆-V24<_$r}?M۶\As@Sy<ߘ x$ ;E3ܵ'i^Mw쎷bnlTYn9qۀ`m~T +}r =-ѦLqD/_9`GA.qv> .z3ey<|Z" ++NVCa"\86ȫX~M"GVxSYSu]XwnU^O*5 +y*O/_$5s̯>lO3+<̍wKcykn)xɖ uoj ,USV-' +R*~-{C)YwfחIH>wDr1e`X-0s E.?Zz5s|5ʾ^ʹ+ѧӸTQNwFԾHRŻeE¬&ݤE>%?H_S5Z?/~K&̏.?A*`>pdGSC ~+awk2mKMLPN&_PĔlD#b0[ +!.B}ᅛїRq=q էcҁ??NSvR8xqm,D5~?.AzEA*r'2!R $2!Yry8]ߟe_ϩ2M!.G/(W_i ut\Vh/cǙp|܉fz8!~¾fS HpJJ_6dHLjZ湅޵ٜwދ(w>Yva!/9p}rJ3rŃLmma8QX.k2f<0w/k @8_w诮@e.ʌJP鮦U)mͮ >)hM [gӗ}=MZ7Fի~2Ζ,ؗ?ܶk~Zŷî>A7*c>roo w +`9'}Y땃I(U2'4'ֽ` 0fk+ xNm`zLnmF>w\${$N//'tZajr4BTTF .Z~#{p5(}2[`6L>Oj\%wJfz-9:("ɬp&:Am)' 4 e˺›xow{7{[[ .&|lԓ:Tlϫ(epVyWXɹ۽!܄+ &V4ppT1(Hl^ݺ|lǻ#J'!J'M 1ɽŭ~Ǎ6-srj03Ek|>-p= MyN"HKp #dn3 `;& 'hI (7PbNCd5ϵZG +:6|IXYaU 4Wv㣻ry1 Z@=0(QXWWqmTAUu:6L> .FB@5sF+'cu{`n I4lN'7;ǾLDhybǕRS4^O4pw27T Is; +!d/ˍs4NuagZu\lVs֣3 ٬3Wk][S[{?q_ ΆCϋ1BfጫXH&Q%X{Eϔrqd CաfAl:&Xn˘6 F.?H?51(CKPJx_TUgR9lJ8k6#(a8:r1K1ƫT=.9q,;Dh԰t(4*P^ gRMd{eIWnry4/:g,거Γt?) =,@˳vEa巳Ig$w8x/z2Hmp+)f;%'ŁnŃ Τ־ ih`lSD[</3 +f_ğ_=Nq&Sd]X%IƉb)qf X#N8,0`U<qAq\ l% 'D e_MK{ۿ,A Sݷ8it^ܚSl=v6Իpqj8)ฉStH`)VӀLEu?7b/¯ҢRxz4>i>@-O>'Ы4 D+'g:O[ğ +^Uq"Tr̍zm:cLsk?*yy>m7{6z%cNtmYreCdʵ ɨm?ɘ+XkLp2+d:FE*@!)5b"|.Ur3:6s[Gʔz#0}|qC.,{Ѯ WVt bs$~mIV|,Mla%ًշGgW!v.Hߒ +F7{benPD.T8 0_bz֔k Yny9#s`jr`\|I&Ap g_K_ \徿B(%Yo  YB6-Fą&ZzG_V.^jgǧ˜U8.x~a:דz'SKA.{SkqqK]P$ngvbԇۥp KwMjA>m嵒c'{K>>88d`o/nߺܞ-/fquН1k#0Y?8b +nhNӻh}pY%nw a%HQ&o=]P  +3^1GL4^)j@ 5uK݀;N{ٻK!Jsgy܁nv].f뜽Y>{Nd#AfcNSpx6y#7o?$0ц G~T ozz_N_zOQz= fMut)ge/*ShiK>z`{6Y2S9& Macf(cO1đڨlc}pa `A_}+˙}V=-^:|O gvk=ټ7.9}"~{ْҝ,#jmu<<z,4MxAfyX4bRUk[.54 W<~o}p]k>|U?>|PWpFvUw?g ?rcα2\?GI=Pi1ߺetQZ'`|KlhA:淈^a+3A4}Q0/zTKQTY>R4+EG{lEyی&sT' mJ`sVeuNLkiw,Wsn _Cl pA,j,u'z[o~_)zLבtI|TYH ZHzi{+]Cne\O]}=&xY^_[[^FUkq˘RɌ\Y)ޡZx"O_eX{8'f}&LVxR- +lW{ϷCt2\咭wvf1>{~_eK[Rاwe;P5IPJ9,ʵR!&S=ªK=fN )~%>L6]쬻 ~q5rͤ1$siXag XZ{źur۩zJ{W2BF28/KEx/w#j84$ի2XC`%v2Z VM[ 6ڼ^s|ϛヽAc{l˶] hgѼ[:LJf0ﳢf"R ~_|$dP%Msc8 ̜ v&صOҮ/^ѭ7^'KiتǾz/R_0N?y:v_bts,,;>}Tm7tcBju=Sä]m"yZX3eZw8R[]l> 9= we7($WtZZwnt6}h+VkٿYh;K{]BFuX)SV#SP+-K:μkZ VYݳ%dz๋i*ZTʉ)ٰRgyd'Bm@ ۻ]l/lp|_-)y7Wo%ElmjLV{<4zcU^0h/M4mA+#SNufi_WR(}yd_Wr;dvܓIQI[I)@Wu{wEȶܠ(Z{5:Z.*4_mK|uF"h&s +Ks +琓gThVM@*<KnN_[)d[ze&px@j[_LIXE.XK:R Dt:^iR=xTRg$3Ѻanxr֬Y̬5w ʷ8@ATn! 1\B4Di6 ܝ#DW*S8Ge= U ĢՒ7_/Fr+77xւsye* **h}>~dȀlƅ8J\a 1d{{C ]tZ>_lA;׾^ +v2vB|f@4ܹCL 7ukN 36#ABL +mgZ{U/ECOIS>ı%qwK+]p]kkBs \DZX`V<8(w pyűb_V @ f _7qr=dQ ㄖqRV@]:8^g9űUݗ 8;qc612GSnѦ"Hl((G/'6@y.iXuŕW"$N|#N<'Ʀ' ; DF0rhH eb:Vn:(WY?HxVޡNa=' DX&;m@-'5@eG3hfK6Nkun +X}?O1K8S.a)y#v6\}f֫DgFaC:i=8Q3Hn +Sov'ld@MY%аJZHys<vp_系{H`T@CެhK>Ytn;{[ֿH2OF FI[t>GrP7x9e鰚NbBDŽߡ!oUj2ؖt3N˵o6F{_B]lowo6a^JI.e7F8Әj/usz-}.Gj 16qݝZC}auuEݱ4]NenъgOV׺U|ֳy8?O;_$9c|6w%8V>vf_cTh-;[w;-Z%#&kԆu,ţZ(1?\;,z5YuTcLO'^3lBڇ +ta2mBCxnBV7ImX;|Oћ%8?7|L|i]o64rdX;؈V0~νc]=2 Ýt:Z&Te&t|2V +1|< G(zlTK?/bސmym9mKmc6vhzAlAMʝ00u<7_.*MzX7vصc;IOJWЯYac ggj<.lo>?x/Ġ9m_,V.vn>rK|i3;F/w&wcal2:>%Tᨏ჻vBoПisK{_ÃF7ɷu\]S]=/T9zw qmu8ѰD8NԖ;1<jeJcӹ*vF1?*P96vo()a*J!+{%g|ը[٧OL [jj+WfV=I-03p}`d2⫭קͰ5媚Φ٤\XgBW>-CYkeVJC!-IC1npn%ڀw9"ˣ*=͹2W~,&)|mHVUks}8whLr?szmmN^KS^T5q6gaaԻ4[ !GT^[Gp3 sR~g%yy#qS4MPeH ]ahBT3f|Kuok̝r 'TTrߒNxs5! nL~.ޖ3VPOޥ_UfNz.Ҟ^UvwO(<;ŌR2;m޾]>Sw kf7^9R\ם5tֿ ~??ܳ9ٕwql%Cu3KARp ^ڧ B˪f˪rpJi2F[|9 u˶NW h +hgu|ġ]kU*SFUJjZ_־g$NeG?6|׎6*-^SpSlTwL5GO752r*K%"rAr ϯ&fV2nsncoOL8e*wkhc}q}3zM4κUUd_xGw7M# 'ĪCx7Ѥ}3Aݥ$b@,Nx3q#W+Ӷ\\~6;Rl/i=5c?YעQ;`Y^+sy&PbApt 뤵O8 pvN1ju<.ob2oMZC*ZϣڪB إ_ob+ߘ-/މh7գZG5.[ +/g֫j[) yP!tJt Q^qAǂlQ m:e %Fl>sow3 1Yq\[=t:z-K:}4VUPY'?T]DZkCyKѓ27džپٙF|DU̙ԡ錯1kZU%H?Wë5Y~/WmjhJ JJ+չA/ ,A\קkNi݈ +c:v%f[ƓsK)XfY0MSۜɄи6c_Wq-M&~>= տX8Hm7o@ƙn^s[e2S:go_rVwul<=s6믜esyPA]hCNҫqp{< +pK\ ٫ʒb +_KAX)XlczcЮO>jJdmRZMY3K-|gLg\ +6@scpL b?jAčCĽGHAD _ՉdVo[pG:Î5NfI ܀һ=Ԡ85T!u &N0"1ЯBT4E\0|D>QjQQY(XCTH jFeaSڸۿ OoԻvo]?)f6ZqZ>Vaaeo>yHyW>[h^C?bu8=I:s+N:Nȋ]' ;''F_A.{WzE({CQ3~L&^Y`G].Prkb˵K:eNT/091,O_8;jy(z8ɻ? ɛfޓr-$ҩ~͖iw/gUK;4:#t'-cv9fy`Y-rv 6õǫWn!MFu|X|3I?B+ {xGGxu=!{ʣ1׏u{k~nnv;?එM_8!qXa=Y\P[:?5[tpwVњ{8r?ۿ<[o;)M뙩3d~jk7GRo{\Ho<+owaDKadƋ\Qʳh$8֯1RWN682dm'`j)g_033vgfEgx720摉wNK:4(,*'岒6b17*0[ݰա5`!˓hlrmL<3Q*|ׇԾͿ|QpsATL D0NdjД:Y7.Z?讧v~N=Fkz51 UKLL|b4+KU2crw5*[mc2:{ʼn+{q3AAyG,.:!l'W j,ۍvL/]`-ceG-\t?*P0Yq Bh#X;=ǶÍMV7k"?fxGYA1Lr>FKd!)N2v_X,zÍQ]+Wq4tHmɿlA C{Z/F*^\"{H>y&2,UwjFAQU[ϸSgrs- 84 ΣLOvۙFzӕ)hC9mh*[*n1u^SיzLp#*b%-9o{rTtjdE`/Zɵ%B=w0R3W!"aE j ׯh)k+@x{~BeqФcQD"մ- + <e!lOwFؾ +u;~;}ˈSTSwR=BjCe_G]d8-PEMUC%n%G/Gd*ٵ$'qn~@b%AS c>P_.n/$ «"tvJvQ:2OBx*;Ju9 sߔJ0Zy7$Iuq=3}VtfBv1b8.8")+L &}:-_ELr?`I#5LN >en:pb<mhxhzdH3,,(xsQVᢣL . JKқ#IU㝾д.o6[n Uf$sX$)X'>|1z?=&glJ::tІ]t TV K {Zw+Ww/>W93 +X٧sL +L.hJ(K.>%~9(c]Z BNt\w+l3Q#J,β޽%El ‰^dRe^dtH2Ab) Q@ll&ܛP'N>Eew7ӇƢ!fEe3#.pΥۉ y;ֹ0$3$wJsK& AG* 0 .o!x^icaPaP`0(v;&7һ +(跨﹯wKI->lV. , + +mih͗YZhDNVהCr? +yDb$4N#~>@ຉ~d%ca$n![T6:[V^/-λYϚË s+Eכ trtIb>Tܼ,9=ug(֣ii/xr`CsfBkqWks<~6/?&2.W4aع.ae/Mr˶hVH˦#}ԾMNh۬O#L V.gK F> +tۓɡ<˻ P0 i tk&GwW46u%e  צO24@k!j_n>\4nL&?:T=@겵nሽUTf\ߢ]8w>U. +[nM-|t5GDk&mdfY}gN9#jb֭DA*欪dRUNj3SPe,ś䃃?$aW'UwE6Xܨ}v:_ޏmnQ[̩&޳VJz\hTU +CWvHsM/Olw?`V_%+`cD~=`@JjH᥈ďJ^-rc.Y\Iܙ?`ti%ĨgkW3Bj6 2}ʇKg-*8G +Aa]Haݸdyfe5bP#P0R7_!}!H ]2VFe[»5-sk?|^m]=T~f~[8e(f:\vp [8;+B5儥<_B_([qU9+쥙yꮠ?M@ڨGBv"ubyWr@.\ \Wr/Sy ,7{PĜĢJEٞMG<6EqBQ!IkTd m{rix j `5iSuR)ͧO=Y8F(ev$;H^ed1)c#jӷ#8+/~{NEx1) ?#!bwŋ.%ZK5:=ޔdpU}mڰɫR҃Ir4LEKyis_|IQxdA&՛KcM׷[KWU+]tv SxD#y,3y](==)y!?3zoOg6#ul`> +%Ѱ :M4<fí>+Hd"\Yuz,Yδ\gKP>[ci=>S?dWW'08iO@ۨTt]O!A=:cx{"n]|tN%>iKcd$F"հðgS68L;|x83Wv&mq8ވ?ɻ%O+5>kA5-|pҋ/Lf*ڽ1辒skߘ1]Ea^yX/Mnpi)mC4z;i<o.:Ӭ-jt.tRC +j.jQw;`-j#<3CD9WݦIsy\$ѶyyNe1i8R* WkNiNڼn{ +{]]ǭ ^ְhr$. S/Q뚡DYĨr1/ %W(M1fVϑIRKѾ=zgt>|gE`Tog!tJuۗT<'f$Vff~ZP[bogo۽8 $+ +\gjC?d?M[e30b!*H1w@&qX5o}йKv#}ؚmڜiljl+ƺ7E״nvmlջ&Kg:$\RyZe&^6SN-9-Ӝr3k3*hNSIA&ξFXf5h|?^+EΊfnLZ-shP(U)K+&i?ctt4h*tVnSMXνe4`p%w ҹ=RGc7vF: JO;Pݥr̈B(4˯:o6wP.ghc^CZ=Q9TdrTɅs~@RBKRB )a*e9:::XJ#^G,4Vz^^|c̼ <2{'&9`9G3VP I)@dҔi5}I +}~5)~|((}Vz'W%1+~'ϔ)n,p((s׍pg1mȌUNO C-fR+GLnmbc>o< nq>V1+WY"2)(}(~YinIsCG[qݐ^SOΝ|]—GK*8=c, fIE*sj, +X&G8с{{zV8K*vLlwh o5H|vlh(ڡ]d4pqI,š0(ce8?`F,*06huc ztL]puJmr'dDl^WG}&w,bW`A=6Ɛdfȧ>&Ez9z6j͆aaEP*ۛ\7g? En*:w9Gt؁(vU10r0a879H]镘 M;}ll\+IkZ'󎟭ϷN}))%tOaNaǙS ΢6sb/ /iari(>i.pXӑ ͉ *Nj`wŐnew:z/[]eJAл[=Km:CcL:+4qI[ +~ӜG]4qMFycjI}ap^x2AEc۵fֺXΫt7-4qM q rO 6 ֳUf-;ȵ칯GFxJC˧$'E>'vĝ^ą-~mdmbuTN΢kѠFTg:۾_ j\ ]+w*K5Z);nEePeÌVw$[ܼt2B$~;U]"}XB6BBU^G4 %A펵z6J9GJ}STK ^%w.VSD.$(9&,8 f5?)C|u>؁|uK/ϪA_#l乐Vsk)>^L)AiLxboRWr9-,TsNd 5) 6q?H"C8zR 1K4ә~cX6uQ9\B3'"@Xy(NX(T'UOaaRq,b E י ``l/xpәl[u ęToeۨGݾMekn` +z?=(":: V~FU&N@m +#@4Ehh @ j%eE}`t|: + BܤlwrS6ڦmJʧ)um+[O'v~K? n Wu-XV;[^{1$'O>ĪIBBTJI3)V#% JoyѶ&~q&ĺjtls`h QIB^8 SKLY¡ +ۖWR|32L# wW'ejw{n╠1Qv-^w$}M3J|)%'Hc2eyW4b6E~dpv'5^4X<d?kU?H1K;N~S9CK=yyLzqJirH//)Ӿs6="< y$IM#lp߳[LEpڵ1ڗ[DF$NN`K'D #{Is;Gr +jx@?BQ4-um_9K!ybRTzPQ(yD<;2Og-vO^MU>ogc4mVk#-{-! ozr1\ner|pc+?d'O?<+?h +٨zza@1;\3( `0B" _w?ڿ[˃pҢ,%?q ?ZX'Dz^\W} 3*ZPZvuoSA,Oݲoij3 :}:8[e hQgbNj暕J~!!K_BI.7N%V y6Hfxlڙp G?>-]4hƔ֜#[IDUd{ ;|+C&=vy3VUnTz7vzvʧek*hgc_bmVO OmmZ [r*>h2TqFe췃 #  /5"P̅fT;޾~HJ3MB{Į jo@**tH<)rzҡ^? +pY-ɂSUMSIm;(nc1fw zgG?QC5U5M%BO8L"K|+<%xvΉ*!#rAÃ^zh|@m*w{$8iZqBz2 hΝ-w\X qVCҬL&;KJnl}"VPCxoИoNwRatP"3=3M ǰQ\~jĚF_zLQFz5^hHuRP O[Qn)`xFfx~?xi>\p^78"ܓɀ?3sef8><3/K 1vCwe5= 4<د7^Fz2jk䐓$,؇(o茰s*q[\:ӂ8koSl[n3>zZ4f;tFwJ? /{sFr#49zъDh4YOCNE1p a5+Vۅw e΋V^[th[hnQ/Es/&> 4F$(V +,ͼ Tx+ALT CŞx5j=+g +vwRt7loou[wvڍnt +v \M8b,]wy'|T6뭻[r<:.2Ѹ 00H4<+*TX\+xtu] n9Sչb74ZUl:6/hՄդ֭FFlmohWӣ2~C64k~+I/i +SSaxJL@]Φ}ujWmT6XcJ<%n4\sիM.#aןל]ex$6fBB®fA>S$3"T捘C<[Ee_&DkvJ'DZ6GMs&ZH+>`n4\4mƩnugh*^&}]%\"S/?_M2{-,Hu7`*Jrp~S*Нb&"$n + JCU˝TY_JS>ʽr;[2bѷxD"<^N +w^)`X+`j]-}T? -6 ׶"E>NS}zaoc|tecSn .(>OG>3% W".QnN91yraL8g9ᐹ#7{>|V*e\*F[!vV w%(g]N'FDf+$\'TPrgסEfUn&dk{/[6LO"' i2:-t蔞oS @'@'랁v|xYN[63Y3$K"'F`qtLVAMb+jٌ0;8S H9/c@WȔ!tgZE@7~tSu;t4xE$e[NվX.OG%dm!t-S`$ZA5i>(HOrKfyP,yL*Q +OEev@g}ε\mXX=Z`|*8`~RU GU>'oHs&咫V|xܚHLslc)/G6@v @X^S3LKLz[zU=f>z{_C +MTk8*Ж:iRF߃aVsF/'uPvt0IJ}`0kU `gp//[m{) +  l"BH'?`WBEni.0O-~x/ֻUs1kq߇ϻ-oVFDD=_gAD$!u6'ߒ]0o$a̿:g/HS $Կ/"ZVcRϿ?~럞O;ki'̨ E>F`){#R%NQB̓cRJzܣzpP+VL$O JwJ:/!iЧ6-𭂃#f^u|%cIJq2r35̫ ˑ/&/is䕑16Б8a1 ف}_IM%OMϹ2u1=*xQovr .hW?y];<~4!k=wy[[}6;ZEnՕf˸p4D/Kf3o8Ͼ;ӱKYNEmrxk!6t:le$bY9Q~kAeoo۹sQ -1@ J}+TKfX][LKiaRO{- Jr1!ۣxȍ~s?=e{Y :gu4*Z}T^.ӝNZybNpl]8޼Nc 3/~|w%y. sjr.t^=u:dq[n{/UOFsk2I# ՉM5K611C'l:1v1T@Flr9h{UcՂIƭ+~fp/ɻx&/^>D +!3Ϋ.x>pS.߯vƸk8q)?#ˆἾ[_W֗">A-8A%86Qm4WV,B滾K=~yp;sqZi}eK`x MA`ep<2p~Qk[̢W۰i)\D;c%JcL2L^{{jxE߽ +>qlp#oAjGdzd617ؾ75U `-9S A9T<⭞Vƽ֍z7N^KADV2:ЭrO7ezrwOg qns;8m5eprOOCk<:grl,߅Qa`OK4w3$Z3Xu*2>9([ʯ%SgBaH\C*ˇ(3/Q'Ol.֘/nrd[ Nꦱ2~OiίOMSu];<[iБivIJN]Wm$RX%P%~Wax^ox w_4=5Zbm t5u-ǴgUlm5@IB!L)bq! bi] kMq||8.NNnpbc`k4fqdt/sޡZu.p+,63/ /F7zUH8dFhݞ;8Ԁ,w{ pS:_c#½,ܛ`;tqK->3.%tn2_.;oQý39g(gVDTRX,{=C +ѐ˻4S㒳{53 _;swKEP4U $ +6 )PY̬Zd1{u嬷Nqd17}ڮ,=/3mW&nFp`O@{W,n| 4>nAΐEH>dSiI@uGSbLgѓ^ "@$g !D'ETXho:^>^r,mA7j%t%W=pߢr?7aQGͦWeqXng]p&0R_ɡݧ3@Xsy 'APQY=^k2x}XX_ZAmu|a%밝"ʘw{O d/{*Yc]>59,XAh:sdÍ>9i>FXN B?l皪L{}%D (0aNo^]knlSJBSj9fJ^j )s$+6Rc +^l/maXZ3yn鲳+9"퓷eM^yFڻZ2tQlnΕX(*qeQ:C +(-#DғG8,GNE_ዄ5Gx_tL1#b}) q>\]{_W4R~{nRS͡.ё-).L$xCƱ(7{AVQl|pd2% biw>'key#3L+m+FeǷmT;ZdS*P'P 0KK휮S{.qaBX[~\m~,f2gg+bĬ;j%C$5"!߸/v색@npI [&f:K<;}*Qb^ + T#EfYC=xVNƃ`4OvG2o'a殼)z +)IFdA/vܖi֩b *COǐ޶?~GhF>WCRR /A]>">|Hm|_g!Lx\ϫ_鶆h!\}T@4\p|&t#xB_0<<tV<&M` Q\X!5L bkϲ|yg0`&x]+^o>`/ppN% D^-q*L`'s'*7ivoX[619| .z+t~Qh=8n?iT:|n2kT˜.+F癣&UÌrݍ&, +<#5(GOR7 |F| - LV@l7 Ɨd +$D?ߺ%3O(@HIИ]>THnF**A~|}B/2»x׵~WPW0*0IE@N@G qAq hX((I(~;y/(f. 8P:3;+9/4s;0y0ybwSzyaMLZ༻V{[Om?šwn{[Oޕ@PE-B N0[[0 ?oG<|߯lOhŒQs#dS?F032oGbxGo摽QB'k6<“~2U6/!%#|L 9Ίv[w}v n>nH#Z^t'zY ,tz.q{f~Ǻ@GQ ؟qI1#A6v=1}uNnky.(p=RS*'fOWۘZwޏTfc}n\MpܸP`QxPҤIsGGúk_V>?n 㑏AZ 8gCzvvH;mVM`ç&j2`qӅtɜK5g#9R_xIko撺\r]\wH [ϬiX\CRPFښ"]c* 6=u0y:b03/xp@Jfwa({~Д{ez%T%s "Xs]r؏3lxZ +D7ek-!Q\A߿ɒC>AцP#F'}{QQ zt˨?e軽 6eR]_n-x+yehwl%7H9B;x;#־F\cyVex[d^Yw?6oV[82{Һ]7? B4 {͛`ǛLlֳ[6G9nv(wt4Ffۇ[̀qzIڍG:e_/PhKyhԴ"{k`zPkB7Xѱ1rVcjLlU&I/~l3q]e1g+s4B) +-w6fĔ Za5G(="zHW<6r*6ymk~F}ʦ{X+ kG.Ŋ˙K{C}ǞPf>:LlOO w谏^g\rǒY26rfmXYyܳ݉vv/͝=y*>ho |Xo[ٙb- ʓWZ?Y>hbcj] LrԸKN陭E{YVu=ªsG灣8۰2؞JJ~+:v|XˌYC=_p#T澤&3>L&}b_>| +4'E0dMK}DAezsUfcy&YwhA9;Oy[b +7p{08k*ZiKj^ƩA6)^gR[NE[Wo|aB1[,i;ji%k}RᥨӮ:j|FR #*wI&Өz]+= ZGTTqZ._.4]BkԚ޲άc-Z_ˍTڅιyCɢ]\ +FlhpFlFQVͫsJbQ! H{̖iOIG {~&^ x'{.ܽ>*( ǿچ[R:CSK`Se/=)e_zuhU  pZX, -qgK!VBZO˱pU2ܚbDž\Qɦp=KfE&!Ù^ڰϳvĸtQ:l~c%HKyznVͦ3V R1mN7=x(2-EQPMe~6x}𐯏`μ:KN\]rE)-z8,躺@:-ۖݥ: uͷ?>,ކkb'T,_i&}wU}LxVWAO~TtùhRULhMʖk+͑Y=9ޥf/*!8ux)q}0q( 0̭bHj򢑷_[4BdR:Y8C/ebCA21>h.A rL% EJ3I0TKOy2sKiz&="J,43m69l[Dzҍ@gӄC q~g' @ ҚL~odkw*vvQyUp_9K02lV!?"}CTtF,C#8C F2't+4kHke3hlr0O9xN-BڃԉoU jpQ5_aoԳ1տ0[cue܈KIo8oE)&*uU?1#[>ip^E}'~8FnOjV;+޷MB~ +;u`<?GLfnl-_0?hn? +EE(W@~l6u|ǖ +L-M^XtIQ?g`wHeO Gs3EeѤ4LIuq$~X 8a3YI&ǘQ9]&+3`s!3&21jMyx/xȟg=L}^ky7ɜϵ39t?#J(/WM/ulĢi$ddl2q8ޖ.ژ\\Q31 |tRa>Ш?ҸM^ CݹYմ㒣>^[i5sz܏)}qb&<}oRep5vÀ΃.=PȤ^\D9;/R7 +_pkV{[+d&;cj1ݒSZfXBGs){ZnV엗;Wc9ɪ&{ִ0Vrz_T=dl e1Lkގz6]fcO ,F{%[0 \ xQ#q}QITPk GTky]g\\*`Cмj3ws|-L`Y6S~1] J.G5m#_6{d&t(TJu*j~4:|MzB๐~̮ l{Ѐ4fZV= tM/N~+T==q\ݑx6WPP!vӎ}dFjAieTkQcqԟV(=KAp-s7q|svVBur[ՑV%,d$7,IjZbmmblg@rH,͒Zٕk'LhR8Pd|1A`.l6/ %lHGݭ5[[Gh,{F {ڑ/(W.=%ĒAJkJt{`lq%OUŶbiCiSE;h [u4F%Ǿe~yO:nxkA;r~Ƕ-Aeݵ4e*FEw޳- +d/a.MEQ3^lSK:sjK%SmśSx]cl{J7N}%޲IuMXe{mғSQp;MTxJAϙBjڤjx9K掘I͔"yKvғXY6~?Glj4bn"o<ݧؙʲv Yd2hGX5dǕnSΗ:m+]vtowVOhlX iS VS {'͡HzGLkk7l= `>t~elJyA +syvή/+KHS +=5 m !J'=^[s,+X_pbkQH[9=L8v_ۛ_LH]#9fLGW<:1a>5:HgP(P&;8G. 8" endstream endobj 72 0 obj <>stream +7?> Dg*"Q^?r "./P30 ; ,>LܪOQٝdT}`Ewҭ3 F k|O(=U +`(4(gZrPTYi(Z7c:@1UM.{Rab 14fA} 1F'u#A)ĝrys4]U}BJRTYRy6A}B ;@> ֥f$KaMrO]oѢI[5xK٣p&W=Kjٹ|{zK~ `l0 J{Y!`}'PfD,Ӏ ޳cڥwW&+/IR@7̀OD6EdtK@3` |#tar8v\No(d|)|`\`k:p }8χgoKg0T.[,؋ٌ'U"zrW!;1|wp1A[QȀ GT׺[[ ?0Q@% lv[=x ̖1#fnVC*"7e˴϶~1fQQO TA5_wF@2%&iMrqrY#@{A9 W1L654^].{89[h]d;ECF&7GmaNo'~|V~~g**ÁZI[uJ瀺m>'P 45Џ%oC÷:ImE'Pu9G󮯯;TSk7՞^oQ/$"JU9{fpH d~i +sחUa fn{!ijˊ6/=oL).3q9k[9H[/~\Տ'fR㶥!WGf|35,O +:1-z -vIrqJw-.TE|뭡W}E82 ֧Q?3ٕ?A?`g81{&;cĄkȏ/8~s58Oc*6sekU|/CffPNщEcegsf[xVq/ࣸWwPpGs.fLd7]C׵wZ1SMX\V?1{r gj>@=k 9bQv :Ѹ&N퇧|*4c<|rP}hbCScbw1z^?;A<7X_ҟ?t4Ojj~ !12fW ۿh?Ց-Y|Н[氛]ou[u ASSo=e:O^pG֧܂e) 6*f̡> +Ov+cwnn6;nHUi 1ĞB̩PZ^nI g轧+w#rZD`^@| l>ViqMѼ^XBqt'Gs/uE[שּׁZ]zk!h}8VWrfG謚{쟼"ܹ7"; d5GeJV^Va'\ JlyvEmiu̱5~pkMyO&[e Czӱvs[:9O)OR#Qn#czy)kkܫ;dw^mÓnNo-粕@c+J~sm rgVN}mƮ ?lZ{UAo8՝fVPW۫{sjOzgkAF#.W6l6\GVJ_j;,V㨜r؃5ceZXiY<%.;{L25Tnx?WFnuyv[Zk|mjɀMѓsg>3N%:mrdXSl,VJNkKw陵kl%qmx`Z_iGӒEe[1Fc +a1ay'hSo>Ѻ+WiV]T +*?)yscGd͹ګ2jeWIO4z4{Asn8e_['V/XK:{t f_0Ea]&LE )7L'4oN}QY[˵cKs{oC6>x}gJaQj %dt2W?|ߣou1A TrѫIGV JF~ҼYsZBYڮ0KߚQ!Y`UY*? +(yJfYLueIz +.>}wE4f_S& Oh\ +rT#(j&c%Em/*<*ՀWjum}[j-dDEJ1+SR(]^>W\Cvf992D |k o& +l!Za1-?@MSv"2q'ڃA0e~/8 X\gMnqdvz|S1>gt,-il` !/\٠r8 .<x9R_bêbB+SPRˌ?>7dlytW3g7ĥZ{QU^*`O:oT!{\nvܜ=27;Dny$;:rO|zep{ذh=`i͏\1"mska0ztc`PCg1ssiNeE;(y_ؙ8\P:-R,6Ovj*/~l8kwXvee npBlnTg.R=t/Wn\P^eש!NV,^ita1jB͓J)Ӽb^&Sl7 DX,Gf0f!x$"?,hbu]։I]6Fh$ ~gxx}n %y˗+}4+sG)- cC۳YBiN:zQ +-3t*AV4/ CoWm[R6y +~&zTDDK8; +7w +CO$QRJ~ ʭv^d?0#A}X! _:`RLn$Jo&}5;qG@LyL ץ\._[YcnT˘hZd~@LO&=|8 Y;$` 6v\{~瀽"؛S0zd Oz7qJ_,ó|Ԙ!(ܚLkD8oG@H)psSr-K nrx@@ j -d`Xt \;Tc7cs&_Q?%]V<^!nc^=Jčc燫5{4(ޞbگ0mMЯx=q.]KwȆj7W ϱN{OEhiyǾ{מݐưa8غg)t򲤻<9R"EĮw\(V27puDoy⯞@f,sҧ=HӗWWܗ[zs/YYeZŵjMZ{[aV6o]zꉗs\'PSuzvZWcgc?a֏%3*odb~ LjhaYJۯ,CdyO^8U5t da\Ws>3vN%vz:U!;4(t⦠OmH͊Z\8xQ9ތ?ӎYm;㒷>v~kklQti0/qYy.^̣F(> * .kE+OC?3UXء2LJSźgQ%$8^|8cw)/fbo3+.Z7vk?_\SņlCBݗudm }%,J Г ko5tN>UڥTd* 3.KДܞM.υ(+F+TI]nCRf(f3kyåOBfMhjqUԽQcfPgYVؓLެtZASy?ʋj(JMEpiAVoyX?F?"O_7!'uZ}Ao6+R|Hly/Vi5-e_ͬ¦nLa] ϋIlWI/:-ܮ*&(f_ +_hU|\J[Oi 7+̲ ^9xeFE,? yP}~ZGJڝb[ezQڶXS7ϻH DOXPBn k//>]ܘ'rٔ9=.lO`v9L MܛKf64K3u;zDȸnv}5[N-T̂04/jjTK#8VǤQAarvf^I>]ܬ88vSrYǃx eÙ"ͭ)ͭQE{]k!MP"捡gնˡH<ӥv',Z!F7/*?8Wk-{5 +-]4D#}'US oz_G!5ԽuB(,O2u'H~ ;AW6W/ӹml~ni3t(-!;bWpX\&0m~z~Oh tSb٥[v%Ipv>n`B->>/8VAh7]rU &qӬLuL0:lG(ݦB +l; .xE:kjCCrDLyAv2)&7oSD" Ll2^b66m-WXYa]n-t@nX63İ6}/[dlˡI}PBndggLl42䜥&]_t|>SsըZm{ -' 7kG\xe8խ*q-lV:Sob])DuJ ߷]^ܲ4U3݈4ᴨRiI:|E'DirO5z5Xۗx┶Ȣzz.Em|Qҹ[ 9R $MV3Y˱;Z#~f;ȩ#[Y%X፧B‘U`4Jz_ 2eFnt/7\ۯoW]nk:X[<}%N24޹#c|8xNZXW2@I݄;N0n0eZ8 _0e1UTf*w@%le[ KSM2PLfrܹr_ҏl +_zYLl5Du 5VQv-HV-HYNBZ*+z`5;u   'y!|Fލ?^px+/֓s&[FMz޸%ɓzsjKL78s!Lm@⼇\gָRBO"(0j Z^Y}H %2Vɬ'x\16h@L(MKV-rϹ++ZS;B%~( \=f.C:O +!`(+|@S*LTF ==A'`'(Z t7e7YmS㢑0Ehrf^nFҪ%*Qzs˄. tɗ]l 9'tW%=!@52\Bpݟ%1(%of3~sب_-5@+Jk&׊ vR*.o,{y=o9h9vQyvyJՐ Z> ~X ` s E[=%2y_LVڀh'ӇQE]q;_oC#'b=Nn?t*-.De`xum]g+`yn" $p:r rǟoC?9rJ٭\o: GX{e4S:bvK8N:AdNϵ +<]D4r:5?ܯkI5 &lDN?a}PoT\be0C2Z2,gO/g 7|-_􆏂N*}UH)@R,h{@  Q^vѧnGaoܱn?ҕmFN#dceU7O'77@b۶ƀҭj@C<P8T4SKX\_~xM0ۿߌo?^7*3bnoq89!o?o +W_a_G>~es/. +QWkϿ/_Aj=I<6IGa:vQvνWl7dk乭q;87h;voOu+wdoJ_^Xv_T:!;7ݽkrWܑv‘-{+ڛ08 𼴈Bi:x^l(d:)LWZWH2*ˊ>\O{~ثK"+E|BX\Zy^ EDẵzp!_m͠MG?kdո +ZG =*|emcԗ7W}wo09<[Ku]{T%OԸt DȌ܌D =: Z3W{vwVv3YDv~ WU +.6}7Ov[~^CƯ| i9ZJ/6KAyďyi 2#V+6efݙ]cF[ΙWXXLۥ"7 l*R+YMHWzZ}rքVܘa_U8&2\}:W㓖 .͏ܴB}3Q|dBH,9R5N!#Iz44 ,ÒiqlL,@V.pmW}Z꾳Tw%%`a9"/|˯͚h6 +BgL>t+;ؼ:Ƞlp~ʿSjdsX"5Exͨ5NkZ};?p'|v054ޫhT*OQlz2rs $/Y^XR9bܙdH rmsҵs뾯Wݥ治Ws#v2+{(Z:.[ІMZhs3skaTs)钫XߏF zɪ wuuEB4mVJq@V{Hv-%tues>S&v28% fK[/1Sӽ#i鹖,ap3Busp4Yh)J0b>t<^vDͫ.:4' ҝQEUJ/ZX[3+5 +~ج:O* )pOXA1(Z{ɯZAKZj?e332cWSq:qT'6ZÐZn>W4֚&glvFj֊{+ܭev#m@Zq٨c.uPKotXi+d-Rvؙ 㧔.|]ӋAia0jb)z| |/nWꇨ9}Nc,JN-Irfg;Wby tąYA+Aj.=z?0Wl\3c+E{Pta bjPJOoJր:7/N1&X弩.f3o[A/HfJ_fXt:'gx(@Sf)^j/4 +7y2l|R&C툡1c2+O4ۏVL-O^M%qOW,mM+~_{f4 }9hoD(όJ egu%=i%7 )0r&.1iW&PGwVhS).&'P{!'O;pCe&W`!ċ ȫ[> b5hjݨ>2rAWٔx_Ԋb/$x}^ރDB ָH^ѝEJ]5Y?2:[]N5*m$1TEBK +6 |8.8tdȎ0S/ 9=vPL-P?pv^hYkfiqW 3h2IfȒP~zSIse{UkVz*"2b ~+%f:N~'VcL. A-թXme江%YfLCh?3!iMA| fy-=vp;* OjO)MR> ✌rT7h󉔖=9 Rg9ТY& +M]![ Wbf˙fwl4tm1W +lrl.Եd7tM1cF#]H/@jAR ykVz*AґSF_<kbQ\X=|}}h~aUc/nQ-yuS- iEiL,+KMKB_fg2ZJ$}OjT&{`>CzCY`9:` nO `dAR`l~|}j +SuȭcdXtJUjBPYvX*q9RTE5¡B*ILt)$H` ,7[ +p<3r{'`]``qNP76|iWh^ɍN#Op!z9=G֝fOHB5]M:  $ЬVA |~`R F DQz<I,~^?e(07\ï od#OI~e۞&7Qw("&HEiTK + u;d\؂I&FI  p Ȋd)> )1H8<7SN,CL ˬH^1/)H S -|ʟWP/`:N  N FF&@ZPP7j6O~$?;KWK|]QoO qZw1/i~<(iĤik} $.v0S0a$3-3c'{8;0LKЕT|u} hsJL2c} w:./ }h}\F=}ܶ?WewɫPp \g,n; ==Ln`\{Tb+@?K <\ciPccɇGB˻#Ǜ'A74Ga#7hy^L?Zw'w/u$y=nyj&^ԌIDџ֖O| ܔw _EuZ ^v `o>΁O䧀*Vm66|,I#F+mi z^d;m >zƟ䄯x~P(:wbS-(;HeQfRoTI7iA5V:w-ދ˶r~k놸uܼ+e%䒕 .}=y:qpׯu+(_y0@ԱwR.+.^`p>oi 'n0Lh= +y2+v^ݜݐ~;G[Fh7XQ ߠ~wzQ?X.+s̏g:<ը՚0 |w:.3Gʃ_zm:uZDT14\=Pl +Ӊ2ЧoMl8}k |گk?WAn'Rx[f),BLٹ -O'vatzx11#7Frzz28ͷ[Vҗy>O,\QV4w7r5طt^e+ZdzƔ7TxS$$Q򠎇{xjmrϾtʥz=1ԛuLuu&E3A&*C7$6Mc]XKxnuPQ2#C:ՓwP͎VW=]XLu/y f':zaeZKm;V WO_zJ+X=M}4 vm6^ +U'Q_UW6F>"M,XDIA OůZaDb/ umgX9*/vvK51<bL6Q Jml>N7.CVupT0JCPQvg>߬*9Q`d%.,HIURϽ3V;9ߎ8c"8l:*Su:nnx-[Y"Ŋ̲kJ. \.U);ԱO&_{F~rBļ^݌ܐ 9ț) 6:.;7:k#lE夆aV^gƐ` z-K33Oy}ӡr4$Dx"Ðb&%ϒggЫZ- ݪ6DӣjC=kcі7$gV8.R]T6 +CrNAvR!u /daR\9b!??;B -`k^;خZ~z~˨vj{ў[dң=VtVu \2#u %r`|$P[! l!WGt9#mRxx +YREgEgKˋ%V-6j8'3o{elU|ê zoT _UqY%FvQqD?r-/Um%g,e8ұBgŽ@tfg p:u$_Zj첵񰍶`ze㰹,㐯8:Yf ~LJZ<ۙm`8Z7Ntㅋੱ'bcca|@*Fx:.uLe6/VőF;,4E3Y6/ü;lL_JՁ U%Ǘf9( l&޶O{ +J8!>)كPT# +RYz +83G{%/WËYM8P,fo)X2, + |W%ܕ j^q?j0Y^xE{-*;}j*{$u,KL<W1"~'Y7l;_`$a6>b]Ȥ }= )MM=azJ&-8o.~Eէ~]ҔuĒۼRlݴcj?k|Rz!آHn;6;X|Z6鎞FJzA= +q)R<ǥ Z.gu;`Lb6^ +֯ +:58!(/]n^;IQt4%C򀥻CABRZNd̊fhSh ;;d!.DdV7e #xJSUzI[.B8F ~m <ͺ_κeGBG@{SXP% @[r=A/h>lP?%x'ڡPI~^N_-_v#jCOrZTd8u3Teu3s:Itk0@kvF˖~V<<&[`YX'-'u5s`MN̫c**& +`z. QLL*,Fc`s ůXVYx0`liyN0VVUbP R~҄ +U9 +6GH#A1J0|6SxGK~ڄVna pa:'ypu'rIR^r9ґa꩜ϸٜ\Y fr 4R6uf)⩬L8GO>D@ + V   ( y%ӀP+֔ܿ\5vQc4Bd9믊 Ż~)Mr QR/Ac`T5}H`H@L- ())IIF3m@风Z)וR 8xs3/UsUrpO{u"+1GI,!N~ZI?~;};3 l C 0I0H`20< +}~Ci@O);SDtc<)U` /54<2?>B${À}!$ಡ +89t=V.c.`o `0 ؽF8|VϒΚ[|zrBe$卡Ԧ? _/~#>6ܯ w0cɟ4EI|OcW3~dG娛ȍVRr(Cߘhk ˩П#U_G'opßޏ5Bɥk7rzL 3 l;^Ir Z$s{4:i`9)"⧋YA݉mm _|ܯo봿*S ȃr+р|B (+Eo+0~ݶM+^doFlyk8>&!{3YjXY\ +9Ղ:㩴]9s?DM8H7ZW?bڿo|ꘫ!n^]48uzj>cLJ?؏^]nH|&U ntl<&핗Zˀ/`_9MACK?ydҊR|<uw~.7rzl]uqj_B+n6*.-қXd4{٬x%6Ӊ,HxMTW 7rqdFz,7m׼,w'8WHNј8جDmӫe< i}{:\t0H˘iF+ =5jyCFkz=\wB}1S򵃌gd#V +֎k5~[n:>zz|mg{9vZ:_|].zWks8 =Q]H+NQS׺S-Bd:ʪю] jP҃z=WesX&4S 5]t;!U!@kmU=iTyYy!3TİAM ZW#m_S~$VXSȢ 6^(U2׉bbTRK--w@m+he?%dkX-Pʓ.#giC4gb¦*F=tzO Ҏm{ +Sj1).mkq#WsvvlyR*LqPMlu1x]Xt<F6Uh8$ׄ-[)2nJ =;#; +!"W +ʍ+ŕPPPfW2kCZsu_ԻrfuSduHADU,H!LHꏻx֑t|hnqb5R3mO믽smU*E$g-!})f AImf=Wٿ)Ρ]DXٺΦЁDuRsxOYzwwuƆCދKZ6?4^pj)I%Ik>˄brJ ?(2O +1΋{txzQ!Eqg ' bĵ.HtBzZxq8ZS]I6 /""I_}Z5WUg=O; ^'1OXXza襹ZMMSwAa`HyN5Uax?.ݺ/\yuĊ7t=Qxnat6}v#JN;w5+ +;Q`5c c~y`tvrdjd;Ev&뼟_OnN[MxNqڐ黕]c2&0O|ooIޱeƴôâW/-\@QEWoxm%c[018~@3:S~W&@fw3f͛v> n0Pڴ%ϵwDK++eF'{opF}d T-0~dMʀ(] 6* f Y>C<ڀɣ- ʛ9ߒFR[^F`pfaF;ඐb%VMUŌ\ARK"ѝ  +1!^2 ÆhW!H))GO_1 L$2+-" qYE[_p2H̆|lTu\H|,ESk +coE!T r:B!i(4{xP7@>Ru@-ēR^_e +$Lޯܴ7>*1cӀ./>le +m>CE:*Ĩ%(6|˽Ŗ໿/6jYMo>~t9F~| F&݃؜jq@iNy nJ5 +tv7LjjGSV˓C6[`7|?_?#k|f6tdP:́#9'Yf~Lx"s^ϮcG1귉q?{x MZn/X XZC*fjf `ry` *@r)녧-A>v gRɒ8 `#B*u<5XGᚻT撁c}+lvn:k}+/;Soc*N](ak~TyXO(C z.Mv":ݥwr;f3Zlo{_ {Gbq*$ĘssϒIs~qJW y N[}tFoYd |;e~up=(מh7Ksy ;EڮE3Oջr7y[kR'Vsd?X݌N RXxOe_ZW]-~79ԵF! RڦC5&/ոtsbcasL!U\56aaC=2|,?ku^[j>bM#d=f;fѐ|iM\ +qZ}O ˬzWc]m\zu1XO׮ Ǎ''NPNTA&V\F_wueNJ_#~ +;pSO9fm\ `1k7*,ntyzj 5 CZǘs:U?Xʢ̄ d +5$rlO7j֬ݛZ~R[1t8|1*^N^_k.֚UTs_*4u4 +)n-Gj>SzВMXq%)c`gR沝ɚ+76BшXߏ ==4O49놻Ônu"+uْ];dIQ`D=LjUsvg +1S! ?XO7ѓ$g6 +alzG,+8ku4uz:ed3k0Gؔk(F򦍻8W蟫H7X([]KΩY66wk/\1漥mgΫwBU@y~BqtZ+gȮ(&ؙ%GF@_rEX-*]gG3~{/dWH6c/>e{c뱍^c=_~R*]ҿ%тi2ϖ^/imLD ލ2f=Rr|f|E5(8y~2_^&/|>Zv5{ iχtĤޣBJKZkzAȹ?X%< K!yJOcc3c5YCS*~u+rE`/6d$yL+v5*Er|蒔=Hud~ӻmݰebX,Vυ}hr|IU+γm7&2UͳLTRڣpU_hp'2}~DI$:"O@LE@t1 8s'Wynf (ຈv_eZ^lZLUW-`pM2nE-`NrԒ2}@h"S# B" # duS2Y@r>hYZQz.~/{,3iK"mN:Cz>e炵uq!ܟ߀'P@BeU58@2D^s@l +;@2 +ZWl2(8FGIY}(-Eݸ(g\&,V4:F 0P_! J|M k .i(85]IO!vg@iЅ Ԥ +t} h݃oDOB$ +{HVΪgynbrfV *= /+ +p:7NqmT3`o0) +M|EG vCLܡܩ&Շf_ˈq{Nv\up%3GmVd_0e jpsC D8GGUQn8p$YuAo.0gzovwwdFZ)5(NGx"S4_0/O|'2O)6]ͿC<§}|{҂ghtH-껶e:QQ #<;^4?K  k@9 n'ar8q8[VoX@ ͜3<- NyY%,6{o4'O fm_% +.Yr7 +[ @@Û+3@lɆ㚸34FSͱL':Jy~UboZŸ̆?J7>?:N# +6*΀V#HqȯFqn`Б!Z4C }XZ_?3%~U F,fsq ^ ~to;aT,T,SSq:\p0{meQR[CPۮ"$ +8uOۖFoōRA=oԕ}ᚩ.+[&M4lwZE`]3RN':Xί-x,L! 'c;OS|Rۼ0ZW?>~Y]nO΃v,h @?rڼ9};Ew,S(FTS2KCkEkNΝw;nblۮj2~or7m`q\.WHMg +h?y_n6=8w5}eYWMm/1[nQ\7)>S a/XѝT]VwηP7auBYhNor@^Jλ7:Hjノ\*A] aTJ5ߩʰzm&UGb6ξ׺Z֊ʻ'-v\FԲ.nʥ]Q8VΡ| A݊@ڋIևb~GJYEFn\|7<_^e(#{7v7`y=]fZgװ|aC5?"Z6/,Y=/nr@wm;^c{#ofu譲|e/Sf\2crcg .dyR™-{j']E\%fݶ=k=}š˘NxUȝy= "} d.wJ\6TOanJ@:*4RIY6pMQ90DqNiwt- i+z8Tߏvvm,|݋{ABz?8m NOe ʚզl5c 8CLt]+vuҚN7u5 T_P%ї i!FI`hl*~4aD 2rq~[OJto1EkGnɧH!fR߆Ϗj=-=2V-An!GyP"U"SnZyO]rL|zfr&۰"gp9m9ujz̖^"Z\YOT,Czxmټ(N4;n?H^:~}߅Q!lL2scpE9eUsf?du%XӠ{DNsNɾK==XEvk-\ ^+xZ3%\(VXUnk~׼C{{ɞy58[`$C(8IONfplIe:N7*JSb!43Ee+ߔL5M2kJn ޽WZu2"gOKS#-M[Pix&sj9532 QKTtө^-Aʬ/EM}{xaSUVܒr+5^N=Cj&4Yyl'~ Jel!<*UUjCklM;(z«&lb|rtJ%gN̗ԚY9}"WN޹LY3Ʌ4p:#wH`)y5^N.Uv;c)BOdk -1rBS ёkY~ԫg'Ccpqq[:L<{Q:-)Op+Dq} Q0B{zIc,&-ORT>S(_pNP{6\;FՌ-[VE`r}dÎ;Ʃ2O%| +2``[%kq"D 3Xo_lA֨rL@t\&{ܯ8f3wORoN&$T:'H^&vkK3) b|z 7 KL q<[sDx8|<_e e9 +c|Fhuuod{!Г.6"=\on!u 'Ax!VM@02P>#wuG+}r8\.X5d1I;BG,bJ)r=} ̷̐ߌ' D+x JbGqL@,U@&ph.ulu; x4ìdTchZIbo眶4h/A'WoR%FNb}W!fc@ {N\= Ț2֥h0  /o72%Z>o>cH q]:v-xK#lb(`S!)@b\괸&=P'7bl;z-vJ쳋C/{m㔟]Zj~E޲8OJ|(c`E̒:ܾlHȀq9 ±xVQ C춀0K 1/Uj=@{),xԪ0;x3ﻨ.>iˉIlHP1ϚS vO_ e}d ldw5l0~m Xe+!`"h+8̤ܽܮ@0S. V]Hި>'~' u^BoR "7X;/x^0_%ޠQ +.0)m?cg$)bE M}+mzg/o{rkF="n g 'acQD@)p1]YLk:M)|2gˊm2=cC4GfopGdך[:a@V3@7Z@= +\+m1 Nz̬5%QQY  k),F__:'f6$Cn1VSK@=>POYLh4$>JҳH'ݚd4S>hM$EYbZwW%3$6|CLns0:0fO&  L +qm_u dViz=8͏i}Fݡos7෉R96[j&-N6D-Yvidr'57\&IONB<}{Wu`O]_rp-Ѽn#4fæ3dlԈzؙE#z` t<o/a"}ZW'ӓEu739J/tG\vwz} ~9iw8{gϴ,cYj"N?޴ dӫ= @<:_=Zz+:~۾&m&4 +4n3_Oa-(W"Y=qqPq +{hxK.ҎuP PnVHOI* kۍIHQ,/voQZp%鵨(J$MJ(&'3^l#N)lY3pl=l`,vؓ2F@"s 'QAD$C૚EZ¹}Nτ]o0+[-iq$sJ$mGzXʞ r*.ኗk}vh8OjS գ;"'mN$ 1_#4 /v;R +s.Lhm"ZàGG30O~]%%3Hy^P8K}ZF 8N6j}␱/1kD_oLl7<=wK1 \+z/NfyGL':0'Q})/^gB/pphmJOͼ%C)VERgN;ty]KSʏgU0u!XݬZ!H3)!vh  ,XMTCfxcq!Sڧ>6WU\Y5uihA"O;;z$Қ@Ǩ5HsT_&H7x\׃Ϙ( u  .H5y76\N.n;5=;>Xm-]PZ~|&AnFp)H\b-hz"y} +/P$#TEN9+3vVLj [>!\p99wY7+ɛdҠ~! lmnЛM?UQ%Ъ@tyXttH?*mvKm5-Tg%5AD_qfW׋C6yW#ݖue +h:oHo@uLj }=TAw#DL|.e&'=YnÍ 0U4\+Cv=^ΕX9(^Z;/@!&=|*9{1ce*XGfxU`E0EJg@``F;A`C6W`۴lj@<& +yhl`|x~hש*|6uߓҮ4%YW*Zb}e $ !.'GP9_G.-:7 +zoHļ x&\';,Uɝy%춍Rv>nM:zڽX[gɅIh u HmdD{qDy}\'y +b—\'nBBl>na#@ …JA16i_Tyl$Oۭ젺)v[1qmsh@>^?%=G@ ;  %9r&0HC瀴5)p] z-͊XyCW+Vn` +dH[f=O&]z-B̑hLzހ^'sP*9BAX(EqP\3efHQ)hga.ҵʚӠӉe<VR|LE^4o&H%ȼ.}Y` vm NlzoVzBX~e 9؝I@Wϳttzs-SxƼwzizY5b]XOH ֱ 'Jguac{"`AЂ/(?sem000ݒy ;cEޜťc09هHU8>0zY(! ް.(7o;76=qWFKK%ǥS=z?bɼb Hi"E>k T%K~a6Nm? +Mo<C t5!ާP֊œ W\ 3{Xt2E=PJR.܆]" 3/wHݿ> 2I睧oc .1H8qmI3γȲwM [<[PSH#an'f6KE' 7z)@sѻP"1_r@Ɩ:Zʢ?f#R_l(l ߲eyߥ)0h F>9fiTn'nVύ^Jώ$U0Ըutgzk#k"D2c/J4öwa5[h\wk4LL{{E?r{U[Ep eMjz3V`v nn~fJ5mgHhxͯ&INbÜnyU|}o2볺Kxq1p|ӥ|.2Fr~X~o^[=Ozߞm'o϶9"a( 8u8cNgv$sm2^_>ߗ+nWɐ'>hX3Jb()I JJR!y\̑$LRL}K硏mL> iW6AuJiP0@T:S>(_S%h4qfRTnZ(fɷ DpZ2jMc[y!5MU#$h%yL¼mS o_RAvK˝'3}GFs[L;G/ +~Ymmа\+@cCi!j_oh1&+QBR\(R*OY8~¢zشQ&KZ9)TFʶM~o5x&qW}ҭ}@>4V¢ƢDɅwcߍEx> K[4_(P~B /_(P~B /_(P.ŽmVxn0b/_(P{^@~ij#XMֲMkXP/_(P~\>l%P,q,{.j0۰ <=NހUW l,flKWΚIeH16KƘ=1Xchi_q_~Bw;>ڊ[SX kCi6ݽt1'ZNA}bI'&/IzoY]fK02aU+`0C (&pNOsv95e!}aZ @,8  e53'6/^@X:.d|ϛڙTlffb1M¼/½GSP)4kK?L;^Qk?ð3>4NY-pv07'O]fӪ֟ ǹl:Ѵ:d̓pOGB;lT#'Q/_(PKuhQvUS*uaa(X0i=P& 27b)S,?l8]]f#7*u[ ү҆_qfa;;:>T~D4X5e(NFkK<׫ W:-Nzo(bb 45*mFO+R_aR6eY8~f~Ϥ_(P(1:Ba)(t f:?}$GXr;Qp˧g߇vqC*~|B tiR3֧Y2K>R mDWA rcsĢ&!-|cT6XG423D}}(Iȝ6T}xp[ vWڰ5!$d?s U:st9fVT<}j ͬ/BǬ +VJIIF0lp6Bdak]i} ybeۦ*59NsѡPT2~ M8(I ++nRc%eODeH% +ZPޔTx{/P W%Cǜ_v{dm2zsm@#$?YߐuL_ |#϶m\b'ҋd'/JKH#;d0Fl +4JR7R&9AgpQ73ЋU?rp繷'1=3-Ng",WqFkcՁԋ{=XΡbI}1-ݨs𧎤«3vQ++QBV*q!5<*ԣ_XD'_(o}}zGl5ْMޢX7fPe$RRɏ5†M:I\no. +~fzU|q1`h.f%h-o @8oO# TL uA?xl:rJpX*)YAC|dG7:[pTTlmٓR# E!p0q~ZIbd}@ n/ȟPt{jj~ -<3'9 AhD~Tsx//d#jv <lS-;*ddLR9Chy9 7X9èF=VŃ1#ā1b ] q[ ]يLA|8VWpRn;SlHvt8l8و]oޠ~*z\TT"s{8iiWSPBAnh;f:N߁\fOnt tۤ/%0TsfׄL &9=9I=K3ΰ[ZnF,F6a_G٠]R?IL/*zJ:[ R7GYJdqE@آ )RGqaz=G&\IoX9=G*=3rWrPC$q}Ya$j9!M"_X ˍG%7Pg/e4jrF*}jvè(Ni_aP݅r㜾`(cfaA$&J y#Y5E>yNjbGt b,6;8#W} ?,T뙮0e'u]PHz/XYC]Uϩ?WHju!rEܔkqo-80Ѭdi q'1hԆfxF <_[zo7[>PH.D0|Ku j/sz/'>˔ÕJi)dy1e MPJRRJ!cQ")ל( :掇bv, ~\ 㸔I o3(~ʏYT:l)R3[[ojQy|E5c@|,I2 \|hb´Lp ɅZueMw~׬zBKS&Ͽ-8>LJ%i^T(F|Q{-.;3pwpI#J-9~V!&iڊK@PN9_+:0wbThLWgCyߋ,)lbOu EfDuHBSd-O}Y4W]6T0=Yl24^QNؖKk{ѶcšXYQnl\hiDW8jƲXɖ]1cA*Z"T[0oƯ{(i wgM]dA%Qڽ6LX4݄+km W0grmH'sHe%U>W]KFHCS,7rUJ#O/Ѡ{N4٨h^C=>Gd$#ke/Er{^R U晉G,%2]"flN;G8LYݠDSoIik S4ػW52p]ԛLL:w_(}`qڟU^5ֆqmE|E S2B +T L&^j`i*8-.Tv,N ٫vwVvB?'b хBP֐*q˴9صxF,|̌՝`KmSY~6X!AW_/jRe bgu^ :f4\UA{*,wgJ㠤A+Ǹ&Qgub:+\s;%_(\S_ZOnڨ8?:ܩ9\~4\i;(J %"rRHg7#\ }RӐ5i嵋U6yfCA!wGZcgƼ2lF6MA$z g8$ ~<1,le W}YB=+|.:JC@sY PhF@!fM1s<>)RIZPrP46:}kX)_mDEm>R|Purf#sJ`d (XAVT|컇`*8s[z#DT``5&cǹA +]K֚ˁ)99ʯr] +5,Fv8yPM n18cz£2<̬~@J|cah^UՌ11g>ׄLnTl1;MMrrq?E_CmM\)dH`0!}`]rդ쫏˟(K~|UX+Ǧ2nA@\bƢ}>̢|\t9[hx6uIH1S)DIw8m[eE|I{YDg˺OJ!QR,v&4SWT+S /NͿPPbj^$Iw;\;sZ!wgbvL )F,mMPOzآMs +L2kIG;dq_REx®h$ta;ӝ&zI$3vDM*L!RDQצ5huh]Z +q ;&$ӏzejZlQMjr=cbn;'P/y콑^7[e+uZe&I|gm ){Y郞Y6zEڏQ2'(g Z =Y۩}P`cb| m$sŘ;sJi"r9xXogK`reVjͧgZ'_g =nXr򗩅ԚW66t8^ ft M1g)_NBykFG#jZ"DTWݯ'p&}>N lIE-}3f4(Se${X=b̊P(7Nm+V*)ɉ-JNYfܔUxC ͩsq\o`=O+:IQC5cl1์UٍI-QFecb5H;Y): 3|Sch/,(ZkzQaYT]7-Ɉ2i ;]7a~îg}}莌,pH)Yt2̭*^a(ajt `iah RKKԔvEiÓKク渏̆Mz7Lvki~+znk84cc= :_P~BA߫@6P-v=qgY}2dNv +A𼷙Z{G-ʧe oW;DYF笰cLƩx7aЮN/PPr^#rAP_hּ+_GN[?伞mNJ|N# b-&v3:珩=Ufa:?44:4;x2N͉D󿵵LbΪ7O_'aOOz[OȑxKώ{;Zef;S$)3b p}Cuv:Fيxt^dU]D!KMV0:mb:1ٮV34m\HX$FSs6n,fq}2ߎfid{:m9p]D"//>g|+v:oAѿ1LO:9>j_x3ZoY ੶X}W+٦vmaP찃"^&>QRwtk:?:,kC*v)gBNO]t. k F2ЧdPM7?.k +Qq!xNr+4!'@d&H7*O ,Uܥ4.!.Mvo;E"&Sa÷8rFD]\ĸ퀨/65{{{{AG41h`ןnp_Y&7ah3v~89o@]F<9,vm0;! WJgvEزEk8Q9Fd[KU`[ "O 'WȒwy1]@KkưW*oLTjW-N2^B(JE^sQ< "6`,"bK=p&-n+Fol4)5p*[ëUuboj,lme]ؑJN4Ge@]Izh:fp6pT}>tꃍl1}dp^5X;EbswrW\z%(:G>0]T?1iMi6.j˶#~̃Ė`qF\VXw|ablZSsj04d:cCsX6-^ƖFўD$pQƂ.X&^ufCA sb ץȭm"#c\bAlj-Kp ,uRm_\I?+a֡&[UC]8+NN;6сZ6@@{uGl]FǎȀs=>)[^r(LuT+;CB3VT>}xo)PV[cNDE.GYۥX%.|*Q"*֎s#֞C+նezA@)Ռ]/Ԣ ]zF ղֳu(Bݥ2Z@Wtr,-nNwεHh*o,n6m[] +IJ~.ԍxC6^9KUGrijT9&sz*2B(Oj:w%c!!iu@sH6h@ܲN16L sݸ,?:h^wX0"($r jU 4kNg؉hugy묹gA!8OIyl8*t,ZMۃO12+;ɦC%QGxOӈ!]SqXDxAQ@O90'Zׅqt rN>["Ǥ"bkRl0I5]~+A ؚفf[sdS޵QSu\wr?-M?J&;pd T[hPn@nU##Y (6 ,,7EvP;g@Ǩk@R;?Ph\Zo@JA䊎PNU* ()`︁m~ħ (i%!kP M=4}VS:EPִ c>ϛ_*byTR\3+-qИ0 -EF`b8Asf5V +8u7JbTzfZc&>bŔC~rށtcp_" }b/+)@2423\R/˽MKƮ$> 9Ќ ) +S?Up:Ɣ$JIy'EFOp(ϝ+7B9ds냔9jńwl˓B4]m1b^0_'qC` 1.Q w\o=NY7"ւ(kk)ԩ'1OǻwnxaF`2"2?':Wd;?T) wqhgy6WjyfUx'G!gAkUPBmlG?&D/&a1#үlHsdTuu6{Z.gC{4S|%)d4/A=yo|7嘫~%(ϳX#>Ƚ"l[eI=I)<-z?{^=߹?xp/h80- +k -eXѓhI$t_g4Ic 8]ίhOTKg;%L଼GJ},?2fwTY-bL&tbs:\*PWQ\PM`{vy}ݧyu߁1D{p_#n _юٜ0,֔c)`s +)%W~9}P& rbGG ES]Z5v%3DDxP,qb*uK0NN=2[v<"1%IF Bumkb85M0\⃇A<㹦$7)-7 >գ>r^ĦpL*vG(.Jw\ȅ2|lyn8l[Y8 ldYb1%s}߻Dȗd(B'Jb. S87 B{1~u<;.9veO1½=6Z;>(cG_Cd0 } e&WtJs" /W^*JIׄ˻,PDA)_3 :J-yЂ("v"|`v3t<tMÎSvuٛn`UX:H@w%Ju0{[e2\|bd ]uIwǡOfÊTF(gpxO9Y‡Q[PvLDD.~*0KԁuO8[rEMwk`i%0S0sL*-ys['j +=E` +:51bNO2Ax%2̘#qg?1V+;iToA4x; Q'bJ~lw1)Y;ń*fD-#½cӉ-Yƞ+mz#C {<2+-YGk} ̵Zн9A8aVޫ{#CCĈ-ϹSpE$BgV,7.FYeQ[3YUDzx:ЗzIKZtN;HVs_ +!"ơ]k\0 QgR`]./'+lk5IJ! Y/_ +]|/a!sr I66lr0G +Yh7!ƄOuCs:qo5~̽ۦҤeWg` V=7VWCEEfׇ*0N" F1IP +ƹc>H 4KS "piIFP<` P<;! p 9hR8I?r)c9=|N]z) x=Y +G*4}vn>Gzģ7.Tg@E8` aG%5DpR`jw:yDRpyG 7qLwX'ѨLH.~ZliFLfL>T%x-YoGbq!w/şL~Z,zDy7%VDmbo +C"{ Q.^T~t*C 5-I%ΛC]Rugu{[C0:6" +qXZ.BC^o)~*ZyNJuE񳫢o8|,W2BQ^{XDxXwҫl(Ѿu||C.z:f;R{K]w!tJqw圻jTDWJxQ8@D-,搔_X; %+PX,G=W8{nwDqPX Ga':qb'3v@4 [!>, ǸʘJr^[ yŗ1|lߗےZ-9eL+aELL<,3l  +T FK1Mome=RrHDv⽩#>51D_M(qð7.p|#lG;KogƿfSb`w)3EEIՂvhbᔣFh4b4r*W%Fn宇Ir⻠=%*)IS[P(aȂ-ڿ,155'j2PՈQi^%64)@}<(QtWS'C ]Socv׃+ +U冴ĶV;|@gBExMZ2 +$PWּ S2&NN}#)}"C9Q#ڴ%=98 &+V'A?q+\(mRϼ]7ڊ:1Ta )qJ/lh/wfQnjI*SDlK(c%V=]v/CFM8Z?%4%>Ҕ(E'\S +i=0%2KkF;7.[Vt{㏇/u{^F_E<`i`M@=Ye2;5аPl]Ɵ%?H[fH^X 3ﱑo;z's#ߒǫ/!JewݫB AK H޿u_aXӤX!Ĉ%=}jӼ)]_="qN8>`) ])D)@veP5?s_`غY?濏`n, zcM~Řw0V0v<^g޽wG:qYROE"J~ +Pl .f<8Uxmp@U6SH"w@OW2+T 6=ДODG74#n="hw*g6ަ|rM$VSٔN75_BS>ڔ`]R3b]Ti%sP~žJ7UEJ7 %Ot흾~^w4Wa?׏C~R2Kݫ}v TrYw|JIH~K|_@@ /z׏M·׏Ÿ3ˏxO H@%KӔ^G6ߓPL_?Q#~|*ZyC"ž~Ԁ +†]O]z_?`Wdz +{ +ܑ #\;]}_]X_{{O_?~յO>88'p8lF2M`Ĺs͵kUc<+QL; '.-â*kT׆ LR:(jڳD)5y5V\^>eAQYy{ҦyN\n]ȤVNTLvQTrԳQ4)QWvVu }jeկbUO Qm.Kz|NeU> +l;ۚfŗWMz> yR]/JB90'j̈́9)bpX W@}Tc1\ zЅ["Eeox98?3r8s{z}A)Is ?$# +7V[BGA,d%ZCBRJ +wQɌzXMmnUޡm97 }(K âgp.Q* +o5r[!T{T[oF nk>kp1,v0VT^FB+#m}i /lj`|EasBJ-]L92>YfSki)f6x+`Fˌ(Xsr52&M 0ڂz蟀+{ϐgfU|@͚gț}Jfm##*!3%eHX %c?P)c+C Bc V?-`I;)Ѱ,'âd%Z ^Q3܀` x}@ZFVO]4bٴzt'kS mXƠh_O%,>ճbLKf> "I5c5 srٺ&OaPo`qO Yc$O-n~CĽk(H:䈃 "Bw/.X4cKɟoe-J׬Ucnm?57T<"C,Az* 6`o󱪴Eh75 8fSN hL&ZzX >ڻZA)ٓJlnHZ"2Rl+aT[)n/?@y$ c&!(o3 HMj?/aّxl&c3>"$l4  ++#@𘡫я]4e@l5VReL nmO]&}]6 P?F,E+}iفlg!f)9m*_[ @cɊTI/ AD2R2c'f8U 3Lqb}$ab_aSJUe,}i4-&u<5q.h&9NKn'U'Ov[J=~\'&-Xn"-k ~u@^Z A^9saUswH Py0'Y7p)Et-hQ㷤Eg<+lƵiGU."e^Џ3_ݜ(;wŸbP"8#]"EOZ g:ÏUHw}fYti qbZ>X`׵XaWEkI,nÆ`k;X j]nt5@Ax #, V/=A,2B"["@o  N'R$R㱮/ACcn p" _2/\DRh波-BRNߛ>[}X磟v,-йeZ|Pt#`lzt2G@yx͓݀1<%M ,UUG#MH|4}eN*6rY&iE<[r?{fM}Cb62NckfPgD Hqґ#cdfcdMȱn0nMi+ʤSo"C|,oN\g³P n(L"JQX[,i3l|z)=fDdWQbU4B7k_ftraGz+z+*̖d4Xdٴ=+th hľD٫$3ʾk"QBw 4>K[‹ vW4[@G`,.ۈݮ2uF:O {/HXnHF; Fsl+ +T+ +:`_8;H8G b}]#D7oI8CDcWuEBK`) =I108E+,-^܍N`$UstibQYoҒw:e`t ޟC,ms*ߞPk\Mxs0h~Pk46;2Dc+4ؼLcX3p1-K *ily~"] bBphw=ŘCFx#)cU{a؜_\Ɓ$XY>\~?mU0sDlr"QWxszrg)Ox)a,SPv!E2^^};7 YIpe7(c ["14MfKph3ەL.? ꫵXP3XTG=Zhr'auc%2L {4bIdZˤX I@e&aS Bݖk^] 7w0sbKVIRPdžPf]:/Vݨ,ܲF +u7 svҁAh_vM("XShlkeu9 4.7Zќ zҬt+yp#17RiaA#AKJF'z<ӢԲۍ+W: +\i>,+F4ƈQầ0AxIM5Sǡ>Ӷ,'Z6z9inE^*2w̙Ph݃<-0Ma]U+W{l7GeܯI/*c` ]q;Fǽ()qQl4p0Xx";ts xҐ{b] 5 *'\cߑKˡ8bi |L:RhV>ݎˁ cU @ $0©c]]QN)0x5͕Y#VD" ˆ^D(z;dn<6u̙%6\ul17;  %=0Nf"̒ɴ]S hPSiyU?9ux)PRi­“r!o*5&. f$AA0gJ4=ZDI2zۼ +-XS e ``'i5l`;%D*)؜t`f +׽F](mKMvuLVI1 +fT-TE  +4@ʐ`+-^ +,,mD.Kȫ2QOuo-h07l/"(bԦ4'GTB*M ¼8W mz=<8 2~KS|(,iS Γl2 q:@^EYqL`vo 톔lcr's& (4Qc6\̩bxL[dƾaNj Y+5G=gq +,Q'b3F +2T5Y|X(a5DN@ct7a=d<ܿeDoR; +t80m2CTII4@&3} *7_V`Fož`eFD"SԜІ9Lu9.%bh-:&uKFp%"eK  ׮ CkX ?'V;R(prPRq^g)mל:bג׋' z1{RtO(t0ϙ*梏urs**7ǩ7PtZp*>\Вˁ3^T/;0׏P܁+;oClϸ-\; +tJ!+ɮ\XEn@lq 9 +%MC1ʁ2Ts*I'oTtg F8305~ Ne1(I ;Fs62&-D/#ü HW^v"JnSZv]N@V?>n:LCN@cn7:%J^7%N@"^vxۋOgpޠLN ,GK?_ N,GIggNipҴ  +Xi9`|P29oN@|(uہҒ*:l:Z! Nȯ3pUil$PX'ut]말 w| t<:uGu33I57 +,Ò~pHR[&A^q3HUPK"|Td؞<ߝj1f0\ +әX|t/e2փ͗BZ4Obou*@+J B10Lp۰^L`/b.Jqeblo:ij ǦeXpl0-0w~])ĨIM.ht jbzQa/ZU%'Cal$biZ92LyxM6#/NaauP*Tfnሥ`f?OYikxXU-! +U|'eU\$| H܅SnLQJQ{GRГ2V;jT%J1E7BoKۣ8uAa#Ԫܪ*Al<lj;g~ȵ$[~?\""#"##~؆ZI ׯ4[/5-؏SO\"}a|5+ʳg`h]v~fyG~ ݀?*a&:li|j-&|t1My5i(T0 ą[\?H}Ҙ/N;bE{?)AZ%A({(A#[khg}| :M z7?`3|<'o\KaWDɼ6;%tӣ>؉fiS&{M9s(le*Oa?N½#Y-s;lxw)fy 6'ڥ":jnI\O*}"?fR㵃WnYp/6w/>s󷮿wjݸ~=+[\{aqC/ޚ++?ca:iYqx5cit5!e0bJ\UU/MR]RKA2!IbOv;eeN{c.5.蟘IHrgz=L<ǰIEJh xCeʼ085xSLƘyu/8L!?UљW~|鯉&ޫ{(;k{i +*҉+NOhāAKSe7loAS> Ǐȿvb LOHO~2Ns6kk4'iz1g"O e>gbE?:r>S.bNsx[Taڗh[fЎNP~YyETmBOFJ"U^n |r#8|b%'9?9ׂ~~&Y#9c[olvBOiRx r=z߄̸9bv楜b!;7wg]}C!UN'ǬXp*~;fk9 G+=AGe36 R0&x icb0Pfi#jU*\-I-DzE_;}1_{ cB=)mfmO/o86)ʇP$H.F BpRuvUXv"W!tg|1LVNݰco79~u\965vNܾw';Hy} ?B߼9'>.LTcO8:IW8{|}kJf^gٕېOrYo3mLV~z`%i]D?Flȼ|+ч3ONnDC?<xHduTI.xpb;'ֿ~'Xq񫎲Ҭ~١Rgr,u&UsKQKLsZtz>(Q~SMܟ^.gYٖjq oeFF8$řUT% xu>uDۆOPβ R~~ +^Kͭ׫ZuA.;g]Z7H mw$GDwmI&Pg;W"s,_7A]»M]vqBA]?wr]|O({D:B5wYT =خdDv-3OVnbSbghI%֜c8yI^lJ^|FÒKK]Z~}2 +5 {dMzۃ{~ޯ]ټ͛>`e]DtIXL%8Dl? {ۿ5?\fPq.ά.>?b<{F3~'6&K <7~4On̹x7_ߺ|ۿ8w;oaڅ+B.0X& Nzn/-~^ 9/LyTt ƦvudC?agw_o=c/o{rOwlq/{g\RPg>իt#eMڋAL)k_A@ (!K$(=pRkIkJn򟏒J0`ݽ#c_FAf]z CrTGgUOx̼yP1Y=TGwz|BŃ2w|9-/+ܦv\Ÿn)`q-&8i X1 k,"yaP y=GyyS6r@1 fu|*~AZ5˻,-io*΅&VGGMt=Ůց#6Fxfޞ"zMwf{t!~:(Yߜ}M龻+4OQw9:;q7NԽ_؛KK_V[Q!@>+Pbʪ$WǫgP +!c; ʶWqrá]:YAIF= yz3x>bicQV_hw_>Nn{wcP7LnYd^."׊CV$)Vn6ZV\:yItXҧfPD.^H>]ڵ4Po&@_d/Jzop>R뜭1䎟 +˻G&dbL+ +-X4 ӗ?7V!cD#Yzgl@d\N‡IxPO™< ՇۏNQul9OAL?yA ?: A7Q${>oNxXM -)k}/\<U161=0եVc}15ث&ibީ\;C30qThbҝ 5GS9[cy5}vVW7k/u8Ockǧy8u|[;>^6 DHpKLƚc(3qdK!b\t56Ij:0Elm6:t@#3ώ|^j43Uz=`zT/qQIefBO祈C0܇tAR'/B!"<Ĥ]W_ +9t]Ẵ1rUEo_|t5:ozʽC\G~> GAK#.Yp|}8W豤6?9~<TRF]$wS)-1K>ݔD/T$Zr,Q&z"CD腊DWyG>U+RAo9{U%GC= +duupKGo0GCb u$)~]ItɚW[Qw*Cǿ=8Y=N\Q穱Z +29rr8JUHH B^#ѱ4Jka_%}qT*ӽ*r uj8 %ҹ5+ɸ~Zjv ZB.ru틧b:\e *ĜRiɵGxQmӋqM] %NAA$$>hS !<{ +js׆&~}MP!NVܕ#xL񇽓[6(?޿ps9JU|a_/_Z/P|q0}y> ⟨]~atlB4QهL#}Iy=⼿l~s)џ|1}l'V0_*'9>=,p_`˃{7\8T:"etGaϦFؑC?@kTؓ?MMkx=DXw $ϟ?،OMH~!ϟY?h|y;a}Aa,{*kX{ TeL{@p0=y4Q@ G?('~ [X9on>{~JNo04YHzehl 8ˆd^s~t>j8* +29?sC}Ō}= q<'/wF.dx97zI7Y]%ۃgv}vV v~8'jh?{jWz+gWG칕Sԛ=MZC #y˷׾_7߾_{+^l}ǟ/?4+W50i-kE5+_Kޝ^Oʆqwn4v]]7팱ةn55d.ed[;+r~5Z %$~nk1.PmZi㭮;y59uxgL]i-5^FiWS#kMǍXO]zY`DL4N辡+~jś!gͶl(!D=FqTXO3ţyCiZ_:U/7,Z,̒ n(EQL10ڞ֥mσ0vkyZ-9fz"2֋071{ck:s^^j }Saq㲊e_9{"@  +,zJ1+vVH@nVKiPMGi@!?EBj,Ct$WK`3bAk?#4@4Y pH;K2BQ#t7K[0N*D5;ZLh YAO%~VT08gi!O9 FBY;+ݞP'uOj/&n0ӶCV~E9I ghݕӾU=!P+M{AR&}XWC4fpDe[N;3@oQ4xF%}~n6 "@D4ʇT逴bF,!$wJ̤Jii UMm)->-/WRhGJqKzM,W a$]-iW2Q=)J 'P yN ȫ!q|AAX)Z1_jeAzUoh2R'%ARCfru>I\/0_I^=eI%|Z/״/-mNH)cI +(}2aZ +M}%R $1CCQLHT[bE[Tf148&qD*Kkgj\NPʚ )r~,X7>stream +HUn@ +xl}^=E`=u8@ʲ;hoЋr# Ww|gZKdnd6M8U~FGdQn5KQ.XL)?h HuAr5- *G/է}#9.B ?9;vY'G981QR"F .ZN&U^sF:*|>O;F1y{ ,FVU14qlu8DLT0A*4:'Ⱦ C^\-h='޾0-yW_E )IZ~!C( =uQAr5ɷo)LK/n-] :~m45:Sansk)=Ҿx.Glhʁ-WO?wot= _ N endstream endobj 56 0 obj <> endobj 73 0 obj <> endobj 74 0 obj <>stream +H\{lSƏV̂z9i +u6cA -M4 `47`w-b5htc֭JWimLNeNZM;0l흝޷ӻw7]k4WpJΎUfvwGF|6x[<{#}C=<|g {|^`ݑ^~ aڰ֋aaJCǛ.p +$YM6XjTOuAT,CqdeNi +R cG*&[8LlY,J<8>qȋ bhDg ?pxz& =W/ ڋ\S[?}~%H:kIR*VNzYri.'"]`(s(}[ ~6P7> mBT v=B띧/W6\]rn +H22\;/hw{xA?y +'{4.h$s|@ y63\4K~9yumGJ$]Ix;>68?Q2' L's椴FrX<cri=ɆlFStVds( +.gy20=L,muX:ЧB\y2'3ISphI*'ԗ'+O+2\ O?헇T:s%\gc!7+!bEIԼ+&f(e +23y&R4%QcctE˫+JZ3U'rbjnN`gIdS>ʥxI' 2QN +kP(QR tAdUMQ)Q2˲9m'(" +Y^_FT@)P(w>Cd‘Mn)ǩ n@ЫvҸUj|׀gԼIFdž(޹ x*g,Ƣ+5~HY@w%22[*;5F $j'bV|C Q20w"0e&T Хr񮅦s9֡&@>>l$zz,otL /d c:׻}݋˒Bk / +߾N?X}iuYvU"ԫr _r ^?fZ6h +q/ +֮Ѧy~ܹz~ί{aBzs"k]k7~[&ײ]Ka'Wހj~ d=t?qn*X}oh=Kmmwpc m+S!xA `qvxku +}aŰ فVg#ZjubF~}Ѹ[U'уK&Vd٣$ÚzDE?ye+-gc1s6aTᯍ?{j]4;Tg'~Q-MXfef'Mk.G endstream endobj 54 0 obj <>stream +HUKn1 )taDR?n]EE`^}FJ +@#)ݟbx99DEgQW.!O6~#߶Rb/LRHJ9bKb,b!J[ w -n9pRE*y.BjxRSj1!&l;+K4{ԭ0f$ATaI̓ؾmhj3Z{Y(7# +2U [>ɒzX&%˲ FHXRg8]0j"#75vNA=w@ZB3 ݥΐ`grheH|Ʀp^ٗ>$%ܓ!-Lȉxٛ"+,@J8;pV F9e{1z`i<1vd(ubsA #uC*J=)<>.^@ՊҖHO-2DK=RO߃}Yw6c)yus$$p˓A@,t^|c2IRXC3K>`NW؛޲noKTT?`. endstream endobj 53 0 obj <>stream +HTTK1 @cm)zZ6 ,>NG]_~Nn_x{Sq-{~OqDf{g&g1/A1>9&|8j󐨃r~j[B,-jY⦤EsI=>&$SaNahP{`.TVkE7@f'77^v]K}+I>e0V8GڛD֩L%ԫ;v*EbUbzCj]M +AaFR^&_jk;qѸ7)ϹML˩z +>}}`U +_|Eg畩TtB4v2ΥFJw:AF22L;Ye6Rk.zc3E<>P>᫠C3@ﮗ`5-Lb:s.u9BRΞHpP| A<]q;Ҫo:wJև iMȊIf?-5-Kz> v';m c=nfWԐ dUFE%{̵ׁ 09* ~zU 0q endstream endobj 52 0 obj <>stream +HTVn7WbzmEÐ :]\+vE6=})/|x)婕Si5~qlKyuHm"'(2٥{q֤x–bEʉ̿_LSm>^$oUCrp8[uϩB(TX㌪}V GY:fC5W8~Dh.z3X8dHQd:f",ZJ.9'D<?cڰ7Z=zӄ#FHCH=#7ցCqs6̸ \ x"o]Ws#۶}Db^JHW&mWm=*0Fw.aC,HHg 58-7r?=@- +jQ:f5]A*etYۤZ,ʖl)IJs=;ݡ'|luC0Zdk&VF@ʠOIGC-B֑-a9ĆF7 Tw&1C~3u]ZWEsb-@~FVSIOլ#``>co3}t+Vˣ K,$>oe Hs8x*l4 j$n]!>NGsEotv`V7@z ttgD +:t̏Fu^,g=DuJcg +]-VAȎ2 aO(xJ8vBv(+^]w& +4hQy!ͽ#?F}4GL1gEnff _7yڭIz?]#Awuֽ(hdmt]seϞ[h{ȷD .8YTy)גԌy]$dk(w!b B=Q<_<>}/tA endstream endobj 51 0 obj <>stream +HLRN@ +}D蔂8! +Pډce)7kR^|W|u<>ngsRi}$;]aP^kbcTؐڧ|IւEGƃAQ( 0-"iO>Ŵdbi*s8, E;\iUeCtDiaQ*.h.`.j)P0mr>stream +H$;1 Db.[ j"g@Pp}ьƚ$#θ)dSR-*~&!7='5ȠK [ZQgFR R̰i,ޏ', endstream endobj 46 0 obj <>stream +H$;1 Db.[ j"g@Pp}ьƚ$#θ)dSR-*~&!7='5ȠK [ZQgFR R̰i,ޏ', endstream endobj 33 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 34 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 35 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 79.9995 80.0]/Type/Page>> endobj 36 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 37 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 79 0 obj <>stream +HUn@ +xl}^=E`=u8@ʲ;hoЋr# Ww|gZKdnd6M8U~FGdQn5KQ.XL)?h HuAr5- *G/է}#9.B ?9;vY'G981QR"F .ZN&U^sF:*|>O;F1y{ ,FVU14qlu8DLT0A*4:'Ⱦ C^\-h='޾0-yW_E )IZ~!C( =uQAr5ɷo)LK/n-] :~m45:Sansk)=Ҿx.Glhʁ-WO?wot= _ N endstream endobj 78 0 obj <>stream +HtVn$7 WZk&6C>`dx*jf3؞),~R>^ZK9./\^J}?msMF)/_M|OH 9{q֤-DbEʉkoϯG+3Oaeu}ޮ_EJÏoU烋UW<{F(TA0Y٫ƨa,jYNY/u:] _*+ӶsQtTy.ky +.Ҁ=L#Ū4/:Q^s\.@Xl{_uܯM)K 0mQQI Wi D i^36>stream +HUKn1 )taDR?n]EE`^}FJ +@#)ݟbx99DEgQW.!O6~#߶Rb/LRHJ9bKb,b!J[ w -n9pRE*y.BjxRSj1!&l;+K4{ԭ0f$ATaI̓ؾmhj3Z{Y(7# +2U [>ɒzX&%˲ FHXRg8]0j"#75vNA=w@ZB3 ݥΐ`grheH|Ʀp^ٗ>$%ܓ!-Lȉxٛ"+,@J8;pV F9e{1z`i<1vd(ubsA #uC*J=)<>.^@ՊҖHO-2DK=RO߃}Yw6c)yus$$p˓A@,t^|c2IRXC3K>`NW؛޲noKTT?`. endstream endobj 76 0 obj <>stream +HTTK1 @cm)zZ6 ,>NG]_~Nn_x{Sq-{~OqDf{g&g1/A1>9&|8j󐨃r~j[B,-jY⦤EsI=>&$SaNahP{`.TVkE7@f'77^v]K}+I>e0V8GڛD֩L%ԫ;v*EbUbzCj]M +AaFR^&_jk;qѸ7)ϹML˩z +>}}`U +_|Eg畩TtB4v2ΥFJw:AF22L;Ye6Rk.zc3E<>P>᫠C3@ﮗ`5-Lb:s.u9BRΞHpP| A<]q;Ҫo:wJև iMȊIf?-5-Kz> v';m c=nfWԐ dUFE%{̵ׁ 09* ~zU 0q endstream endobj 75 0 obj <>stream +HLRN@ +}D蔂8! +Pډce)7kR^|W|u<>ngsRi}$;]aP^kbcTؐڧ|IւEGƃAQ( 0-"iO>Ŵdbi*s8, E;\iUeCtDiaQ*.h.`.j)P0mr>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 29 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 30 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 31 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 32 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 84 0 obj <>stream +H10 =xQ֚3en,op|d HTTJ[Xn`utYBu歸)NC,WB*)s9)+ endstream endobj 83 0 obj <>stream +Hݎ1 )?I[ +jp } eU3}>ӻ紜_rz|NJ֎_s9}ӷW2I5I%6K?XXpr!wMOZ+9) N҇{UEulؕJ.1HU̱1:*&Hvju 5 lv%>stream +HtVn7WbfE# 8:SuV I3SfM=v)O.OV./Ƨ-<ۤr_ ݿގsK5"-?/wj|9Z{Kۗ}y~>) ?RE"_?\t ;e"*㌪CJT1l֘EV Ԩ͢T5 ^*+}MBh.zӶ.\XrXA: Oc&bUuy/lB<ӺƖڰ;~ n Y@&mߐD+@|h8JMlLl +36|e€Fg&A x"4;>,q˜yKK2IQPwSW*&SuJ1^]m^ :/!r~#3>x 4 7O6 endstream endobj 81 0 obj <>stream +HLRIn0 j!-]=EC`t94(I[N`[ L H2vNs09plٍ74B  O8nv # `~n@^;w=*a1B̌g,XR0- +Hެ2iigRJm+"VsWWO)jzgJ pewonv5aә*`:@!l^Fo<;p +/G{/ue endstream endobj 80 0 obj <>stream +HTTK1 @{8gKX=,8!=Xp}Iwzt۱˕}Gq"=|_#wlEϢV)DKHSnOx'P.E,qooaNF[$̩5G+m [)ncM8el6nQeA:8$Vq7Ut{?1"2R2ն`Sq` "N{gY}ut s?Φ DS@ȱL\8$̃m`HHM ISVzOsnzPt•uP.=yιתHG5;4W kB9_կ&]3$ҀǴ£>HN傫0>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 24 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.875 54.832]/Type/Page>> endobj 25 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 26 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 177.0 68.0]/Type/Page>> endobj 27 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 90 0 obj <>stream +HLRN@ +}DuS +>! +P{ iSoHפǻzK/L+*y>y6ۭmAZ~NW6zIւEG>Pδg~O1m6X_eԑųy( UeCTDiaQ*.3 +K&q +0D`t٥O#T23!b=^:6mX\fa쌱\{Vhű4Ap1Q(6c YK3q& hˡ &P9tvpN+k endstream endobj 88 0 obj <>stream +H\RN1 +|,x> endobj 91 0 obj <> endobj 92 0 obj <>stream +Hbd`ab`ddtr +r,LL ( JM/I,If!CG_~~?B L;g(ZZH0i`d``&MSR+KRs< +KRSsrF+!R,VH,H-RHJg(%&e+dixRS RmI/+)L-w ,HUPHIMcqf`11lgѽǛ@Re/s7ˏ:ؾ>*d/~+> 3[7c(1)g\3[׈>]rEg廞y.֊-GK +[ճ(Cn7{헾&6*[>swS zCz]~H-U$`\'?L~jVv[6:gqxyǩm7w2w3}.du7sHfb\'۬ _Q.E%?r]}@΁`=yi?ͦ]ڞiJ&gi;&. is\ endstream endobj 87 0 obj <>stream +HSN0++!!TD@hQ9 @מz3JƧqW'VZt1vu9EoI܉1a*yyX{l&L=fgh +o,˱MT" !YX^9(>X/S^c0h$'D&!;qǣlzrY%IR*U%ӯ_p1\(+9 +>́uƏ>/}x.\կaƿpnpo endstream endobj 86 0 obj <>stream +HLRAN0 @];NJAz+ąEZ8} T)$iaݨ\Po>stream +HUN0S^ +;ϖDI˂X$X$~c;Eƙ33g>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 61.9424 44.5244]/Type/Page>> endobj 19 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 44.7354 60.5557]/Type/Page>> endobj 20 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 65.834 63.9619]/Type/Page>> endobj 21 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 22 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 97 0 obj <>stream +HS[N0)dX;TPJ?>cGm%$.J><'ӄ~3 i0HPmi-uPN,z;̌ +mFg*!Dz.i+-]ʭn@io3 OkmBM"ۋ+Ȳou{gG#I')6QŽ8','9"d(XQu ,1eF\kZ9 F%xQ. JnG.Hm0S_ĪB έ`7b; endstream endobj 96 0 obj <>stream +HT=o0W>yWRԉV(:vHPJ@%~ u낒|~gΖSpy*kxoT,~]4rM"= Dh +$VFrNjx@TÀm$)є]P4ѲHPuݙ`3b͈' XT)c$Q;ͩ¸r8ENY^/O)7)JL袌R # Xܬ}۵R XrcbW%шRc)-A(,AOG4m&־׼yu[aV$ڀXը"hISְy-G;AOY@IG醪z}mv ,r[ +0 g endstream endobj 95 0 obj <>stream +Hn1 y&;WĩBG(3-;ӊRg'st)K-_|RTCbuH6J$A63]v4XWM4*y!=OI ASodw=`x1+cD @֋nEȅ92:5B:鴗n+o,Ѣ("2F=#a.XA;1oϮz^̸`y@`Nx߽ ^] endstream endobj 94 0 obj <>stream +HLRIn0 )Z)(ˡ @IzI` ʇ  yp Y +C\gK8L b2-% m֤WM+d@}2Ԝzg?{jBV~C,]3"&Dz ǒZ' LCU<#FG -$x< M@MC?{)ĭB$N 86ԺY"{|h=otB+W+C-7EࢾإT_Ru`v*tn宄v~bQP-F0>stream +HTTK1 @{b;- b@O#`)A#MRJ߾t{#}SxR⬉pOJۄo+{Ns1b7)DKP/gxI('d2֪x ~6eL[d[Y[sԻV8f!6س5q yTشV bq~~051]&XᴠH \sY-5e4\vũ5x3v1S܏&sTY.Rmp µVGwJOjnZU3|3CW#"!-Pm+|~Ƃl0O6?=>˧{@ p~ R4]hC=sL^0fC8.7XjLc*B̈8$̃m:=UiM ш)C+Rcn'&++2 <W<6s 0 endstream endobj 13 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 14 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 15 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 16 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page>> endobj 17 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.875 54.832]/Type/Page>> endobj 102 0 obj <>stream +HLRAN0 @];NJAz+ąEZ8} T)$iaݨ\Po>stream +Hݎ1 )?I[ +jp } eU3}>ӻ紜_rz|NJ֎_s9}ӷW2I5I%6K?XXpr!wMOZ+9) N҇{UEulؕJ.1HU̱1:*&Hvju 5 lv%>stream +HLRIn0 j!-]=EC`t94(I[N`[ L H2vNs09plٍ74B  O8nv # `~n@^;w=*a1B̌g,XR0- +Hެ2iigRJm+"VsWWO)jzgJ pewonv5aә*`:@!l^Fo<;p +/G{/ue endstream endobj 99 0 obj <>stream +HTTK1 @{8gKX=,8!=Xp}Iwzt۱˕}Gq"=|_#wlEϢV)DKHSnOx'P.E,qooaNF[$̩5G+m [)ncM8el6nQeA:8$Vq7Ut{?1"2R2ն`Sq` "N{gY}ut s?Φ DS@ȱL\8$̃m`HHM ISVzOsnzPt•uP.=yιתHG5;4W kB9_կ&]3$ҀǴ£>HN傫0>stream +HLRAN0 q8ɕ8-h@ pPۨSeoHה1{^mvdinqS*Ri}$;]ȼc4֧"pIHkKYBEg?}+t2~9 JQC+*j&:t-S-ʪ(M2<@PB9ݎiJ4t>3!x(bփIӬc1ˆ5J ,jXHFp؏jlV]?,bW5:s?M?,̚\DA{88_k endstream endobj 6 0 obj [5 0 R] endobj 103 0 obj <> endobj xref 0 104 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000053721 00000 n +0000000000 00000 f +0000058273 00000 n +0001024777 00000 n +0000053806 00000 n +0000053899 00000 n +0000053992 00000 n +0000054085 00000 n +0000054179 00000 n +0000054273 00000 n +0001020530 00000 n +0001020873 00000 n +0001021217 00000 n +0001021559 00000 n +0001021903 00000 n +0001016215 00000 n +0001016569 00000 n +0001016923 00000 n +0001017273 00000 n +0001017657 00000 n +0001011200 00000 n +0001011583 00000 n +0001011929 00000 n +0001012271 00000 n +0001012657 00000 n +0001006479 00000 n +0001006824 00000 n +0001007166 00000 n +0001007511 00000 n +0001007855 00000 n +0001001327 00000 n +0001001671 00000 n +0001002015 00000 n +0001002369 00000 n +0001002713 00000 n +0000054388 00000 n +0000054732 00000 n +0000055076 00000 n +0000055420 00000 n +0000055765 00000 n +0000056109 00000 n +0000056463 00000 n +0000056847 00000 n +0001001136 00000 n +0000448440 00000 n +0000058572 00000 n +0000058459 00000 n +0001000945 00000 n +0001000542 00000 n +0000999431 00000 n +0000998780 00000 n +0000998074 00000 n +0000995351 00000 n +0000995860 00000 n +0000057191 00000 n +0000058343 00000 n +0000058374 00000 n +0000058607 00000 n +0000448514 00000 n +0000448866 00000 n +0000449943 00000 n +0000457047 00000 n +0000470647 00000 n +0000536235 00000 n +0000601823 00000 n +0000667411 00000 n +0000732999 00000 n +0000798587 00000 n +0000864175 00000 n +0000929763 00000 n +0000996062 00000 n +0000996343 00000 n +0001006076 00000 n +0001005425 00000 n +0001004719 00000 n +0001003606 00000 n +0001003097 00000 n +0001010582 00000 n +0001010191 00000 n +0001009093 00000 n +0001008385 00000 n +0001008199 00000 n +0001015719 00000 n +0001015313 00000 n +0001014968 00000 n +0001013401 00000 n +0001013816 00000 n +0001013000 00000 n +0001013987 00000 n +0001014267 00000 n +0001019908 00000 n +0001019514 00000 n +0001018807 00000 n +0001018360 00000 n +0001017999 00000 n +0001024376 00000 n +0001023758 00000 n +0001023366 00000 n +0001022657 00000 n +0001022250 00000 n +0001024800 00000 n +trailer <]>> startxref 1024983 %%EOF \ No newline at end of file diff --git a/img/icons/star-icon.svg b/img/icons/star-icon.svg new file mode 100644 index 0000000000..8a22ad5d1d --- /dev/null +++ b/img/icons/star-icon.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/img/icons/star-simple.png b/img/icons/star-simple.png new file mode 100644 index 0000000000..36582bdf9c Binary files /dev/null and b/img/icons/star-simple.png differ diff --git a/img/icons/star-simple.svg b/img/icons/star-simple.svg new file mode 100644 index 0000000000..acbff6f1e5 --- /dev/null +++ b/img/icons/star-simple.svg @@ -0,0 +1,14 @@ + + + +]> + + + + + diff --git a/img/icons/trusted-icon.svg b/img/icons/trusted-icon.svg new file mode 100644 index 0000000000..700f275f8b --- /dev/null +++ b/img/icons/trusted-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightbox/add-button-icon.svg b/img/lightbox/add-button-icon.svg new file mode 100644 index 0000000000..0714e6be91 --- /dev/null +++ b/img/lightbox/add-button-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightbox/escape-lightbox-icon-over.svg b/img/lightbox/escape-lightbox-icon-over.svg new file mode 100644 index 0000000000..3120d0c32c --- /dev/null +++ b/img/lightbox/escape-lightbox-icon-over.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightbox/escape-lightbox-icon.svg b/img/lightbox/escape-lightbox-icon.svg new file mode 100644 index 0000000000..efae83a6c6 --- /dev/null +++ b/img/lightbox/escape-lightbox-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/nav/caret-down-subnav-icon.svg b/img/nav/caret-down-subnav-icon.svg new file mode 100644 index 0000000000..87e765aa59 --- /dev/null +++ b/img/nav/caret-down-subnav-icon.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/img/nav/caret-down-user-icon-over.svg b/img/nav/caret-down-user-icon-over.svg new file mode 100644 index 0000000000..642cfbcfed --- /dev/null +++ b/img/nav/caret-down-user-icon-over.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/img/nav/caret-down-user-icon.svg b/img/nav/caret-down-user-icon.svg new file mode 100644 index 0000000000..87e765aa59 --- /dev/null +++ b/img/nav/caret-down-user-icon.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/img/nav/docker-logo-loggedin.png b/img/nav/docker-logo-loggedin.png new file mode 100644 index 0000000000..8a3d58497b Binary files /dev/null and b/img/nav/docker-logo-loggedin.png differ diff --git a/img/nav/docker-logo-loggedin.svg b/img/nav/docker-logo-loggedin.svg new file mode 100644 index 0000000000..434a21741f --- /dev/null +++ b/img/nav/docker-logo-loggedin.svg @@ -0,0 +1,1985 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 +jnndp/P7r3uKgb32/mXbZqXC66jHeJ/Atl6nuo95X9N31/+rRatQ9uThsqwTc2D/v23+jeIIedQY +vcv4YqxKT++Yg81F1SDvo2ZpG99nkAMr/RtFB6BIfG1LNOPs76NexvsMLvN1tueo13V9dw+umEOT +q3vfnOrGBa+DII4Amcnr5y7jfWqX+VzGddRzwdcZ3DcH0YE515cb+aje633Lj/H1eI75Ottz1Ou6 +vrsHv8LSer8ckYq8LCj2L++3BcIHuAKvZxXGL2/Lte15A85BL1v9+qaOncs5DyhO8LLsY50ndv3o +uV+vEzz39r6Y/RSuqz62+vVt8Qn+ih893Dj82pePPsyv2wP/Ejqft7Hqcr/cSvqXbb4f45dAo8/g +a6BRj/FLoFGP7DrqZbzP4DJfZ3uOel3Xd/fgu4/+dXPOw74Och7N9XOX8T61y3wu4zrqO9DoM/ga +aNQr9CXQWL/enMv4ejzHfJ3tOep1Xd/dg7/7R1/cOePLfUXuFYr39+8/auf2PtNjfN3XYz534Drq +OwftM/iag36f2JWDHn0H6mP4x7FTvs0+iz7blwH1GF/D/zGfgfo66hnSrzO4h//vT+xXGRaON8zI +VP+6GLD15eEz2OWF5FkgLPl/X1YDDKKVHUX2CmPIq3174zZ+WQ3c2x4X/zrqMb7OYJvvs91HvS7r +6w34daLIcoXve3q89vPjx72/zvJaHdxXdJnP1V/Li3OfLlf8vqeX235te/z766jH+DqDbb7Pdh/1 +uqyvN+DXiiLbG75v63Hcz+8fD/860WuBcF/UZT434FphnFt1eeP3bb0892vb4+JfRz3G1xls8322 ++6jXZX29Ab9OFLlHmG2O9N33H+bXR80gV/4yADAg1ubXAQDBM3QFeo8qCLN9+fpo+vLxn+3O53wd +7xhfv73N93nuY95X9N3V/8qhgNdNPd/qdQrnq75O9hoW7gu7zOcmXMNK3Kzr8zs39fpO93bne76O +d4yv397m+zz3Me8r+u7qf81AwOuOns/0+v3zQV9neo0I91Vd5nMHrhEl7tT15Z07en2ie7vzKV/H +O8bXb2/zfZ77mPcVfXf1P/+Xhzf/xe9//ye/++2ffhuv0OZ/QXCzZrbPqt9qATsHgJnfwfoUFacf +808vc0YnrN6rzHGMX7Zeh/g9z+3XUJm+TvFRP+195nD9aJb/JuOw7emz2taez2KCRvbi+tH7s3CQ +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 +lqxm++DgZNDa7HWt6tYt3z8T9S5+F1J6Zp30D+zatTtfMvKRSovrUqN5Mh9tI3UunLT3rU6n92dZ ++jrtN4dD+3u1AcljS5M4Xu3CqXTz46qszFcpLGLOrvkMriVemeCWzQRHQvTum36r1b1rJ2frrqW4 +/aZ3912712kN7/Zbzbu9fr17ltdlZZsbo2tlm/sEPVZ+CV96A93qquaVgW5loFsZ6CKRYEr7x+p/ +t49OhmfcaRl3Cpe/8OGWl6ap1bEPcxm1ohqXZv3ZaqNZYweWrkuOndmi7cqOW0WXcAKUt9Qctxp2 +Qeg/+OvYLj1zWKMmK16Ca25eKue2uU1WvAT95ipb3eyu6arbpa6SIYfnw2Icb1kUcbsy5iybMceZ +bsiY4yw7aNNZGXN6K2PODLm0MuasjDkrY87KmLMy5qyMOctizLmMteqTeeBXlqldt/9aXtPUlTxe +fDUTc5xjs7+yX1x6FOUSp+con0NhwdNzlCdklZ5jwaI7Fz09x7xRjgu/dl7t1BxX8g6ZTnv4rN4+ +y422WkIX+RTCoi+hqwxXi7aEXpkMV+fa16yW0ctcRuddcZZlBV1ltrpSma3m7tZVVqtztONy23Bl +slqtP9rbPaw3e3+u7h16+XnkfbqCh/1LpyxbHfZfLAVhuQ/7l74OtFn6NloseuFDrDwhZ4jUmJC/ +FnyuLLpQ6x0cDFpDmBn9VnMucb1sUuApUvpZ7RHO37lXeLOwKJ1zMeb65emX1SZuwTdxQiXXyo7T +P9vNOYLjXOmLN/yn5Sk6bM0Tk+WLXzhNYau9SrH8IVvtCya1KrLSQ7G8nn8Zav48lJRX9P9amT8u +eaeQr8wfy7nxWW7zh7kq5o/yhKzMH0uwQ142KbAyf6zMH4sk11fmj5X5Y6nMH7CxHtbnCHpabauX +2oN90K83hvXOk167fAg8VS7JGX7TRcdW1kpn+dmvD1rb/dZ/T1rdRnnteqzWJZyF3x22h40zzI/x +fhVKv2h35sipMVLn4u2WpeNjuydHT+0ofjcHaXGVC6esMZ/RsqQqcBlCtvHpAvMWtk9W+ZcmF8xV +/qW7l5t/aZWFyE/OJclClNRK36sz7JVXt3qXQMocGtSy51NapVMq31WXmU7pItMPLe7W5qDfOyq/ +MmPhZcmm9EksSS9O+vsnHSvFltbUuMoDswSH7+bY/y2JKfgcp9NWZthTbR9XLgptDoqWKAotrBh7 +ZxybX5nMe6eZzC9aiSo9GBc7Dq08HVc2Cm1YUmlbNgdGsvJg9Jbbg1E6GGrZHBgw5RbAXL7aA672 +gMu6B5xnCq12gXO1Y7ULXO0CL5Cm0V1gaaVttQtc7QJXu8CPxoKrG8hWOqPEahu4mNvA0h242gau +toGrbeBqG7jaBq62gfGmKbty28A5KFqibeBPvV7zTb9eXlKt9oCXvwesiquyC5yHkiu7D5zr3PaC +n664knddlN4NrTJsLNaOaLkzbKwSjJ5GyGVk2OiVyNWwPLJ6lS9kGWXaR8sXctHW7o7datD95Xf2 +O/XG27sVAvWO64328P2dOczGg+H7TnkzuCt98THT89zVvujCYi5ilm1ObcNAXL4p9SF5dFa200u5 +ThczgG5+toJhpUYsisj7HO43dPekbva6eHl7+b3FeL2LP7NbWhM66R/UG63dRn0ehWik0sWb0ueb +U/PRNlLnwkn783COdA0dMPvb36slRGhE4Xi1Cydy3uuHF3wBu0rb4Dm75jPICyPS0rK0/nf76GQO +V6Qvf+HdnJfOM9Xq2Ie5zNFRjQunC0Xbp8s0dUmq1lYb1YideZzCnyhbwBbJhx23hCyh7ld65PMN +vw/+Ou51W3Nof5MVF1dD4rbOreJOVlzpuCtF8DPWnM5xIfhKe1ppTwunPa2Up0+mPO06EbG82tMq +ynp5PAXzr0erJXZlVf+AU1tl++RteYHw9jLkQXlCzkh/FBOSLjQhZwROxISoRd7Ovj2jZEyIuARC +5rV8L/zaWe+3h4dHrTkuz1imNfRKBiN32sNn9fZZpp7VErrIjulFX0LLE7JaQheNkAVfQs+1r1kt +o5e5jM674qxW0Kuzgi6PqXp1qeQCa0afXIQsT5d8unYs37C4qhmQVolwx6hcvgxIV/cqv3M5gRZb +oyub+Wh5dbplzu10VLeoSqfjWAb5LiqJ+2/aNw8pSzJ+Ky89uPgSTLNFFxwPbdXB2XFlyys38KjZ +4xITcBEFxxVcqa50KpHP4dzccqcUqZbelyx6TpHqlUkqciEmqwum6elnc452WdNxnL+HFt8dczUj +AufWVRddSICfAgbgiyuck3mJoxnO0z2LPuRE+YuIl1EBj7us9DHKZZtSy62BX0kp/vqg1d9u9xfB +irIo/Tys75fv42WwecpKaY8I0v5qPqPmSJ3LSwR20m08Xz6hcuUGW01XksrnMdwerobb5Q838bkI +t41LDlTB/RBkVXjRr3cHB+Vvu1ic0X/OUwUro8llGE3Oo50ug8ZNg3BBdO6V5WS0gzAab73TWYCu +WRSWnG/MrsJAz9GOy23Dea6wurb+SCR7D7pNf5UVgDKA7D3pdZ9ZFJjnpkrgjdabdjf+Ye3JMeJQ +9NPu+6P9Xmft+nqzWdmuv+v1QYisJZV1+/f1n2sn9r+k8nQtqeWFtrvamlBGaYrZqYk80UbZL7lO +MmPsF2NyqbPK6/paiPF5/d4+/GC//GFBf1ZEUnlc+fW3pNKENzxfqyY1pXJpiooUNZOprHK0VhV5 +TRSJsoVrIhOqUpWqlhWpqUBpKYx9R1VmUDGtVItaLozIK5trASZkLTeJruysQVWdFbaqTGpJogr8 +IrMMvqS1xOQWvdC1NJcpQtK8EJUGtiHTDuaQZjUjc0kQ21SECKWyAIF6Sa0wUkWlippUeQLvkzUp +KlWLJjHwfmFqQqgUWu65UBWiZl+b26arWiHyLBTbWTO1FBASHvuipEjS8CKhLF3xmxtrFlSk8E5f +JrO9ZWSgypKp8kLGpIvCfgNmM3/sp8m1DiyE7shSGfi8ueZB3B07CFIF9lCWi0xitQ== + + + NMsRkCg7YgAgoW8K2xhgGuIpEgPvqqVJliOeolYUKo9BKYy11KKGzjW6qKSilurC0q4tU/LcAIDb +k0opoYkeZFtdmFQRHjt4iWUIArZIBBTUDXZoiAw6zxZNU9trlj92dIoiR5BKbQ/BMMhyTYCRnmBA +Y822K8nTLIBSywuh4U0aejWrRGPAdnAuUhwYyrZHGS4F9BVJkhYBTxiE4WUweJHBUSnbACF0aDQM +q8SOqogwmCupkFmgvgo8y2UWGFRNZZhjCLGN9DBmtp13tmZuWSBqMskTQpDbvgLeiAJ448nlNtrO +t4WzTFeksXXziqrlytgBJHM7YyzDczshVJZV7DRPUiVtBQ+xNCQpvNe2106KNILY+SiKQkoAGWHR +wfSXgNaOmTRuCEugzbWDtZdrKLyaa3nl+o3K65/Wru1NE1UWek5hZWtOEVcAPZ/AopacR2RBzfMI +rZgjkdi6tjcpuK7tzS26ru2dS3jZaucRX9f2pggwAs4twrDauBCzwEkxdm3vXILMVpsUZYhrfmFm ++XUecXZt75wCzQ6ac4k0Gt7nEGo0o84j1mzNKYINoOcQbbb/5xVu1/YmxZvtrgkBd23vPCLu2l7X +aq/X17u9bqWQOco4p+zZ6kWRFpbVwgdrW50OkVmm2fGSmwKkH0NslxYqxdlv5YCdUWIaiOvtoDpp +B0s6DQSTvEChwfUmIcgzjbqBa8EkJNTCToTumYCE14/TtjN9CZhkQYBFFNtemmRDAIaXQNdNsCIC +hiaH2tNggfzQnmmwuO4kWwIsbswka6Khg3x5aSF20zgc2Rtf28vc3sjuNtJndovZ6nef2z3HYNhH +n/8Lt02yb5gsCAll+8NQJKnc3uj1OqNlumAqfnjSbtK+FUWZnaVFRdkpllv5qzI735FCqSRtW24/ +b9U7FORtK4zgK3Y7bcqCavdJD/vt5o+t94TXbrv21goeBX4HRnunKbupjZPhsNfd672z27t4M/X1 +ieXblptkMzZIanR/lFTerFmJkSQC1liYcwa/wM7Gf7NiRtLvVVopZGJgTYIHTQpahZQyWcEfARtV +gpW/AAlt2SRABcPPHX4nfoeSdtWw37l+VkGMVqfGN+ys8WsLuzt0xaE5UctBqUos8amwFY/gw3ZS +ZldzK5TzDBbzhIvbb9SQxJHpvkBBDS2wLU4kSHHEkcOig2iBUkENwi/wayZ1xVe1ik6F+OZeUUXU +vpkJbTewPfDESOAVhHmTCNhZ29iHOfCyCzv0ZuVNv95st+wgTm9gp1YL6GARnXYRlY03sM9L4A8o +NbY1OWyaEWBfZ4SV1EZY3r4+GimYTS0obfM2GiUxbpTBKCzRFiN008bG2tcv7Yi3y0kWhmnEpqOY +ee5Ldeq3mPMjfcL8rDqGjnTnRF/TKNgMw2Hyk8dOZy0aUmGcuRHCAyTu2rjLIyIbszpZlu5kW8hq +eiOczqBL1Hgnp1MLSqucjnXybIwbZTAKqxCHTr4AyS1KSW5VyS33rLZ7cUJ6s99qtoeVzXq/OVNI +fzKzl8xxvtoec99oqsgCN36SRLdgAD7kTpDDVitFlZ+e7IPV1dwj7lvwi0fmvgBS+y4JmiV9oqjj +36IqhIZke8A+8mbXIPeFsUTtd1Sx0Ldrsi1+hJ/azjWrbkj3KQoobP/dRF7YL8CK8GM1qlMlPFCy +iNs28YRtO3DFqNFH7iknVuPmwSHlL/i2HD+RR1VsTPxzXM9h21yLXrIz8kpoghWjC6QeWc2oYvcO +QlzcNNuqD1vb7VanOakO0RTLrEjCSaZSoax+GX1JdKasdmvLJHaHOu0Lzjk7A8vNOo2qRzWn9cZ2 +MAwGzR8aO8wi01mawwTPZK4yf1bVasZWJbdSoKZTLbPJ+W73cIBdV3CIaVpmcv6gEWm1uzVYfakZ ++GL4BK068x/5bPUiO3XlsT/AypVVwjJgBb6A5SGBBSeB/Ug2owT8YleGU3FsnI5DF9HagvQcefLg +UxF9KlB7Li1qdhNtA84iMz2LTCDiDDJNROYJUgaaeRUsEkApqKOOYv4Us2nNi0CsmkqsgSEBn0In +8HrtiASVKv7BaEfZZIWNqRXyuL/sL5KokEREQm13H/J0Cqz8zeYnItJXRDpaoEhOI+aUiuNEZURU +RkS5DnEfpwxBJCr9MJLyMZLSsiTlp5GUuuEm3HATbpil4fMjDbdcx8NNj8KNmqCGy29MKz9OhCQa +JJGQUMvdx8cbbKMkRBOAaJicMaM0jFcYJ4LclTS4RMWx3318rMEVkTB92GOBKfMlIuWUiiMkJTS2 +JA0hSSMq8R8fa1ypuFPUKNyISUJU3Cdj5cfaL7H5qN3iaErcvx9xSKkZs0LNmBVqxqyY0nq0quLI +kRXiOf370caSmjUd1IzpoGZNh4nWo/w5WnPiJ/MfaHGlj48xdsQM7osZ3BczuC8m2w9jJ8ORkuGo +Sd2/H3HsiBkjX8wY+WLGyJ/S+gxbTzok8Zz+/Whj55Nx/qXfUPjNd1IrpBTCuyDAsyIy2INbtVtg +5Ijyalc8U7wKJkidt9hwlTnidYVXGcEfkjdqorJ+jK9WFa/UwxbCRapo1u9jxd6p+zP4q0/X18ek +stCjumZCY2JcqUC1dErRQpNqWw7ruMYxC2tuLtZeVG4rC1q8SPiftEZWyovZ0PZ7x83en1PM+2g7 +SmAQzWHlF2zlR1NnBt6hDL3URxOQHQ+p5jWFXyKQQa+tQnNnptFFrVx1V4IBm2vgXabYgsIj8tZQ +D4OwAFssC7gDJA+4GBaaeRrIo+LXFa6MbxMDMLwDX1J4NEwcQ5h6xjrOMjBATR2y10Fo60QX+Y0Q +p7exsd5onBw97w39qVQ3PlCMcAON7yFgTJIVuQdZ3lEZXcvxBw8ILfKgqBcDDCoidwix/eI6w3eZ +8azPQ98zIqgnqcuU40zB9QGxGR9Bm2tmYpgxhIlgpExl7rnuaRrnTbmtPfxFQSzy1IhanuYggdIi +yZ2AFNihQSr5LxIt2hkZ662UkkgOykoIBoHoklmVUlXLRWKiWiA0533TRok36bGXOCn6MQbk1zNE +8UiAcuX2k97weavR6zdtF5B0ncnwceG5uf7ooeu0Fwe9/hFnxsImWNna7O239tYfFXu2EbvD953W +Xng1lZp7jgnwtttxI89hErJ8ZT/9uN9qfIAfrU3MgjDm/TwZm0cTcy2WomH+TYVNTubx6T4hEs4Q +E5FgPQXkhdCEmBqfrlNn8Pg0D9KFIZOCYlz8lvGgnS0F9Ky5iXpKVvDcTCMpIGbOTayUai8F0kgK +zPmmjRJv0nr0JadJgSs7fU93mY5M37AbAP+bMuAbyFMBnrbc7gHQIpuZNBfwQ/g76X7DTQJPIuEm +kd2g8kwWfl4loEJiuc6UKjuzlQjX1UkpDi2Ot7Vm7KAU/iMBv4b7uDA9ervdORpTn70KfYrmPO7T +AdVZpBBSaUmB9RgdjXbnU5MGIqgcaCeA4AvGWO74ilNAoeIBqvMQGJgUBjU6mUt0JDEIxJ4SWFvU +DATmTkK42kzFSLkZoqbOEGlq4HWGWEZBIS15TacGI1/sCyAkFTbVtg8TDXEDtmWJRG+IgkZC+Gua +1VKp5NSqMoFZkUpbFSJQM4oSgPBaAy7erKakzma91X4tMogtKPJakkoJUlHXdC4KXLwykSZmetUM +EUs0X8ISAjVLtVcoK75zCnywxSVa1rd95EoQIbPUpMf1wVv85vebm5328XEbriod2YZutQcwfZoE +fv2N/efE/sXTNXYIt+7wAw7u5/UBHsnZs2+34vAhivTWuzYegn1fef3EAn71/VpFuwnabn8Dt3sK +JsvXh7PLAIjK0f8mGiiqgmYLaM41bMtWfVi/Y+eL1GuvH/1///PBf/7f/8388//g99k//9//Xczv +Mxq++n31+/8swvg8/fez5teH/QGxYNdjEAogx75nsWVhXmg9mS4sI6WiqGyf/P33+wqIz2jZv7YH +ctYv/nuvb5Le0B+OqSU77e5blqVexD7qvmv1hwy+i+/ZG3sDyTgJQvUsfWAkZvvluCYxFtENsvzr +E2zi+jE26in++wZAE2oFnEKYUCwiYKRHhOpTgXH1A0QxoV5EwKBOUMz3qIoRYEHJuLZn1Qygal5F +w6qZ51Y1rGZ5fmUDjjucW92A8yjnVThKtnqqynFtbxuHC+7n0CYzS+HgQ9VWNVh/VFk/GfYqNO/a +f7fC7mFid/Z0f9Dqv2s196yevUeFBtG0CCc4CneCIxihEx/FmKQaNjT2i8wSk0dfwM+iIMB2/HOu +M7wCNmhw3sl+kbIgp3gESyCyzn6ahAa4UQajbQX9woBN0qiTVAXYDsKkUCquKGu2c0yEOwJgAwiV +g8magI7bGYWlGg3ajNx+yZQmXNQEhgAu4d+DILJnEzmhoqfYI48g2ITNKbyiDYZzGlQ1RL/lKlQ5 +GoURYrC3iCx+ua4ZPOIUNdpO4yI3ZqTVYL/ITUxuURNa6zRCHkO41QHmWz0Cc/3okPuO8k2Iuphb +GvWwJ8dXDCQ73DGAe3iCVxjzqezvKhcjHIxhRKSy4ldlacQIBfJA6REWZrXMFDG7dtbwJGSiI7Za +SKGTuN8jADPQgwL/IhCS6BF7LvjXR+zzzYz454nxNQPBDnkMYP5NcAr5B0MdTrPF/IthbmjXhOGZ +5Ia/bYRRo/MGpptdGEf4J+F0rI6GqoVotGQF7DGEORhggYUxDMn0yD0nfBNiKcNNjaUMExSkjCea +pUwE8FJmnFvAQxkxx7EwBiGNVsoIk0VsEP6EreefFTF2NRoVPAmcpBzhKUSmytREU3gE4vgXwTz/ +RmBAYkDOXAhNCPzzLQ3s89QwKNBLmONnx7sJLgHr7AJc5KOsi0FIXmYxZDGnMvsKlY9IP7tEp4nU +MefSGmgeEePSWq6sChUQxwDHtgDyXItBQJrHy7T7dweW+RYGlnkqGBToJLzxs2PZBHeAZcZKBJmN +LBkxCCkzkahE2o1FCb79iGW6JlOdxhzTVk/Q8VKY14zV1rKANwY4jgWQ51gMAso8XiadXx0Y5tsX +GOZpYFCgktDGz45hE7zB1VbQkduIYTEICRMiLN00PYXVHM3I8iBg/qgRjsGb01gIQtPwmLRHHAEc +xwLIcywGAWkeL9Pu3x1NS25hYJmnwlfzdDq80bNj2QR3aFVwagtmOTA61vAKqzIapwegSlTUrF5g +goLHz5F+x6BIvQu1nJIW8DoAvztS7nCDlOtYtxOSt10Osf1U2i04+HIGBMWOIZFeF2ox5R5vAOC7 +Nye5gyxj9SRiGYM8aaz5eOKddhSxjHWoiGWsaPlarIp5vAyIWOZBgWURiEhjxJ54fnnEMtfCiGVM +hK/lKWe8EYBZNs6dEd0tYhmDPGms7HjiWSOKeMaKU8Qz1q58Nad+ebzuOeIYQwLDAoToYqSecn5x +xC9uXsQwJsFX83Qz4gjADBvnzYiyFk9LBwrTx62zYYI59SdiGGtJEcNYlfLVWNnyiA== + + + GRCxzIMCzyIQ0caIPfX88nheuibGE9ORESYm0+4nZgD4iTnGn1g7CzyTnkNEGWszTDorPIFhXi0K +DPO6E4O8dsVoPSAwLIA8w2IQ0uURM+X+5YFh3MLAL6aBITKwD7FGz45Z43yJ1bHAK4YwUazGMNWs +6QResToUWMUaE0NYo2Kc/Bz45CGeTREE6WGcTC+/NfCIWxZ4xG1niKfW4YyeHY/G+RHrX4FHDGF6 +jBf7RC8rN4FHTgEKLGIViSGsQjFKfg4s8hDPogiC5DBOJte9NHCI2xU4ZILgRoin1aGMnh2HxrkR +K1yBQwxhclhR8TPO6TKBQ6zwBBaxTuTrOJ3J43TPgUUe4lkUQcgs63AyvfzWaKa5lgUecdt9HaaW +cYZnx6Nxfpx+UPSDfZUJmbY/mssyBRtoUfkNjsCmyXSXpS8DICpH/5ZwWdrO+1CPpfOq8P//F54/ +9Mf/Gf2fv63+rP74P1PG0P98nNE3+8fz/ln5Baf6BdEnOM2xMQYt7dpw3rwx5wZBz+HeoIrjDo4x +6BwuDqg54eQgWs/j5pjGO0ocBf3LPivjmO18r+AAsRWnuEDGoOWdILbiFDeIhZ7TEYI1J1whY9Dy +zhCka9wdgsDzOESm8W4206c5Ssagc7hKbM0pzhKEnsNdgvXGHSajwPIuEyRqwmmC0PO4TaZx7hQu +T3GnjEHncKhAMsNJlwpCz+VUwZoTbpUxaHnHChI24VpB6HmcK9O4N5vTU5wuo8DSbhdIwDfpeMG0 +fOdyvUDNSefLGLS8+wVyQE44YIDU+V0wU7g2m8FTXDOjwNLOGYhAnnDPwKG+czhooNqEi2YUWNZJ +A9RMuGkAOL+jZgq3ZjN2igNnFFjahQNhMONOHEzVOr8bB8JxJhw5o8CSrhygZcKZA8D53TlTeHWK +VjHp5hkFlnb02GqTrh4Ezu/swWrj7p5RYFmHD1Iz7vJB4NxOnyncOm1Nm3AGRcA53EGRThzMOpFK +PI9LKFJ9g3lnFFjaLRSU4WDliXRhMYdraAq3TmHspMsoAs7hNIrU3hHGnsdxFCm3I4w9j/Mo6Lsj +jD2PA2kKt0rouiOMPY9rKdJzRzg7v3spqLMjbD2HiylScEfYeh430xRelVBuRwXBORxQkWI7wtbz +OKEi9XWEs+dxREUa7agoOIczagq/ztZmY87O76aKNNmYredyVUX6aszWc7mrggobc3V+l9Ukn85W +X2OOzu/MCqprzND5HVpBQ42ZOb9TK+isMSfnd2xN8udsfTXm5PwuL6+rxoyc3+0VVNKYkXO7voKS +GvNxfvfXJHfOVlBjPs7vGAvKaczI+Z1jQQeNGTm/gyxopTEn53eSTfJnNidnZkP41FH35rRDhvOe +iP2+d9QaT0U8Fsn/qfIRp6qmU7zmJRUFZsuVVrKmcDMJXsOSYUgBg+DWEpVCrl2RzgbBXRNJjimX +8Jg0nbCwwDTFgA56J9r/UikkBQcXNWnJqGApymosrcIjSWtIQDGJYYgNjsAgoDCTAKyV4CFuxB1h +HqcZY0MSqgaXJyAbOJWCA+yshdwKvoXGJSmfAvLVqojZpFMgoHAlCo+hezYJu3fTBaYfdi0Kpcba +uHBZhuFuIiv/MpzJoqJ0TWeQyiGDa4GKiztg/qzebXX2Nju9QYsuZHg6mbBp3jsZfLamHLsKTBp2 +kIChvkKJXgsXEEcXMRX4PzzibTNwOglD8ShFMCbooF+4BpbA1EcVysBBb6FgXCprtZNK+A74CkoZ +HL0pemPUUM7GbTCRmbGlBG4a4FNBNg8LN9A++EAyGF4NhasG30l53nbwE36SdJMPVaAfqwbpqBps +vP8lqmCIH+a0FGqlL1QQlHk8TmCWYY7PdDzXvphaEG5KGsueNhvjRhmMcAnWxIUKOgwx5A1lSB7h +dxUZHtjq2FQlPoUP3yVRR430YPxvKBMqUlcSPtef0Xuj5rjO/NDrECCvrUxG+QQZWIwcT3JXTC0o +EzHeRbMxbpTBKPJ8ah5CSgX4welHZM3guVAru0GRdPGsSoItlH/DEEkjC7wsiDZKcPcjfbO/pLav +MJ5vFNWpSUm0yexCVCopSZUR8guO/KumtGdKq0OhCVSntFHCuU9RqA9JnCIufG2DlOAi5X/UR0s7 +uDCL96cisMxy3Tt+eXzKzUnzJlb02WFSzEYFNhrM/kOZLlGRSsNX6b9WoxLV1NS0u1lJQabJqr8+ +iR4pMhu+YqwzfgvXL2FlvJUJUOIlSPxtxzeLHmxRuFbJPozgcKg31/h1O2tRO0DhdRWhiTGhvNYD +A6ppgViO3Dd3QRJ+DdfxQApFf1EPsQAvSZLuq2MSXetDZCSORVgR6wFOw8qHey00xbfAl4AbeTBr +I13Tw8xIPI8S7qHwjZrhG7cTdW1CTBT+5iZPHTSFyd7khnyc+5uMvxwAVmkBe45ZNzhNLTr9DqeZ +WCdvcZpedNo9TpHaETPtKOZmxOPA+NAZUR8FXjOruUu5y8NAG+uJuI+ihny4cgE3I42t8DKvTd62 +BEnN8WqHqYWlMBNZdE/FvFEW8+jNS2GKHa2Nzb2xeemHbtWP3fF5Fs9A112b0WyNpnA16u4ZDBcf +cLmVSqcwXNB9mzMKW5VqKsNnYt4oi3mU4R+kzEmD3QrThToYxrWg0SvhwjHD0AOfRdrxDP5zt9TI +CKHyvT911uHv4Rv9fBB6Eu/e9NXESE+P9/nB4iSeS2uFVnkll3DXl7pA3cJqmMPTFYpPZ1oDsVBL +Mrjy92iN0pvkAm7DlUUtTQTuuHQC133CnVP8Ha9Cz3MdIDseAkZT8LBEEFC97SCGjLRwKyze/AxW +FzdMcrJ3b/KwsVqDzsF2ZGpJkZFdrsg1GdywyASAcexQ3tuRt1TH21Edb+rmWnWSnmpMMFn/RhlS +jdlVjTnZoNvP7E4jwy0wXFqW1VKtKj/T/WeG7uT1OCFLJ0bB5fx101HmHpnQQPi0R1844EHLYvyO +6PWhWXSfGrc3JuWdU9Usg3WG8TxWuUvzFA8SJQpjqRxkx0OkJtv4zmQ1Orfli2HrjzwEu5EOB2vf +rdFz1B0zAIxzZ+ItKP6gTHhtdeSZcQjILCr8S8ceY3RwJVyODHQizz257tBQ0ZmOpz370tWACB9q +mUoLhlTBLgzmSbyrWocuw4daJpUSIOXHHzJuSqg+hjm8dXPRzLR4GZyyrM4ENd+kF2icfb67OyKP +3ar5KQUxXOhl5xsatorUuMQwBLLTVcHKZIWNTjP0kxn0SYA1rBDoyiVAAxPlK5GHIoXz0nokDOAX +NdY8yOKnG8UdEmiAESK8hwGNNd8WX4Zb65GMU9SYZXC5/frxzstHW5U7leuNdr/Rae2lezcqeKTC +9pQtb38cOVVhe8PKJyPQpZtrleINGkktBfNn7mHo21ESZZ2GC84TdLmoBHRXVTOFBBmc2s4E13KK +nQrXuVfhtwT2D7YsXv6OJKSgxylRKIoozDP4KYH5kwlJh9gJBsJT5zk5g2xbhEGLWgGRBhX41BqM +ZzmuTuOEbE6QBpKmgKvTjYzItRPXdmgWlbKyMi8SGIgmx96qQqZxCoy2v+k8xTioXIHDrAoTH6yM +1G6CwTigi+SFFZ55isNHc9ABrZ32lxRvWh5t0OZEEy9ItyspUDCpW0XZ9VKDWVBAL6AhqSgyc3GS +ZbdV7zcOp2QW/sTSxS5dMMWBYCVc2iRj19YCneNFluaod6ETD2IQMdDZLq5KkPdbiIyEi1AqgVDn +pJBaQ0JqbccxbGZgoMO9onZgFXlSAIBsP7DmQO47O7/sMooyyn4Vdl5C2noIFwM0km6Vt/NUSTdf +dJqAG8C9EioV4Li3uxk7MlHJsi3VBWz6NWQ4xOZAssOMbmXViaD8hoW25MHNqDlGekPkmUSA5Qjh +GeNOB4fuxKGsIjqeNSVTI51mfUohTPN1JERfTfQQAOfvI4yuHO8lCmOct59srcmewli1+fuKgl3H +esslp5y3v6ZwC3DB6vIS+wA759pe6J4P6BZLghVqEEStlY95hQ2GqMDuocj8IZc0I8cUhURy6s08 +hdvpUTNWDjiKchbsADeuTMHLKK5Du2yKX39qsZHVBDr6gd0SPIuw7GRZIiOQ1dFSvCVCwI0MeB+O +LHDpgGubrD4KR8phJ6ZoA5ZB9JHdkqQJbq+SAtzwFhkEY9gFK1NSGaoic7tcKrjPmKLXYSBpdNPD +qQY78KLnTUzbAGsuQ2TNaroF9EeOQ9GuWxo6yzZbSuFSqEC0j7LvgMmFt2cUGe0Z7FCTAicFrdIQ +LpxZPJTrxLISDWJ2qGYwRDFyPcEIfMeVCc5trm3jdj78kFKs8ZFda2378gCxb7fYCn+lNex3ayrP +ceuZq9zlW7Edi4fM6GZpCxHC5FjbnWKy01/BL3YMKAMzCFOOFAZmqt0qWM06hx+xmrTTHgWLdMoa +3DOQFugUsGMpy8C3lyq79NtPgQLEqndCyNR3BT+DJpAYOyg8BEZ1nkOXJKkEp0MK4TgYNEO3LNnu +VqCDgMkMdleU+F8VoK7mNZWllNLWCiLSTTEyxVZCPx3F8mcULkZ14IUJHtqwrBd41RgFckEGCGEV +Y5cMlwKAoIeEIlBOwg4EjQg9MtFpm5P9eHqkC/g9bUcJyIRawqeo8F63seVnUVQpq+CDnmd3Z2lh +h5KCoPCMTAkyu8DLu3cPe5hnorJZ70+xn31y05moUYghmHqdLSERdMlXItmakIho2y81BZUJMOsm +6FqDhhUAoX0FhIgJ2PQnsCpDJD1ADBrB0I4O496DYFmhnDUWojHawL7L9oUs3DOsJ1YXty9OsQYA +XLIzahxDdiJITpehOZDALMsFbAjI2FNkkmzb7qhlWvPGbqgGvgBkjYeAZd9OLQMGNYZBNmMJ8RsW +c5EiQgbgLTeobnqQbREIkIAGDM+Ehl7Fz2TJIzKUf7sDgSXHPdLRI8XHUa1kwkUmh21BilQCTbik +FcRxnfGjZbdrhgO4ZtoJYPc9uX9M8aWNNX62b4cTKL4yjZyRYbRJGaAKmaLcTkiVgCgcuxOFQNaa +Ha8ZhXMRBLvI4I2yXG8S4jGBkMrdXpbLHYHw1aYQUc0AseqlSShNoqsGIfSJ1XVimK8INrEandm0 +8lXB2m7xG4fNLqtaY1SgB4XGcr1JCGPiXH+4DIXmexBMK4s1GssSgxjjyRjQT2ByErxq3OxEDZSv +UqEXaGc3zuDynYqdbTrH9cY9K5xKsKFwAMNvcAhw9KOiQa9wz2hy0JAbnQsIUH4hRNNjYEB4B0O4 +FQ4FN3KMDLC+2Mo6iwizVYs08VVAqba9wwj5kd/Iz65JXNk12eH2FIHXCcymDpAKfAVX5kfGzc/u +1VzZNWy03Y2FMizYNkmromVW7dJgDrPaRJagzVJniby41fBFfX+j3q8O6/uTASrzBKWg6x78sEf0 +FV3iqJWmGAYKJqGMYgHgCzptUF7jI/r2cPXgR6iVGXq0/UhFGakH5ITKPdqZ6US3zA== + + + ZkGwSvRoaMEElJJiTiAUxbcGn6LG4jOsBTL6bqsK94jeH8aJD9TEKkluv7JkY0+uWTPc11n5CA7h +Gp45AoMb3wjF15VCtv+JgA68IsycUdPyCOflmG97jrdunOOtU26aG4v/GBkRR2uTI2ZkPMVjbWIk ++jFKTsF48I6M6yz07chAmxyMamTofXiIAjM7ncIy4ZmdTnYxqFyQauTUmjLJp3XxHG/dOMdbp3Sx +i1cFeShQ6S5yPNZntW+JkclFApYpNwYoHCEpJscE98TRlHkXbuHl0pOQUOOA3pFOvoNrHY1hhScz +gXESEmosVGSD3Q3g2oSfYG2B2/TkBV+q96L113C936rvHfQaJ4OxFQo9bM9hv2byHO9Ut1qyyt2O +DUNjrHaj8MSmkWmWVl6vT1/U7HgqRGplxMTapsGBqzJa3MLDjnuouqfJB/d9gMMmD6+EQW/s0P1z +TUOQjXLrZnjYcQ9V9zT54L4PFme0CHAWV+A2GvgsYLOZYCoak3xCHywmddt70utiOIytXa2uhTyQ +8Q9rT47hF0O/POuc2H+f7v/RagzX6JRcZaN/MjisPK53629a/crTfhP0oVN/q9CPm/VOp20l+fFh +u+FKvrAMu11JK8fDWuV576TbvD1Z9kalunZ9tIJITq0xWjirHCMKW2G7Ux9yeTsYnnYtYw9HCm8e +1vuNXr1TqVaetbqNdoeLI4omFR2pUB9+NbDfu29OWlzWddc4ekQBVdANO7h9o1IjVtu+GWH0R+6w +iVbbLombbR8hIScoZvQ3hfUD9s0QBFNZf7S30bdTotNCDDvtfTt79jZ3bcl8Dzi6h4Q960Gg1QWR +NKOzLSXx0IBHGCv4P/0NCkNyWlvP9ep07M12Izby3uQTvTfD90JP4GvtdglfVOD/JV76MTtm2qyC +4TY+rSzMitQK63f6doX/g/65XXHhk2EJEv5bAkrgxVAzYyIjRTSJHR1PWn9y4YoYfUwnHuE/mGYq +tQoCzh2Yb5l9kBAEIUySFpJ4kMzkwcft0YJ+4QuhB2u3f+z2/uzig10or6933g8G9b2Huzcqt5/Y +HrOLzu11u5K+a3GR25u9o2MY+tvtjiUUKtlOb3crVICgpLzfdkVuWd319qv2oG2XSEA4iWF3WG+8 +nQPDRn3QbsTV+723rfL1Jf7Qedp3FS3G0y7lvk3FHAcqpW3bzvdwe6t1ULlbWatcj/DAcn63gq+t +3F2r3H5W7w+nULbZ6zZP2sMyRJ2CBYidg7un8cLbc14OWg/etbpPm5i7FfkZGPSUR9KNyfFc+VWA +eYp+wG+51f5qGaQEsPveXOBZ7d8qx/NcEC1GGe1bU5LNl8AgWH0TozCq3W7kCrxTPtOCbuzLMzjQ +a5V0u73G2/xMoYTVI+dxrczNlVMYtNFpdZsfiUO3EdncsynQEerPJGTt9oO/Wo0TaAP+gHUnhF0X +3IWLLOc+vA1j/UjLnRN7Tw8OBq3hDeyAGfWdyKKStXrbati3aRGCLPOOc9dH8FV2LBcrDw4O7Bpl +S79oD88jc/00ihvwqDuwGyzo9OtPT4b03fuBt9qD4079PT3euFyxvWzT5WOvPx993F6GgEYTSFoY +E+lmn1T+XplRdIVoKr2QVAqZrxaT1WKyWkxWi8k0bf9TBVCtVpkrQNM8q4z+lKvMVAmPls7KZq/f +bfUHp0t4qvCo0zlB10qvX6sfTxfzY0i9aD+1L0RNQMwUuk4q18FXfDKYNcxXVqarbmU6L4NWdpCp +gsUstvq6mo2LPRtByUlSDWEb9ovMErRb8hfYTCuI6B7/vCyLJq1U8ZVmp61rWI62ITM3Ltut+vAQ ++FxuLYNjFpnhtez5qWvZZySFipUUWkmhpdIJFkCSGDjTtZIkTpJsdE5alSetRXfuXLIogSjBVCZ0 +fYPQUhcukDOECOpMwlUFwfs4FisobLcKjBXMs8k4QfHhQugyeJIluYZ4zprU0uSU8lckBQbtwclI +QanFMKgDWJMWUuQzWSOuEmvyPIcE8HbcZJkWxg2X1LJEg66XsT1LF/BtJk8gb9lVYYk2OY6NmpKY +1d5Z9jC4FlgChj0YQzoH095MlsD5/SvDE6PT1AgMdUoKzSHolkUuqMFOL5llM3mhPg4jProx7FJm +XJpnKUZqZineFQlnB0hQ11IaUnBYNVcaxTQElMmZjP00I+xTqhCWyE+gRFyxMZLlqSlgHKRJCnlX +3WSjdQnOmQo4rgBKYgo5QmaNjnwJR4fMVsPjrOGhlDGwQEkINqWxkfGKnUPWLRgaGdliZgwNvYxD +45OOjNVmeWVADxvOzcN+z24zv2+/OezYv8Ol2ncuilf+9NMPp9pUqBKWhsIz7SqTyD8opoTsLVtt +i9226lW93/YZaBJ3jAy9nN3WYLDVOrZjbfCUf3W2Gv55amXGPFI3PgVSuf2y2270mq3yYSvPyx8h +nXkwMJFKFDiz5lsTJskGaDbOSGz3w6f7fzy3eO5URgg+a5Tcjk9IQPJL18u31gr/9vXum7H2IGRq +F+Av430Xfnnesq2y8/tFbyHWPJeD8YIWvcvRdTOZ4HZbFwXeRKrsaBYpRtaAzQH0HWeZGf8ye0BD +wpP5h/OFbDppvLtgODiddLokpIJQbqYQHMFVzsAMabcg26ubLr2DwRAYoBhw1Gkf3aAexrnxR3d4 +XHJCrKT+BUl9N+7dbQUzp0KaS5N/NNkuV7L9Y8h2iZbn5drqXvhm5pTkPDPiCDb27QCdknokSU5N +PoLZOBYx3lKOJoFZjZJPO0rctUVLOEiyCw37Xt4+Ts1H7OLPzSiy1e8dV3YP683en0tlD1mF9CzY +dL60kJ6REXzaTgQKUrmZm5DR2VAu2D1ndRRbQzFDlQd/HdetsNhoHfT6rcqrVn/g1NrMq7zNev8t +QPyG7bDX//sGtRoRNgb9xowIzjnSi503aHPQ6PRHDD/7nZO+ax4Nh5NB69nuzoYDY4oa3noe1xsx +JfudbnOk6nG93R+h/V2rP7z0RfcSxfAPVtyu8nmsRPCH5vOAcTQ1mwdk8YDr2fDfpJJmCvLMwv1Y +RZEqKzYS9Rkk87DCscDQqKSQFLJRFDmk+Ea6aybPIenuJz5A/rnJtqcn0PSHnd6fkPxtudxuKxm3 +YDLu0tTMMIo/WMuMUX0SJXN5NUY5pjF+rvrgrxZaP+kMf4uk5W776LjjpaVLfuLXene58Yd7jqcR +KFxfP7PieBi1GnPVPeg2Q6a6M9PdPat3WsNhC9v+bL90a6//GmeC/e0GUv3677Vx+NqzxiRbrv90 +2B626LfyM8F2pl07GOPULDPXnz/cqDxvNR3qJMdbAbF0ngllvB7GZX9udWDaU/Fc6hwdBsFoxeUe +9lutriuWCV1Q6uKakFZlKzxxXHrzfZ0LG5PmGEeo80LkUZJGXxjOXbjCMi/okB/cluYyRIuRwo/r +b1rdYd2Vt9qTpRCo06bQqD5JLfEQQpJr5U4j5AZjYAUfSxAU+IoovxFFWnn4jdU7N75RGbMtsVVz +ymWspEL8qUzdVeIFZl8rABmmZkjgVif0JGN4HKGVlkEPv5HGok1z32XaFk2xZ3Oj6cRjkgjqaw5z +Tn0zR/BZ0MNviiTCB3VTvN88SxK469MiMVmeuWOTE2G+Aun2+KB9wv5rESYBoRQKY/PhGivoBy1S +Ck+3uFWKP+Z2WBY5hgYKuPbZIcyggdDgjW+yghGqTKSuPakwRjlMLsy9SOEPDiNkJmOSwLoUeZdy +T8M1V4YYlmLYqh3YKUU0G856p6GJE+gE9oTtxghdBmczBB3SSGngFElqaFBn7qSpZs5ZZiVZwQNG +JUBoAc3LGZ9WuSDzuEWkcThAdvYCL42nAFq4VMiNFEkcJHwZdoQRFp1WPGnyFG6agaGawdkIbGlq +CabjJJmWGY4eSRlACBE2SwH/c+a/pQOnR5oquJkImIY5FO1ES/KM+hXiHxRwQFLSwAhZAjzLeFZo +O9UyaoAdu9oQ8wX3oaeOBjKhSZUnTgiPyCiFB2SKxGCrVKYzjMqAAaipWf40UT7RrBwmq8g0S635 +UqRYLIqGKrRKSp5Nxu4+kTeZzJV3dUTxIHz+IDREpNAQY5jbhZ0sNLszha9PUlUoir/H5Pc+e2sC +twOJTIfOdC3LLV6F9ClqGIpr2192fuGcU5lEjIKPiCQ86lPC6EY9DnoQF+CX5EGaSWyEFRPCTaaC +hqqUGOyrgnSEoBk6e0KjPoFJaTsEWsYdqYoswzZYyguMpoHZlBDBdPgpEj8s19x5H55NmsWvUDyb +rPgBdEiUlgkOAwH38lJgepEnGLGEl/AmPDTgPt2H3wDFhRcawsCV3AL94JLuTDBa4nhI3bwP7KP2 +sdCQzL8iCSuuxssYEritj6dCWAdIvEJoEQyfeBlIsR+k4FVOGph7dvYqifIb7kqkVVrz8MhhpQD+ +efIsN2HQGhz7nlNWKiucdBZnSqPX0oHjIjd0lj4nKAoMBYPG8z6DpU+kCmen9qIxpY6zHMKF23Kb +ZpiVYwXKbb9UsSBP46UKrkK1SxV0qfFIdYaKiEWmBCK13DeIyy7ACpF5meY6RGZ80t8iNdBUnLF5 +5tmYa5JuBu/Cw2MvpEElQuBJIi/B/WkGJaPeASFuGZDlOE1YaKYiK9AUowphSHCndvXC4VOYAuPI +ONGqIrECrbdo/BKRwzQWuOQYyWhzmdL41ypBtEYl9juuELnAzuaVJ+W11q0d8cqDC48XfilduAkn +C0WCTLDshEtp8bQdMsH1OSw7bkyJ0e6CIYrrttcsbB/RUSyLm1hrhz7pVZYpcIsozExeHd2EtFMp +sLYADhBjma9KaxKG2q5GOU1CLXBa5nZuIxslt1XwtEpcFB5iRb6mKHVpMpEHFrXpWxVSjyNde5rn +dbRwwLH79v2ZVaFMqPG03zhsN8+s5Iq5eqz+bhziS0+Ojnh7eNp7qdhUFA97nWarW3mOMVxn4InL +ArLZ1tkIAVhhqSBWOS1B81glV5RWsesP+/X3mAbq2Zu5Nj201oIE9euYzGgywx1siCSzyw/Od7tv +oKhOULDElC9OLMM4kjA6/fKfF4oEVEoHde18ximf2f0LDsTw1+ltoERkIJEyFux5lmpcVDKr6OOC +atdQjC61gokalnJ7xr8QUo1zEZRy7UWnFb6oTGQChAF8SbRGZNIut7iaKf83Xq3hXxBsLIHsoq9Q +kINwKbL4S6Izt+hzs8a/OMQSJSbua+y/PLOllbxIptKGxKFdPTJacAuDak7u/44sPlk6up7ZbRsK +Vmn3XTkpPLavad+guUnjXxxGTSsk6hKapY5dXnJsmwANTOOXLHXbV+P/unGRKFz2QXDbf3kXY1RW +UMZtkeI4s8qzzt2+htsy/oUVgAQ3MzB+ZdhonSvhDW7bUC9R0LH2X55bP7X2K5u9Tq9v9+m9k2M/ +y9xgthJa8Zk33sxEGnYRK2R56lVs6RU9K/ETzWYEnBeo57iFWrMaIAkjDxVSoXDN1g== + + + XoeyZKa4flge5akzNszapGbZxCaV2kA9WUCPSodCwAUJqCnGGxBCIYGcNDTCTkZNbpdUajjSRjoi +XW3E59tG2iBxnGqeStLO9AxHldTALHh9rnOnxPE5uUjRdDwxRRhfgpA92/A2KjZFzXMXw057MIzN +c6MxA5POjjjPxZQjSMHzG9/qMGFXw7ee5yYJkcTXUgGa/7EtOhkOe113deLkZYoTd1ddf9Y7fnk8 +WguothT752f1bquzt9npDVpU8KkrVx+2ttutTpMLbrc7R/bj+S6QvNuq2+UaGNNvNdtDuN0YLmsZ +u+34+veWaXipUbOyXX/X66Mx7zqSemP8fiWicTavXH9uWdKOWt2hbV8dLqPi58odfBq9l+r268c7 +T3rN1tQf71au/3XU6dqfq/XhsN/etyPA3S51e71vV+ELQfER8EelrArVafZb7ppuNsrzr/DP0F+0 +df3L7mDvXb0/uBtl5o2LvquDxZHKAnwwoxyE9VEx15LByNOScqfb67ZKMKbTa7xtNctwhkveuly6 +9tvdpm2oKEGbHRy7reETJOJs+uLSH6n7P5AT4lROlKK/DRfPlRn4Z/bqMk30O+9KT3UoeskjGsiz +692wd3S5kuzTjcM7gzq4EGHNs1Os7HD85PNiFzLSL0xTrsIsHRz8ucCr8SVPgwFc27nkvVy1Gym7 +I3bRE7Mo/bPdxOOjZ/avK3i5ArgcTYctl7vhTKK45OVS5YNfZhG037PbpaOd1sHwab9tdyZlSJus +c7lESrDzn9Vz78tQ9v6ySTFZIc+i5K9SMnMh1nwUdru9k36jtQGRkZe+6Nul6bKbcNQa1ptWB/rQ +dhQf2I4vms7oUGY4RYUBwoegn7X6g+MWxtHCFdR7z086rT4JhUfdZuuv7XZ/MGeV3Vaj13UbTF1k +omJS4cQy3ioMtE0gAVn0rFPvtjZbnc6Dv4a+oSbXFgNkIjkDw3OQ1q/q3fbg0HLC3V+MGKAyepbL +YMBGbKB8HMehi3lwvOgdRwhmMs+XxxDDdqc9fL87rA9ZmoDJtgz/Ap5xBiaVapYkZ9Z35+C3O71e +fxoXdXS5elI56MAFuN1Wv9KvD4atfvWdxdXrV/brtgmN8aVrrEqj0z6uNHqwlfir0m+9saJ5cHqN +435r0Oq/a1XACHgM9jhXQWtRbnTA+PqgweEH6PnHhkdRbmj44lNHxqxa2IGzq13/9XGr2T45qjxv +DXqdExcM6cWH5buoeFum3c2cHGPeBuqGZ9ANw0qwrYhwHG39UVF53BocVp7jgGj/jQGV0WuoRpqM +1Hh6Mjw+GZ5RJwkjb6JxO/Xum5P6m1blWe/45NiXpzdsdFqtJvW8l5qMbLPfOwYjNZ0hmNyAjOkM +19f7w/1evd+E66rHU3MEhhgI1DFCq1oODtOxARFJytHGuNwej92RPpwIRMKz9ecEgcM3aVpTKQc9 +I1o7bV/0nhNKGnO9QRvajb9KLwEgkkOWryjGpuOjAZPvHBdPJtc4LoE8PH2MWvbNO/1gCHPrHEOM +7+fxwq/arT9tx1iuDoM0ui5ULakl0WB/u/5o+6TT4RHlAuDtr+4F2Sz8MKS2642Wz0NyWmGUzGOl +s5lNx9JPj+sNO22pbJ5laXba6vGcrbmnrjEbfgbANkmfVpSCh0d03fFyL7yakkQiO49Edr07bFfq +nXZ9MG1SkhCNpuUsyd87GXba3VZlgAdUHC7lBULB0gk69F8ndZB2lZ3Wu1ZnsnXT0A5bf/EOb3xv +PqJc77Y639eHdqTs9Br1Doz+QTTOZ5S1bWz1H23FJeOfX4DBCN7KI8hodZpQj7rltC7EsuV6G4v6 +4TN7UGK5kUEpc4g8nr1uRW3NTGHEKUVDU2Gkn1KwRENxRxu38wyS3G2WtJTNKgoK1abd+wx5BTut +4G777zCiedWSe7vHvSF6/B/3mrznnU3G9z27Fva630cGiGy2tAOiY4UPwnzOkqZ2ELfORIzCIMZ8 +ncKkk6TCXyJpuvvqIQrejd5fr3+ePqdSb505rjebYzP0CC/VGAENLNfGQHaGs+rHsql53K6NyoVG +r9P38239UWX9ZNjzOsYUuSUqvDmqvO32Gm+tdKi8ociMU4q2rZZi9arKPpzZcTm5RgoXleP6sRU2 +g/bRSace9BkZia9hv94dHNftnrDx3r6z3bSluYmZVNJEZeusgjQwdkTaN59MDLbxYiVRvYkm7Fll ++zwR46VpSkkRNfDMolEDzizrGyDy1KS+JC/km/Xuu/pgZCZG/feM9xIQplB50GwP66QlT1un3KYy +1h6jX60eH/3mBcjDTs/ug563jk86A9/pd+FXf1BsbG6MnyMb06yFrNhR/JAT1sChPVK1T1OuqdIO +rHJWNcNKSPF4pdE3icqDZ7tzv4pqnf2ueTV5HtY7du6yfvloa/Q3K3e2e93h7sm+leVDPw/jGTH2 +pmOINZmYrbv1d63HVrVt220pv4sNbRtt7qf13c1Hj0y21QL9H35U3z398teb93765qu79de3fki/ +fFrduN9/eHR45033Hz9s/+PW9a822/Xa4J/5y+8f5F/cuf/y4beP1Xd3dv791eP7/ZOG3n4gH5tr +QqkvkmSw9cfWm1vJP+/f/U/t6/v3bh0P7g9+lLfXrt2/u/OPPhf6Ybjx5vt/7dy/p1q7m+1vvm1s +1WpfvZl41U7zZ/s+vbV97Y7+5eFw64/fNtQv1VvrR72dgSV3eHjz2/yLk+0t9c+fNv7ofPXT2rWt +g+SH/anI/qmLA/3qX7/+e/3FZu3V7JfG5e78dv/e2+3f7t8Z1I5ubt26drJ9/WHzYO0aMmv7972n +J1sHv/2kNzr3O6/vHGwcDjcP9S9ihB2/f7nVEDv/vX/vu69+Ijy2yYPN/7z5T89++/K/W4+aj/6x +UTV//HN9t/pFl9rwut48WbtW/HH9ZuNBI/vX9c1DtXf33vq19MubG09u/X7z/uZXL7c3Wydff/vq +hy8O7zYa9bfwrX3zwcHOIb1ZJLfrut/+5+932v/5obnRufbdV9X+zX+frO/sfvlfaP+N+3d/OEzX +ruV3X/12f73b+Oro5jeP797WR//+pq317cFBut5vPBI3394RHmNj64fBK8s2/VVL/5QmzTvtzdt1 +27/i8TfXq7daGx397Igo+Hnn2v3NR/e++OnBrSIb2H559Gv+xbd6s/efm/deNX+9I/e/+A3Rftu9 +Zgn6Nv/6C+iSX/Of8n91gU/fbry9kVfd0HzV3EnEb1883rpdv/fl9j9u/tKHt+Tww38QCxZZu5bs +/+8jhd9vfrt9z32799ODH6n45q0HvxMy+bN8ZIfu6+Tmt98+uCW3vnvzjcPz0zf37jb/ePIf7Enf +YIvv6Ubm3mILbfzgG/BbaIC4/s1zKNRSCMv+sbG1h6zeag2+U/kv+R+N9Rdbf9zcOrj9438f1Otf +/XMj33/5r+LZtdcv159ubjzbOtht//f+f3+782bt2ob6+cUeMfOXvPnLgz1x89WGer3+dHvrj5/2 +Ntt/5LfvHhxde7O9efC1sAz89netnzd74X1m979HP64/3fn6x+2tG80fiTfMaBr7tveHx7V/3fzu +Vf2/RNC3uanfv/ti+L/rL34YnkySNsbZiA/cEa/7/2BUu3bmPN20+tuDX5rX3sjf7323lWz/+36K +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 +yX+hJ/CJ3NznK92UPf8feYUNGg== + + + diff --git a/img/nav/docker-logo-loggedout.png b/img/nav/docker-logo-loggedout.png new file mode 100644 index 0000000000..a0bb9d9484 Binary files /dev/null and b/img/nav/docker-logo-loggedout.png differ diff --git a/img/nav/search-icon.svg b/img/nav/search-icon.svg new file mode 100644 index 0000000000..bf8e120907 --- /dev/null +++ b/img/nav/search-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/tutorial/DockerHub-Tutorial-05.psd.svg b/img/tutorial/DockerHub-Tutorial-05.psd.svg new file mode 100644 index 0000000000..4cf37d3fa4 --- /dev/null +++ b/img/tutorial/DockerHub-Tutorial-05.psd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/tutorial/caret-left-icon-over.svg b/img/tutorial/caret-left-icon-over.svg new file mode 100644 index 0000000000..fa3f5606de --- /dev/null +++ b/img/tutorial/caret-left-icon-over.svg @@ -0,0 +1,1898 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + 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 +vPOm+48ftv9x6/pXm+16bfDP9OX3D9Iv7tx/+fDbx8l3d3b+/dXj+/2TRrb9QD/Or6kk+SKKBlt/ +bL25Ff3z/t3/1L6+f+/W8eD+4Ed9e+3a/bs7/+hzoR+GG2++/9fO/XtJa3ez/c23ja1a7as3E6/a +af5s35dtbV+7k/3ycLj1x28byS/VW+tHvZ2B7e7w8Oa36Rcn21vJP3/a+KPz1U9r17YOoh/2pyL7 +Z1YcZK/+9eu/119s1l7NfmlY7s5v9++93f7t/p1B7ejm1q1rJ9vXHzYP1q4hsbZ/33t6snXw20/Z +Rud+5/Wdg43D4eZh9osaIcfvX2411M5/79/77qufCI9t8mDzP2/+07Pfvvzv1qPmo39sVPM//rm+ +W/2iS214XW+erF0r/rh+s/GgYf51ffMw2bt7b/1a/OXNjSe3fr95f/Orl9ubrZOvv331wxeHdxuN ++lv41r754GDnkN6sotv1rN/+5+932v/5obnRufbdV9X+zX+frO/sfvlfaP+N+3d/OIzXrqV3X/12 +f73b+Oro5jeP797Ojv79TTvLbg8O4vV+45G6+faOEoyNrR8GryzZsq9a2U9x1LzT3rxdt+OrHn9z +vXqrtdHJnh1RD37euXZ/89G9L356cKswAzsuj35Nv/g22+z95+a9V81f7+j9L35DtN92r9kOfZt+ +/QUMya/pT+m/ukCnbzfe3kirjjVfNXci9dsXj7du1+99uf2Pm7/04S0p/PAfxIJF1q5F+//7KMHv +N7/dvue+3fvpwY9UfPPWg98Jmf5ZP7Ks+zq6+e23D27pre/efOPw/PTNvbvNP578B0dSGmzxPd0w +7i220MYP0oDffAPU9W+eQ6FWgjDzj42tPST1VmvwXZL+kv7RWH+x9cfNrYPbP/73Qb3+1T830v2X +/yqeXXv9cv3p5sazrYPd9n/v//e3O2/Wrm0kP7/YI2L+kjZ/ebCnbr7aSF6vP93e+uOnvc32H+nt +uwdH195sbx58rSwBv/09y543e/59+e5/j35cf7rz9Y/bWzeaPxJtmNDE+3b0h8e1f9387lX9v9Sh +b9O8fv/ui+H/rr/4YXgy2bUxygZ04IF43f8Ho9q1M+fpptXHHvzSvPZG/37vu61o+9/3Y2SBe7/f +296y3PH1rZsbveI/42M1StlwYHkgiHO+OxycIJVsX0I6/bDzcH3vB4Ucc+/m8d3ft68f/Fhbj+69 ++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 + + + diff --git a/img/tutorial/caret-left-icon.svg b/img/tutorial/caret-left-icon.svg new file mode 100644 index 0000000000..dd2399d1f2 --- /dev/null +++ b/img/tutorial/caret-left-icon.svg @@ -0,0 +1,1898 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + eJzsveuOJbmRJvgE/g5nfzQgDaZCTtLppGsHC8SJi0YzUregUl8WjUEhOytayum8FLKypNU+/dr3 +mRlJP+dEVuSlJGG7gsiMOHbodHdejHb5zPh3/8dvvvzi+us3//bwRbqaD9Pf/d3N24dn7968/fmB +1MMvX7787tt3b0H6yW9/egjr1SyVrn9Zv7KK//Tw9tsXb17/nF/xy3tc/ZPrb//w8Pbwi6vD8eV3 +r/7t4e3vf3r4yU/l29+9ePfyQb7/x9fv8NfXXyw/9btKM7fP3smX+Wch/SwshxB+PofD9a9R4dnr +Pz779tsX/+8D7pRqEtrxzXevv37x+vfHN//Pzw/z4YswH5YDnuC/v/jtw7f7b6/mGJc1HL7YrpYl +LOGQrrYthu3wxXxVlxhrlutu3zz/7tXD63e/efvm+cO33968efnm7bc/P9z8+dnrw6+f/V6+eXb4 +vx9evnzzJ3mrZ8//Y5KOyF/dv3j5IO/86tm7Q4jogetfhvjV8bsXL7/+e776zw9rjSCnr9jkP34r +bUmz+Bvk8tUvXwnly4d37+R55YZ4h9/+4jg+Bl4Q5Sf/+tuH37/giEh3/a+fWrNv33zz6tnb//iW +bzqXFBe86brFVA8LKDXgTUlIes3vHl5981K6m/0Tr/Lhiyz/+R9WR16N33+RZnZYPHyxzOEqbHKD +NFe2fEib9OFcVr2md+LDH188/Onnh79/8/pBe+r67bsvdQSXZZ71f/3mt9+9fHj7j69fvJM3YDub +dtWv33z98FLqt+vvXz5jD7GE/r9W+N2zt79/eCeD/+bld+84K6vfQYbiV8/+/IDxDHqDf/jm4fXv +3vwTn/GL7SAdVWVqyfts23YIlW2vOcvr5Xa/0P/XZtEImvC2iwzdb2Qw/+Hti9+/eP3zL9JW0XlZ +x/kXb1983Ye5RLkp/+MrXNXh3+b/9Fnltd+9e3htzy7T6+bXw3SZr379pdz37vXXN29eoe+/xeqQ +efJaptDLN7/X79rf/EYu/+4bfQd+/kqG6TdvX7xGm9Pf85v61W9efidf/eLtm++++eXrf38z/USZ +wj89PJeVLyP59eEf/u1/ywdZ25zCh9+9ffZcGpDPrc7Vsxff/PS9zcnLvX046JdyJT/67++/+vbh +32Xx9cuVevf6jw8v33wzNNsoz15/ffjnZ2+/+f6mf/Py2etnwsRAby3/6sUf5Ztn0lO97U57QqMy +T76RzuElrHJyg/dUGL56wo2evfuD8KmH119/29rWj/sHV9r3t/flc8zBt4fj2+++/cPhd2/evGzN +7r9qrRuZVNT/27jHb3jB6394rR10fiercHon4T5/c3eR2o/fQb78W2795tnLly9+//bZN3948fzS +DS583+6k333IxPrzq3978/LFt6/6fBoov3n29t2L5y8fvvzzt+8eXj15cA93X78QJvfIMn5vnS// +9Ozd8z/86sW/vX329sXDe1cfBuDfX7z+Wub+l9+9ePfQO+jNq28g5By+/MOzbx74Gu/+cM+aX7YG +81fC+kfm/sUX7+H6YT0cXw/f/+Lts69fyIYiAtsv3rz8+uH14bdg79Puk2xf5XD8evrXabYSWJbD +3311fDv9t2k+/QknJQ4lWVmsZP7zsuLfJL/GUlqp87Yr10M5SrmxcjuUu/l+mu+97B5s/IlDSUNZ +diVrmfirhFVK4e86lG1XrsOxlZtWjuFWin+6neTDHUm34X4sY9fx4fwnDWUZSo4ryqS/YhlKjZsU +/f96KEct0/91aSwfG820G89lGNU+tlKmNrzLMMg6quPoVin4jVGtu/HdhhGW/ycbah/sYxtm/Y1R +vhtHW/7Xn/niWMdpN9BJxhW/MbIY45WlcpTLyQhfW9mPrYwlft2x3J6Mot80cQz7mKHoIPmQbTZY +MkCTjRHG6sbKLcudlXsUX1l4mXEsA0dpsY6v7NAjF8k9+yby5Ve+3sZXueUTB3vClVNGHmHifXGf +mFJa0pqKqBtbOkq5Tfcy2mFJy7LkpSx12Zbr5bjcLnfLvXRkzCkvec0lb/k6H/NNvsv3kzxQkFm6 +rHld17pu6/V6XG/W2/Ve5kKQblhKLiKzl60cy025LfcyT0KNdam5rrXUrV7XY72td/Ve5kuctrQt +m7SzVZHyj9vNdrfdy6QJ1+l6uc7X63W93q6vr49Sbq5vr+84k6K8wHLMx3Ksx02+Oh5vjnfHe5ld +YWJvp5vlJt/IA9xsN9c3x5ubm9ube5lsgaOw3Obb9VYe7rbebrfH25vbu9v7u1nGJd0td+tduat3 +253c6+7m7na6u7u7x4y4lw67z/fypvfy7PfXUuSW93Ll/cmPjOUso9k+3w3ldig3QznuyvVQNi+T +/FeHUoay7koeyjKUNBSZgNN9bGVkYZ35zuOj340/t7tyo2Xir+NQroey7UodShnKOpQ83eVWll1J +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 + + + Ll6Plm4LmKy2gKst4OL248puAQ/6dasLd5702oMrtgksbVRa7QEXcw9YeklY7QFXe8DVHnC1B1zt +AVd7wBFmUcmV2wPO0aMl2gNutN61OruH9WbvzyvgDKzqq7JBmqcnV3aLREsOmik+2YKzqKr1YNjc +ar1r16FBc2wbwkoX3rn9zskZq9fyqtcP6yeDQbve3Tizj4uoYJdmu2Z5sdi8DLlYviPlpWLzrwWf +K4su1HoHB4PW8OyZsbyz/yn2cPnmfQc0S4gubPQ6vf6dPw/P3OKEK9D7Tnlroyt9Cb6Z0v05bjVO +OvX+g7+Oe91Wtzz3TVa8+F7O28nNXncwrJ+jk77ihXeydOzQ4KR/UG+0dhv1eRh0pNJK3n9AX4BX +np6cwVsXIuwXRc7a7Zr9U5Ygf5emxd+XsfVU8/RlwbfRZo6ufPR99CdRRZ712t3hzjwGpk9jq2zt +uhVjx+kYy6cdncu+sPI+XIb3Yc4lZ7WCXup26RzulEWRCaU17bflBcHby5AD5TsSl+9IfAkdKb1+ +vz3DOBR2JFnojpwxdmFH1OJLr8VfM+v99vDwqDUs79heprXzYjz3F27ZGj6rt88ycKyW0HIjsCir +7/yW5GWJMHnc6r9pASWXTyWad6pd4SH5dO1YBR59HK1XrQKPliLwaLPX62z0W62/S/ujFjbq6DM6 +f1KdgxkX3TJcuiNXNr6q2e7Uy/uDl2nLU96e2yyvq1yGbLmCIXClO3LuLdtFr9C10kkT+vVm+6S8 +sOfil6ci9/rHh71O701pYb4425arK93Kn5VZcOl2ZWTapz9VtpJpK5kG+vdVCeTdn++0yQILsTlO +Li64ECs9JMtmTF/W8N2rmyOg9OqyyhEwq4+XmyOgdLDusuUI2C/Nmgu/MJVfYhd9ZSqvjC7ZyrTM +WRvWS1uCNw/r3W6rs9vqtBrz7LEnK1446z0vbSU+bycnKy7w/Fr8WJ4zotmCNXe+4yOXdW6kdH9W +y9HijcmyLUdb7cFxp95oHbW6w8f14+Vbk47qFlVpB+xS7JUq/F9l4qsa+Vq21/itvDbOxS9+ms2X +mnKRRV95Ib7ooq/0mCyb6NuEE9KPS4iPRRR7+6W34ws/VcpP+gWfKuXPbC9jqpfSDPcZnP49mCuO +7aDd6cwT7tW5hOHttLuteukYbLs1ajzulY+jDSpcvMu582f9/RnKzwjzDuv9ubiXyi+uPXbYK6/x +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 +0si2H+jH+TWVJF9E0WDrj603t6J/3r/7n9rX9+/dOh7cH/yob69du3935x99LvTDcOPN9//auX8v +ae1utr/5trFVq331ZuJVO82f7fuyre1rd7JfHg63/vhtI/mlemv9qLczsN0dHt78Nv3iZHsr+edP +G390vvpp7drWQfTD/lRk/8yKg+zVv3799/qLzdqr2S8Ny9357f69t9u/3b8zqB3d3Lp17WT7+sPm +wdo1JNb273tPT7YOfvsp2+jc77y+c7BxONw8zH5RI+T4/cuthtr57/173331E+GxTR5s/ufNf3r2 +25f/3XrUfPSPjWr+xz/Xd6tfdKkNr+vNk7VrxR/XbzYeNMy/rm8eJnt3761fi7+8ufHk1u83729+ +9XJ7s3Xy9bevfvji8G6jUX8L39o3HxzsHNKbVXS7nvXb//z9Tvs/PzQ3Ote++6rav/nvk/Wd3S// +C+2/cf/uD4fx2rX07qvf7q93G18d3fzm8d3b2dG/v2ln2e3BQbzebzxSN9/eUYKxsfXD4JUlW/ZV +K/spjpp32pu363Z81eNvrldvtTY62bMj6sHPO9fubz6698VPD24VZmDH5dGv6RffZpu9/9y896r5 +6x29/8VviPbb7jXboW/Tr7+AIfk1/Sn9Vxfo9O3G2xtp1bHmq+ZOpH774vHW7fq9L7f/cfOXPrwl +hR/+g1iwyNq1aP9/HyX4/ea32/fct3s/PfiRim/eevA7IdM/60eWdV9HN7/99sEtvfXdm28cnp++ +uXe3+ceT/+BISoMtvqcbxr3FFtr4QRrwm2+Auv7NcyjUShBm/rGxtYek3moNvkvSX9I/Gusvtv64 +uXVw+8f/PqjXv/rnRrr/8l/Fs2uvX64/3dx4tnWw2/7v/f/+dufN2rWN5OcXe0TMX9LmLw/21M1X +G8nr9afbW3/8tLfZ/iO9fffg6Nqb7c2Dr5Ul4Le/Z9nzZs+/L9/979GP6093vv5xe+tG80eiDROa +eN+O/vC49q+b372q/5c69G2a1+/ffTH83/UXPwxPJrs2RtmADjwQr/v/YFS7duY83bT62INfmtfe +6N/vfbcVbf/7fowscO/3e9tblju+vnVzo1f8Z3ysRikbDiwPBHHOd4eDE6SS7UtIpx92Hq7v/aCQ +Y+7dPL77+/b1gx9r69G9F7/oG//8zz1qyCg50pPnRWv7+pfHNzYP0+dvH9zcqW17TrUT4OceSJjd +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 +9nBa7P4LvwE/oV8HE1wv6P4vDK8wXg== + + + diff --git a/img/tutorial/exit-icon-over.svg b/img/tutorial/exit-icon-over.svg new file mode 100644 index 0000000000..4cf37d3fa4 --- /dev/null +++ b/img/tutorial/exit-icon-over.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/tutorial/exit-icon.svg b/img/tutorial/exit-icon.svg new file mode 100644 index 0000000000..3ab075108f --- /dev/null +++ b/img/tutorial/exit-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/tutorial/question-mark-icon-over.svg b/img/tutorial/question-mark-icon-over.svg new file mode 100644 index 0000000000..401f5b8452 --- /dev/null +++ b/img/tutorial/question-mark-icon-over.svg @@ -0,0 +1,1924 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + eJzsveuOJbmRJvgE/g5nfzQgDaZCTtLppGsHC8SJi0azUregUk830BgUsrOiS7mdl9qsLPVqn37t ++8yMpJ9zIivyUpKwXUFkRhw7dLo7L0a7fGb8u//td19+cf31m399+CJdzYfp7/7u5u3Ds3dv3v7y +QOrh1y9ffv/du7cg/ez3Pz+E9WqWSte/rl9Zxf/58Pa7F29e/5Jf8ct7XP2z6+/++PD28Kurw/Hl +96/+9eHtNz8//Ozn8u0fXrx7+SDf/9/fP3z3Ti784tWzt//+xYvnb15fffenb37uTyDf3D57JxXz +L0L6RVgOYf5l3g7Xv0WFZ6//9Oy77178vw+4a6pJaMc337/++sXrb45v/p9fHubDF2GVr+SXfPXf +X/z+4bv991c1b6lk+T5fxRLzQX7PMYBwFUIsm1x2++b5968eXr/73ds3zx++++7mzcs3b7/75eHm +z89eH3777Bv55tkkHZG/un/x8kHe+dWzd4cQ0QPXvw7xq+P3L15+/fd89V8e1hpBTl+xlX/8Ti6X +lvA3yOWrX78SypcP797JE8o90Iu//9VxvDNeCuVn//L7h29ecESki/7Xz63Zt2++RT/i2it9Lb6T +/Cmftc4fHl59+1K6lD1Q8RX+8z+sjrwKv/8ibvXwxTIvhyR9n2rV73ufPPzpxcN//PLw929eP2gv +XL9996WOyLLMs/6v3/z++5cPb//x9Yt38nQrSJt2w2/ffP3wUuq36+9fPuPbs4T+v1b4w7O33zy8 +k6F88/L7d5xx1e8g3fybZ39+wPAEvcE/fPvw+g9v/ief8YsQrmSsM/5LUaZFqYdt2w6h8hZrFvKW +221D/19bR1toyW9RZHR+J+P1D29ffPPi9S+/SFs8fJHmqkP5q7cvvu4jWeKh6n98k6s6/Nv8nz6y +vP27dw+v7RVkBt38dpgR89Vvv5T73r3++ubNKwzBd5j0MhVeyyx5+eYb/a79zW/k8u+/1Xfg569k +tH739sVrtDn9Pb+pX/3u5ffy1a/evvn+21+//rc308903f/Ph+eyuGVAvz78w7/+X/JBli9n6eEP +b589lwbkc6tz9ezFtz9/b3Pycm8fDvqlXMmP/vuHr759+DdZX/1ypd69/tPDyzffDs02yrPXXx/+ +6dnbb3+46d+9fPb6mfAp0FvLv3nxJ/nmmfRUb7vTntCozJNvpXN4Cauc3OA9FYavnnCjZ+/+KAz2 +4fXX37W29eP+wZX2w+19+Rxz8O3h+Pb77/54+MObNy9bs/uvWutGJhX1/zbu8Tte8PofXmsHnd/J +KpzeSZjQ39xdpPbjd5Av/5Zbv3n28uWLb94++/aPL55fusGF79ud9LsPmVh/fvWvb16++O5Vn08D +5XfP3r578fzlw5d//u7dw6snD+7h7usXwuQeWcbvrfPlfzx79/yPv3nxr2+fvX3x8N7VhwH4txev +v5a5/+X3L9499A568+pbSC6HL//47NsHvsa7P96z5petwfyVsP6RuX/xxXu4vohFx9fD9796++zr +F7KhiEz2qzcvv354ffg92Pu0+yTbVzkcv57+ZZqtBJbl8HdfHd9O/22aT3/CSYlDSVYWK5n/vKz4 +N8mvsZRW6rztyvVQjlJurNwO5W6+n+Z7L7sHG3/iUNJQll3JWib+KmGVUvi7DmXbletwbOWmlWO4 +leKfbif5cEfSbbgfy9h1fDj/SUNZhpLjijLpLxFwe6lxk6L/Xw/lqGX6Py6N5WOjmXbjuQyj2sdW +ytSGdxkGWUd1HN0qBb8xqnU3vtswwvL/ZEPtg31sw6y/Mcp342jL//ozXxzrOO0GOsm44jdGFmO8 +slSOcjkZ4Wsr+7GVscSvO5bbk1H0myaOYR8zFB0kH7LNBksGaLIxwljdWLllubNyj+IrCy8zjmXg +KC3W8ZUdeuQiuWffRL78ytfb+Cq3fOJgT7hyysgjTLwv7hNTSktaUxEFbEtHKbfpXkY7LGlZlryU +pS7bcr0cl9vlbrmXjow55SWvueQtX+djvsl3+X6SBwoyS5c1r+ta1229Xo/rzXq73stcCNINS8lF +ZPaylWO5KbflXuZJqLEuNde1lrrV63qst/Wu3st8idOWtmWTdrYqUv5xu9nutnuZNOE6XS/X+Xq9 +rtfb9fX1UcrN9e31HWdSlBdYjvlYjvW4yVfH483x7ngvsytM7O10s9zkG3mAm+3m+uZ4c3Nze3Mv +ky1wFJbbfLveysPd1tvt9nh7c3t3e383y7iku+VuvSt39W67k3vd3dzdTnd3d/eYEffSYff5Xt70 +Xp79/lqK3PJerrw/+ZGxnGU02+e7odwO5WYox125HsrmZZL/6lDKUNZdyUNZhpKGIhNwuo+tjCys +M995fPS78ed2V260TPx1HMr1ULZdqUMpQ1mHkqe73MqyK2kocShhKPNYtMsn6/vx6cefm6EctXBl +7sZxP3r7MfPR2g/RflhkKKZhNPZDsO/4fXdbN5/0Lftzal2678h97+177KSf9l0znfSI9sa1lY2l +WilWVpZsZWFJVuLEtWdbprL+Nv39zfRe/nNkubaysVQrsrYn+W+1kq0sLMmKsl5n9MJBfSzvOH5H +jlfl+GQOCAZhZrffspuv2auF/biw3wL76Y4dc2RH1IlvnvmueMGZL3TLF7jmIxc+4cInkueQ2XIn +nXkjfOta+FcVPrYKN1uEq0Xh5vMkE+lOevlGmN61sL96XYQRZmGISXaUIDvsvYz4rXTHcbsWtlm3 +Igw0CyNNsgUF2Y/vZSLcSjcdhdtutU7CeFdhwEtNwoqDbNz3MkNupQ+P5VpYdS1FmHYW5p2EhQfZ +6O9l7txKxx6FwW/C6Iuw+yxsPwnzD+s8yTS+kzG+kY3hWjaIKtvEmrNsGEk2jiCyw71Mt1sZi6Ns +KptsLmVZZZtZZLuJsunMMu/vZFbcyEZ0LRtSnWRnWlOWPSrJXhVEVrmXGXorw4ddFNsqNtosmxs2 +4hDnAC7bBFqrhXpei/VkQemmDvkNO/9GyUAlBZEdOB8euR2bYQN+eb8YYkfsjOF+YPXKEjaZVFkm +VJDJdGkqRdsjuPvgR3egwHWJXShz9fpOZHsRtiLZbUQI4L2x37XNbpVZVi9sd6ltd9jsrnFDXtwk +hmQyaHGpgULDHcWGYIJDbqLD9djt6AXIafO9NikfKMzd8iNWi64V3xDbLsrv+eZ8ax2Ga0old2k3 +shQJQxN6VMJTwUcluRsK4nfSdDAhW1/HpWaTkqlWsClvqDfDRtgbevHFntBHHgdKB2knLFBSSDLy +RWbAkXPhRDrwrsi2ATjHGXlOnyqd74ych7xHu/gCO9pzox/iRdr1J6vxkxfjsYm/XroiU3cqTjG1 +R0veaUamLU32h/+oQL7TUfcqmO8xTUFrkj7LcdopdjeUoF0pwO/tpNST0pVI/WudXM1sZTkr6azE +C8V+pp2me6bQYcWNQlr7fXuxCJ+YmqZ9Y8rYUbWzi2V7tFTX+6ZBydeyPrF0lTKPZdp/bMaG/vd5 +SY8UToppjk8slzr4QpmeWPHJP5d090/6+WwN+r4YWo+qjOpi9q0VlbDcKOFGimq6sBsxbKVPpjb7 +8nazSJ/+p6vZJVRfveOCPeo6dpX+fLWWZgJYreRmIOi2oTQu0OmHV6b81cwS3Tx1shx9Qd5Og1Fr +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 +syqextKflCf/9MTWIJsStQuZsxDWQZnXbbMpbmy2zfXTM0VP1sknt/W5I93+6Y8v3j3818Px5bPn +/y7LYvfxL3EKyLnZ7CPPAZnOEs56umpPNzummr1txwnuc1V7jtkboK7uLL1sHPDoe6z84+nxx+T4 +x46P/xT4/82Q8Z74/+njAwCstBSQnqjx1OxyYjX5Mc9XObOsfvQJK5OqqY/MFM/dme0oSp0sPT+x +i8A9R7GIvhtDAFz4vbMDT5+Q5/wkP7FZDd9nMXxavMX5YQsfG3GxTy3QD1s4TSFxeyFJwZOmwkec +XDN/rrNrpgsTYReqQ//fOBHGM0l9GgzJqt83FX4oYfU+XbWZkaf6aQEup5Pidvr4EJdhigwTZXrk +WI59OorPJz2bDP2Xa/CSZ+rSwdhlz92mC8ztgn5xMfPwPu+wBRRNnxhRVDSmqIcUTR8fU2SehaMa +H2h2SLfLJGtjn3bk7kLikR/r6KKPMdVdPLxo+hBjXcPyOZLPE7fd9tRtk5klmL2tJW+7fVL6tn3y +NotGmj4tHEmjeg21ynik6eMDkohYBZ5hNaQqQKqynO5P0sOUCxlkfpoKP02Fn6bCT1PhsbRRH5BU +6Sw/1Idf+2OZnITw1d+/ef27ty9ev3vx+psvvhh07fGL6e+/xTdJv/nds3fvHt6+FiX8+uWfv/vu +majf9sdh2662NS3wnC7rmg5xWa5kG5c/wnolc2nlk17z/3/+D/n1Pf90n+M//5kf/4f8+X8J8T/k +5Q+/PfzL/5oPX+slv5dffg9v8vBKiGc3OvxmpPrz/Ga4/hJtd/Vr+feL67fvbl88f/fizetnb/98 ++CVNFr84vnnzUt7+19YTX919/eLdm7dfHZ89/3fpra/+8OLlw1e/f3j+7ueH/yoX/O/yz171v3zP +Bm75Nv/A6RBxVKDaIEPMnBiLTIhqSf/sANXqZwUuW53TdvjnZ2xo13EphKs5rTLu9SqJZK8dI68W +ReA65O1qFZHqICv+SprKh1xwWKu8c5XqNaZDzldB1tbhOS6r+UoWbz3keLUiBFQk/6tFVtVh2a5E +6MfZsetVkAV4WNKVrLVol21Xs3CFQ5IvCxsverdYr3KEQb/OV3nbZIqWqwTjKy8ry5WoIFJrRWCu +3G2Vu8zLekhRnwmElOt2SPIaIt3qZUIMoZaDDHMNMvZruYK8Cf/4hihR0YJkOHMBIaZqr7bOV1BK +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 +id1VbP8XhnbPrg== + + + diff --git a/img/tutorial/question-mark-icon.svg b/img/tutorial/question-mark-icon.svg new file mode 100644 index 0000000000..c39475e043 --- /dev/null +++ b/img/tutorial/question-mark-icon.svg @@ -0,0 +1,1923 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + eJzsveuOJbmRJvgE/g5nfzQgDaZCTtLppGsHC8SJi0YzUregUl8WjUEhOytayum8FLKypNU+/dr3 +mRlJP+dEVuSlJGG7gsiMOHbodHdejHb5zPh3/8dvvvzi+us3//bwRbqaD9Pf/d3N24dn7968/fmB +1MMvX7787tt3b0H6yW9/egjr1SyVrn9Zv7KK//Tw9tsXb17/nF/xy3tc/ZPrb//w8Pbwi6vD8eV3 +r/7t4e3vf3r4yU/l29+9ePfyQb7/x9fv8NfXX6Sf+l2lmdtn7+TL/LOQfhaWQ5h/nrfD9a9R4dnr +Pz779tsX/+8D7pRqEtrxzXevv37x+vfHN//Pzw/z4YuwylfyS7767y9++/Dt/vurmrdUsnyfr2KJ ++SC/5xhAuAohlk0uu33z/LtXD6/f/ebtm+cP33578+blm7ff/vxw8+dnrw+/fvZ7+ebZ4f9+ePny +zZ/ktZ49/49JeiJ/df/i5YO89Ktn7w4hoguufxniV8fvXrz8+u/57j8/rDWCnL5ik//4rbQlzeJv +kMtXv3wllC8f3r2Tx5Uboht/+4vj+Bh4Q5Sf/OtvH37/gkMi/fW/fmrNvn3zzatnb/8D117pO/IF +5U/5rHV+9/Dqm5fSv+yOiq/wn/9hdeRV+P0XcauHL5Z5OSQZiFSrft876OGPLx7+9PPD3795/aC9 +cP323Zc6PMsyz/q/fvPb714+vP3H1y/eydOtIG3aDb9+8/XDS6nfrr9/+YxvzxL6/1rhd8/e/v7h +nYzrm5ffveOUq34H6eZfPfvzA8Yq6A3+4ZuH17978098xi9CuJKBz/gvRZkjpR62bTuEylukmg9L +je22of+vraMttOS3KDI6v5Hx+oe3L37/4vXPv0hbPHyR5qpD+Yu3L77uI1nioep/fJOrOvzb/J8+ +srz9u3cPr+0VZAbd/HqYEfPVr7+U+969/vrmzSsMwbdYATIVXsssefnm9/pd+5vfyOXffaPvwM9f +yWj95u2L12hz+nt+U7/6zcvv5KtfvH3z3Te/fP3vb6af6ML/p4fnsrplQL8+/MO//W/5IOuXs/Tw +u7fPnksD8rnVuXr24pufvrc5ebm3Dwf9Uq7kR//9/VffPvy7rK9+uVLvXv/x4eWbb4ZmG+XZ668P +//zs7Tff3/RvXj57/UwYFeit5V+9+KN880x6qrfdaU9oVObJN9I5vIRVTm7wngrDV0+40bN3fxBW +9PD6629b2/px/+BK+/72vnyOOfj2cHz73bd/OPzuzZuXrdn9V611I5OK+n8b9/gNL3j9D6+1g87v +ZBVO7yRM6G/uLlL78TvIl3/Lrd88e/nyxe/fPvvmDy+eX7rBhe/bnfS7D5lYf371b29evvj2VZ9P +A+U3z96+e/H85cOXf/723cOrJw/u4e7rF8LkHlnG763z5Z+evXv+h1+9+Le3z96+eHjv6sMA/PuL +11/L3P/yuxfvHnoHvXn1DcSYw5d/ePbNA1/j3R/uWfPL1mD+Slj/yNy/+OI9XF9kpOPr4ftfvH32 +9QvZUEQo+8Wbl18/vD78Fux92n2S7ascjl9P/zrNVgLLcvi7r45vp/82zac/4aTEoSQri5XMf15W +/Jvk11hKK3XeduV6KEcpN1Zuh3I330/zvZfdg40/cShpKMuuZC0Tf5WwSin8XYey7cp1OLZy08ox +3ErxT7eTfLgj6Tbcj2XsOj6c/6ShLEPJcUWZ9JdIu73UuEnR/6+HctQy/V+XxvKx0Uy78VyGUe1j +K2Vqw7sMg6yjOo5ulYLfGNW6G99tGGH5f7Kh9sE+tmHW3xjlu3G05X/9mS+OdZx2A51kXPEbI4sx +XlkqR7mcjPC1lf3Yylji1x3L7cko+k0Tx7CPGYoOkg/ZZoMlAzTZGGGsbqzcstxZuUfxlYWXGccy +cJQW6/jKDj1ykdyzbyJffuXrbXyVWz5xsCdcOWXkESbeF/eJKaUlramINralo5TbdC+jHZa0LEte +ylKXbblejsvtcrfcS0fGnPKS11zylq/zMd/ku3w/yQMFmaXLmtd1reu2Xq/H9Wa9Xe9lLgTphqXk +IjJ72cqx3JTbci/zJNRYl5rrWkvd6nU91tt6V+9lvsRpS9uySTtbFSn/uN1sd9u9TJpwna6X63y9 +Xtfr7fr6+ijl5vr2+o4zKcoLLMd8LMd63OSr4/HmeHe8l9kVJvZ2ullu8o08wM12c31zvLm5ub25 +l8kWOArLbb5db+Xhbuvtdnu8vbm9u72/m2Vc0t1yt96Vu3q33cm97m7ubqe7u7t7zIh76bD7fC9v +ei/Pfn8tRW55L1fen/zIWM4ymu3z3VBuh3IzlOOuXA9l8zLJf3UoZSjrruShLENJQ5EJON3HVkYW +1pnvPD763fhzuys3Wib+Og7leijbrtShlKGsQ8nTXW5l2ZU0lDiUMJR5LNrlk/X9+PTjz81Qjlq4 +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 +9bSO8fVkj/k6233U+7q+3IPvFshCZZRHz7JOOIItArf5dxpx86gxmJfxyWg1ww5H2JxVMPI+apL8 +8X0GKcjTv9NPQLT43rZJDfs+6jG+zuCYr7M9R72u68s9uMIRTZ7vfXM4l7ZPB+G02dP75y7jfWqX ++VzGddRzwdcZ3DcHM/+c69O2TSVh76Me4+sMjvk623PU67q+3IPvsHzZL0dkKy+LJ/zX6xKuweth +hfHT63Jvu1+B+6jHWD6/qx8W+zfnEcUpXpZzsPPQrp89t+x1iuf23tvuB3Ef9RjL5zfGp/gdP/z4 +tU8ffphfN6ibGfI2+no/3cy4N++jvuOQPoPPcUg9yU9xSD20+6jH+DqDY77O9hz1uq4v9+DLh/+6 +OedpXwc5j+b6uct4n9plPpdxHfUdh/QZfI5D6h36FIesn2/OZXydwTFfZ3uOel3Xl3vwHSbyIt3i +p/vaLIx//T5SuXixX2d6Ge+rusznDlxHfSeqfQafE9XvE7sS1aPvOH5MAcQ35dvss+izvQfVy3gP +wJf5DNbXUc+wfp3BPQV8PbHvMyxszzhcvk+rgzC/PH56gk4OHKM9wU+rA/mtO8jsNYc93LdvbuOn +1cG97fb476Me4+sMjvk6233U+7q+3IPvE2SWW/y6r8eJv37/uPvXmV7G+6ou87kD14Lj3KvLMb/v +6+XEX/d1u/v3fT3G13095uts91Hv6/pyD75XkNme8evWHj/+OoXj8V8nexnvC7vM5yZca45zuy7f +/L61lx9/PYbt8d8P7BhfD/eYr7PdR72v68s9+D5B5h5RuDlS/zIU2Pz6vBkDy5+GAsbL2vw8FOBQ +aCT0PiqicJ8+Q5o+DQNnu/1h38c7xtdvH/N1nueY1xV9ufrvHCJ43dRrHDincL7t62Qv431hl/nc +hOuocbOu3z839fpa903dX/V9U4/xdVOP+TrPc8zrir5c/fcMDrzu6PX5n98/n/R1ppfxvqrLfO7A +ddS4U9fvnzt6faT7zu+P+X5Cx/h6msd8nec55nVFX67+5//y6Oe/+P3v/+TXX/7023hFPv8LYp+1 +oBkrxPD8DzBpPh5CzYRFfPhYx/zT2wxgWe9Uol7H+G3rOcTveW7fQ5j6OpelFtz7zOEG0ixfTsZh +29Nnta09HwsLGtNDfbvMrDWkmS3aP1+5f+0n+JkV/BByAT7+AZWMffo0PnZuH686zSQwy0g/UD+J +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 +hX4Ybrz5/l879+9mrd3N9r1vG1u12ldvJl610/zZvk9vbV+7rX95ONz647eN7JfqN+tHvZ2B7e7w +8Oa3+Rcn21vZP3/a+KPz1U9r17YOkh/2pyL7py4O9Kt//frv9RebtVezXxqXu/3b/btvt3+7f3tQ +O7q59c21k+3rD5sHa9eQWNu/7z092Tr47Se90bnfeX37YONwuHmofxEj5Pj9y62G2Pnv/bvfffWT +w2ObPNj8z5v/9Oy3L/+79aj56B8bVfPHP9d3q190XRte15sna9eKP67fbDxoqH9d3zzM9u7cXb+W +fnlz48k3v9+8v/nVy+3N1snX37764YvDO41G/S18a998cLBz6N4sklt13W//8/fb7f/80NzoXPvu +q2r/5r9P1nd2v/wvtP/G/Ts/HKZr1/I7r367v95tfHV0897jO7f00b/vtbW+NThI1/uNR+Lm29uC +MTa2fhi8smTTX7X0T2nSvN3evFW34yse37te/aa10dHPjlwPft65dn/z0d0vfnrwTaEGdlwe/Zp/ +8a3e7P3n5t1XzV9vy/0vfkO033av2Q59m3/9BQzJr/lP+b+6QKdvN97eyKueNV81dxLx2xePt27V +7365/Y+bv/ThLTn88B/EgkXWriX7//sow+83v92+67/d/enBj6745jcPfnfI5M/ykWXd18nNb799 +8I3c+u7NPY/np3t37zT/ePIfHElusMX3dEP5t9hCGz9wA34LDRDX7z2HQq0MYeofG1t7SOqt1uC7 +LP8l/6Ox/mLrj5tbB7d+/O+Dev2rf27k+y//VTy79vrl+tPNjWdbB7vt/97/72+336xd28h+frHn +iPlL3vzlwZ64+Woje73+dHvrj5/2Ntt/5LfuHBxde7O9efC1sAT89netnzd74X1m979HP64/3fn6 +x+2tG80fHW2I0I737egPj2v/uvndq/p/XYe+zU39/p0Xw/9df/HD8GSya2OUjehAA/G6/w9CtWtn +ztNNq489+KV57Y38/e53W8n2v++nyAJ3f7+7vWW54+tvbm70iv+Mj9UoZeOBpYFwnPPd4eAEqWT7 +EtPph52H63s/COSYuzeP7/y+ff3gx9p6cvfFL/LGP/9z1zVklBz5yfOitX39y+Mbm4f587cPbu7U +tgOn2gnwcw8kzO6DJnDofTupjr60XfvixuabwwcDfafx8vm6/kX+ND4Gz77vvBrB/b8PH1S/2S+m +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 + + + diff --git a/img/universal/cloud-download-dashboard-icon.svg b/img/universal/cloud-download-dashboard-icon.svg new file mode 100644 index 0000000000..031da70972 --- /dev/null +++ b/img/universal/cloud-download-dashboard-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/universal/docker-logo-pin+@2x.png b/img/universal/docker-logo-pin+@2x.png new file mode 100644 index 0000000000..2cadb5e590 Binary files /dev/null and b/img/universal/docker-logo-pin+@2x.png differ diff --git a/img/universal/docker-logo-pin.png b/img/universal/docker-logo-pin.png new file mode 100644 index 0000000000..8c7ca8338d Binary files /dev/null and b/img/universal/docker-logo-pin.png differ diff --git a/img/universal/official-repository-icon.png b/img/universal/official-repository-icon.png new file mode 100644 index 0000000000..ccafcee156 Binary files /dev/null and b/img/universal/official-repository-icon.png differ diff --git a/img/universal/star-icon.svg b/img/universal/star-icon.svg new file mode 100644 index 0000000000..8a22ad5d1d --- /dev/null +++ b/img/universal/star-icon.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/img/universal/trusted-icon.svg b/img/universal/trusted-icon.svg new file mode 100644 index 0000000000..700f275f8b --- /dev/null +++ b/img/universal/trusted-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/include/no-remote-sudo.md~ b/include/no-remote-sudo.md~ new file mode 100644 index 0000000000..065b0cbfd7 --- /dev/null +++ b/include/no-remote-sudo.md~ @@ -0,0 +1,3 @@ +> **Note:** if you are using a remote Docker daemon, such as Boot2Docker, +> then _do not_ type the `sudo` before the `docker` commands shown in the +> documentation's examples. diff --git a/index.html b/index.html new file mode 100644 index 0000000000..9d23de7acc --- /dev/null +++ b/index.html @@ -0,0 +1,924 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + +

+ + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

About Docker

+

Develop, Ship and Run Any Application, Anywhere

+

Docker is a platform for developers and sysadmins +to develop, ship, and run applications. Docker lets you quickly assemble +applications from components and eliminates the friction that can come when +shipping code. Docker lets you get your code tested and deployed into production +as fast as possible.

+

Docker consists of:

+
    +
  • The Docker Engine - our lightweight and powerful open source container + virtualization technology combined with a work flow for building + and containerizing your applications.
  • +
  • Docker Hub - our SaaS service for + sharing and managing your application stacks.
  • +
+

Why Docker?

+

Faster delivery of your applications

+
    +
  • We want your environment to work better. Docker containers, + and the work flow that comes with them, help your developers, + sysadmins, QA folks, and release engineers work together to get your code + into production and make it useful. We've created a standard + container format that lets developers care about their applications + inside containers while sysadmins and operators can work on running the + container in your deployment. This separation of duties streamlines and + simplifies the management and deployment of code.
  • +
  • We make it easy to build new containers, enable rapid iteration of + your applications, and increase the visibility of changes. This + helps everyone in your organization understand how an application works + and how it is built.
  • +
  • Docker containers are lightweight and fast! Containers have + sub-second launch times, reducing the cycle + time of development, testing, and deployment.
  • +
+

Deploy and scale more easily

+
    +
  • Docker containers run (almost) everywhere. You can deploy + containers on desktops, physical servers, virtual machines, into + data centers, and up to public and private clouds.
  • +
  • Since Docker runs on so many platforms, it's easy to move your + applications around. You can easily move an application from a + testing environment into the cloud and back whenever you need.
  • +
  • Docker's lightweight containers also make scaling up and + down fast and easy. You can quickly launch more containers when + needed and then shut them down easily when they're no longer needed.
  • +
+

Get higher density and run more workloads

+
    +
  • Docker containers don't need a hypervisor, so you can pack more of + them onto your hosts. This means you get more value out of every + server and can potentially reduce what you spend on equipment and + licenses.
  • +
+

Faster deployment makes for easier management

+
    +
  • As Docker speeds up your work flow, it gets easier to make lots + of small changes instead of huge, big bang updates. Smaller + changes mean reduced risk and more uptime.
  • +
+

About this guide

+

The Understanding Docker section will help you:

+
    +
  • See how Docker works at a high level
  • +
  • Understand the architecture of Docker
  • +
  • Discover Docker's features;
  • +
  • See how Docker compares to virtual machines
  • +
  • See some common use cases.
  • +
+

Installation Guides

+

The installation section will show you how to +install Docker on a variety of platforms.

+

Docker User Guide

+

To learn about Docker in more detail and to answer questions about usage and +implementation, check out the Docker User Guide.

+

Release Notes

+

A summary of the changes in each release in the current series can now be found +on the separate Release Notes page

+

Licensing

+

Docker is licensed under the Apache License, Version 2.0. See +LICENSE for the full +license text.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/index.md~ b/index.md~ new file mode 100644 index 0000000000..993603eb33 --- /dev/null +++ b/index.md~ @@ -0,0 +1,99 @@ +page_title: About Docker +page_description: Introduction to Docker. +page_keywords: docker, introduction, documentation, about, technology, understanding, Dockerfile + +# About Docker + +**Develop, Ship and Run Any Application, Anywhere** + +[**Docker**](https://www.docker.com) is a platform for developers and sysadmins +to develop, ship, and run applications. Docker lets you quickly assemble +applications from components and eliminates the friction that can come when +shipping code. Docker lets you get your code tested and deployed into production +as fast as possible. + +Docker consists of: + +* The Docker Engine - our lightweight and powerful open source container + virtualization technology combined with a work flow for building + and containerizing your applications. +* [Docker Hub](https://hub.docker.com) - our SaaS service for + sharing and managing your application stacks. + +## Why Docker? + +*Faster delivery of your applications* + +* We want your environment to work better. Docker containers, + and the work flow that comes with them, help your developers, + sysadmins, QA folks, and release engineers work together to get your code + into production and make it useful. We've created a standard + container format that lets developers care about their applications + inside containers while sysadmins and operators can work on running the + container in your deployment. This separation of duties streamlines and + simplifies the management and deployment of code. +* We make it easy to build new containers, enable rapid iteration of + your applications, and increase the visibility of changes. This + helps everyone in your organization understand how an application works + and how it is built. +* Docker containers are lightweight and fast! Containers have + sub-second launch times, reducing the cycle + time of development, testing, and deployment. + +*Deploy and scale more easily* + +* Docker containers run (almost) everywhere. You can deploy + containers on desktops, physical servers, virtual machines, into + data centers, and up to public and private clouds. +* Since Docker runs on so many platforms, it's easy to move your + applications around. You can easily move an application from a + testing environment into the cloud and back whenever you need. +* Docker's lightweight containers also make scaling up and + down fast and easy. You can quickly launch more containers when + needed and then shut them down easily when they're no longer needed. + +*Get higher density and run more workloads* + +* Docker containers don't need a hypervisor, so you can pack more of + them onto your hosts. This means you get more value out of every + server and can potentially reduce what you spend on equipment and + licenses. + +*Faster deployment makes for easier management* + +* As Docker speeds up your work flow, it gets easier to make lots + of small changes instead of huge, big bang updates. Smaller + changes mean reduced risk and more uptime. + +## About this guide + +The [Understanding Docker section](introduction/understanding-docker.md) will help you: + + - See how Docker works at a high level + - Understand the architecture of Docker + - Discover Docker's features; + - See how Docker compares to virtual machines + - See some common use cases. + +### Installation Guides + +The [installation section](/installation/#installation) will show you how to +install Docker on a variety of platforms. + + +### Docker User Guide + +To learn about Docker in more detail and to answer questions about usage and +implementation, check out the [Docker User Guide](/userguide/). + +## Release Notes + +A summary of the changes in each release in the current series can now be found +on the separate [Release Notes page](/release-notes/) + +## Licensing + +Docker is licensed under the Apache License, Version 2.0. See +[LICENSE](https://github.com/docker/docker/blob/master/LICENSE) for the full +license text. + diff --git a/installation.md~ b/installation.md~ new file mode 100644 index 0000000000..7eaabeeefe --- /dev/null +++ b/installation.md~ @@ -0,0 +1,26 @@ +# Installation + +## Introduction + +There are a number of ways to install Docker, depending on where you +want to run the daemon. The [*Ubuntu*](ubuntulinux/#ubuntu-linux) +installation is the officially-tested version. The community adds more +techniques for installing Docker all the time. + +## Contents: + + - [Ubuntu](ubuntulinux/) + - [Red Hat Enterprise Linux](rhel/) + - [Fedora](fedora/) + - [Debian](debian/) + - [Arch Linux](archlinux/) + - [CRUX Linux](cruxlinux/) + - [Gentoo](gentoolinux/) + - [openSUSE and SUSE Linux Enterprise](SUSE/) + - [FrugalWare](frugalware/) + - [Mac OS X](mac/) + - [Windows](windows/) + - [Amazon EC2](amazon/) + - [Rackspace Cloud](rackspace/) + - [Google Cloud Platform](google/) + - [Binaries](binaries/) diff --git a/installation/MAINTAINERS b/installation/MAINTAINERS new file mode 100644 index 0000000000..aca13975fd --- /dev/null +++ b/installation/MAINTAINERS @@ -0,0 +1,2 @@ +google.md: Johan Euphrosine (@proppy) +softlayer.md: Phil Jackson (@underscorephil) diff --git a/installation/SUSE.md~ b/installation/SUSE.md~ new file mode 100644 index 0000000000..2a0aa91d9f --- /dev/null +++ b/installation/SUSE.md~ @@ -0,0 +1,82 @@ +page_title: Installation on openSUSE and SUSE Linux Enterprise +page_description: Installation instructions for Docker on openSUSE and on SUSE Linux Enterprise. +page_keywords: openSUSE, SUSE Linux Enterprise, SUSE, SLE, docker, documentation, installation + +# openSUSE + +Docker is available in **openSUSE 12.3 and later**. Please note that due +to its current limitations Docker is able to run only **64 bit** architecture. + +Docker is not part of the official repositories of openSUSE 12.3 and +openSUSE 13.1. Hence it is neccessary to add the [Virtualization +repository](https://build.opensuse.org/project/show/Virtualization) from +[OBS](https://build.opensuse.org/) to install the `docker` package. + +Execute one of the following commands to add the Virtualization repository: + + # openSUSE 12.3 + $ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/openSUSE_12.3/ Virtualization + + # openSUSE 13.1 + $ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/openSUSE_13.1/ Virtualization + +No extra repository is required for openSUSE 13.2 and later. + +# SUSE Linux Enterprise + +Docker is available in **SUSE Linux Enterprise 12 and later**. Please note that +due to its current limitations Docker is able to run only on **64 bit** +architecture. + +# Installation + +Install the Docker package. + + $ sudo zypper in docker + +Now that it's installed, let's start the Docker daemon. + + $ sudo systemctl start docker + +If we want Docker to start at boot, we should also: + + $ sudo systemctl enable docker + +The docker package creates a new group named docker. Users, other than +root user, need to be part of this group in order to interact with the +Docker daemon. You can add users with: + + $ sudo /usr/sbin/usermod -a -G docker + +To verify that everything has worked as expected: + + $ sudo docker run --rm -i -t opensuse /bin/bash + +This should download and import the `opensuse` image, and then start `bash` in +a container. To exit the container type `exit`. + +If you want your containers to be able to access the external network you must +enable the `net.ipv4.ip_forward` rule. +This can be done using YaST by browsing to the +`Network Devices -> Network Settings -> Routing` menu and ensuring that the +`Enable IPv4 Forwarding` box is checked. + +This option cannot be changed when networking is handled by the Network Manager. +In such cases the `/etc/sysconfig/SuSEfirewall2` file needs to be edited by +hand to ensure the `FW_ROUTE` flag is set to `yes` like so: + + FW_ROUTE="yes" + + +**Done!** + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to [customize your systemd Docker daemon options](/articles/systemd/). + +## What's next + +Continue with the [User Guide](/userguide/). + diff --git a/installation/SUSE/index.html b/installation/SUSE/index.html new file mode 100644 index 0000000000..6976d06cd5 --- /dev/null +++ b/installation/SUSE/index.html @@ -0,0 +1,887 @@ + + + + + + + + + + + + + + + + + + + + + + + + SUSE - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

openSUSE

+

Docker is available in openSUSE 12.3 and later. Please note that due +to its current limitations Docker is able to run only 64 bit architecture.

+

Docker is not part of the official repositories of openSUSE 12.3 and +openSUSE 13.1. Hence it is neccessary to add the Virtualization +repository from +OBS to install the docker package.

+

Execute one of the following commands to add the Virtualization repository:

+
# openSUSE 12.3
+$ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/openSUSE_12.3/ Virtualization
+
+# openSUSE 13.1
+$ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/openSUSE_13.1/ Virtualization
+
+

No extra repository is required for openSUSE 13.2 and later.

+

SUSE Linux Enterprise

+

Docker is available in SUSE Linux Enterprise 12 and later. Please note that +due to its current limitations Docker is able to run only on 64 bit +architecture.

+

Installation

+

Install the Docker package.

+
$ sudo zypper in docker
+
+

Now that it's installed, let's start the Docker daemon.

+
$ sudo systemctl start docker
+
+

If we want Docker to start at boot, we should also:

+
$ sudo systemctl enable docker
+
+

The docker package creates a new group named docker. Users, other than +root user, need to be part of this group in order to interact with the +Docker daemon. You can add users with:

+
$ sudo /usr/sbin/usermod -a -G docker <username>
+
+

To verify that everything has worked as expected:

+
$ sudo docker run --rm -i -t opensuse /bin/bash
+
+

This should download and import the opensuse image, and then start bash in +a container. To exit the container type exit.

+

If you want your containers to be able to access the external network you must +enable the net.ipv4.ip_forward rule. +This can be done using YaST by browsing to the +Network Devices -> Network Settings -> Routing menu and ensuring that the +Enable IPv4 Forwarding box is checked.

+

This option cannot be changed when networking is handled by the Network Manager. +In such cases the /etc/sysconfig/SuSEfirewall2 file needs to be edited by +hand to ensure the FW_ROUTE flag is set to yes like so:

+
FW_ROUTE="yes"
+
+

Done!

+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to customize your systemd Docker daemon options.

+

What's next

+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/amazon.md~ b/installation/amazon.md~ new file mode 100644 index 0000000000..6a28685dc5 --- /dev/null +++ b/installation/amazon.md~ @@ -0,0 +1,49 @@ +page_title: Installation on Amazon EC2 +page_description: Installation instructions for Docker on Amazon EC2. +page_keywords: amazon ec2, virtualization, cloud, docker, documentation, installation + +# Amazon EC2 + +There are several ways to install Docker on AWS EC2. You can use Amazon Linux, which includes the Docker packages in its Software Repository, or opt for any of the other supported Linux images, for example a [*Standard Ubuntu Installation*](#standard-ubuntu-installation). + +**You'll need an** [AWS account](http://aws.amazon.com/) **first, of +course.** + +## Amazon QuickStart with Amazon Linux AMI 2014.09.1 + +The latest Amazon Linux AMI, 2014.09.1, is Docker ready. Docker packages can be installed from Amazon's provided Software +Repository. + +1. **Choose an image:** + - Launch the [Create Instance + Wizard](https://console.aws.amazon.com/ec2/v2/home?#LaunchInstanceWizard:) + menu on your AWS Console. + - In the Quick Start menu, select the Amazon provided AMI for Amazon Linux 2014.09.1 + - For testing you can use the default (possibly free) + `t2.micro` instance (more info on + [pricing](http://aws.amazon.com/ec2/pricing/)). + - Click the `Next: Configure Instance Details` + button at the bottom right. +2. After a few more standard choices where defaults are probably ok, + your Amazon Linux instance should be running! +3. SSH to your instance to install Docker : + `ssh -i ec2-user@` +4. Once connected to the instance, type + `sudo yum install -y docker ; sudo service docker start` + to install and start Docker + +**If this is your first AWS instance, you may need to set up your Security Group to allow SSH.** By default all incoming ports to your new instance will be blocked by the AWS Security Group, so you might just get timeouts when you try to connect. + +Once you`ve got Docker installed, you're ready to try it out – head on +over to the [User Guide](/userguide). + +## Standard Ubuntu Installation + +If you want a more hands-on installation, then you can follow the +[*Ubuntu*](/installation/ubuntulinux) instructions installing Docker +on any EC2 instance running Ubuntu. Just follow Step 1 from the Amazon +QuickStart above to pick an image (or use one of your +own) and skip the step with the *User Data*. Then continue with the +[*Ubuntu*](/installation/ubuntulinux) instructions. + +Continue with the [User Guide](/userguide/). diff --git a/installation/amazon/index.html b/installation/amazon/index.html new file mode 100644 index 0000000000..5226ea21b3 --- /dev/null +++ b/installation/amazon/index.html @@ -0,0 +1,864 @@ + + + + + + + + + + + + + + + + + + + + + + + + Amazon EC2 - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Amazon EC2

+

There are several ways to install Docker on AWS EC2. You can use Amazon Linux, which includes the Docker packages in its Software Repository, or opt for any of the other supported Linux images, for example a Standard Ubuntu Installation.

+

You'll need an AWS account first, of +course.

+

Amazon QuickStart with Amazon Linux AMI 2014.09.1

+

The latest Amazon Linux AMI, 2014.09.1, is Docker ready. Docker packages can be installed from Amazon's provided Software +Repository.

+
    +
  1. Choose an image:
  2. +
  3. Launch the Create Instance + Wizard + menu on your AWS Console.
  4. +
  5. In the Quick Start menu, select the Amazon provided AMI for Amazon Linux 2014.09.1
  6. +
  7. For testing you can use the default (possibly free) + t2.micro instance (more info on + pricing).
  8. +
  9. Click the Next: Configure Instance Details + button at the bottom right.
  10. +
  11. After a few more standard choices where defaults are probably ok, + your Amazon Linux instance should be running!
  12. +
  13. SSH to your instance to install Docker : + ssh -i <path to your private key> ec2-user@<your public IP address>
  14. +
  15. Once connected to the instance, type + sudo yum install -y docker ; sudo service docker start + to install and start Docker
  16. +
+

If this is your first AWS instance, you may need to set up your Security Group to allow SSH. By default all incoming ports to your new instance will be blocked by the AWS Security Group, so you might just get timeouts when you try to connect.

+

Once you`ve got Docker installed, you're ready to try it out – head on +over to the User Guide.

+

Standard Ubuntu Installation

+

If you want a more hands-on installation, then you can follow the +Ubuntu instructions installing Docker +on any EC2 instance running Ubuntu. Just follow Step 1 from the Amazon +QuickStart above to pick an image (or use one of your +own) and skip the step with the User Data. Then continue with the +Ubuntu instructions.

+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/archlinux.md~ b/installation/archlinux.md~ new file mode 100644 index 0000000000..99849c7aa0 --- /dev/null +++ b/installation/archlinux.md~ @@ -0,0 +1,61 @@ +page_title: Installation on Arch Linux +page_description: Installation instructions for Docker on ArchLinux. +page_keywords: arch linux, virtualization, docker, documentation, installation + +# Arch Linux + +Installing on Arch Linux can be handled via the package in community: + + - [docker](https://www.archlinux.org/packages/community/x86_64/docker/) + +or the following AUR package: + + - [docker-git](https://aur.archlinux.org/packages/docker-git/) + +The docker package will install the latest tagged version of docker. The +docker-git package will build from the current master branch. + +## Dependencies + +Docker depends on several packages which are specified as dependencies +in the packages. The core dependencies are: + + - bridge-utils + - device-mapper + - iproute2 + - lxc + - sqlite + +## Installation + +For the normal package a simple + + pacman -S docker + +is all that is needed. + +For the AUR package execute: + + yaourt -S docker-git + +The instructions here assume **yaourt** is installed. See [Arch User +Repository](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages) +for information on building and installing packages from the AUR if you +have not done so before. + +## Starting Docker + +There is a systemd service unit created for docker. To start the docker +service: + + $ sudo systemctl start docker + +To start on system boot: + + $ sudo systemctl enable docker + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to [customize your systemd Docker daemon options](/articles/systemd/). diff --git a/installation/archlinux/index.html b/installation/archlinux/index.html new file mode 100644 index 0000000000..e2bcd8fe3e --- /dev/null +++ b/installation/archlinux/index.html @@ -0,0 +1,884 @@ + + + + + + + + + + + + + + + + + + + + + + + + Arch Linux - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Arch Linux

+

Installing on Arch Linux can be handled via the package in community:

+ +

or the following AUR package:

+ +

The docker package will install the latest tagged version of docker. The +docker-git package will build from the current master branch.

+

Dependencies

+

Docker depends on several packages which are specified as dependencies +in the packages. The core dependencies are:

+
    +
  • bridge-utils
  • +
  • device-mapper
  • +
  • iproute2
  • +
  • lxc
  • +
  • sqlite
  • +
+

Installation

+

For the normal package a simple

+
pacman -S docker
+
+

is all that is needed.

+

For the AUR package execute:

+
yaourt -S docker-git
+
+

The instructions here assume yaourt is installed. See Arch User +Repository +for information on building and installing packages from the AUR if you +have not done so before.

+

Starting Docker

+

There is a systemd service unit created for docker. To start the docker +service:

+
$ sudo systemctl start docker
+
+

To start on system boot:

+
$ sudo systemctl enable docker
+
+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to customize your systemd Docker daemon options.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/binaries.md~ b/installation/binaries.md~ new file mode 100644 index 0000000000..ef9f5cafa2 --- /dev/null +++ b/installation/binaries.md~ @@ -0,0 +1,133 @@ +page_title: Installation from Binaries +page_description: Instructions for installing Docker as a binary. Mostly meant for hackers who want to try out Docker on a variety of environments. +page_keywords: binaries, installation, docker, documentation, linux + +# Binaries + +**This instruction set is meant for hackers who want to try out Docker +on a variety of environments.** + +Before following these directions, you should really check if a packaged +version of Docker is already available for your distribution. We have +packages for many distributions, and more keep showing up all the time! + +## Check runtime dependencies + +To run properly, docker needs the following software to be installed at +runtime: + + - iptables version 1.4 or later + - Git version 1.7 or later + - procps (or similar provider of a "ps" executable) + - XZ Utils 4.9 or later + - a [properly mounted]( + https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount) + cgroupfs hierarchy (having a single, all-encompassing "cgroup" mount + point [is](https://github.com/docker/docker/issues/2683) + [not](https://github.com/docker/docker/issues/3485) + [sufficient](https://github.com/docker/docker/issues/4568)) + +## Check kernel dependencies + +Docker in daemon mode has specific kernel requirements. For details, +check your distribution in [*Installation*](../#installation-list). + +A 3.10 Linux kernel is the minimum requirement for Docker. +Kernels older than 3.10 lack some of the features required to run Docker +containers. These older versions are known to have bugs which cause data loss +and frequently panic under certain conditions. + +The latest minor version (3.x.y) of the 3.10 (or a newer maintained version) +Linux kernel is recommended. Keeping the kernel up to date with the latest +minor version will ensure critical kernel bugs get fixed. + +> **Warning**: +> Installing custom kernels and kernel packages is probably not +> supported by your Linux distribution's vendor. Please make sure to +> ask your vendor about Docker support first before attempting to +> install custom kernels on your distribution. + +> **Warning**: +> Installing a newer kernel might not be enough for some distributions +> which provide packages which are too old or incompatible with +> newer kernels. + +Note that Docker also has a client mode, which can run on virtually any +Linux kernel (it even builds on OS X!). + +## Enable AppArmor and SELinux when possible + +Please use AppArmor or SELinux if your Linux distribution supports +either of the two. This helps improve security and blocks certain +types of exploits. Your distribution's documentation should provide +detailed steps on how to enable the recommended security mechanism. + +Some Linux distributions enable AppArmor or SELinux by default and +they run a kernel which doesn't meet the minimum requirements (3.10 +or newer). Updating the kernel to 3.10 or newer on such a system +might not be enough to start Docker and run containers. +Incompatibilities between the version of AppArmor/SELinux user +space utilities provided by the system and the kernel could prevent +Docker from running, from starting containers or, cause containers to +exhibit unexpected behaviour. + +> **Warning**: +> If either of the security mechanisms is enabled, it should not be +> disabled to make Docker or its containers run. This will reduce +> security in that environment, lose support from the distribution's +> vendor for the system, and might break regulations and security +> policies in heavily regulated environments. + +## Get the docker binary: + + $ wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker + $ chmod +x docker + +> **Note**: +> If you have trouble downloading the binary, you can also get the smaller +> compressed release file: +> [https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz]( +> https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz) + +## Run the docker daemon + + # start the docker in daemon mode from the directory you unpacked + $ sudo ./docker -d & + +## Giving non-root access + +The `docker` daemon always runs as the root user, and the `docker` +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user *root*, and so, by default, you can +access it with `sudo`. + +If you (or your Docker installer) create a Unix group called *docker* +and add users to it, then the `docker` daemon will make the ownership of +the Unix socket read/writable by the *docker* group when the daemon +starts. The `docker` daemon must always run as the root user, but if you +run the `docker` client as a user in the *docker* group then you don't +need to add `sudo` to all the client commands. + +> **Warning**: +> The *docker* group (or the group specified with `-G`) is root-equivalent; +> see [*Docker Daemon Attack Surface*]( +> /articles/security/#docker-daemon-attack-surface) details. + +## Upgrades + +To upgrade your manual installation of Docker, first kill the docker +daemon: + + $ killall docker + +Then follow the regular installation steps. + +## Run your first container! + + # check your docker version + $ sudo ./docker version + + # run a container and open an interactive shell in the container + $ sudo ./docker run -i -t ubuntu /bin/bash + +Continue with the [User Guide](/userguide/). diff --git a/installation/binaries/index.html b/installation/binaries/index.html new file mode 100644 index 0000000000..741559fb8a --- /dev/null +++ b/installation/binaries/index.html @@ -0,0 +1,971 @@ + + + + + + + + + + + + + + + + + + + + + + + + Binaries - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Binaries

+

This instruction set is meant for hackers who want to try out Docker +on a variety of environments.

+

Before following these directions, you should really check if a packaged +version of Docker is already available for your distribution. We have +packages for many distributions, and more keep showing up all the time!

+

Check runtime dependencies

+

To run properly, docker needs the following software to be installed at +runtime:

+
    +
  • iptables version 1.4 or later
  • +
  • Git version 1.7 or later
  • +
  • procps (or similar provider of a "ps" executable)
  • +
  • XZ Utils 4.9 or later
  • +
  • a properly mounted + cgroupfs hierarchy (having a single, all-encompassing "cgroup" mount + point is + not + sufficient)
  • +
+

Check kernel dependencies

+

Docker in daemon mode has specific kernel requirements. For details, +check your distribution in Installation.

+

A 3.10 Linux kernel is the minimum requirement for Docker. +Kernels older than 3.10 lack some of the features required to run Docker +containers. These older versions are known to have bugs which cause data loss +and frequently panic under certain conditions.

+

The latest minor version (3.x.y) of the 3.10 (or a newer maintained version) +Linux kernel is recommended. Keeping the kernel up to date with the latest +minor version will ensure critical kernel bugs get fixed.

+
+

Warning: +Installing custom kernels and kernel packages is probably not +supported by your Linux distribution's vendor. Please make sure to +ask your vendor about Docker support first before attempting to +install custom kernels on your distribution.

+

Warning: +Installing a newer kernel might not be enough for some distributions +which provide packages which are too old or incompatible with +newer kernels.

+
+

Note that Docker also has a client mode, which can run on virtually any +Linux kernel (it even builds on OS X!).

+

Enable AppArmor and SELinux when possible

+

Please use AppArmor or SELinux if your Linux distribution supports +either of the two. This helps improve security and blocks certain +types of exploits. Your distribution's documentation should provide +detailed steps on how to enable the recommended security mechanism.

+

Some Linux distributions enable AppArmor or SELinux by default and +they run a kernel which doesn't meet the minimum requirements (3.10 +or newer). Updating the kernel to 3.10 or newer on such a system +might not be enough to start Docker and run containers. +Incompatibilities between the version of AppArmor/SELinux user +space utilities provided by the system and the kernel could prevent +Docker from running, from starting containers or, cause containers to +exhibit unexpected behaviour.

+
+

Warning: +If either of the security mechanisms is enabled, it should not be +disabled to make Docker or its containers run. This will reduce +security in that environment, lose support from the distribution's +vendor for the system, and might break regulations and security +policies in heavily regulated environments.

+
+

Get the docker binary:

+
$ wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker
+$ chmod +x docker
+
+
+

Note: +If you have trouble downloading the binary, you can also get the smaller +compressed release file: +https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz

+
+

Run the docker daemon

+
# start the docker in daemon mode from the directory you unpacked
+$ sudo ./docker -d &
+
+

Giving non-root access

+

The docker daemon always runs as the root user, and the docker +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user root, and so, by default, you can +access it with sudo.

+

If you (or your Docker installer) create a Unix group called docker +and add users to it, then the docker daemon will make the ownership of +the Unix socket read/writable by the docker group when the daemon +starts. The docker daemon must always run as the root user, but if you +run the docker client as a user in the docker group then you don't +need to add sudo to all the client commands.

+
+

Warning: +The docker group (or the group specified with -G) is root-equivalent; +see Docker Daemon Attack Surface details.

+
+

Upgrades

+

To upgrade your manual installation of Docker, first kill the docker +daemon:

+
$ killall docker
+
+

Then follow the regular installation steps.

+

Run your first container!

+
# check your docker version
+$ sudo ./docker version
+
+# run a container and open an interactive shell in the container
+$ sudo ./docker run -i -t ubuntu /bin/bash
+
+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/centos.md~ b/installation/centos.md~ new file mode 100644 index 0000000000..06dc8bfee8 --- /dev/null +++ b/installation/centos.md~ @@ -0,0 +1,136 @@ +page_title: Installation on CentOS +page_description: Instructions for installing Docker on CentOS +page_keywords: Docker, Docker documentation, requirements, linux, centos, epel, docker.io, docker-io + +# CentOS + +Docker is supported on the following versions of CentOS: + +- [*CentOS 7 (64-bit)*](#installing-docker---centos-7) +- [*CentOS 6.5 (64-bit)*](#installing-docker---centos-6.5) or later + +These instructions are likely work for other binary compatible EL6/EL7 distributions +such as Scientific Linux, but they haven't been tested. + +Please note that due to the current Docker limitations, Docker is able to +run only on the **64 bit** architecture. + +## Kernel support + +Currently the CentOS project will only support Docker when running on kernels +shipped by the distribution. There are kernel changes which will cause issues +if one decides to step outside that box and run non-distribution kernel packages. + +To run Docker on [CentOS-6.5](http://www.centos.org) or later, you will need +kernel version 2.6.32-431 or higher as this has specific kernel fixes to allow +Docker to run. + +## Installing Docker - CentOS-7 +Docker is included by default in the CentOS-Extras repository. To install +run the following command: + + $ sudo yum install docker + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +### FirewallD + +CentOS-7 introduced firewalld, which is a wrapper around iptables and can +conflict with Docker. + +When `firewalld` is started or restarted it will remove the `DOCKER` chain +from iptables, preventing Docker from working properly. + +When using Systemd, `firewalld` is started before Docker, but if you +start or restart `firewalld` after Docker, you will have to restart the Docker daemon. + +## Installing Docker - CentOS-6.5 + +For Centos-6.5, the Docker package is part of [Extra Packages +for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL) repository, +a community effort to create and maintain additional packages for the RHEL distribution. + +Firstly, you need to ensure you have the EPEL repository enabled. Please +follow the [EPEL installation instructions]( +https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). + +For CentOS-6, there is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called `docker-io`. + +To proceed with `docker-io` installation on CentOS-6, you may need to remove the +`docker` package first. + + $ sudo yum -y remove docker + +Next, let's install the `docker-io` package which will install Docker on our host. + + $ sudo yum install docker-io + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Manual installation of latest Docker release + +While using a package is the recommended way of installing Docker, +the above package might not be the current release version. If you need the latest +version, [you can install the binary directly]( +https://docs.docker.com/installation/binaries/). + +When installing the binary without a package, you may want +to integrate Docker with Systemd. For this, install the two unit files +(service and socket) from [the GitHub +repository](https://github.com/docker/docker/tree/master/contrib/init/systemd) +to `/etc/systemd/system`. + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Starting the Docker daemon + +Once Docker is installed, you will need to start the docker daemon. + + $ sudo service docker start + +If we want Docker to start at boot, we should also: + + $ sudo chkconfig docker on + +Now let's verify that Docker is working. First we'll need to get the latest +`centos` image. + + $ sudo docker pull centos + +Next we'll make sure that we can see the image by running: + + $ sudo docker images centos + +This should generate some output similar to: + + $ sudo docker images centos + REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE + centos latest 0b443ba03958 2 hours ago 297.6 MB + +Run a simple bash shell to test the image: + + $ sudo docker run -i -t centos /bin/bash + +If everything is working properly, you'll get a simple bash prompt. Type +`exit` to continue. + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to [customize your Systemd Docker daemon options](/articles/systemd/). + +## Dockerfiles +The CentOS Project provides a number of sample Dockerfiles which you may use +either as templates or to familiarize yourself with docker. These templates +are available on GitHub at [https://github.com/CentOS/CentOS-Dockerfiles]( +https://github.com/CentOS/CentOS-Dockerfiles) + +**Done!** You can either continue with the [Docker User +Guide](/userguide/) or explore and build on the images yourself. + +## Issues? + +If you have any issues - please report them directly in the +[CentOS bug tracker](http://bugs.centos.org). diff --git a/installation/centos/index.html b/installation/centos/index.html new file mode 100644 index 0000000000..e2388a3764 --- /dev/null +++ b/installation/centos/index.html @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + CentOS - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

CentOS

+

Docker is supported on the following versions of CentOS:

+ +

These instructions are likely work for other binary compatible EL6/EL7 distributions +such as Scientific Linux, but they haven't been tested.

+

Please note that due to the current Docker limitations, Docker is able to +run only on the 64 bit architecture.

+

Kernel support

+

Currently the CentOS project will only support Docker when running on kernels +shipped by the distribution. There are kernel changes which will cause issues +if one decides to step outside that box and run non-distribution kernel packages.

+

To run Docker on CentOS-6.5 or later, you will need +kernel version 2.6.32-431 or higher as this has specific kernel fixes to allow +Docker to run.

+

Installing Docker - CentOS-7

+

Docker is included by default in the CentOS-Extras repository. To install +run the following command:

+
$ sudo yum install docker
+
+

Please continue with the Starting the Docker daemon.

+

FirewallD

+

CentOS-7 introduced firewalld, which is a wrapper around iptables and can +conflict with Docker.

+

When firewalld is started or restarted it will remove the DOCKER chain +from iptables, preventing Docker from working properly.

+

When using Systemd, firewalld is started before Docker, but if you +start or restart firewalld after Docker, you will have to restart the Docker daemon.

+

Installing Docker - CentOS-6.5

+

For Centos-6.5, the Docker package is part of Extra Packages +for Enterprise Linux (EPEL) repository, +a community effort to create and maintain additional packages for the RHEL distribution.

+

Firstly, you need to ensure you have the EPEL repository enabled. Please +follow the EPEL installation instructions.

+

For CentOS-6, there is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called docker-io.

+

To proceed with docker-io installation on CentOS-6, you may need to remove the +docker package first.

+
$ sudo yum -y remove docker
+
+

Next, let's install the docker-io package which will install Docker on our host.

+
$ sudo yum install docker-io
+
+

Please continue with the Starting the Docker daemon.

+

Manual installation of latest Docker release

+

While using a package is the recommended way of installing Docker, +the above package might not be the current release version. If you need the latest +version, you can install the binary directly.

+

When installing the binary without a package, you may want +to integrate Docker with Systemd. For this, install the two unit files +(service and socket) from the GitHub +repository +to /etc/systemd/system.

+

Please continue with the Starting the Docker daemon.

+

Starting the Docker daemon

+

Once Docker is installed, you will need to start the docker daemon.

+
$ sudo service docker start
+
+

If we want Docker to start at boot, we should also:

+
$ sudo chkconfig docker on
+
+

Now let's verify that Docker is working. First we'll need to get the latest +centos image.

+
$ sudo docker pull centos
+
+

Next we'll make sure that we can see the image by running:

+
$ sudo docker images centos
+
+

This should generate some output similar to:

+
$ sudo docker images centos
+REPOSITORY      TAG             IMAGE ID          CREATED             VIRTUAL SIZE
+centos          latest          0b443ba03958      2 hours ago         297.6 MB
+
+

Run a simple bash shell to test the image:

+
$ sudo docker run -i -t centos /bin/bash
+
+

If everything is working properly, you'll get a simple bash prompt. Type +exit to continue.

+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to customize your Systemd Docker daemon options.

+

Dockerfiles

+

The CentOS Project provides a number of sample Dockerfiles which you may use +either as templates or to familiarize yourself with docker. These templates +are available on GitHub at https://github.com/CentOS/CentOS-Dockerfiles

+

Done! You can either continue with the Docker User +Guide or explore and build on the images yourself.

+

Issues?

+

If you have any issues - please report them directly in the +CentOS bug tracker.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/cruxlinux.md~ b/installation/cruxlinux.md~ new file mode 100644 index 0000000000..ead4c273ca --- /dev/null +++ b/installation/cruxlinux.md~ @@ -0,0 +1,72 @@ +page_title: Installation on CRUX Linux +page_description: Docker installation on CRUX Linux. +page_keywords: crux linux, virtualization, Docker, documentation, installation + +# CRUX Linux + +Installing on CRUX Linux can be handled via the contrib ports from +[James Mills](http://prologic.shortcircuit.net.au/) and are included in the +official [contrib](http://crux.nu/portdb/?a=repo&q=contrib) ports: + +- docker + +The `docker` port will build and install the latest tagged version of Docker. + + +## Installation + +Assuming you have contrib enabled, update your ports tree and install docker (*as root*): + + # prt-get depinst docker + + +## Kernel Requirements + +To have a working **CRUX+Docker** Host you must ensure your Kernel has +the necessary modules enabled for the Docker Daemon to function correctly. + +Please read the `README`: + + $ prt-get readme docker + +The `docker` port installs the `contrib/check-config.sh` script +provided by the Docker contributors for checking your kernel +configuration as a suitable Docker host. + +To check your Kernel configuration run: + + $ /usr/share/docker/check-config.sh + +## Starting Docker + +There is a rc script created for Docker. To start the Docker service (*as root*): + + # /etc/rc.d/docker start + +To start on system boot: + + - Edit `/etc/rc.conf` + - Put `docker` into the `SERVICES=(...)` array after `net`. + +## Images + +There is a CRUX image maintained by [James Mills](http://prologic.shortcircuit.net.au/) +as part of the Docker "Official Library" of images. To use this image simply pull it +or use it as part of your `FROM` line in your `Dockerfile(s)`. + + $ docker pull crux + $ docker run -i -t crux + +There are also user contributed [CRUX based image(s)](https://registry.hub.docker.com/repos/crux/) on the Docker Hub. + + +## Issues + +If you have any issues please file a bug with the +[CRUX Bug Tracker](http://crux.nu/bugs/). + +## Support + +For support contact the [CRUX Mailing List](http://crux.nu/Main/MailingLists) +or join CRUX's [IRC Channels](http://crux.nu/Main/IrcChannels). on the +[FreeNode](http://freenode.net/) IRC Network. diff --git a/installation/cruxlinux/index.html b/installation/cruxlinux/index.html new file mode 100644 index 0000000000..418621177f --- /dev/null +++ b/installation/cruxlinux/index.html @@ -0,0 +1,899 @@ + + + + + + + + + + + + + + + + + + + + + + + + CRUX Linux - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

CRUX Linux

+

Installing on CRUX Linux can be handled via the contrib ports from +James Mills and are included in the +official contrib ports:

+
    +
  • docker
  • +
+

The docker port will build and install the latest tagged version of Docker.

+

Installation

+

Assuming you have contrib enabled, update your ports tree and install docker (as root):

+
# prt-get depinst docker
+
+

Kernel Requirements

+

To have a working CRUX+Docker Host you must ensure your Kernel has +the necessary modules enabled for the Docker Daemon to function correctly.

+

Please read the README:

+
$ prt-get readme docker
+
+

The docker port installs the contrib/check-config.sh script +provided by the Docker contributors for checking your kernel +configuration as a suitable Docker host.

+

To check your Kernel configuration run:

+
$ /usr/share/docker/check-config.sh
+
+

Starting Docker

+

There is a rc script created for Docker. To start the Docker service (as root):

+
# /etc/rc.d/docker start
+
+

To start on system boot:

+
    +
  • Edit /etc/rc.conf
  • +
  • Put docker into the SERVICES=(...) array after net.
  • +
+

Images

+

There is a CRUX image maintained by James Mills +as part of the Docker "Official Library" of images. To use this image simply pull it +or use it as part of your FROM line in your Dockerfile(s).

+
$ docker pull crux
+$ docker run -i -t crux
+
+

There are also user contributed CRUX based image(s) on the Docker Hub.

+

Issues

+

If you have any issues please file a bug with the +CRUX Bug Tracker.

+

Support

+

For support contact the CRUX Mailing List +or join CRUX's IRC Channels. on the +FreeNode IRC Network.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/debian.md~ b/installation/debian.md~ new file mode 100644 index 0000000000..74acd1d42b --- /dev/null +++ b/installation/debian.md~ @@ -0,0 +1,103 @@ +page_title: Installation on Debian +page_description: Instructions for installing Docker on Debian. +page_keywords: Docker, Docker documentation, installation, debian + +# Debian + +Docker is supported on the following versions of Debian: + + - [*Debian 8.0 Jessie (64-bit)*](#debian-jessie-80-64-bit) + - [*Debian 7.7 Wheezy (64-bit)*](#debian-wheezystable-7x-64-bit) + +## Debian Jessie 8.0 (64-bit) + +Debian 8 comes with a 3.14.0 Linux kernel, and a `docker.io` package which +installs all its prerequisites from Debian's repository. + +> **Note**: +> Debian contains a much older KDE3/GNOME2 package called ``docker``, so the +> package and the executable are called ``docker.io``. + +### Installation + +To install the latest Debian package (may not be the latest Docker release): + + $ sudo apt-get update + $ sudo apt-get install docker.io + +To verify that everything has worked as expected: + + $ sudo docker run -i -t ubuntu /bin/bash + +Which should download the `ubuntu` image, and then start `bash` in a container. + +> **Note**: +> If you want to enable memory and swap accounting see +> [this](/installation/ubuntulinux/#memory-and-swap-accounting). + +## Debian Wheezy/Stable 7.x (64-bit) + +Docker requires Kernel 3.8+, while Wheezy ships with Kernel 3.2 (for more details +on why 3.8 is required, see discussion on +[bug #407](https://github.com/docker/docker/issues/407%20kernel%20versions)). + +Fortunately, wheezy-backports currently has [Kernel 3.16 +](https://packages.debian.org/search?suite=wheezy-backports§ion=all&arch=any&searchon=names&keywords=linux-image-amd64), +which is officially supported by Docker. + +### Installation + +1. Install Kernel from wheezy-backports + + Add the following line to your `/etc/apt/sources.list` + + `deb http://http.debian.net/debian wheezy-backports main` + + then install the `linux-image-amd64` package (note the use of + `-t wheezy-backports`) + + $ sudo apt-get update + $ sudo apt-get install -t wheezy-backports linux-image-amd64 + +2. Install Docker using the get.docker.com script: + + `curl -sSL https://get.docker.com/ | sh` + +## Giving non-root access + +The `docker` daemon always runs as the `root` user and the `docker` +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user `root`, and so, by default, you can +access it with `sudo`. + +If you (or your Docker installer) create a Unix group called `docker` +and add users to it, then the `docker` daemon will make the ownership of +the Unix socket read/writable by the `docker` group when the daemon +starts. The `docker` daemon must always run as the root user, but if you +run the `docker` client as a user in the `docker` group then you don't +need to add `sudo` to all the client commands. From Docker 0.9.0 you can +use the `-G` flag to specify an alternative group. + +> **Warning**: +> The `docker` group (or the group specified with the `-G` flag) is +> `root`-equivalent; see [*Docker Daemon Attack Surface*]( +> /articles/security/#docker-daemon-attack-surface) details. + +**Example:** + + # Add the docker group if it doesn't already exist. + $ sudo groupadd docker + + # Add the connected user "${USER}" to the docker group. + # Change the user name to match your preferred user. + # You may have to logout and log back in again for + # this to take effect. + $ sudo gpasswd -a ${USER} docker + + # Restart the Docker daemon. + $ sudo service docker restart + + +## What next? + +Continue with the [User Guide](/userguide/). diff --git a/installation/debian/index.html b/installation/debian/index.html new file mode 100644 index 0000000000..1c3c1b956a --- /dev/null +++ b/installation/debian/index.html @@ -0,0 +1,927 @@ + + + + + + + + + + + + + + + + + + + + + + + + Debian - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+ +
+
+ + + +
+ +
+ +

Debian

+

Docker is supported on the following versions of Debian:

+ +

Debian Jessie 8.0 (64-bit)

+

Debian 8 comes with a 3.14.0 Linux kernel, and a docker.io package which +installs all its prerequisites from Debian's repository.

+
+

Note: +Debian contains a much older KDE3/GNOME2 package called docker, so the +package and the executable are called docker.io.

+
+

Installation

+

To install the latest Debian package (may not be the latest Docker release):

+
$ sudo apt-get update
+$ sudo apt-get install docker.io
+
+

To verify that everything has worked as expected:

+
$ sudo docker run -i -t ubuntu /bin/bash
+
+

Which should download the ubuntu image, and then start bash in a container.

+
+

Note: +If you want to enable memory and swap accounting see +this.

+
+

Debian Wheezy/Stable 7.x (64-bit)

+

Docker requires Kernel 3.8+, while Wheezy ships with Kernel 3.2 (for more details +on why 3.8 is required, see discussion on +bug #407).

+

Fortunately, wheezy-backports currently has Kernel 3.16 +, +which is officially supported by Docker.

+

Installation

+
    +
  1. +

    Install Kernel from wheezy-backports

    +

    Add the following line to your /etc/apt/sources.list

    +

    deb http://http.debian.net/debian wheezy-backports main

    +

    then install the linux-image-amd64 package (note the use of +-t wheezy-backports)

    +
    $ sudo apt-get update
    +$ sudo apt-get install -t wheezy-backports linux-image-amd64
    +
    +
  2. +
  3. +

    Install Docker using the get.docker.com script:

    +

    curl -sSL https://get.docker.com/ | sh

    +
  4. +
+

Giving non-root access

+

The docker daemon always runs as the root user and the docker +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user root, and so, by default, you can +access it with sudo.

+

If you (or your Docker installer) create a Unix group called docker +and add users to it, then the docker daemon will make the ownership of +the Unix socket read/writable by the docker group when the daemon +starts. The docker daemon must always run as the root user, but if you +run the docker client as a user in the docker group then you don't +need to add sudo to all the client commands. From Docker 0.9.0 you can +use the -G flag to specify an alternative group.

+
+

Warning: +The docker group (or the group specified with the -G flag) is +root-equivalent; see Docker Daemon Attack Surface details.

+
+

Example:

+
# Add the docker group if it doesn't already exist.
+$ sudo groupadd docker
+
+# Add the connected user "${USER}" to the docker group.
+# Change the user name to match your preferred user.
+# You may have to logout and log back in again for
+# this to take effect.
+$ sudo gpasswd -a ${USER} docker
+
+# Restart the Docker daemon.
+$ sudo service docker restart
+
+

What next?

+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/fedora.md~ b/installation/fedora.md~ new file mode 100644 index 0000000000..ed4e8372a4 --- /dev/null +++ b/installation/fedora.md~ @@ -0,0 +1,84 @@ +page_title: Installation on Fedora +page_description: Instructions for installing Docker on Fedora. +page_keywords: Docker, Docker documentation, Fedora, requirements, linux + +# Fedora + +Docker is supported on the following versions of Fedora: + +- [*Fedora 20 (64-bit)*](#fedora-20-installation) +- [*Fedora 21 and later (64-bit)*](#fedora-21-and-later-installation) + +Currently the Fedora project will only support Docker when running on kernels +shipped by the distribution. There are kernel changes which will cause issues +if one decides to step outside that box and run non-distribution kernel packages. + +## Fedora 21 and later installation + +Install the `docker` package which will install Docker on our host. + + $ sudo yum -y install docker + +To update the `docker` package: + + $ sudo yum -y update docker + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Fedora 20 installation + +For `Fedora 20`, there is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called `docker-io`. + +To proceed with `docker-io` installation on Fedora 20, please remove the `docker` +package first. + + $ sudo yum -y remove docker + $ sudo yum -y install docker-io + +To update the `docker` package: + + $ sudo yum -y update docker-io + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Starting the Docker daemon + +Now that it's installed, let's start the Docker daemon. + + $ sudo systemctl start docker + +If we want Docker to start at boot, we should also: + + $ sudo systemctl enable docker + +Now let's verify that Docker is working. + + $ sudo docker run -i -t fedora /bin/bash + +> Note: If you get a `Cannot start container` error mentioning SELinux +> or permission denied, you may need to update the SELinux policies. +> This can be done using `sudo yum upgrade selinux-policy` and then rebooting. + +## Granting rights to users to use Docker + +The `docker` command line tool contacts the `docker` daemon process via a +socket file `/var/run/docker.sock` owned by `root:root`. Though it's +[recommended](https://lists.projectatomic.io/projectatomic-archives/atomic-devel/2015-January/msg00034.html) +to use `sudo` for docker commands, if users wish to avoid it, an administrator can +create a `docker` group, have it own `/var/run/docker.sock`, and add users to this group. + + $ sudo groupadd docker + $ sudo chown root:docker /var/run/docker.sock + $ sudo usermod -a -G docker $USERNAME + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to [customize your Systemd Docker daemon options](/articles/systemd/). + +## What next? + +Continue with the [User Guide](/userguide/). + diff --git a/installation/fedora/index.html b/installation/fedora/index.html new file mode 100644 index 0000000000..d7a778a1f8 --- /dev/null +++ b/installation/fedora/index.html @@ -0,0 +1,911 @@ + + + + + + + + + + + + + + + + + + + + + + + + Fedora - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Fedora

+

Docker is supported on the following versions of Fedora:

+ +

Currently the Fedora project will only support Docker when running on kernels +shipped by the distribution. There are kernel changes which will cause issues +if one decides to step outside that box and run non-distribution kernel packages.

+

Fedora 21 and later installation

+

Install the docker package which will install Docker on our host.

+
$ sudo yum -y install docker
+
+

To update the docker package:

+
$ sudo yum -y update docker
+
+

Please continue with the Starting the Docker daemon.

+

Fedora 20 installation

+

For Fedora 20, there is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called docker-io.

+

To proceed with docker-io installation on Fedora 20, please remove the docker +package first.

+
$ sudo yum -y remove docker
+$ sudo yum -y install docker-io
+
+

To update the docker package:

+
$ sudo yum -y update docker-io
+
+

Please continue with the Starting the Docker daemon.

+

Starting the Docker daemon

+

Now that it's installed, let's start the Docker daemon.

+
$ sudo systemctl start docker
+
+

If we want Docker to start at boot, we should also:

+
$ sudo systemctl enable docker
+
+

Now let's verify that Docker is working.

+
$ sudo docker run -i -t fedora /bin/bash
+
+
+

Note: If you get a Cannot start container error mentioning SELinux +or permission denied, you may need to update the SELinux policies. +This can be done using sudo yum upgrade selinux-policy and then rebooting.

+
+

Granting rights to users to use Docker

+

The docker command line tool contacts the docker daemon process via a +socket file /var/run/docker.sock owned by root:root. Though it's +recommended +to use sudo for docker commands, if users wish to avoid it, an administrator can +create a docker group, have it own /var/run/docker.sock, and add users to this group.

+
$ sudo groupadd docker
+$ sudo chown root:docker /var/run/docker.sock
+$ sudo usermod -a -G docker $USERNAME
+
+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to customize your Systemd Docker daemon options.

+

What next?

+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/frugalware.md~ b/installation/frugalware.md~ new file mode 100644 index 0000000000..6b4db23b26 --- /dev/null +++ b/installation/frugalware.md~ @@ -0,0 +1,50 @@ +page_title: Installation on FrugalWare +page_description: Installation instructions for Docker on FrugalWare. +page_keywords: frugalware linux, virtualization, docker, documentation, installation + +# FrugalWare + +Installing on FrugalWare is handled via the official packages: + + - [lxc-docker i686](http://www.frugalware.org/packages/200141) + - [lxc-docker x86_64](http://www.frugalware.org/packages/200130) + +The lxc-docker package will install the latest tagged version of Docker. + +## Dependencies + +Docker depends on several packages which are specified as dependencies +in the packages. The core dependencies are: + + - systemd + - lvm2 + - sqlite3 + - libguestfs + - lxc + - iproute2 + - bridge-utils + +## Installation + +A simple + + pacman -S lxc-docker + +is all that is needed. + +## Starting Docker + +There is a systemd service unit created for Docker. To start Docker as +service: + + $ sudo systemctl start lxc-docker + +To start on system boot: + + $ sudo systemctl enable lxc-docker + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to [customize your systemd Docker daemon options](/articles/systemd/). diff --git a/installation/frugalware/index.html b/installation/frugalware/index.html new file mode 100644 index 0000000000..21e239cbec --- /dev/null +++ b/installation/frugalware/index.html @@ -0,0 +1,875 @@ + + + + + + + + + + + + + + + + + + + + + + + + FrugalWare - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

FrugalWare

+

Installing on FrugalWare is handled via the official packages:

+ +

The lxc-docker package will install the latest tagged version of Docker.

+

Dependencies

+

Docker depends on several packages which are specified as dependencies +in the packages. The core dependencies are:

+
    +
  • systemd
  • +
  • lvm2
  • +
  • sqlite3
  • +
  • libguestfs
  • +
  • lxc
  • +
  • iproute2
  • +
  • bridge-utils
  • +
+

Installation

+

A simple

+
pacman -S lxc-docker
+
+

is all that is needed.

+

Starting Docker

+

There is a systemd service unit created for Docker. To start Docker as +service:

+
$ sudo systemctl start lxc-docker
+
+

To start on system boot:

+
$ sudo systemctl enable lxc-docker
+
+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to customize your systemd Docker daemon options.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/gentoolinux.md~ b/installation/gentoolinux.md~ new file mode 100644 index 0000000000..716eab9d82 --- /dev/null +++ b/installation/gentoolinux.md~ @@ -0,0 +1,97 @@ +page_title: Installation on Gentoo +page_description: Installation instructions for Docker on Gentoo. +page_keywords: gentoo linux, virtualization, docker, documentation, installation + +# Gentoo + +Installing Docker on Gentoo Linux can be accomplished using one of two ways: the **official** way and the `docker-overlay` way. + +Official project page of [Gentoo Docker](https://wiki.gentoo.org/wiki/Project:Docker) team. + +## Official way +The first and recommended way if you are looking for a stable +experience is to use the official `app-emulation/docker` package directly +from the tree. + +If any issues arise from this ebuild including, missing kernel +configuration flags or dependencies, open a bug +on the Gentoo [Bugzilla](https://bugs.gentoo.org) assigned to `docker AT gentoo DOT org` +or join and ask in the official +[IRC](http://webchat.freenode.net?channels=%23gentoo-containers&uio=d4) channel on the Freenode network. + +## docker-overlay way + +If you're looking for a `-bin` ebuild, a live ebuild, or a bleeding edge +ebuild, use the provided overlay, [docker-overlay](https://github.com/tianon/docker-overlay) +which can be added using `app-portage/layman`. The most accurate and +up-to-date documentation for properly installing and using the overlay +can be found in the [overlay](https://github.com/tianon/docker-overlay/blob/master/README.md#using-this-overlay). + +If any issues arise from this ebuild or the resulting binary, including +and especially missing kernel configuration flags or dependencies, +open an [issue](https://github.com/tianon/docker-overlay/issues) on +the `docker-overlay` repository or ping `tianon` directly in the `#docker` +IRC channel on the Freenode network. + +## Installation + +### Available USE flags + +| USE Flag | Default | Description | +| ------------- |:-------:|:------------| +| aufs | |Enables dependencies for the "aufs" graph driver, including necessary kernel flags.| +| btrfs | |Enables dependencies for the "btrfs" graph driver, including necessary kernel flags.| +| contrib | Yes |Install additional contributed scripts and components.| +| device-mapper | Yes |Enables dependencies for the "devicemapper" graph driver, including necessary kernel flags.| +| doc | |Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally.| +| lxc | |Enables dependencies for the "lxc" execution driver.| +| vim-syntax | |Pulls in related vim syntax scripts.| +| zsh-completion| |Enable zsh completion support.| + +USE flags are described in detail on [tianon's +blog](https://tianon.github.io/post/2014/05/17/docker-on-gentoo.html). + +The package should properly pull in all the necessary dependencies and +prompt for all necessary kernel options. + + $ sudo emerge -av app-emulation/docker + +>Note: Sometimes there is a disparity between the latest versions +>in the official **Gentoo tree** and the **docker-overlay**. +>Please be patient, and the latest version should propagate shortly. + +## Starting Docker + +Ensure that you are running a kernel that includes all the necessary +modules and configuration (and optionally for device-mapper +and AUFS or Btrfs, depending on the storage driver you've decided to use). + +To use Docker, the `docker` daemon must be running as **root**. +To use Docker as a **non-root** user, add yourself to the **docker** +group by running the following command: + + $ sudo usermod -a -G docker user + +### OpenRC + +To start the `docker` daemon: + + $ sudo /etc/init.d/docker start + +To start on system boot: + + $ sudo rc-update add docker default + +### systemd + +To start the `docker` daemon: + + $ sudo systemctl start docker + +To start on system boot: + + $ sudo systemctl enable docker + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to [customize your systemd Docker daemon options](/articles/systemd/). diff --git a/installation/gentoolinux/index.html b/installation/gentoolinux/index.html new file mode 100644 index 0000000000..fd3ef64b0a --- /dev/null +++ b/installation/gentoolinux/index.html @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + Gentoo - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Gentoo

+

Installing Docker on Gentoo Linux can be accomplished using one of two ways: the official way and the docker-overlay way.

+

Official project page of Gentoo Docker team.

+

Official way

+

The first and recommended way if you are looking for a stable
+experience is to use the official app-emulation/docker package directly
+from the tree.

+

If any issues arise from this ebuild including, missing kernel +configuration flags or dependencies, open a bug +on the Gentoo Bugzilla assigned to docker AT gentoo DOT org +or join and ask in the official +IRC channel on the Freenode network.

+

docker-overlay way

+

If you're looking for a -bin ebuild, a live ebuild, or a bleeding edge +ebuild, use the provided overlay, docker-overlay +which can be added using app-portage/layman. The most accurate and +up-to-date documentation for properly installing and using the overlay +can be found in the overlay.

+

If any issues arise from this ebuild or the resulting binary, including +and especially missing kernel configuration flags or dependencies, +open an issue on +the docker-overlay repository or ping tianon directly in the #docker +IRC channel on the Freenode network.

+

Installation

+

Available USE flags

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
USE FlagDefaultDescription
aufsEnables dependencies for the "aufs" graph driver, including necessary kernel flags.
btrfsEnables dependencies for the "btrfs" graph driver, including necessary kernel flags.
contribYesInstall additional contributed scripts and components.
device-mapperYesEnables dependencies for the "devicemapper" graph driver, including necessary kernel flags.
docAdd extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally.
lxcEnables dependencies for the "lxc" execution driver.
vim-syntaxPulls in related vim syntax scripts.
zsh-completionEnable zsh completion support.
+

USE flags are described in detail on tianon's +blog.

+

The package should properly pull in all the necessary dependencies and +prompt for all necessary kernel options.

+
$ sudo emerge -av app-emulation/docker
+
+
+

Note: Sometimes there is a disparity between the latest versions +in the official Gentoo tree and the docker-overlay.
+Please be patient, and the latest version should propagate shortly.

+
+

Starting Docker

+

Ensure that you are running a kernel that includes all the necessary +modules and configuration (and optionally for device-mapper +and AUFS or Btrfs, depending on the storage driver you've decided to use).

+

To use Docker, the docker daemon must be running as root.
+To use Docker as a non-root user, add yourself to the docker +group by running the following command:

+
$ sudo usermod -a -G docker user
+
+

OpenRC

+

To start the docker daemon:

+
$ sudo /etc/init.d/docker start
+
+

To start on system boot:

+
$ sudo rc-update add docker default
+
+

systemd

+

To start the docker daemon:

+
$ sudo systemctl start docker
+
+

To start on system boot:

+
$ sudo systemctl enable docker
+
+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to customize your systemd Docker daemon options.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/google.md~ b/installation/google.md~ new file mode 100644 index 0000000000..1cee5290da --- /dev/null +++ b/installation/google.md~ @@ -0,0 +1,41 @@ +page_title: Installation on Google Cloud Platform +page_description: Installation instructions for Docker on the Google Cloud Platform. +page_keywords: Docker, Docker documentation, installation, google, Google Compute Engine, Google Cloud Platform + +# Google Cloud Platform + +## QuickStart with Container-optimized Google Compute Engine images + +1. Go to [Google Cloud Console][1] and create a new Cloud Project with + [Compute Engine enabled][2] + +2. Download and configure the [Google Cloud SDK][3] to use your + project with the following commands: + + $ curl -sSL https://sdk.cloud.google.com | bash + $ gcloud auth login + $ gcloud config set project + +3. Start a new instance using the latest [Container-optimized image][4]: + (select a zone close to you and the desired instance size) + + $ gcloud compute instances create docker-playground \ + --image container-vm \ + --zone us-central1-a \ + --machine-type f1-micro + +4. Connect to the instance using SSH: + + $ gcloud compute ssh --zone us-central1-a docker-playground + docker-playground:~$ sudo docker run hello-world + Hello from Docker. + This message shows that your installation appears to be working correctly. + ... + +Read more about [deploying Containers on Google Cloud Platform][5]. + +[1]: https://cloud.google.com/console +[2]: https://developers.google.com/compute/docs/signup +[3]: https://developers.google.com/cloud/sdk +[4]: https://developers.google.com/compute/docs/containers#container-optimized_google_compute_engine_images +[5]: https://developers.google.com/compute/docs/containers diff --git a/installation/google/index.html b/installation/google/index.html new file mode 100644 index 0000000000..009d9546eb --- /dev/null +++ b/installation/google/index.html @@ -0,0 +1,856 @@ + + + + + + + + + + + + + + + + + + + + + + + + Google Cloud Platform - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Google Cloud Platform

+

QuickStart with Container-optimized Google Compute Engine images

+
    +
  1. +

    Go to Google Cloud Console and create a new Cloud Project with + Compute Engine enabled

    +
  2. +
  3. +

    Download and configure the Google Cloud SDK to use your + project with the following commands:

    +
    $ curl -sSL https://sdk.cloud.google.com | bash
    +$ gcloud auth login
    +$ gcloud config set project <google-cloud-project-id>
    +
    +
  4. +
  5. +

    Start a new instance using the latest Container-optimized image: + (select a zone close to you and the desired instance size)

    +
    $ gcloud compute instances create docker-playground \
    +  --image container-vm \
    +  --zone us-central1-a \
    +  --machine-type f1-micro
    +
    +
  6. +
  7. +

    Connect to the instance using SSH:

    +
    $ gcloud compute ssh --zone us-central1-a docker-playground
    +docker-playground:~$ sudo docker run hello-world
    +
    +

    Hello from Docker. +This message shows that your installation appears to be working correctly. +...

    +
  8. +
+

Read more about deploying Containers on Google Cloud Platform.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/images/bad_host.png b/installation/images/bad_host.png new file mode 100644 index 0000000000..cdc78defc5 Binary files /dev/null and b/installation/images/bad_host.png differ diff --git a/installation/images/cool_view.png b/installation/images/cool_view.png new file mode 100644 index 0000000000..8eebf21658 Binary files /dev/null and b/installation/images/cool_view.png differ diff --git a/installation/images/good_host.png b/installation/images/good_host.png new file mode 100644 index 0000000000..58b9783d3a Binary files /dev/null and b/installation/images/good_host.png differ diff --git a/installation/images/kitematic.png b/installation/images/kitematic.png new file mode 100644 index 0000000000..5bb221ccf7 Binary files /dev/null and b/installation/images/kitematic.png differ diff --git a/installation/images/linux_docker_host.png b/installation/images/linux_docker_host.png new file mode 100644 index 0000000000..42895c2f76 Binary files /dev/null and b/installation/images/linux_docker_host.png differ diff --git a/installation/images/mac_docker_host.png b/installation/images/mac_docker_host.png new file mode 100644 index 0000000000..9aa71a4ebc Binary files /dev/null and b/installation/images/mac_docker_host.png differ diff --git a/installation/images/newsite_view.png b/installation/images/newsite_view.png new file mode 100644 index 0000000000..27b6b1a4dd Binary files /dev/null and b/installation/images/newsite_view.png differ diff --git a/installation/images/osx-installer.png b/installation/images/osx-installer.png new file mode 100644 index 0000000000..15eb40839f Binary files /dev/null and b/installation/images/osx-installer.png differ diff --git a/installation/images/win/_01.gif b/installation/images/win/_01.gif new file mode 100644 index 0000000000..fbfc0a3028 Binary files /dev/null and b/installation/images/win/_01.gif differ diff --git a/installation/images/win/_02.gif b/installation/images/win/_02.gif new file mode 100644 index 0000000000..16d8a688ff Binary files /dev/null and b/installation/images/win/_02.gif differ diff --git a/installation/images/win/_06.gif b/installation/images/win/_06.gif new file mode 100644 index 0000000000..d935c02ae9 Binary files /dev/null and b/installation/images/win/_06.gif differ diff --git a/installation/images/win/cygwin.gif b/installation/images/win/cygwin.gif new file mode 100644 index 0000000000..d00445486e Binary files /dev/null and b/installation/images/win/cygwin.gif differ diff --git a/installation/images/win/hp_bios_vm.JPG b/installation/images/win/hp_bios_vm.JPG new file mode 100644 index 0000000000..468d95ef5a Binary files /dev/null and b/installation/images/win/hp_bios_vm.JPG differ diff --git a/installation/images/win/putty.gif b/installation/images/win/putty.gif new file mode 100644 index 0000000000..e7d418d2de Binary files /dev/null and b/installation/images/win/putty.gif differ diff --git a/installation/images/win/putty_2.gif b/installation/images/win/putty_2.gif new file mode 100644 index 0000000000..053ad231fc Binary files /dev/null and b/installation/images/win/putty_2.gif differ diff --git a/installation/images/win/run_02_.gif b/installation/images/win/run_02_.gif new file mode 100644 index 0000000000..4243bf6186 Binary files /dev/null and b/installation/images/win/run_02_.gif differ diff --git a/installation/images/win/run_03.gif b/installation/images/win/run_03.gif new file mode 100644 index 0000000000..c1f620a3c3 Binary files /dev/null and b/installation/images/win/run_03.gif differ diff --git a/installation/images/win/run_04.gif b/installation/images/win/run_04.gif new file mode 100644 index 0000000000..75092762fc Binary files /dev/null and b/installation/images/win/run_04.gif differ diff --git a/installation/images/win/ssh-config.gif b/installation/images/win/ssh-config.gif new file mode 100644 index 0000000000..4fd3b2b333 Binary files /dev/null and b/installation/images/win/ssh-config.gif differ diff --git a/installation/images/win/ts_go_bios.JPG b/installation/images/win/ts_go_bios.JPG new file mode 100644 index 0000000000..c4159fc715 Binary files /dev/null and b/installation/images/win/ts_go_bios.JPG differ diff --git a/installation/images/win/ts_no_docker.JPG b/installation/images/win/ts_no_docker.JPG new file mode 100644 index 0000000000..9ccba01c1e Binary files /dev/null and b/installation/images/win/ts_no_docker.JPG differ diff --git a/installation/images/windows-boot2docker-start.png b/installation/images/windows-boot2docker-start.png new file mode 100644 index 0000000000..9d598d56bf Binary files /dev/null and b/installation/images/windows-boot2docker-start.png differ diff --git a/installation/images/windows-installer.png b/installation/images/windows-installer.png new file mode 100644 index 0000000000..ea1d3d2326 Binary files /dev/null and b/installation/images/windows-installer.png differ diff --git a/installation/index.html b/installation/index.html new file mode 100644 index 0000000000..accf507d5c --- /dev/null +++ b/installation/index.html @@ -0,0 +1,1201 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Table of Contents

+

About

+ +

Installation

+ +

User Guide

+ +

Docker Hub

+ +

Examples

+ +

Articles

+ +

Reference

+ +

Contributor Guide

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/mac.md~ b/installation/mac.md~ new file mode 100644 index 0000000000..9bf7632680 --- /dev/null +++ b/installation/mac.md~ @@ -0,0 +1,327 @@ +page_title: Installation on Mac OS X +page_description: Instructions for installing Docker on OS X using boot2docker. +page_keywords: Docker, Docker documentation, requirements, boot2docker, VirtualBox, SSH, Linux, OSX, OS X, Mac + +# Install Docker on Mac OS X + +You can install Docker using Boot2Docker to run `docker` commands at your command-line. +Choose this installation if you are familiar with the command-line or plan to +contribute to the Docker project on GitHub. + +Alternatively, you may want to try Kitematic, an application that lets you set up Docker and +run containers using a graphical user interface (GUI). + +Download Kitematic + + +## Command-line Docker with Boot2Docker + +Because the Docker daemon uses Linux-specific kernel features, you can't run +Docker natively in OS X. Instead, you must install the Boot2Docker application. +The application includes a VirtualBox Virtual Machine (VM), Docker itself, and the +Boot2Docker management tool. + +The Boot2Docker management tool is a lightweight Linux virtual machine made +specifically to run the Docker daemon on Mac OS X. The VirtualBox VM runs +completely from RAM, is a small ~24MB download, and boots in approximately 5s. + +**Requirements** + +Your Mac must be running OS X 10.6 "Snow Leopard" or newer to run Boot2Docker. + +### Learn the key concepts before installing + +In a Docker installation on Linux, your machine is both the localhost and the +Docker host. In networking, localhost means your computer. The Docker host is +the machine on which the containers run. + +On a typical Linux installation, the Docker client, the Docker daemon, and any +containers run directly on your localhost. This means you can address ports on a +Docker container using standard localhost addressing such as `localhost:8000` or +`0.0.0.0:8376`. + +![Linux Architecture Diagram](/installation/images/linux_docker_host.png) + +In an OS X installation, the `docker` daemon is running inside a Linux virtual +machine provided by Boot2Docker. + +![OSX Architecture Diagram](/installation/images/mac_docker_host.png) + +In OS X, the Docker host address is the address of the Linux VM. +When you start the `boot2docker` process, the VM is assigned an IP address. Under +`boot2docker` ports on a container map to ports on the VM. To see this in +practice, work through the exercises on this page. + + +### Install Boot2Docker + +1. Go to the [boot2docker/osx-installer ]( +https://github.com/boot2docker/osx-installer/releases/latest) release page. + +4. Download Boot2Docker by clicking `Boot2Docker-x.x.x.pkg` in the "Downloads" +section. + +3. Install Boot2Docker by double-clicking the package. + + The installer places Boot2Docker in your "Applications" folder. + +The installation places the `docker` and `boot2docker` binaries in your +`/usr/local/bin` directory. + + +## Start the Boot2Docker Application + +To run a Docker container, you first start the `boot2docker` VM and then issue +`docker` commands to create, load, and manage containers. You can launch +`boot2docker` from your Applications folder or from the command line. + +> **NOTE**: Boot2Docker is designed as a development tool. You should not use +> it in production environments. + +### From the Applications folder + +When you launch the "Boot2Docker" application from your "Applications" folder, the +application: + +* opens a terminal window + +* creates a $HOME/.boot2docker directory + +* creates a VirtualBox ISO and certs + +* starts a VirtualBox VM running the `docker` daemon + +Once the launch completes, you can run `docker` commands. A good way to verify +your setup succeeded is to run the `hello-world` container. + + $ docker run hello-world + Unable to find image 'hello-world:latest' locally + 511136ea3c5a: Pull complete + 31cbccb51277: Pull complete + e45a5af57b00: Pull complete + hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. + Status: Downloaded newer image for hello-world:latest + Hello from Docker. + This message shows that your installation appears to be working correctly. + + To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + (Assuming it was not already locally available.) + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + + To try something more ambitious, you can run an Ubuntu container with: + $ docker run -it ubuntu bash + + For more examples and ideas, visit: + http://docs.docker.com/userguide/ + + +A more typical way to start and stop `boot2docker` is using the command line. + +### From your command line + +Initialize and run `boot2docker` from the command line, do the following: + +1. Create a new Boot2Docker VM. + + $ boot2docker init + + This creates a new virtual machine. You only need to run this command once. + +2. Start the `boot2docker` VM. + + $ boot2docker start + +3. Display the environment variables for the Docker client. + + $ boot2docker shellinit + Writing /Users/mary/.boot2docker/certs/boot2docker-vm/ca.pem + Writing /Users/mary/.boot2docker/certs/boot2docker-vm/cert.pem + Writing /Users/mary/.boot2docker/certs/boot2docker-vm/key.pem + export DOCKER_HOST=tcp://192.168.59.103:2376 + export DOCKER_CERT_PATH=/Users/mary/.boot2docker/certs/boot2docker-vm + export DOCKER_TLS_VERIFY=1 + + The specific paths and address on your machine will be different. + +4. To set the environment variables in your shell do the following: + + $ eval "$(boot2docker shellinit)" + + You can also set them manually by using the `export` commands `boot2docker` + returns. + +5. Run the `hello-world` container to verify your setup. + + $ docker run hello-world + + +## Basic Boot2Docker Exercises + +At this point, you should have `boot2docker` running and the `docker` client +environment initialized. To verify this, run the following commands: + + $ boot2docker status + $ docker version + +Work through this section to try some practical container tasks using `boot2docker` VM. + +### Access container ports + +1. Start an NGINX container on the DOCKER_HOST. + + $ docker run -d -P --name web nginx + + Normally, the `docker run` commands starts a container, runs it, and then + exits. The `-d` flag keeps the container running in the background + after the `docker run` command completes. The `-P` flag publishes exposed ports from the + container to your local host; this lets you access them from your Mac. + +2. Display your running container with `docker ps` command + + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 5fb65ff765e9 nginx:latest "nginx -g 'daemon of 3 minutes ago Up 3 minutes 0.0.0.0:49156->443/tcp, 0.0.0.0:49157->80/tcp web + + At this point, you can see `nginx` is running as a daemon. + +3. View just the container's ports. + + $ docker port web + 443/tcp -> 0.0.0.0:49156 + 80/tcp -> 0.0.0.0:49157 + + This tells you that the `web` container's port `80` is mapped to port + `49157` on your Docker host. + +4. Enter the `http://localhost:49157` address (`localhost` is `0.0.0.0`) in your browser: + + ![Bad Address](/installation/images/bad_host.png) + + This didn't work. The reason it doesn't work is your `DOCKER_HOST` address is + not the localhost address (0.0.0.0) but is instead the address of the + `boot2docker` VM. + +5. Get the address of the `boot2docker` VM. + + $ boot2docker ip + 192.168.59.103 + +6. Enter the `http://192.168.59.103:49157` address in your browser: + + ![Correct Addressing](/installation/images/good_host.png) + + Success! + +7. To stop and then remove your running `nginx` container, do the following: + + $ docker stop web + $ docker rm web + +### Mount a volume on the container + +When you start `boot2docker`, it automatically shares your `/Users` directory +with the VM. You can use this share point to mount directories onto your container. +The next exercise demonstrates how to do this. + +1. Change to your user `$HOME` directory. + + $ cd $HOME + +2. Make a new `site` directory. + + $ mkdir site + +3. Change into the `site` directory. + + $ cd site + +4. Create a new `index.html` file. + + $ echo "my new site" > index.html + +5. Start a new `nginx` container and replace the `html` folder with your `site` directory. + + $ docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx + +6. Get the `mysite` container's port. + + $ docker port mysite + 80/tcp -> 0.0.0.0:49166 + 443/tcp -> 0.0.0.0:49165 + +7. Open the site in a browser: + + ![My site page](/installation/images/newsite_view.png) + +8. Try adding a page to your `$HOME/site` in real time. + + $ echo "This is cool" > cool.html + +9. Open the new page in the browser. + + ![Cool page](/installation/images/cool_view.png) + +9. Stop and then remove your running `mysite` container. + + $ docker stop mysite + $ docker rm mysite + +## Upgrade Boot2Docker + +If you running Boot2Docker 1.4.1 or greater, you can upgrade Boot2Docker from +the command line. If you are running an older version, you should use the +package provided by the `boot2docker` repository. + +### From the command line + +To upgrade from 1.4.1 or greater, you can do this: + +1. Open a terminal on your local machine. + +2. Stop the `boot2docker` application. + + $ boot2docker stop + +3. Run the upgrade command. + + $ boot2docker upgrade + + +### Use the installer + +To upgrade any version of Boot2Docker, do this: + +1. Open a terminal on your local machine. + +2. Stop the `boot2docker` application. + + $ boot2docker stop + +3. Go to the [boot2docker/osx-installer ]( + https://github.com/boot2docker/osx-installer/releases/latest) release page. + +4. Download Boot2Docker by clicking `Boot2Docker-x.x.x.pkg` in the "Downloads" +section. + +2. Install Boot2Docker by double-clicking the package. + + The installer places Boot2Docker in your "Applications" folder. + + +## Learning more and Acknowledgement + + +Use `boot2docker help` to list the full command line reference. For more +information about using SSH or SCP to access the Boot2Docker VM, see the README +at [Boot2Docker repository](https://github.com/boot2docker/boot2docker). + +Thanks to Chris Jones whose [blog](http://goo.gl/Be6cCk) inspired me to redo +this page. + +Continue with the [Docker User Guide](/userguide/). \ No newline at end of file diff --git a/installation/mac/index.html b/installation/mac/index.html new file mode 100644 index 0000000000..b78c2f2ce1 --- /dev/null +++ b/installation/mac/index.html @@ -0,0 +1,1171 @@ + + + + + + + + + + + + + + + + + + + + + + + + Mac OS X - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Install Docker on Mac OS X

+

You can install Docker using Boot2Docker to run docker commands at your command-line. +Choose this installation if you are familiar with the command-line or plan to +contribute to the Docker project on GitHub.

+

Alternatively, you may want to try Kitematic, an application that lets you set up Docker and +run containers using a graphical user interface (GUI).

+

Download Kitematic

+

Command-line Docker with Boot2Docker

+

Because the Docker daemon uses Linux-specific kernel features, you can't run +Docker natively in OS X. Instead, you must install the Boot2Docker application. +The application includes a VirtualBox Virtual Machine (VM), Docker itself, and the +Boot2Docker management tool.

+

The Boot2Docker management tool is a lightweight Linux virtual machine made +specifically to run the Docker daemon on Mac OS X. The VirtualBox VM runs +completely from RAM, is a small ~24MB download, and boots in approximately 5s.

+

Requirements

+

Your Mac must be running OS X 10.6 "Snow Leopard" or newer to run Boot2Docker.

+

Learn the key concepts before installing

+

In a Docker installation on Linux, your machine is both the localhost and the +Docker host. In networking, localhost means your computer. The Docker host is +the machine on which the containers run.

+

On a typical Linux installation, the Docker client, the Docker daemon, and any +containers run directly on your localhost. This means you can address ports on a +Docker container using standard localhost addressing such as localhost:8000 or +0.0.0.0:8376.

+

Linux Architecture Diagram

+

In an OS X installation, the docker daemon is running inside a Linux virtual +machine provided by Boot2Docker.

+

OSX Architecture Diagram

+

In OS X, the Docker host address is the address of the Linux VM. +When you start the boot2docker process, the VM is assigned an IP address. Under +boot2docker ports on a container map to ports on the VM. To see this in +practice, work through the exercises on this page.

+

Install Boot2Docker

+
    +
  1. +

    Go to the boot2docker/osx-installer release page.

    +
  2. +
  3. +

    Download Boot2Docker by clicking Boot2Docker-x.x.x.pkg in the "Downloads" +section.

    +
  4. +
  5. +

    Install Boot2Docker by double-clicking the package.

    +

    The installer places Boot2Docker in your "Applications" folder.

    +
  6. +
+

The installation places the docker and boot2docker binaries in your +/usr/local/bin directory.

+

Start the Boot2Docker Application

+

To run a Docker container, you first start the boot2docker VM and then issue +docker commands to create, load, and manage containers. You can launch +boot2docker from your Applications folder or from the command line.

+
+

NOTE: Boot2Docker is designed as a development tool. You should not use + it in production environments.

+
+

From the Applications folder

+

When you launch the "Boot2Docker" application from your "Applications" folder, the +application:

+
    +
  • +

    opens a terminal window

    +
  • +
  • +

    creates a $HOME/.boot2docker directory

    +
  • +
  • +

    creates a VirtualBox ISO and certs

    +
  • +
  • +

    starts a VirtualBox VM running the docker daemon

    +
  • +
+

Once the launch completes, you can run docker commands. A good way to verify +your setup succeeded is to run the hello-world container.

+
    $ docker run hello-world
+    Unable to find image 'hello-world:latest' locally
+    511136ea3c5a: Pull complete
+    31cbccb51277: Pull complete
+    e45a5af57b00: Pull complete
+    hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
+    Status: Downloaded newer image for hello-world:latest
+    Hello from Docker.
+    This message shows that your installation appears to be working correctly.
+
+    To generate this message, Docker took the following steps:
+     1. The Docker client contacted the Docker daemon.
+     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
+        (Assuming it was not already locally available.)
+     3. The Docker daemon created a new container from that image which runs the
+        executable that produces the output you are currently reading.
+     4. The Docker daemon streamed that output to the Docker client, which sent it
+        to your terminal.
+
+    To try something more ambitious, you can run an Ubuntu container with:
+     $ docker run -it ubuntu bash
+
+    For more examples and ideas, visit:
+     http://docs.docker.com/userguide/
+
+

A more typical way to start and stop boot2docker is using the command line.

+

From your command line

+

Initialize and run boot2docker from the command line, do the following:

+
    +
  1. +

    Create a new Boot2Docker VM.

    +
    $ boot2docker init
    +
    +

    This creates a new virtual machine. You only need to run this command once.

    +
  2. +
  3. +

    Start the boot2docker VM.

    +
    $ boot2docker start
    +
    +
  4. +
  5. +

    Display the environment variables for the Docker client.

    +
    $ boot2docker shellinit
    +Writing /Users/mary/.boot2docker/certs/boot2docker-vm/ca.pem
    +Writing /Users/mary/.boot2docker/certs/boot2docker-vm/cert.pem
    +Writing /Users/mary/.boot2docker/certs/boot2docker-vm/key.pem
    +    export DOCKER_HOST=tcp://192.168.59.103:2376
    +    export DOCKER_CERT_PATH=/Users/mary/.boot2docker/certs/boot2docker-vm
    +    export DOCKER_TLS_VERIFY=1
    +
    +

    The specific paths and address on your machine will be different.

    +
  6. +
  7. +

    To set the environment variables in your shell do the following:

    +
    $ eval "$(boot2docker shellinit)"
    +
    +

    You can also set them manually by using the export commands boot2docker +returns.

    +
  8. +
  9. +

    Run the hello-world container to verify your setup.

    +
    $ docker run hello-world
    +
    +
  10. +
+

Basic Boot2Docker Exercises

+

At this point, you should have boot2docker running and the docker client +environment initialized. To verify this, run the following commands:

+
$ boot2docker status
+$ docker version
+
+

Work through this section to try some practical container tasks using boot2docker VM.

+

Access container ports

+
    +
  1. +

    Start an NGINX container on the DOCKER_HOST.

    +
    $ docker run -d -P --name web nginx
    +
    +

    Normally, the docker run commands starts a container, runs it, and then +exits. The -d flag keeps the container running in the background +after the docker run command completes. The -P flag publishes exposed ports from the +container to your local host; this lets you access them from your Mac.

    +
  2. +
  3. +

    Display your running container with docker ps command

    +
    CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                                           NAMES
    +5fb65ff765e9        nginx:latest        "nginx -g 'daemon of   3 minutes ago       Up 3 minutes        0.0.0.0:49156->443/tcp, 0.0.0.0:49157->80/tcp   web
    +
    +

    At this point, you can see nginx is running as a daemon.

    +
  4. +
  5. +

    View just the container's ports.

    +
    $ docker port web
    +443/tcp -> 0.0.0.0:49156
    +80/tcp -> 0.0.0.0:49157
    +
    +

    This tells you that the web container's port 80 is mapped to port +49157 on your Docker host.

    +
  6. +
  7. +

    Enter the http://localhost:49157 address (localhost is 0.0.0.0) in your browser:

    +

    Bad Address

    +

    This didn't work. The reason it doesn't work is your DOCKER_HOST address is +not the localhost address (0.0.0.0) but is instead the address of the +boot2docker VM.

    +
  8. +
  9. +

    Get the address of the boot2docker VM.

    +
    $ boot2docker ip
    +192.168.59.103
    +
    +
  10. +
  11. +

    Enter the http://192.168.59.103:49157 address in your browser:

    +

    Correct Addressing

    +

    Success!

    +
  12. +
  13. +

    To stop and then remove your running nginx container, do the following:

    +
    $ docker stop web
    +$ docker rm web
    +
    +
  14. +
+

Mount a volume on the container

+

When you start boot2docker, it automatically shares your /Users directory +with the VM. You can use this share point to mount directories onto your container. +The next exercise demonstrates how to do this.

+
    +
  1. +

    Change to your user $HOME directory.

    +
    $ cd $HOME
    +
    +
  2. +
  3. +

    Make a new site directory.

    +
    $ mkdir site
    +
    +
  4. +
  5. +

    Change into the site directory.

    +
    $ cd site
    +
    +
  6. +
  7. +

    Create a new index.html file.

    +
    $ echo "my new site" > index.html
    +
    +
  8. +
  9. +

    Start a new nginx container and replace the html folder with your site directory.

    +
    $ docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
    +
    +
  10. +
  11. +

    Get the mysite container's port.

    +
    $ docker port mysite
    +80/tcp -> 0.0.0.0:49166
    +443/tcp -> 0.0.0.0:49165
    +
    +
  12. +
  13. +

    Open the site in a browser:

    +

    My site page

    +
  14. +
  15. +

    Try adding a page to your $HOME/site in real time.

    +
    $ echo "This is cool" > cool.html
    +
    +
  16. +
  17. +

    Open the new page in the browser.

    +

    Cool page

    +
  18. +
  19. +

    Stop and then remove your running mysite container.

    +
    $ docker stop mysite
    +$ docker rm mysite
    +
    +
  20. +
+

Upgrade Boot2Docker

+

If you running Boot2Docker 1.4.1 or greater, you can upgrade Boot2Docker from +the command line. If you are running an older version, you should use the +package provided by the boot2docker repository.

+

From the command line

+

To upgrade from 1.4.1 or greater, you can do this:

+
    +
  1. +

    Open a terminal on your local machine.

    +
  2. +
  3. +

    Stop the boot2docker application.

    +
    $ boot2docker stop
    +
    +
  4. +
  5. +

    Run the upgrade command.

    +
    $ boot2docker upgrade
    +
    +
  6. +
+

Use the installer

+

To upgrade any version of Boot2Docker, do this:

+
    +
  1. +

    Open a terminal on your local machine.

    +
  2. +
  3. +

    Stop the boot2docker application.

    +
    $ boot2docker stop
    +
    +
  4. +
  5. +

    Go to the boot2docker/osx-installer release page.

    +
  6. +
  7. +

    Download Boot2Docker by clicking Boot2Docker-x.x.x.pkg in the "Downloads" +section.

    +
  8. +
  9. +

    Install Boot2Docker by double-clicking the package.

    +

    The installer places Boot2Docker in your "Applications" folder.

    +
  10. +
+

Learning more and Acknowledgement

+

Use boot2docker help to list the full command line reference. For more +information about using SSH or SCP to access the Boot2Docker VM, see the README +at Boot2Docker repository.

+

Thanks to Chris Jones whose blog inspired me to redo +this page.

+

Continue with the Docker User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/oracle.md~ b/installation/oracle.md~ new file mode 100644 index 0000000000..6d2f782b49 --- /dev/null +++ b/installation/oracle.md~ @@ -0,0 +1,125 @@ +page_title: Installation on Oracle Linux +page_description: Installation instructions for Docker on Oracle Linux. +page_keywords: Docker, Docker documentation, requirements, linux, rhel, centos, oracle, ol + +# Oracle Linux 6 and 7 + +You do not require an Oracle Linux Support subscription to install Docker on +Oracle Linux. + +*For Oracle Linux customers with an active support subscription:* +Docker is available in either the `ol6_x86_64_addons` or `ol7_x86_64_addons` +channel for Oracle Linux 6 and Oracle Linux 7 on the [Unbreakable Linux Network +(ULN)](https://linux.oracle.com). + +*For Oracle Linux users without an active support subscription:* +Docker is available in the appropriate `ol6_addons` or `ol7_addons` repository +on [Oracle Public Yum](http://public-yum.oracle.com). + +Docker requires the use of the Unbreakable Enterprise Kernel Release 3 (3.8.13) +or higher on Oracle Linux. This kernel supports the Docker btrfs storage engine +on both Oracle Linux 6 and 7. + +Due to current Docker limitations, Docker is only able to run only on the x86_64 +architecture. + +## To enable the *addons* channel via the Unbreakable Linux Network: + +1. Enable either the *ol6\_x86\_64\_addons* or *ol7\_x86\_64\_addons* channel +via the ULN web interface. +Consult the [Unbreakable Linux Network User's +Guide](http://docs.oracle.com/cd/E52668_01/E39381/html/index.html) for +documentation on subscribing to channels. + +## To enable the *addons* repository via Oracle Public Yum: + +The latest release of Oracle Linux 6 and 7 are automatically configured to use +the Oracle Public Yum repositories during installation. However, the *addons* +repository is not enabled by default. + +To enable the *addons* repository: + +1. Edit either `/etc/yum.repos.d/public-yum-ol6.repo` or +`/etc/yum.repos.d/public-yum-ol7.repo` +and set `enabled=1` in the `[ol6_addons]` or the `[ol7_addons]` stanza. + +## To install Docker: + +1. Ensure the appropriate *addons* channel or repository has been enabled. + +2. Use yum to install the Docker package: + + $ sudo yum install docker + +## To start Docker: + +1. Now that it's installed, start the Docker daemon: + + 1. On Oracle Linux 6: + + $ sudo service docker start + + 2. On Oracle Linux 7: + + $ sudo systemctl start docker.service + +2. If you want the Docker daemon to start automatically at boot: + + 1. On Oracle Linux 6: + + $ sudo chkconfig docker on + + 2. On Oracle Linux 7: + + $ sudo systemctl enable docker.service + +**Done!** + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to [customize your systemd Docker daemon options](/articles/systemd/). + +## Using the btrfs storage engine + +Docker on Oracle Linux 6 and 7 supports the use of the btrfs storage engine. +Before enabling btrfs support, ensure that `/var/lib/docker` is stored on a +btrfs-based filesystem. Review [Chapter +5](http://docs.oracle.com/cd/E37670_01/E37355/html/ol_btrfs.html) of the [Oracle +Linux Administrator's Solution +Guide](http://docs.oracle.com/cd/E37670_01/E37355/html/index.html) for details +on how to create and mount btrfs filesystems. + +To enable btrfs support on Oracle Linux: + +1. Ensure that `/var/lib/docker` is on a btrfs filesystem. +1. Edit `/etc/sysconfig/docker` and add `-s btrfs` to the `OTHER_ARGS` field. +2. Restart the Docker daemon: + +You can now continue with the [Docker User Guide](/userguide/). + +## Known issues + +### Docker unmounts btrfs filesystem on shutdown +If you're running Docker using the btrfs storage engine and you stop the Docker +service, it will unmount the btrfs filesystem during the shutdown process. You +should ensure the filesystem is mounted properly prior to restarting the Docker +service. + +On Oracle Linux 7, you can use a `systemd.mount` definition and modify the +Docker `systemd.service` to depend on the btrfs mount defined in systemd. + +### SElinux Support on Oracle Linux 7 +SElinux must be set to `Permissive` or `Disabled` in `/etc/sysconfig/selinux` to +use the btrfs storage engine on Oracle Linux 7. + +## Further issues? + +If you have a current Basic or Premier Support Subscription for Oracle Linux, +you can report any issues you have with the installation of Docker via a Service +Request at [My Oracle Support](http://support.oracle.com). + +If you do not have an Oracle Linux Support Subscription, you can use the [Oracle +Linux +Forum](https://community.oracle.com/community/server_%26_storage_systems/linux/oracle_linux) for community-based support. diff --git a/installation/oracle/index.html b/installation/oracle/index.html new file mode 100644 index 0000000000..317a5c704f --- /dev/null +++ b/installation/oracle/index.html @@ -0,0 +1,982 @@ + + + + + + + + + + + + + + + + + + + + + + + + Oracle Linux - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Oracle Linux 6 and 7

+

You do not require an Oracle Linux Support subscription to install Docker on +Oracle Linux.

+

For Oracle Linux customers with an active support subscription: +Docker is available in either the ol6_x86_64_addons or ol7_x86_64_addons +channel for Oracle Linux 6 and Oracle Linux 7 on the Unbreakable Linux Network +(ULN).

+

For Oracle Linux users without an active support subscription: +Docker is available in the appropriate ol6_addons or ol7_addons repository +on Oracle Public Yum.

+

Docker requires the use of the Unbreakable Enterprise Kernel Release 3 (3.8.13) +or higher on Oracle Linux. This kernel supports the Docker btrfs storage engine +on both Oracle Linux 6 and 7.

+

Due to current Docker limitations, Docker is only able to run only on the x86_64 +architecture.

+

To enable the addons channel via the Unbreakable Linux Network:

+
    +
  1. Enable either the ol6_x86_64_addons or ol7_x86_64_addons channel +via the ULN web interface. +Consult the Unbreakable Linux Network User's +Guide for +documentation on subscribing to channels.
  2. +
+

To enable the addons repository via Oracle Public Yum:

+

The latest release of Oracle Linux 6 and 7 are automatically configured to use +the Oracle Public Yum repositories during installation. However, the addons +repository is not enabled by default.

+

To enable the addons repository:

+
    +
  1. Edit either /etc/yum.repos.d/public-yum-ol6.repo or +/etc/yum.repos.d/public-yum-ol7.repo +and set enabled=1 in the [ol6_addons] or the [ol7_addons] stanza.
  2. +
+

To install Docker:

+
    +
  1. +

    Ensure the appropriate addons channel or repository has been enabled.

    +
  2. +
  3. +

    Use yum to install the Docker package:

    +
    $ sudo yum install docker
    +
    +
  4. +
+

To start Docker:

+
    +
  1. +

    Now that it's installed, start the Docker daemon:

    +
      +
    1. +

      On Oracle Linux 6:

      +
      $ sudo service docker start
      +
      +
    2. +
    3. +

      On Oracle Linux 7:

      +
      $ sudo systemctl start docker.service
      +
      +
    4. +
    +
  2. +
  3. +

    If you want the Docker daemon to start automatically at boot:

    +
      +
    1. +

      On Oracle Linux 6:

      +
      $ sudo chkconfig docker on
      +
      +
    2. +
    3. +

      On Oracle Linux 7:

      +
      $ sudo systemctl enable docker.service
      +
      +
    4. +
    +
  4. +
+

Done!

+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our systemd article to +learn how to customize your systemd Docker daemon options.

+

Using the btrfs storage engine

+

Docker on Oracle Linux 6 and 7 supports the use of the btrfs storage engine. +Before enabling btrfs support, ensure that /var/lib/docker is stored on a +btrfs-based filesystem. Review Chapter +5 of the Oracle +Linux Administrator's Solution +Guide for details +on how to create and mount btrfs filesystems.

+

To enable btrfs support on Oracle Linux:

+
    +
  1. Ensure that /var/lib/docker is on a btrfs filesystem.
  2. +
  3. Edit /etc/sysconfig/docker and add -s btrfs to the OTHER_ARGS field.
  4. +
  5. Restart the Docker daemon:
  6. +
+

You can now continue with the Docker User Guide.

+

Known issues

+

Docker unmounts btrfs filesystem on shutdown

+

If you're running Docker using the btrfs storage engine and you stop the Docker +service, it will unmount the btrfs filesystem during the shutdown process. You +should ensure the filesystem is mounted properly prior to restarting the Docker +service.

+

On Oracle Linux 7, you can use a systemd.mount definition and modify the +Docker systemd.service to depend on the btrfs mount defined in systemd.

+

SElinux Support on Oracle Linux 7

+

SElinux must be set to Permissive or Disabled in /etc/sysconfig/selinux to +use the btrfs storage engine on Oracle Linux 7.

+

Further issues?

+

If you have a current Basic or Premier Support Subscription for Oracle Linux, +you can report any issues you have with the installation of Docker via a Service +Request at My Oracle Support.

+

If you do not have an Oracle Linux Support Subscription, you can use the Oracle +Linux +Forum for community-based support.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/rackspace.md~ b/installation/rackspace.md~ new file mode 100644 index 0000000000..9fddf5e450 --- /dev/null +++ b/installation/rackspace.md~ @@ -0,0 +1,81 @@ +page_title: Installation on Rackspace Cloud +page_description: Installation instructions for Docker on Rackspace Cloud. +page_keywords: Rackspace Cloud, installation, docker, linux, ubuntu + +# Rackspace Cloud + +Installing Docker on Ubuntu provided by Rackspace is pretty +straightforward, and you should mostly be able to follow the +[*Ubuntu*](../ubuntulinux/#ubuntu-linux) installation guide. + +**However, there is one caveat:** + +If you are using any Linux not already shipping with the 3.8 kernel you +will need to install it. And this is a little more difficult on +Rackspace. + +Rackspace boots their servers using grub's `menu.lst` +and does not like non `virtual` packages (e.g., Xen compatible) +kernels there, although they do work. This results in +`update-grub` not having the expected result, and +you will need to set the kernel manually. + +**Do not attempt this on a production machine!** + + # update apt + $ apt-get update + + # install the new kernel + $ apt-get install linux-generic-lts-raring + +Great, now you have the kernel installed in `/boot/`, next you need to +make it boot next time. + + # find the exact names + $ find /boot/ -name '*3.8*' + + # this should return some results + +Now you need to manually edit `/boot/grub/menu.lst`, +you will find a section at the bottom with the existing options. Copy +the top one and substitute the new kernel into that. Make sure the new +kernel is on top, and double check the kernel and initrd lines point to +the right files. + +Take special care to double check the kernel and initrd entries. + + # now edit /boot/grub/menu.lst + $ vi /boot/grub/menu.lst + +It will probably look something like this: + + ## ## End Default Options ## + + title Ubuntu 12.04.2 LTS, kernel 3.8.x generic + root (hd0) + kernel /boot/vmlinuz-3.8.0-19-generic root=/dev/xvda1 ro quiet splash console=hvc0 + initrd /boot/initrd.img-3.8.0-19-generic + + title Ubuntu 12.04.2 LTS, kernel 3.2.0-38-virtual + root (hd0) + kernel /boot/vmlinuz-3.2.0-38-virtual root=/dev/xvda1 ro quiet splash console=hvc0 + initrd /boot/initrd.img-3.2.0-38-virtual + + title Ubuntu 12.04.2 LTS, kernel 3.2.0-38-virtual (recovery mode) + root (hd0) + kernel /boot/vmlinuz-3.2.0-38-virtual root=/dev/xvda1 ro quiet splash single + initrd /boot/initrd.img-3.2.0-38-virtual + +Reboot the server (either via command line or console) + + # reboot + +Verify the kernel was updated + + $ uname -a + # Linux docker-12-04 3.8.0-19-generic #30~precise1-Ubuntu SMP Wed May 1 22:26:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux + + # nice! 3.8. + +Now you can finish with the [*Ubuntu*](../ubuntulinux/#ubuntu-linux) +instructions. diff --git a/installation/rackspace/index.html b/installation/rackspace/index.html new file mode 100644 index 0000000000..c5cb1b09a7 --- /dev/null +++ b/installation/rackspace/index.html @@ -0,0 +1,880 @@ + + + + + + + + + + + + + + + + + + + + + + + + Rackspace Cloud - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Rackspace Cloud

+

Installing Docker on Ubuntu provided by Rackspace is pretty +straightforward, and you should mostly be able to follow the +Ubuntu installation guide.

+

However, there is one caveat:

+

If you are using any Linux not already shipping with the 3.8 kernel you +will need to install it. And this is a little more difficult on +Rackspace.

+

Rackspace boots their servers using grub's menu.lst +and does not like non virtual packages (e.g., Xen compatible) +kernels there, although they do work. This results in +update-grub not having the expected result, and +you will need to set the kernel manually.

+

Do not attempt this on a production machine!

+
# update apt
+$ apt-get update
+
+# install the new kernel
+$ apt-get install linux-generic-lts-raring
+
+

Great, now you have the kernel installed in /boot/, next you need to +make it boot next time.

+
# find the exact names
+$ find /boot/ -name '*3.8*'
+
+# this should return some results
+
+

Now you need to manually edit /boot/grub/menu.lst, +you will find a section at the bottom with the existing options. Copy +the top one and substitute the new kernel into that. Make sure the new +kernel is on top, and double check the kernel and initrd lines point to +the right files.

+

Take special care to double check the kernel and initrd entries.

+
# now edit /boot/grub/menu.lst
+$ vi /boot/grub/menu.lst
+
+

It will probably look something like this:

+
## ## End Default Options ##
+
+title              Ubuntu 12.04.2 LTS, kernel 3.8.x generic
+root               (hd0)
+kernel             /boot/vmlinuz-3.8.0-19-generic root=/dev/xvda1 ro quiet splash console=hvc0
+initrd             /boot/initrd.img-3.8.0-19-generic
+
+title              Ubuntu 12.04.2 LTS, kernel 3.2.0-38-virtual
+root               (hd0)
+kernel             /boot/vmlinuz-3.2.0-38-virtual root=/dev/xvda1 ro quiet splash console=hvc0
+initrd             /boot/initrd.img-3.2.0-38-virtual
+
+title              Ubuntu 12.04.2 LTS, kernel 3.2.0-38-virtual (recovery mode)
+root               (hd0)
+kernel             /boot/vmlinuz-3.2.0-38-virtual root=/dev/xvda1 ro quiet splash  single
+initrd             /boot/initrd.img-3.2.0-38-virtual
+
+

Reboot the server (either via command line or console)

+
# reboot
+
+

Verify the kernel was updated

+
$ uname -a
+# Linux docker-12-04 3.8.0-19-generic #30~precise1-Ubuntu SMP Wed May 1 22:26:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
+
+# nice! 3.8.
+
+

Now you can finish with the Ubuntu +instructions.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/rhel.md~ b/installation/rhel.md~ new file mode 100644 index 0000000000..58b2316c6f --- /dev/null +++ b/installation/rhel.md~ @@ -0,0 +1,126 @@ +page_title: Installation on Red Hat Enterprise Linux +page_description: Instructions for installing Docker on Red Hat Enterprise Linux. +page_keywords: Docker, Docker documentation, requirements, linux, rhel + +# Red Hat Enterprise Linux + +Docker is supported on the following versions of RHEL: + +- [*Red Hat Enterprise Linux 7 (64-bit)*](#red-hat-enterprise-linux-7-installation) +- [*Red Hat Enterprise Linux 6.5 (64-bit)*](#red-hat-enterprise-linux-6.5-installation) or later + +## Kernel support + +RHEL will only support Docker via the *extras* channel or EPEL package when +running on kernels shipped by the distribution. There are kernel changes which +will cause issues if one decides to step outside that box and run +non-distribution kernel packages. + +## Red Hat Enterprise Linux 7 Installation + +**Red Hat Enterprise Linux 7 (64 bit)** has [shipped with +Docker](https://access.redhat.com/site/products/red-hat-enterprise-linux/docker-and-containers). +An overview and some guidance can be found in the [Release +Notes](https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/chap-Red_Hat_Enterprise_Linux-7.0_Release_Notes-Linux_Containers_with_Docker_Format.html). + +Docker is located in the *extras* channel. To install Docker: + +1. Enable the *extras* channel: + + $ sudo subscription-manager repos --enable=rhel-7-server-extras-rpms + +2. Install Docker: + + $ sudo yum install docker + +Additional installation, configuration, and usage information, +including a [Get Started with Docker Containers in Red Hat +Enterprise Linux 7](https://access.redhat.com/site/articles/881893) +guide, can be found by Red Hat customers on the [Red Hat Customer +Portal](https://access.redhat.com/). + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Red Hat Enterprise Linux 6.5 Installation + +You will need **64 bit** [RHEL +6.5](https://access.redhat.com/site/articles/3078#RHEL6) or later, with +a RHEL 6 kernel version 2.6.32-431 or higher as this has specific kernel +fixes to allow Docker to work. + +Docker is available for **RHEL6.5** on EPEL. Please note that +this package is part of [Extra Packages for Enterprise Linux +(EPEL)](https://fedoraproject.org/wiki/EPEL), a community effort to +create and maintain additional packages for the RHEL distribution. + +### Kernel support + +RHEL will only support Docker via the *extras* channel or EPEL package when +running on kernels shipped by the distribution. There are things like namespace +changes which will cause issues if one decides to step outside that box and run +non-distro kernel packages. + +> **Warning**: +> Please keep your system up to date using `yum update` and rebooting +> your system. Keeping your system updated ensures critical security +> vulnerabilities and severe bugs (such as those found in kernel 2.6.32) +> are fixed. + +## Installation + +Firstly, you need to install the EPEL repository. Please follow the +[EPEL installation +instructions](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). + +There is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called `docker-io`. + +To proceed with `docker-io` installation, you may need to remove the +`docker` package first. + + $ sudo yum -y remove docker + +Next, let's install the `docker-io` package which will install Docker on our host. + + $ sudo yum install docker-io + +To update the `docker-io` package + + $ sudo yum -y update docker-io + +Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon). + +## Starting the Docker daemon + +Now that it's installed, let's start the Docker daemon. + + $ sudo service docker start + +If we want Docker to start at boot, we should also: + + $ sudo chkconfig docker on + +Now let's verify that Docker is working. + + $ sudo docker run -i -t fedora /bin/bash + +> Note: If you get a `Cannot start container` error mentioning SELinux +> or permission denied, you may need to update the SELinux policies. +> This can be done using `sudo yum upgrade selinux-policy` and then rebooting. + +**Done!** + +Continue with the [User Guide](/userguide/). + +## Custom daemon options + +If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to [customize your Systemd Docker daemon options](/articles/systemd/). + + +## Issues? + +If you have any issues - please report them directly in the +[Red Hat Bugzilla for docker-io component]( +https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=docker-io). diff --git a/installation/rhel/index.html b/installation/rhel/index.html new file mode 100644 index 0000000000..8c5a5db9cf --- /dev/null +++ b/installation/rhel/index.html @@ -0,0 +1,956 @@ + + + + + + + + + + + + + + + + + + + + + + + + Red Hat Enterprise Linux - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Red Hat Enterprise Linux

+

Docker is supported on the following versions of RHEL:

+ +

Kernel support

+

RHEL will only support Docker via the extras channel or EPEL package when +running on kernels shipped by the distribution. There are kernel changes which +will cause issues if one decides to step outside that box and run +non-distribution kernel packages.

+

Red Hat Enterprise Linux 7 Installation

+

Red Hat Enterprise Linux 7 (64 bit) has shipped with +Docker. +An overview and some guidance can be found in the Release +Notes.

+

Docker is located in the extras channel. To install Docker:

+
    +
  1. +

    Enable the extras channel:

    +
    $ sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    +
    +
  2. +
  3. +

    Install Docker:

    +
    $ sudo yum install docker
    +
    +
  4. +
+

Additional installation, configuration, and usage information, +including a Get Started with Docker Containers in Red Hat +Enterprise Linux 7 +guide, can be found by Red Hat customers on the Red Hat Customer +Portal.

+

Please continue with the Starting the Docker daemon.

+

Red Hat Enterprise Linux 6.5 Installation

+

You will need 64 bit RHEL +6.5 or later, with +a RHEL 6 kernel version 2.6.32-431 or higher as this has specific kernel +fixes to allow Docker to work.

+

Docker is available for RHEL6.5 on EPEL. Please note that +this package is part of Extra Packages for Enterprise Linux +(EPEL), a community effort to +create and maintain additional packages for the RHEL distribution.

+

Kernel support

+

RHEL will only support Docker via the extras channel or EPEL package when +running on kernels shipped by the distribution. There are things like namespace +changes which will cause issues if one decides to step outside that box and run +non-distro kernel packages.

+
+

Warning: +Please keep your system up to date using yum update and rebooting +your system. Keeping your system updated ensures critical security + vulnerabilities and severe bugs (such as those found in kernel 2.6.32) +are fixed.

+
+

Installation

+

Firstly, you need to install the EPEL repository. Please follow the +EPEL installation +instructions.

+

There is a package name conflict with a system tray application +and its executable, so the Docker RPM package was called docker-io.

+

To proceed with docker-io installation, you may need to remove the +docker package first.

+
$ sudo yum -y remove docker
+
+

Next, let's install the docker-io package which will install Docker on our host.

+
$ sudo yum install docker-io
+
+

To update the docker-io package

+
$ sudo yum -y update docker-io
+
+

Please continue with the Starting the Docker daemon.

+

Starting the Docker daemon

+

Now that it's installed, let's start the Docker daemon.

+
$ sudo service docker start
+
+

If we want Docker to start at boot, we should also:

+
$ sudo chkconfig docker on
+
+

Now let's verify that Docker is working.

+
$ sudo docker run -i -t fedora /bin/bash
+
+
+

Note: If you get a Cannot start container error mentioning SELinux +or permission denied, you may need to update the SELinux policies. +This can be done using sudo yum upgrade selinux-policy and then rebooting.

+
+

Done!

+

Continue with the User Guide.

+

Custom daemon options

+

If you need to add an HTTP Proxy, set a different directory or partition for the +Docker runtime files, or make other customizations, read our Systemd article to +learn how to customize your Systemd Docker daemon options.

+

Issues?

+

If you have any issues - please report them directly in the +Red Hat Bugzilla for docker-io component.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/softlayer.md~ b/installation/softlayer.md~ new file mode 100644 index 0000000000..d594896a92 --- /dev/null +++ b/installation/softlayer.md~ @@ -0,0 +1,30 @@ +page_title: Installation on IBM SoftLayer +page_description: Installation instructions for Docker on IBM Softlayer. +page_keywords: IBM SoftLayer, virtualization, cloud, docker, documentation, installation + +# IBM SoftLayer + +1. Create an [IBM SoftLayer account]( + https://www.softlayer.com/cloud-servers/). +2. Log in to the [SoftLayer Customer Portal]( + https://control.softlayer.com/). +3. From the *Devices* menu select [*Device List*](https://control.softlayer.com/devices) +4. Click *Order Devices* on the top right of the window below the menu bar. +5. Under *Virtual Server* click [*Hourly*](https://manage.softlayer.com/Sales/orderHourlyComputingInstance) +6. Create a new *SoftLayer Virtual Server Instance* (VSI) using the default + values for all the fields and choose: + + - The desired location for *Datacenter* + - *Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit)* + for *Operating System*. + +7. Click the *Continue Your Order* button at the bottom right. +8. Fill out VSI *hostname* and *domain*. +9. Insert the required *User Metadata* and place the order. +10. Then continue with the [*Ubuntu*](../ubuntulinux/#ubuntu-linux) + instructions. + +## What next? + +Continue with the [User Guide](/userguide/). + diff --git a/installation/softlayer/index.html b/installation/softlayer/index.html new file mode 100644 index 0000000000..71ed19f624 --- /dev/null +++ b/installation/softlayer/index.html @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + + + + + + + IBM Softlayer - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

IBM SoftLayer

+
    +
  1. Create an IBM SoftLayer account.
  2. +
  3. Log in to the SoftLayer Customer Portal.
  4. +
  5. From the Devices menu select Device List
  6. +
  7. Click Order Devices on the top right of the window below the menu bar.
  8. +
  9. Under Virtual Server click Hourly
  10. +
  11. +

    Create a new SoftLayer Virtual Server Instance (VSI) using the default + values for all the fields and choose:

    +
      +
    • The desired location for Datacenter
    • +
    • Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit) + for Operating System.
    • +
    +
  12. +
  13. +

    Click the Continue Your Order button at the bottom right.

    +
  14. +
  15. Fill out VSI hostname and domain.
  16. +
  17. Insert the required User Metadata and place the order.
  18. +
  19. Then continue with the Ubuntu + instructions.
  20. +
+

What next?

+

Continue with the User Guide.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/ubuntulinux.md~ b/installation/ubuntulinux.md~ new file mode 100644 index 0000000000..85a37d768d --- /dev/null +++ b/installation/ubuntulinux.md~ @@ -0,0 +1,305 @@ +page_title: Installation on Ubuntu +page_description: Instructions for installing Docker on Ubuntu. +page_keywords: Docker, Docker documentation, requirements, virtualbox, installation, ubuntu + +#Ubuntu + +Docker is supported on these Ubuntu operating systems: + +- Ubuntu Trusty 14.04 (LTS) +- Ubuntu Precise 12.04 (LTS) +- Ubuntu Saucy 13.10 + +This page instructs you to install using Docker-managed release packages and +installation mechanisms. Using these packages ensures you get the latest release +of Docker. If you wish to install using Ubuntu-managed packages, consult your +Ubuntu documentation. + +##Prerequisites + +Docker requires a 64-bit installation regardless of your Ubuntu version. +Additionally, your kernel must be 3.10 at minimum. The latest 3.10 minor version +or a newer maintained version are also acceptable. + +Kernels older than 3.10 lack some of the features required to run Docker +containers. These older versions are known to have bugs which cause data loss +and frequently panic under certain conditions. + +To check your current kernel version, open a terminal and use `uname -r` to display +your kernel version: + + $ uname -r + 3.11.0-15-generic + +>**Caution** Some Ubuntu OS versions **require a version higher than 3.10** to +>run Docker, see the prerequisites on this page that apply to your Ubuntu +>version. + +###For Trusty 14.04 + +There are no prerequisites for this version. + +###For Precise 12.04 (LTS) + +For Ubuntu Precise, Docker requires the 3.13 kernel version. If your kernel +version is older than 3.13, you must upgrade it. Refer to this table to see +which packages are required for your environment: + + + +
linux-image-generic-lts-trusty Generic +Linux kernel image. This kernel has AUFS built in. This is required to run +Docker.
linux-headers-generic-lts-trustyAllows packages such as ZFS and VirtualBox guest additions +which depend on them. If you didn't install the headers for your existing +kernel, then you can skip these headers for the"trusty" kernel. If you're +unsure, you should include this package for safety.
xserver-xorg-lts-trusty Optional in non-graphical environments without Unity/Xorg. +Required when running Docker on machine with a graphical environment. + +

To learn more about the reasons for these packages, read the installation +instructions for backported kernels, specifically the LTS +Enablement Stack — refer to note 5 under each version.

libgl1-mesa-glx-lts-trusty
  + +To upgrade your kernel and install the additional packages, do the following: + +1. Open a terminal on your Ubuntu host. + +2. Update your package manager. + + $ sudo apt-get update + +3. Install both the required and optional packages. + + $ sudo apt-get install linux-image-generic-lts-trusty + + Depending on your environment, you may install more as described in the preceding table. + +4. Reboot your host. + + $ sudo reboot + +5. After your system reboots, go ahead and [install Docker](#installing-docker-on-ubuntu). + + +###For Saucy 13.10 (64 bit) + +Docker uses AUFS as the default storage backend. If you don't have this +prerequisite installed, Docker's installation process adds it. + +##Installing Docker on Ubuntu + +Make sure you have intalled the prerequisites for your Ubuntu version. Then, +install Docker using the following: + +1. Log into your Ubuntu installation as a user with `sudo` privileges. + +2. Verify that you have `wget` installed. + + $ which wget + + If `wget` isn't installed, install it after updating your manager: + + $ sudo apt-get update $ sudo apt-get install wget + +3. Get the latest Docker package. + + $ wget -qO- https://get.docker.com/ | sh + + The system prompts you for your `sudo` password. Then, it downloads and + installs Docker and its dependencies. + +4. Verify `docker` is installed correctly. + + $ sudo docker run hello-world + + This command downloads a test image and runs it in a container. + +## Optional Configurations for Docker on Ubuntu + +This section contains optional procedures for configuring your Ubuntu to work +better with Docker. + +* [Create a docker group](#create-a-docker-group) +* [Adjust memory and swap accounting](#adjust-memory-and-swap-accounting) +* [Enable UFW forwarding](#enable-ufw-forwarding) +* [Configure a DNS server for use by Docker](#configure-a-dns-server-for-docker) + +### Create a docker group + +The `docker` daemon binds to a Unix socket instead of a TCP port. By default +that Unix socket is owned by the user `root` and other users can access it with +`sudo`. For this reason, `docker` daemon always runs as the `root` user. + +To avoid having to use `sudo` when you use the `docker` command, create a Unix +group called `docker` and add users to it. When the `docker` daemon starts, it +makes the ownership of the Unix socket read/writable by the `docker` group. + +>**Warning**: The `docker` group is equivalent to the `root` user; For details +>on how this impacts security in your system, see [*Docker Daemon Attack +>Surface*](/articles/security/#docker-daemon-attack-surface) for details. + +To create the `docker` group and add your user: + +1. Log into Ubuntu as a user with `sudo` privileges. + + This procedure assumes you log in as the `ubuntu` user. + +3. Create the `docker` group and add your user. + + $ sudo usermod -aG docker ubuntu + +3. Log out and log back in. + + This ensures your user is running with the correct permissions. + +4. Verify your work by running `docker` without `sudo`. + + $ docker run hello-world + + +### Adjust memory and swap accounting + +When users run Docker, they may see these messages when working with an image: + + WARNING: Your kernel does not support cgroup swap limit. WARNING: Your + kernel does not support swap limit capabilities. Limitation discarded. + +To prevent these messages, enable memory and swap accounting on your system. To +enable these on system using GNU GRUB (GNU GRand Unified Bootloader), do the +following. + +1. Log into Ubuntu as a user with `sudo` privileges. + +2. Edit the `/etc/default/grub` file. + +3. Set the `GRUB_CMDLINE_LINUX` value as follows: + + GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" + +4. Save and close the file. + +5. Update GRUB. + + $ sudo update-grub + +6. Reboot your system. + + +### Enable UFW forwarding + +If you use [UFW (Uncomplicated Firewall)](https://help.ubuntu.com/community/UFW) +on the same host as you run Docker, you'll need to do additional configuration. +Docker uses a bridge to manage container networking. By default, UFW drops all +forwarding traffic. As a result, for Docker to run when UFW is +enabled, you must set UFW's forwarding policy appropriately. + +Also, UFW's default set of rules denies all incoming traffic. If you want to be able +to reach your containers from another host then you should also allow incoming +connections on the Docker port (default `2375`). + +To configure UFW and allow incoming connections on the Docker port: + +1. Log into Ubuntu as a user with `sudo` privileges. + +2. Verify that UFW is installed and enabled. + + $ sudo ufw status + +3. Open the `/etc/default/ufw` file for editing. + + $ sudo nano /etc/default/ufw + +4. Set the `DEFAULT_FORWARD_POLICY` policy to: + + DEFAULT_FORWARD_POLICY="ACCEPT" + +5. Save and close the file. + +6. Reload UFW to use the new setting. + + $ sudo ufw reload + +7. Allow incoming connections on the Docker port. + + $ sudo ufw allow 2375/tcp + +### Configure a DNS server for use by Docker + +Systems that run Ubuntu or an Ubuntu derivative on the desktop typically use +`127.0.0.1` as the default `nameserver` in `/etc/resolv.conf` file. The +NetworkManager also sets up `dnsmasq` to use the real DNS servers of the +connection and sets up `nameserver 127.0.0.1` in /`etc/resolv.conf`. + +When starting containers on desktop machines with these configurations, Docker +users see this warning: + + WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers + can't use it. Using default external servers : [8.8.8.8 8.8.4.4] + +The warning occurs because Docker containers can't use the local DNS nameserver. +Instead, Docker defaults to using an external nameserver. + +To avoid this warning, you can specify a DNS server for use by Docker +containers. Or, you can disable `dnsmasq` in NetworkManager. Though, disabiling +`dnsmasq` might make DNS resolution slower on some networks. + +To specify a DNS server for use by Docker: + +1. Log into Ubuntu as a user with `sudo` privileges. + +2. Open the `/etc/default/docker` file for editing. + + $ sudo nano /etc/default/docker + +3. Add a setting for Docker. + + DOCKER_OPTS="--dns 8.8.8.8" + + Replace `8.8.8.8` with a local DNS server such as `192.168.1.1`. You can also + specify multiple DNS servers. Separated them with spaces, for example: + + --dns 8.8.8.8 --dns 192.168.1.1 + + >**Warning**: If you're doing this on a laptop which connects to various + >networks, make sure to choose a public DNS server. + +4. Save and close the file. + +5. Restart the Docker daemon. + + $ sudo restart docker + + +  +  + +**Or, as an alternative to the previous procedure,** disable `dnsmasq` in +NetworkManager (this might slow your network). + +1. Open the `/etc/default/docker` file for editing. + + $ sudo nano /etc/NetworkManager/NetworkManager.conf + +2. Comment out the `dns=dsnmasq` line: + + dns=dnsmasq + +3. Save and close the file. + +4. Restart both the NetworkManager and Docker. + + $ sudo restart network-manager $ sudo restart docker + + +## Upgrade Docker + +To install the latest version of Docker, use the standard `-N` flag with `wget`: + + $ wget -N https://get.docker.com/ | sh + diff --git a/installation/ubuntulinux/index.html b/installation/ubuntulinux/index.html new file mode 100644 index 0000000000..06192caa93 --- /dev/null +++ b/installation/ubuntulinux/index.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + + + + + + + + + + + + + Ubuntu - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Ubuntu

+

Docker is supported on these Ubuntu operating systems:

+
    +
  • Ubuntu Trusty 14.04 (LTS)
  • +
  • Ubuntu Precise 12.04 (LTS)
  • +
  • Ubuntu Saucy 13.10
  • +
+

This page instructs you to install using Docker-managed release packages and +installation mechanisms. Using these packages ensures you get the latest release +of Docker. If you wish to install using Ubuntu-managed packages, consult your +Ubuntu documentation.

+

Prerequisites

+

Docker requires a 64-bit installation regardless of your Ubuntu version. +Additionally, your kernel must be 3.10 at minimum. The latest 3.10 minor version +or a newer maintained version are also acceptable.

+

Kernels older than 3.10 lack some of the features required to run Docker +containers. These older versions are known to have bugs which cause data loss +and frequently panic under certain conditions.

+

To check your current kernel version, open a terminal and use uname -r to display +your kernel version:

+
$ uname -r 
+3.11.0-15-generic
+
+
+

Caution Some Ubuntu OS versions require a version higher than 3.10 to +run Docker, see the prerequisites on this page that apply to your Ubuntu +version.

+
+

For Trusty 14.04

+

There are no prerequisites for this version.

+

For Precise 12.04 (LTS)

+

For Ubuntu Precise, Docker requires the 3.13 kernel version. If your kernel +version is older than 3.13, you must upgrade it. Refer to this table to see +which packages are required for your environment:

+ + +

+ +
linux-image-generic-lts-trusty Generic +Linux kernel image. This kernel has AUFS built in. This is required to run +Docker.
linux-headers-generic-lts-trustyAllows packages such as ZFS and VirtualBox guest additions +which depend on them. If you didn't install the headers for your existing +kernel, then you can skip these headers for the"trusty" kernel. If you're +unsure, you should include this package for safety.
xserver-xorg-lts-trusty Optional in non-graphical environments without Unity/Xorg. +Required when running Docker on machine with a graphical environment.

+

To learn more about the reasons for these packages, read the installation +instructions for backported kernels, specifically the LTS +Enablement Stack — refer to note 5 under each version.

+ +

libgl1-mesa-glx-lts-trusty
 

+

To upgrade your kernel and install the additional packages, do the following:

+
    +
  1. +

    Open a terminal on your Ubuntu host.

    +
  2. +
  3. +

    Update your package manager.

    +
    $ sudo apt-get update
    +
    +
  4. +
  5. +

    Install both the required and optional packages.

    +
    $ sudo apt-get install linux-image-generic-lts-trusty
    +
    +

    Depending on your environment, you may install more as described in the preceding table.

    +
  6. +
  7. +

    Reboot your host.

    +
    $ sudo reboot
    +
    +
  8. +
  9. +

    After your system reboots, go ahead and install Docker.

    +
  10. +
+

For Saucy 13.10 (64 bit)

+

Docker uses AUFS as the default storage backend. If you don't have this +prerequisite installed, Docker's installation process adds it.

+

Installing Docker on Ubuntu

+

Make sure you have intalled the prerequisites for your Ubuntu version. Then, +install Docker using the following:

+
    +
  1. +

    Log into your Ubuntu installation as a user with sudo privileges.

    +
  2. +
  3. +

    Verify that you have wget installed.

    +
    $ which wget
    +
    +

    If wget isn't installed, install it after updating your manager:

    +
    $ sudo apt-get update $ sudo apt-get install wget
    +
    +
  4. +
  5. +

    Get the latest Docker package.

    +
    $ wget -qO- https://get.docker.com/ | sh
    +
    +

    The system prompts you for your sudo password. Then, it downloads and + installs Docker and its dependencies.

    +
  6. +
  7. +

    Verify docker is installed correctly.

    +
    $ sudo docker run hello-world
    +
    +

    This command downloads a test image and runs it in a container.

    +
  8. +
+

Optional Configurations for Docker on Ubuntu

+

This section contains optional procedures for configuring your Ubuntu to work +better with Docker.

+ +

Create a docker group

+

The docker daemon binds to a Unix socket instead of a TCP port. By default +that Unix socket is owned by the user root and other users can access it with +sudo. For this reason, docker daemon always runs as the root user.

+

To avoid having to use sudo when you use the docker command, create a Unix +group called docker and add users to it. When the docker daemon starts, it +makes the ownership of the Unix socket read/writable by the docker group.

+
+

Warning: The docker group is equivalent to the root user; For details +on how this impacts security in your system, see Docker Daemon Attack +Surface for details.

+
+

To create the docker group and add your user:

+
    +
  1. +

    Log into Ubuntu as a user with sudo privileges.

    +

    This procedure assumes you log in as the ubuntu user.

    +
  2. +
  3. +

    Create the docker group and add your user.

    +
    $ sudo usermod -aG docker ubuntu
    +
    +
  4. +
  5. +

    Log out and log back in.

    +

    This ensures your user is running with the correct permissions.

    +
  6. +
  7. +

    Verify your work by running docker without sudo.

    +
    $ docker run hello-world
    +
    +
  8. +
+

Adjust memory and swap accounting

+

When users run Docker, they may see these messages when working with an image:

+
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
+kernel does not support swap limit capabilities. Limitation discarded.
+
+

To prevent these messages, enable memory and swap accounting on your system. To +enable these on system using GNU GRUB (GNU GRand Unified Bootloader), do the +following.

+
    +
  1. +

    Log into Ubuntu as a user with sudo privileges.

    +
  2. +
  3. +

    Edit the /etc/default/grub file.

    +
  4. +
  5. +

    Set the GRUB_CMDLINE_LINUX value as follows:

    +
    GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
    +
    +
  6. +
  7. +

    Save and close the file.

    +
  8. +
  9. +

    Update GRUB.

    +
    $ sudo update-grub
    +
    +
  10. +
  11. +

    Reboot your system.

    +
  12. +
+

Enable UFW forwarding

+

If you use UFW (Uncomplicated Firewall) +on the same host as you run Docker, you'll need to do additional configuration. +Docker uses a bridge to manage container networking. By default, UFW drops all +forwarding traffic. As a result, for Docker to run when UFW is +enabled, you must set UFW's forwarding policy appropriately.

+

Also, UFW's default set of rules denies all incoming traffic. If you want to be able +to reach your containers from another host then you should also allow incoming +connections on the Docker port (default 2375).

+

To configure UFW and allow incoming connections on the Docker port:

+
    +
  1. +

    Log into Ubuntu as a user with sudo privileges.

    +
  2. +
  3. +

    Verify that UFW is installed and enabled.

    +
    $ sudo ufw status
    +
    +
  4. +
  5. +

    Open the /etc/default/ufw file for editing.

    +
    $ sudo nano /etc/default/ufw
    +
    +
  6. +
  7. +

    Set the DEFAULT_FORWARD_POLICY policy to:

    +
    DEFAULT_FORWARD_POLICY="ACCEPT"
    +
    +
  8. +
  9. +

    Save and close the file.

    +
  10. +
  11. +

    Reload UFW to use the new setting.

    +
    $ sudo ufw reload
    +
    +
  12. +
  13. +

    Allow incoming connections on the Docker port.

    +
    $ sudo ufw allow 2375/tcp
    +
    +
  14. +
+

Configure a DNS server for use by Docker

+

Systems that run Ubuntu or an Ubuntu derivative on the desktop typically use +127.0.0.1 as the default nameserver in /etc/resolv.conf file. The +NetworkManager also sets up dnsmasq to use the real DNS servers of the +connection and sets up nameserver 127.0.0.1 in /etc/resolv.conf.

+

When starting containers on desktop machines with these configurations, Docker +users see this warning:

+
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
+can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
+
+

The warning occurs because Docker containers can't use the local DNS nameserver. +Instead, Docker defaults to using an external nameserver.

+

To avoid this warning, you can specify a DNS server for use by Docker +containers. Or, you can disable dnsmasq in NetworkManager. Though, disabiling +dnsmasq might make DNS resolution slower on some networks.

+

To specify a DNS server for use by Docker:

+
    +
  1. +

    Log into Ubuntu as a user with sudo privileges.

    +
  2. +
  3. +

    Open the /etc/default/docker file for editing.

    +
    $ sudo nano /etc/default/docker
    +
    +
  4. +
  5. +

    Add a setting for Docker.

    +
    DOCKER_OPTS="--dns 8.8.8.8"
    +
    +

    Replace 8.8.8.8 with a local DNS server such as 192.168.1.1. You can also +specify multiple DNS servers. Separated them with spaces, for example:

    +
    --dns 8.8.8.8 --dns 192.168.1.1
    +
    +
    +

    Warning: If you're doing this on a laptop which connects to various +networks, make sure to choose a public DNS server.

    +
    +
  6. +
  7. +

    Save and close the file.

    +
  8. +
  9. +

    Restart the Docker daemon.

    +
    $ sudo restart docker
    +
    +
  10. +
+

  + 

+

Or, as an alternative to the previous procedure, disable dnsmasq in +NetworkManager (this might slow your network).

+
    +
  1. +

    Open the /etc/default/docker file for editing.

    +
    $ sudo nano /etc/NetworkManager/NetworkManager.conf
    +
    +
  2. +
  3. +

    Comment out the dns=dsnmasq line:

    +
    dns=dnsmasq
    +
    +
  4. +
  5. +

    Save and close the file.

    +
  6. +
  7. +

    Restart both the NetworkManager and Docker.

    +
    $ sudo restart network-manager $ sudo restart docker
    +
    +
  8. +
+

Upgrade Docker

+

To install the latest version of Docker, use the standard -N flag with wget:

+
$ wget -N https://get.docker.com/ | sh
+
+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/installation/windows.md~ b/installation/windows.md~ new file mode 100644 index 0000000000..4d425cc59d --- /dev/null +++ b/installation/windows.md~ @@ -0,0 +1,105 @@ +page_title: Installation on Windows +page_description: Docker installation on Microsoft Windows +page_keywords: Docker, Docker documentation, Windows, requirements, virtualbox, boot2docker + +# Windows +> **Note:** +> Docker has been tested on Windows 7.1 and 8; it may also run on older versions. +> Your processor needs to support hardware virtualization. + +The Docker Engine uses Linux-specific kernel features, so to run it on Windows +we need to use a lightweight virtual machine (vm). You use the Windows Docker client to +control the virtualized Docker Engine to build, run, and manage Docker containers. + +To make this process easier, we've designed a helper application called +[Boot2Docker](https://github.com/boot2docker/boot2docker) that installs the +virtual machine and runs the Docker daemon. + +## Demonstration + + + +## Installation + +1. Download the latest release of the [Docker for Windows Installer](https://github.com/boot2docker/windows-installer/releases/latest) +2. Run the installer, which will install VirtualBox, MSYS-git, the boot2docker Linux ISO, +and the Boot2Docker management tool. + ![](/installation/images/windows-installer.png) +3. Run the `Boot2Docker Start` shell script from your Desktop or Program Files > Boot2Docker for Windows. + The Start script will ask you to enter an ssh key passphrase - the simplest + (but least secure) is to just hit [Enter]. + + ![](/installation/images/windows-boot2docker-start.png) + + The `Boot2Docker Start` script will connect you to a shell session in the virtual + machine. If needed, it will initialize a new VM and start it. + +## Upgrading + +1. Download the latest release of the [Docker for Windows Installer]( + https://github.com/boot2docker/windows-installer/releases/latest) + +2. Run the installer, which will update the Boot2Docker management tool. + +3. To upgrade your existing virtual machine, open a terminal and run: + + boot2docker stop + boot2docker download + boot2docker start + +## Running Docker + +> **Note:** if you are using a remote Docker daemon, such as Boot2Docker, +> then _do not_ type the `sudo` before the `docker` commands shown in the +> documentation's examples. + +Boot2Docker will log you in automatically so you can start using Docker right away. + +Let's try the `hello-world` example image. Run + + $ docker run hello-world + +This should download the very small `hello-world` image and print a `Hello from Docker.` message. + +## Login with PUTTY instead of using the CMD + +Boot2Docker generates and uses the public/private key pair in your `%HOMEPATH%\.ssh` +directory so to log in you need to use the private key from this same directory. + +The private key needs to be converted into the format PuTTY uses. + +You can do this with +[puttygen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html): + +- Open `puttygen.exe` and load ("File"->"Load" menu) the private key from + `%HOMEPATH%\.ssh\id_boot2docker` +- then click: "Save Private Key". +- Then use the saved file to login with PuTTY using `docker@127.0.0.1:2022`. + +# Further Details + +The Boot2Docker management tool provides several commands: + + $ ./boot2docker + Usage: ./boot2docker [] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete|download|version} [] + + +## Container port redirection + +If you are curious, the username for the boot2docker default user is `docker` and the password is `tcuser`. + +The latest version of `boot2docker` sets up a host only network adaptor which provides access to the container's ports. + +If you run a container with an exposed port: + + docker run --rm -i -t -p 80:80 nginx + +Then you should be able to access that nginx server using the IP address reported +to you using: + + boot2docker ip + +Typically, it is 192.168.59.103, but it could get changed by Virtualbox's DHCP +implementation. + +For further information or to report issues, please see the [Boot2Docker site](http://boot2docker.io) diff --git a/installation/windows.md~~ b/installation/windows.md~~ new file mode 100644 index 0000000000..26b2a42a45 --- /dev/null +++ b/installation/windows.md~~ @@ -0,0 +1,103 @@ +page_title: Installation on Windows +page_description: Docker installation on Microsoft Windows +page_keywords: Docker, Docker documentation, Windows, requirements, virtualbox, boot2docker + +# Windows +> **Note:** +> Docker has been tested on Windows 7.1 and 8; it may also run on older versions. +> Your processor needs to support hardware virtualization. + +The Docker Engine uses Linux-specific kernel features, so to run it on Windows +we need to use a lightweight virtual machine (vm). You use the Windows Docker client to +control the virtualized Docker Engine to build, run, and manage Docker containers. + +To make this process easier, we've designed a helper application called +[Boot2Docker](https://github.com/boot2docker/boot2docker) that installs the +virtual machine and runs the Docker daemon. + +## Demonstration + + + +## Installation + +1. Download the latest release of the [Docker for Windows Installer](https://github.com/boot2docker/windows-installer/releases/latest) +2. Run the installer, which will install VirtualBox, MSYS-git, the boot2docker Linux ISO, +and the Boot2Docker management tool. + ![](/installation/images/windows-installer.png) +3. Run the `Boot2Docker Start` shell script from your Desktop or Program Files > Boot2Docker for Windows. + The Start script will ask you to enter an ssh key passphrase - the simplest + (but least secure) is to just hit [Enter]. + + ![](/installation/images/windows-boot2docker-start.png) + + The `Boot2Docker Start` script will connect you to a shell session in the virtual + machine. If needed, it will initialize a new VM and start it. + +## Upgrading + +1. Download the latest release of the [Docker for Windows Installer]( + https://github.com/boot2docker/windows-installer/releases/latest) + +2. Run the installer, which will update the Boot2Docker management tool. + +3. To upgrade your existing virtual machine, open a terminal and run: + + boot2docker stop + boot2docker download + boot2docker start + +## Running Docker + +{{ include "no-remote-sudo.md" }} + +Boot2Docker will log you in automatically so you can start using Docker right away. + +Let's try the `hello-world` example image. Run + + $ docker run hello-world + +This should download the very small `hello-world` image and print a `Hello from Docker.` message. + +## Login with PUTTY instead of using the CMD + +Boot2Docker generates and uses the public/private key pair in your `%HOMEPATH%\.ssh` +directory so to log in you need to use the private key from this same directory. + +The private key needs to be converted into the format PuTTY uses. + +You can do this with +[puttygen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html): + +- Open `puttygen.exe` and load ("File"->"Load" menu) the private key from + `%HOMEPATH%\.ssh\id_boot2docker` +- then click: "Save Private Key". +- Then use the saved file to login with PuTTY using `docker@127.0.0.1:2022`. + +# Further Details + +The Boot2Docker management tool provides several commands: + + $ ./boot2docker + Usage: ./boot2docker [] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete|download|version} [] + + +## Container port redirection + +If you are curious, the username for the boot2docker default user is `docker` and the password is `tcuser`. + +The latest version of `boot2docker` sets up a host only network adaptor which provides access to the container's ports. + +If you run a container with an exposed port: + + docker run --rm -i -t -p 80:80 nginx + +Then you should be able to access that nginx server using the IP address reported +to you using: + + boot2docker ip + +Typically, it is 192.168.59.103, but it could get changed by Virtualbox's DHCP +implementation. + +For further information or to report issues, please see the [Boot2Docker site](http://boot2docker.io) diff --git a/installation/windows/index.html b/installation/windows/index.html new file mode 100644 index 0000000000..a553937aa2 --- /dev/null +++ b/installation/windows/index.html @@ -0,0 +1,938 @@ + + + + + + + + + + + + + + + + + + + + + + + + Microsoft Windows - Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Windows

+
+

Note: +Docker has been tested on Windows 7.1 and 8; it may also run on older versions. +Your processor needs to support hardware virtualization.

+
+

The Docker Engine uses Linux-specific kernel features, so to run it on Windows +we need to use a lightweight virtual machine (vm). You use the Windows Docker client to +control the virtualized Docker Engine to build, run, and manage Docker containers.

+

To make this process easier, we've designed a helper application called +Boot2Docker that installs the +virtual machine and runs the Docker daemon.

+

Demonstration

+ + +

Installation

+
    +
  1. Download the latest release of the Docker for Windows Installer
  2. +
  3. Run the installer, which will install VirtualBox, MSYS-git, the boot2docker Linux ISO, +and the Boot2Docker management tool. +
  4. +
  5. Run the Boot2Docker Start shell script from your Desktop or Program Files > Boot2Docker for Windows. + The Start script will ask you to enter an ssh key passphrase - the simplest + (but least secure) is to just hit [Enter].
  6. +
+

+

The Boot2Docker Start script will connect you to a shell session in the virtual + machine. If needed, it will initialize a new VM and start it.

+

Upgrading

+
    +
  1. +

    Download the latest release of the Docker for Windows Installer

    +
  2. +
  3. +

    Run the installer, which will update the Boot2Docker management tool.

    +
  4. +
  5. +

    To upgrade your existing virtual machine, open a terminal and run:

    +
    boot2docker stop
    +boot2docker download
    +boot2docker start
    +
    +
  6. +
+

Running Docker

+
+

Note: if you are using a remote Docker daemon, such as Boot2Docker, +then do not type the sudo before the docker commands shown in the +documentation's examples.

+
+

Boot2Docker will log you in automatically so you can start using Docker right away.

+

Let's try the hello-world example image. Run

+
$ docker run hello-world
+
+

This should download the very small hello-world image and print a Hello from Docker. message.

+

Login with PUTTY instead of using the CMD

+

Boot2Docker generates and uses the public/private key pair in your %HOMEPATH%\.ssh +directory so to log in you need to use the private key from this same directory.

+

The private key needs to be converted into the format PuTTY uses.

+

You can do this with +puttygen:

+
    +
  • Open puttygen.exe and load ("File"->"Load" menu) the private key from + %HOMEPATH%\.ssh\id_boot2docker
  • +
  • then click: "Save Private Key".
  • +
  • Then use the saved file to login with PuTTY using docker@127.0.0.1:2022.
  • +
+

Further Details

+

The Boot2Docker management tool provides several commands:

+
$ ./boot2docker
+Usage: ./boot2docker [<options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete|download|version} [<args>]
+
+

Container port redirection

+

If you are curious, the username for the boot2docker default user is docker and the password is tcuser.

+

The latest version of boot2docker sets up a host only network adaptor which provides access to the container's ports.

+

If you run a container with an exposed port:

+
docker run --rm -i -t -p 80:80 nginx
+
+

Then you should be able to access that nginx server using the IP address reported +to you using:

+
boot2docker ip
+
+

Typically, it is 192.168.59.103, but it could get changed by Virtualbox's DHCP +implementation.

+

For further information or to report issues, please see the Boot2Docker site

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/introduction/index.html b/introduction/index.html new file mode 100644 index 0000000000..5d6fd8f2c2 --- /dev/null +++ b/introduction/index.html @@ -0,0 +1,1201 @@ + + + + + + + + + + + + + + + + + + + + + + + + Docker Documentation + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+
+ + + +
+ +
+ +

Table of Contents

+

About

+ +

Installation

+ +

User Guide

+ +

Docker Hub

+ +

Examples

+ +

Articles

+ +

Reference

+ +

Contributor Guide

+ + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/introduction/understanding-docker.md~ b/introduction/understanding-docker.md~ new file mode 100644 index 0000000000..9c9995972f --- /dev/null +++ b/introduction/understanding-docker.md~ @@ -0,0 +1,286 @@ +page_title: Understanding Docker +page_description: Docker explained in depth +page_keywords: docker, introduction, documentation, about, technology, understanding + +# Understanding Docker +**What is Docker?** + +Docker is an open platform for developing, shipping, and running applications. +Docker is designed to deliver your applications faster. With Docker you can +separate your applications from your infrastructure AND treat your +infrastructure like a managed application. Docker helps you ship code faster, +test faster, deploy faster, and shorten the cycle between writing code and +running code. + +Docker does this by combining a lightweight container virtualization platform +with workflows and tooling that help you manage and deploy your applications. + +At its core, Docker provides a way to run almost any application securely +isolated in a container. The isolation and security allow you to run many +containers simultaneously on your host. The lightweight nature of containers, +which run without the extra load of a hypervisor, means you can get more out of +your hardware. + +Surrounding the container virtualization are tooling and a platform which can +help you in several ways: + +* getting your applications (and supporting components) into Docker containers +* distributing and shipping those containers to your teams for further development +and testing +* deploying those applications to your production environment, + whether it be in a local data center or the Cloud. + +## What can I use Docker for? + +*Faster delivery of your applications* + +Docker is perfect for helping you with the development lifecycle. Docker +allows your developers to develop on local containers that contain your +applications and services. It can then integrate into a continuous integration and +deployment workflow. + +For example, your developers write code locally and share their development stack via +Docker with their colleagues. When they are ready, they push their code and the +stack they are developing onto a test environment and execute any required +tests. From the testing environment, you can then push the Docker images into +production and deploy your code. + +*Deploying and scaling more easily* + +Docker's container-based platform allows for highly portable workloads. Docker +containers can run on a developer's local host, on physical or virtual machines +in a data center, or in the Cloud. + +Docker's portability and lightweight nature also make dynamically managing +workloads easy. You can use Docker to quickly scale up or tear down applications +and services. Docker's speed means that scaling can be near real time. + +*Achieving higher density and running more workloads* + +Docker is lightweight and fast. It provides a viable, cost-effective alternative +to hypervisor-based virtual machines. This is especially useful in high density +environments: for example, building your own Cloud or Platform-as-a-Service. But +it is also useful for small and medium deployments where you want to get more +out of the resources you have. + +## What are the major Docker components? +Docker has two major components: + + +* Docker: the open source container virtualization platform. +* [Docker Hub](https://hub.docker.com): our Software-as-a-Service + platform for sharing and managing Docker containers. + + +> **Note:** Docker is licensed under the open source Apache 2.0 license. + +## What is Docker's architecture? +Docker uses a client-server architecture. The Docker *client* talks to the +Docker *daemon*, which does the heavy lifting of building, running, and +distributing your Docker containers. Both the Docker client and the daemon *can* +run on the same system, or you can connect a Docker client to a remote Docker +daemon. The Docker client and daemon communicate via sockets or through a +RESTful API. + +![Docker Architecture Diagram](/article-img/architecture.svg) + +### The Docker daemon +As shown in the diagram above, the Docker daemon runs on a host machine. The +user does not directly interact with the daemon, but instead through the Docker +client. + +### The Docker client +The Docker client, in the form of the `docker` binary, is the primary user +interface to Docker. It accepts commands from the user and communicates back and +forth with a Docker daemon. + +### Inside Docker +To understand Docker's internals, you need to know about three components: + +* Docker images. +* Docker registries. +* Docker containers. + +#### Docker images + +A Docker image is a read-only template. For example, an image could contain an Ubuntu +operating system with Apache and your web application installed. Images are used to create +Docker containers. Docker provides a simple way to build new images or update existing +images, or you can download Docker images that other people have already created. +Docker images are the **build** component of Docker. + +#### Docker Registries +Docker registries hold images. These are public or private stores from which you upload +or download images. The public Docker registry is called +[Docker Hub](http://hub.docker.com). It provides a huge collection of existing +images for your use. These can be images you create yourself or you +can use images that others have previously created. Docker registries are the +**distribution** component of Docker. + +####Docker containers +Docker containers are similar to a directory. A Docker container holds everything that +is needed for an application to run. Each container is created from a Docker +image. Docker containers can be run, started, stopped, moved, and deleted. Each +container is an isolated and secure application platform. Docker containers are the + **run** component of Docker. + +##So how does Docker work? +So far, we've learned that: + +1. You can build Docker images that hold your applications. +2. You can create Docker containers from those Docker images to run your + applications. +3. You can share those Docker images via + [Docker Hub](https://hub.docker.com) or your own registry. + +Let's look at how these elements combine together to make Docker work. + +### How does a Docker Image work? +We've already seen that Docker images are read-only templates from which Docker +containers are launched. Each image consists of a series of layers. Docker +makes use of [union file systems](http://en.wikipedia.org/wiki/UnionFS) to +combine these layers into a single image. Union file systems allow files and +directories of separate file systems, known as branches, to be transparently +overlaid, forming a single coherent file system. + +One of the reasons Docker is so lightweight is because of these layers. When you +change a Docker image—for example, update an application to a new version— a new layer +gets built. Thus, rather than replacing the whole image or entirely +rebuilding, as you may do with a virtual machine, only that layer is added or +updated. Now you don't need to distribute a whole new image, just the update, +making distributing Docker images faster and simpler. + +Every image starts from a base image, for example `ubuntu`, a base Ubuntu image, +or `fedora`, a base Fedora image. You can also use images of your own as the +basis for a new image, for example if you have a base Apache image you could use +this as the base of all your web application images. + +> **Note:** Docker usually gets these base images from +> [Docker Hub](https://hub.docker.com). + +Docker images are then built from these base images using a simple, descriptive +set of steps we call *instructions*. Each instruction creates a new layer in our +image. Instructions include actions like: + +* Run a command. +* Add a file or directory. +* Create an environment variable. +* What process to run when launching a container from this image. + +These instructions are stored in a file called a `Dockerfile`. Docker reads this +`Dockerfile` when you request a build of an image, executes the instructions, and +returns a final image. + +### How does a Docker registry work? +The Docker registry is the store for your Docker images. Once you build a Docker +image you can *push* it to a public registry [Docker Hub](https://hub.docker.com) or to +your own registry running behind your firewall. + +Using the Docker client, you can search for already published images and then +pull them down to your Docker host to build containers from them. + +[Docker Hub](https://hub.docker.com) provides both public and private storage +for images. Public storage is searchable and can be downloaded by anyone. +Private storage is excluded from search results and only you and your users can +pull images down and use them to build containers. You can [sign up for a storage plan +here](https://hub.docker.com/plans). + +### How does a container work? +A container consists of an operating system, user-added files, and meta-data. As +we've seen, each container is built from an image. That image tells Docker +what the container holds, what process to run when the container is launched, and +a variety of other configuration data. The Docker image is read-only. When +Docker runs a container from an image, it adds a read-write layer on top of the +image (using a union file system as we saw earlier) in which your application can +then run. + +### What happens when you run a container? +Either by using the `docker` binary or via the API, the Docker client tells the Docker +daemon to run a container. + + $ sudo docker run -i -t ubuntu /bin/bash + +Let's break down this command. The Docker client is launched using the `docker` +binary with the `run` option telling it to launch a new container. The bare +minimum the Docker client needs to tell the Docker daemon to run the container +is: + +* What Docker image to build the container from, here `ubuntu`, a base Ubuntu +image; +* The command you want to run inside the container when it is launched, +here `/bin/bash`, to start the Bash shell inside the new container. + +So what happens under the hood when we run this command? + +In order, Docker does the following: + +- **Pulls the `ubuntu` image:** Docker checks for the presence of the `ubuntu` +image and, if it doesn't exist locally on the host, then Docker downloads it from +[Docker Hub](https://hub.docker.com). If the image already exists, then Docker +uses it for the new container. +- **Creates a new container:** Once Docker has the image, it uses it to create a +container. +- **Allocates a filesystem and mounts a read-write _layer_:** The container is created in +the file system and a read-write layer is added to the image. +- **Allocates a network / bridge interface:** Creates a network interface that allows the +Docker container to talk to the local host. +- **Sets up an IP address:** Finds and attaches an available IP address from a pool. +- **Executes a process that you specify:** Runs your application, and; +- **Captures and provides application output:** Connects and logs standard input, outputs +and errors for you to see how your application is running. + +You now have a running container! From here you can manage your container, interact with +your application and then, when finished, stop and remove your container. + +## The underlying technology +Docker is written in Go and makes use of several Linux kernel features to +deliver the functionality we've seen. + +### Namespaces +Docker takes advantage of a technology called `namespaces` to provide the +isolated workspace we call the *container*. When you run a container, Docker +creates a set of *namespaces* for that container. + +This provides a layer of isolation: each aspect of a container runs in its own +namespace and does not have access outside it. + +Some of the namespaces that Docker uses are: + + - **The `pid` namespace:** Used for process isolation (PID: Process ID). + - **The `net` namespace:** Used for managing network interfaces (NET: + Networking). + - **The `ipc` namespace:** Used for managing access to IPC + resources (IPC: InterProcess Communication). + - **The `mnt` namespace:** Used for managing mount-points (MNT: Mount). + - **The `uts` namespace:** Used for isolating kernel and version identifiers. (UTS: Unix +Timesharing System). + +### Control groups +Docker also makes use of another technology called `cgroups` or control groups. +A key to running applications in isolation is to have them only use the +resources you want. This ensures containers are good multi-tenant citizens on a +host. Control groups allow Docker to share available hardware resources to +containers and, if required, set up limits and constraints. For example, +limiting the memory available to a specific container. + +### Union file systems +Union file systems, or UnionFS, are file systems that operate by creating layers, +making them very lightweight and fast. Docker uses union file systems to provide +the building blocks for containers. Docker can make use of several union file system variants +including: AUFS, btrfs, vfs, and DeviceMapper. + +### Container format +Docker combines these components into a wrapper we call a container format. The +default container format is called `libcontainer`. Docker also supports +traditional Linux containers using [LXC](https://linuxcontainers.org/). In the +future, Docker may support other container formats, for example, by integrating with +BSD Jails or Solaris Zones. + +## Next steps +### Installing Docker +Visit the [installation section](/installation/#installation). + +### The Docker User Guide +[Learn Docker in depth](/userguide/). + + diff --git a/introduction/understanding-docker/index.html b/introduction/understanding-docker/index.html new file mode 100644 index 0000000000..2b1077feda --- /dev/null +++ b/introduction/understanding-docker/index.html @@ -0,0 +1,1117 @@ + + + + + + + + + + + + + + + + + + + + + + + + Understanding Docker - Docker Documentation + + + + + + + + + + + +
+ +
+
+ + +
+ + + +
+ +
+ +

Understanding Docker

+

What is Docker?

+

Docker is an open platform for developing, shipping, and running applications. +Docker is designed to deliver your applications faster. With Docker you can +separate your applications from your infrastructure AND treat your +infrastructure like a managed application. Docker helps you ship code faster, +test faster, deploy faster, and shorten the cycle between writing code and +running code.

+

Docker does this by combining a lightweight container virtualization platform +with workflows and tooling that help you manage and deploy your applications.

+

At its core, Docker provides a way to run almost any application securely +isolated in a container. The isolation and security allow you to run many +containers simultaneously on your host. The lightweight nature of containers, +which run without the extra load of a hypervisor, means you can get more out of +your hardware.

+

Surrounding the container virtualization are tooling and a platform which can +help you in several ways:

+
    +
  • getting your applications (and supporting components) into Docker containers
  • +
  • distributing and shipping those containers to your teams for further development +and testing
  • +
  • deploying those applications to your production environment, + whether it be in a local data center or the Cloud.
  • +
+

What can I use Docker for?

+

Faster delivery of your applications

+

Docker is perfect for helping you with the development lifecycle. Docker +allows your developers to develop on local containers that contain your +applications and services. It can then integrate into a continuous integration and +deployment workflow.

+

For example, your developers write code locally and share their development stack via +Docker with their colleagues. When they are ready, they push their code and the +stack they are developing onto a test environment and execute any required +tests. From the testing environment, you can then push the Docker images into +production and deploy your code.

+

Deploying and scaling more easily

+

Docker's container-based platform allows for highly portable workloads. Docker +containers can run on a developer's local host, on physical or virtual machines +in a data center, or in the Cloud.

+

Docker's portability and lightweight nature also make dynamically managing +workloads easy. You can use Docker to quickly scale up or tear down applications +and services. Docker's speed means that scaling can be near real time.

+

Achieving higher density and running more workloads

+

Docker is lightweight and fast. It provides a viable, cost-effective alternative +to hypervisor-based virtual machines. This is especially useful in high density +environments: for example, building your own Cloud or Platform-as-a-Service. But +it is also useful for small and medium deployments where you want to get more +out of the resources you have.

+

What are the major Docker components?

+

Docker has two major components:

+
    +
  • Docker: the open source container virtualization platform.
  • +
  • Docker Hub: our Software-as-a-Service + platform for sharing and managing Docker containers.
  • +
+
+

Note: Docker is licensed under the open source Apache 2.0 license.

+
+

What is Docker's architecture?

+

Docker uses a client-server architecture. The Docker client talks to the +Docker daemon, which does the heavy lifting of building, running, and +distributing your Docker containers. Both the Docker client and the daemon can +run on the same system, or you can connect a Docker client to a remote Docker +daemon. The Docker client and daemon communicate via sockets or through a +RESTful API.

+

Docker Architecture Diagram

+

The Docker daemon

+

As shown in the diagram above, the Docker daemon runs on a host machine. The +user does not directly interact with the daemon, but instead through the Docker +client.

+

The Docker client

+

The Docker client, in the form of the docker binary, is the primary user +interface to Docker. It accepts commands from the user and communicates back and +forth with a Docker daemon.

+

Inside Docker

+

To understand Docker's internals, you need to know about three components:

+
    +
  • Docker images.
  • +
  • Docker registries.
  • +
  • Docker containers.
  • +
+

Docker images

+

A Docker image is a read-only template. For example, an image could contain an Ubuntu +operating system with Apache and your web application installed. Images are used to create +Docker containers. Docker provides a simple way to build new images or update existing +images, or you can download Docker images that other people have already created. +Docker images are the build component of Docker.

+

Docker Registries

+

Docker registries hold images. These are public or private stores from which you upload +or download images. The public Docker registry is called +Docker Hub. It provides a huge collection of existing +images for your use. These can be images you create yourself or you +can use images that others have previously created. Docker registries are the +distribution component of Docker.

+

Docker containers

+

Docker containers are similar to a directory. A Docker container holds everything that +is needed for an application to run. Each container is created from a Docker +image. Docker containers can be run, started, stopped, moved, and deleted. Each +container is an isolated and secure application platform. Docker containers are the + run component of Docker.

+

So how does Docker work?

+

So far, we've learned that:

+
    +
  1. You can build Docker images that hold your applications.
  2. +
  3. You can create Docker containers from those Docker images to run your + applications.
  4. +
  5. You can share those Docker images via + Docker Hub or your own registry.
  6. +
+

Let's look at how these elements combine together to make Docker work.

+

How does a Docker Image work?

+

We've already seen that Docker images are read-only templates from which Docker +containers are launched. Each image consists of a series of layers. Docker +makes use of union file systems to +combine these layers into a single image. Union file systems allow files and +directories of separate file systems, known as branches, to be transparently +overlaid, forming a single coherent file system.

+

One of the reasons Docker is so lightweight is because of these layers. When you +change a Docker image—for example, update an application to a new version— a new layer +gets built. Thus, rather than replacing the whole image or entirely +rebuilding, as you may do with a virtual machine, only that layer is added or +updated. Now you don't need to distribute a whole new image, just the update, +making distributing Docker images faster and simpler.

+

Every image starts from a base image, for example ubuntu, a base Ubuntu image, +or fedora, a base Fedora image. You can also use images of your own as the +basis for a new image, for example if you have a base Apache image you could use +this as the base of all your web application images.

+
+

Note: Docker usually gets these base images from +Docker Hub.

+
+

Docker images are then built from these base images using a simple, descriptive +set of steps we call instructions. Each instruction creates a new layer in our +image. Instructions include actions like:

+
    +
  • Run a command.
  • +
  • Add a file or directory.
  • +
  • Create an environment variable.
  • +
  • What process to run when launching a container from this image.
  • +
+

These instructions are stored in a file called a Dockerfile. Docker reads this +Dockerfile when you request a build of an image, executes the instructions, and +returns a final image.

+

How does a Docker registry work?

+

The Docker registry is the store for your Docker images. Once you build a Docker +image you can push it to a public registry Docker Hub or to +your own registry running behind your firewall.

+

Using the Docker client, you can search for already published images and then +pull them down to your Docker host to build containers from them.

+

Docker Hub provides both public and private storage +for images. Public storage is searchable and can be downloaded by anyone. +Private storage is excluded from search results and only you and your users can +pull images down and use them to build containers. You can sign up for a storage plan +here.

+

How does a container work?

+

A container consists of an operating system, user-added files, and meta-data. As +we've seen, each container is built from an image. That image tells Docker +what the container holds, what process to run when the container is launched, and +a variety of other configuration data. The Docker image is read-only. When +Docker runs a container from an image, it adds a read-write layer on top of the +image (using a union file system as we saw earlier) in which your application can +then run.

+

What happens when you run a container?

+

Either by using the docker binary or via the API, the Docker client tells the Docker +daemon to run a container.

+
$ sudo docker run -i -t ubuntu /bin/bash
+
+

Let's break down this command. The Docker client is launched using the docker +binary with the run option telling it to launch a new container. The bare +minimum the Docker client needs to tell the Docker daemon to run the container +is:

+
    +
  • What Docker image to build the container from, here ubuntu, a base Ubuntu +image;
  • +
  • The command you want to run inside the container when it is launched, +here /bin/bash, to start the Bash shell inside the new container.
  • +
+

So what happens under the hood when we run this command?

+

In order, Docker does the following:

+
    +
  • Pulls the ubuntu image: Docker checks for the presence of the ubuntu +image and, if it doesn't exist locally on the host, then Docker downloads it from +Docker Hub. If the image already exists, then Docker +uses it for the new container.
  • +
  • Creates a new container: Once Docker has the image, it uses it to create a +container.
  • +
  • Allocates a filesystem and mounts a read-write layer: The container is created in +the file system and a read-write layer is added to the image.
  • +
  • Allocates a network / bridge interface: Creates a network interface that allows the +Docker container to talk to the local host.
  • +
  • Sets up an IP address: Finds and attaches an available IP address from a pool.
  • +
  • Executes a process that you specify: Runs your application, and;
  • +
  • Captures and provides application output: Connects and logs standard input, outputs +and errors for you to see how your application is running.
  • +
+

You now have a running container! From here you can manage your container, interact with +your application and then, when finished, stop and remove your container.

+

The underlying technology

+

Docker is written in Go and makes use of several Linux kernel features to +deliver the functionality we've seen.

+

Namespaces

+

Docker takes advantage of a technology called namespaces to provide the +isolated workspace we call the container. When you run a container, Docker +creates a set of namespaces for that container.

+

This provides a layer of isolation: each aspect of a container runs in its own +namespace and does not have access outside it.

+

Some of the namespaces that Docker uses are:

+
    +
  • The pid namespace: Used for process isolation (PID: Process ID).
  • +
  • The net namespace: Used for managing network interfaces (NET: + Networking).
  • +
  • The ipc namespace: Used for managing access to IPC + resources (IPC: InterProcess Communication).
  • +
  • The mnt namespace: Used for managing mount-points (MNT: Mount).
  • +
  • The uts namespace: Used for isolating kernel and version identifiers. (UTS: Unix +Timesharing System).
  • +
+

Control groups

+

Docker also makes use of another technology called cgroups or control groups. +A key to running applications in isolation is to have them only use the +resources you want. This ensures containers are good multi-tenant citizens on a +host. Control groups allow Docker to share available hardware resources to +containers and, if required, set up limits and constraints. For example, +limiting the memory available to a specific container.

+

Union file systems

+

Union file systems, or UnionFS, are file systems that operate by creating layers, +making them very lightweight and fast. Docker uses union file systems to provide +the building blocks for containers. Docker can make use of several union file system variants +including: AUFS, btrfs, vfs, and DeviceMapper.

+

Container format

+

Docker combines these components into a wrapper we call a container format. The +default container format is called libcontainer. Docker also supports +traditional Linux containers using LXC. In the +future, Docker may support other container formats, for example, by integrating with +BSD Jails or Solaris Zones.

+

Next steps

+

Installing Docker

+

Visit the installation section.

+

The Docker User Guide

+

Learn Docker in depth.

+ +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/js/base.js b/js/base.js new file mode 100644 index 0000000000..b4775c837b --- /dev/null +++ b/js/base.js @@ -0,0 +1,101 @@ +$(document).ready(function () +{ + + prettyPrint(); + + // Resizing + resizeMenuDropdown(); + // checkToScrollTOC(); + $(window).resize(function() { + if(this.resizeTO) + { + clearTimeout(this.resizeTO); + } + this.resizeTO = setTimeout(function () + { + resizeMenuDropdown(); + // checkToScrollTOC(); + }, 500); + }); + + /* Follow TOC links (ScrollSpy) */ + $('body').scrollspy({ + target: '#toc_table', + }); + + /* Prevent disabled link clicks */ + $("li.disabled a").click(function () + { + event.preventDefault(); + }); + + // Submenu ensured drop-down functionality for desktops & mobiles + $('.dd_menu').on({ + click: function () + { + $(this).toggleClass('dd_on_hover'); + }, + mouseenter: function () + { + $(this).addClass('dd_on_hover'); + }, + mouseleave: function () + { + $(this).removeClass('dd_on_hover'); + }, + }); + + function getURLP(name) + { + return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20')) || null; + } + if (getURLP("q")) { + // Tipue Search activation + $('#tipue_search_input').tipuesearch({ + 'mode': 'json', + 'contentLocation': '/search_content.json.gz' + }); + } + +}); + +function resizeMenuDropdown () +{ + $('.dd_menu > .dd_submenu').css("max-height", ($('body').height() - 160) + 'px'); +} + +// https://github.com/bigspotteddog/ScrollToFixed +function checkToScrollTOC () +{ + if ( $(window).width() >= 768 ) + { + // If TOC is hidden, expand. + $('#toc_table > #toc_navigation').css("display", "block"); + // Then attach or detach fixed-scroll + if ( ($('#toc_table').height() + 100) >= $(window).height() ) + { + $('#toc_table').trigger('detach.ScrollToFixed'); + $('#toc_navigation > li.active').removeClass('active'); + } + else + { + $('#toc_table').scrollToFixed({ + marginTop: $('#nav_menu').height(), + limit: function () { return $('#footer').offset().top - 450; }, + zIndex: 1, + minWidth: 768, + removeOffsets: true, + }); + } + } +} + +function getCookie(cname) { + var name = cname + "="; + var ca = document.cookie.split(';'); + for(var i=0; ithis.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/js/dockerfile_tutorial.js b/js/dockerfile_tutorial.js new file mode 100644 index 0000000000..a17cc48d61 --- /dev/null +++ b/js/dockerfile_tutorial.js @@ -0,0 +1,74 @@ +function clean_input(i) { + return i.replace(/^\s+|\s+$/g, ''); +} + +function clean_up(str){ + return clean_input(str).toUpperCase(); +} + +function dockerfile_log(level, item, errors) +{ + var logUrl = '/tutorial/api/dockerfile_event/'; + $.ajax({ + url: logUrl, + type: "POST", + cache:false, + data: { + 'errors': errors, + 'level': level, + 'item': item, + }, + }).done( function() { } ); +} + +function validate_email(email) +{ + var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(email); +} + +$(document).ready(function() { + + /* prepare to send the csrf-token on each ajax-request */ + var csrftoken = $.cookie('csrftoken'); + $.ajaxSetup({ + headers: { 'X-CSRFToken': csrftoken } + }); + + $("#send_email").click( function() + { + $('#email_invalid').hide(); + $('#email_already_registered').hide(); + $('#email_registered').hide(); + + email = $('#email').val(); + if (!validate_email(email)) + { + $('#email_invalid').show(); + return (false); + } + + var emailUrl = '/tutorial/api/subscribe/'; + + $.ajax({ + url: emailUrl, + type: "POST", + cache:false, + data: { + 'email': email, + 'from_level': $(this).data('level') + }, + }).done( function(data ) { + if (data == 1) // already registered + { + $('#email_already_registered').show(); + } + else if (data == 0) // registered ok + { + $('#email_registered').show(); + } + + } ); + return (true); + }); +}) diff --git a/js/dockerfile_tutorial_level.js b/js/dockerfile_tutorial_level.js new file mode 100644 index 0000000000..22f13b6ef7 --- /dev/null +++ b/js/dockerfile_tutorial_level.js @@ -0,0 +1,176 @@ +function check_form1 () +{ + $('#level1_error0').hide(); + $('#level1_error1').hide(); + $('#level1_error2').hide(); + $('#level1_error3').hide(); + + $('#no_good').hide(); + $('#some_good').hide(); + $('#all_good').hide(); + + var a = clean_input($('#level1_q0').val()).toUpperCase(); + var b = clean_input($('#level1_q1').val()).toUpperCase(); + var c = clean_input($('#level1_q2').val()).toUpperCase(); + var d = clean_input($('#level1_q3').val()); + var points = 0; + + if (a == 'FROM'){ + points = points + 1; + } else { + $('#level1_error0').show(); + } + if (b == 'RUN') { + points = points + 1; + } else { + $('#level1_error1').show(); + } + if (c == 'MAINTAINER') { + points = points + 1; + } else { + $('#level1_error2').show(); + } + if (d == '#') { + points = points + 1; + } else { + $('#level1_error3').show(); + } + if (points == 4) {// all good + $('#all_good').show(); + } else if (points == 0) { // nothing good + $('#no_good').show(); + } else {// some good some bad + $('#some_good').show(); + } + return (4 - points); +} + +function check_form2 () +{ + $('.level_questions .alert').hide(); + + var answers = {}; + answers[0] = ['FROM']; + answers[1] = ['ENTRYPOINT', 'CMD']; + answers[2] = ['#']; + answers[3] = ['USER']; + answers[4] = ['RUN']; + answers[5] = ['EXPOSE']; + answers[6] = ['MAINTAINER']; + answers[7] = ['ENTRYPOINT', 'CMD']; + + var points = 0; + + $.each($(".level"), function(num, input){ + var cleaned = clean_up(input.value); + if ($.inArray(cleaned, answers[num]) == -1) { + $( $(".level_error")[num]).show() + $(input).addClass("error_input"); + } else { + $( $(".level_error")[num]).hide() + $(input).removeClass("error_input"); + points += 1; + } + }) + if (points == 8) // all good + { + $('#all_good').show(); + } + else if (points == 0) // nothing good + { + $('#no_good').show(); + } + else // some good some bad + { + $('#some_good').show(); + } + return (8- points); +} + +function check_fill(answers) +{ + $('#dockerfile_ok').hide(); + $('#dockerfile_ko').hide(); + + var errors = 0; + + $.each($(".l_fill"), function(num, input){ + var cleaned = clean_up(input.value); + var id = input.id; + if (answers[id] != cleaned) { + $(input).addClass("error_input"); + errors += 1; + } else { + $(input).removeClass("error_input"); + } + }); + + if (errors != 0) + { + $('#dockerfile_ko').show(); + } + else + { + $('#dockerfile_ok').show(); + } + return (errors); +} + +$(document).ready(function() { + + $("#check_level1_questions").click( function(){ + errors = check_form1(); + dockerfile_log(1, '1_questions', errors); + } + ); + + $("#check_level1_fill").click( function(){ + var answers = {}; + answers['from'] = 'FROM'; + answers['ubuntu'] = 'UNTU'; + answers['maintainer'] = 'MAINTAINER'; + answers['eric'] = 'RIC'; + answers['bardin'] = 'ARDIN'; + answers['run0'] = 'RUN'; + answers['run1'] = 'RUN'; + answers['run2'] = 'RUN'; + answers['memcached'] = 'MEMCACHED'; + + var errors = check_fill(answers); + dockerfile_log(1, '2_fill', errors); + }); + + $("#check_level2_questions").click( function(){ + errors = check_form2(); + dockerfile_log(2, '1_questions', errors); + } + ); + + $("#check_level2_fill").click( function(){ + var answers = {}; + answers['from'] = "FROM"; + answers['ubuntu'] = "UNTU"; + answers['maintainer'] = "AINER"; + answers['roberto'] = "BERTO"; + answers['hashioka'] = "SHIOKA"; + answers['run0'] = "RUN"; + answers['run1'] = "RUN"; + answers['run2'] = "RUN"; + answers['run3'] = "RUN"; + answers['run4'] = "RUN"; + answers['run5'] = "RUN"; + answers['run6'] = "RUN"; + answers['entrypoint'] = "ENTRYPOINT"; + answers['user'] = "USER"; + answers['expose'] = "EXPOSE"; + answers['gcc'] = "GCC"; + + var errors = check_fill(answers); + dockerfile_log(2, '2_fill', errors); + }); + + $(".btn.btn-primary.back").click( function(event){ + event.preventDefault(); + window.history.back(); + }) +}); diff --git a/js/jquery-1.10.2.min.js b/js/jquery-1.10.2.min.js new file mode 100644 index 0000000000..29b3a2c7b4 --- /dev/null +++ b/js/jquery-1.10.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("