├── speed ├── frameworks │ ├── native.js │ └── mootools-slick.js ├── slickspeed │ ├── logo.png │ ├── footer.html │ ├── instructions.txt │ ├── index.php │ ├── selectors.list.yahoo.css │ ├── selectors.list.css │ ├── selectors.list.org.css │ ├── selectors.list.mine.css │ ├── selectors.list.sly.css │ ├── config.ini │ ├── selectors.list.extended.css │ ├── header.php │ ├── selectors.list.simple.css │ ├── style.css │ └── system │ │ ├── index.php │ │ ├── slickspeed.js │ │ └── template.php ├── subtleslickspeed │ ├── README.mdown │ ├── lib │ │ ├── subtlesandbox_strict.html │ │ ├── print.css │ │ ├── ie.css │ │ ├── own_tests │ │ │ └── report_test.html │ │ ├── subtleslickspeed.reports.js │ │ ├── table_report.css │ │ └── subtlesandbox.js │ └── tests │ │ └── selectors │ │ ├── template.html │ │ └── tests.js └── jslitmus │ ├── JSLitmusHelpers.js │ ├── select.html │ ├── bench_catch.html │ ├── label_break-vs-fn_return.html │ ├── bench_parse.js │ ├── method_vs_propfn.html │ ├── label_string-vs-var.html │ ├── get_attribute.html │ ├── closedNodes.html │ ├── nodeListtoArray.html │ ├── bench_uidOf.html │ ├── select_class.html │ ├── demo.html │ ├── bench_match.js │ ├── bench_select.js │ ├── select_id.html │ ├── bench_select2.js │ ├── selectXML.html │ ├── results.html │ └── bench_parse.html ├── .gitignore ├── SlickSpec ├── assets │ ├── moobugger │ │ ├── images │ │ │ ├── max.png │ │ │ ├── min.png │ │ │ ├── close.png │ │ │ ├── error.png │ │ │ ├── icon.png │ │ │ ├── info.png │ │ │ ├── lick.png │ │ │ ├── time.png │ │ │ ├── mootools.png │ │ │ ├── warning.png │ │ │ ├── group-open.png │ │ │ └── group-close.png │ │ ├── debugger.html │ │ ├── bookmarklet.html │ │ ├── debugger.css │ │ └── test.html │ ├── simple_request.js │ ├── getgetter.js │ ├── ie.css │ └── JSSpec.css ├── specs │ ├── specs_slick_docs.js │ ├── isxml.specs.js │ ├── slick_xml_specs.js │ ├── syntax.js │ ├── specs-select_nth-child.js │ ├── specs-select_exhaustive.js │ └── slick_match_specs.js ├── mocks │ ├── xmlmock1.xml │ ├── template_xml.html │ ├── GoogleClosure-query_test.html │ ├── dojo-query_test.html │ ├── MooTools_Logo.svg │ ├── yui-query_test.html │ ├── Prototype-query_test.html │ └── template_test.html ├── slick.html ├── bootstrap │ ├── nwmatcher.slickspec.js │ ├── yui.slickspec.js │ ├── moo12.slickspec.js │ ├── slick.slickspec.js │ └── sizzle.slickspec.js ├── parse.html ├── user-specs │ └── pseudos.html ├── match.html ├── framework_Slick.html ├── specrunner_browser.html ├── SlickSpec_ownSpecs.html └── select.html ├── package.yml └── README.md /speed/frameworks/native.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | slick.tmproj 2 | slick.js -------------------------------------------------------------------------------- /speed/slickspeed/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/speed/slickspeed/logo.png -------------------------------------------------------------------------------- /speed/frameworks/mootools-slick.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/speed/frameworks/mootools-slick.js -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/max.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/min.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/close.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/error.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/icon.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/info.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/lick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/lick.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/time.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/mootools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/mootools.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/warning.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/group-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/group-open.png -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/images/group-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/subtleGradient/slick/HEAD/SlickSpec/assets/moobugger/images/group-close.png -------------------------------------------------------------------------------- /SlickSpec/specs/specs_slick_docs.js: -------------------------------------------------------------------------------- 1 | function specsSlickDocs(){ 2 | Describe('MultiDocs',function(){ 3 | 4 | // it['should exist'] = TODO; 5 | 6 | }); 7 | 8 | }; 9 | -------------------------------------------------------------------------------- /speed/subtleslickspeed/README.mdown: -------------------------------------------------------------------------------- 1 | SubtleSlickSpeed 2 | ================ 3 | 4 | A/B testing framework with much awesome 5 | --------------------------------------- 6 | 7 | -------------------------------------------------------------------------------- /speed/slickspeed/footer.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /speed/slickspeed/instructions.txt: -------------------------------------------------------------------------------- 1 | 1) edit config.ini and fill in your framework list. 2 | 2) edit selectors.list and edit your selectors list. 3 | 3) edit style.css, header.html and footer.html if you wish. 4 | 4) edit template.html if you want to change the selectors html file. It DOES NOT accept the full document, just elements. -------------------------------------------------------------------------------- /speed/jslitmus/JSLitmusHelpers.js: -------------------------------------------------------------------------------- 1 | var describe = function(description, specs){ 2 | var test; 3 | for (var name in specs) { 4 | test = JSLitmus.test(description+': '+name, specs[name]); 5 | // JSLitmus._queueTest(test); 6 | } 7 | }; 8 | 9 | function runSpecs(){ 10 | // setTimeout(function(){ 11 | // JSLitmus.runAll(); 12 | // }, 1000); 13 | }; 14 | -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | name: "Slick" 2 | 3 | web: "[mootools.net](http://mootools.net)" 4 | 5 | description: "Slick, the most awesome CSS Parser and Finder" 6 | 7 | license: "[MIT License](http://mootools.net/license.txt)" 8 | 9 | copyright: "© [MooTools](http://mootools.net)" 10 | 11 | authors: 12 | - Thomas Aylott 13 | - Valerio Proietti 14 | - Fabio M Costa 15 | - Jan Kassens 16 | 17 | sources: 18 | - "Source/Slick.Parser.js" 19 | - "Source/Slick.Finder.js" 20 | -------------------------------------------------------------------------------- /speed/slickspeed/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SlickSpec/mocks/xmlmock1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /speed/slickspeed/selectors.list.mine.css: -------------------------------------------------------------------------------- 1 | .a1 2 | .a1 .a2 3 | b.a1 4 | b.a1, i.a2 5 | .a1 .a2 .a3 .a4 .a5 .a6 6 | .a2 .a4 .a6 7 | .a1 > .a2 > .a3 8 | #title 9 | h1#title 10 | div #title 11 | blockquote #title 12 | div 13 | p 14 | div > p 15 | div + p 16 | div ~ p 17 | div[class^=exa][class$=mple] 18 | div p a 19 | div, p, a 20 | div p 21 | p em 22 | p a[href] 23 | h2 a[name] 24 | .note 25 | .example 26 | .dtd-example 27 | div.example 28 | ul .tocline2 29 | div.example, div.note 30 | dl dd.vcard 31 | ul.toc li.tocline2 32 | ul.toc > li.tocline2 33 | h1#title ~ p > a 34 | p ~ div > a 35 | h1[id]:contains(Selectors) 36 | a[href][lang][class] 37 | div[class] 38 | div[class=example] 39 | div[class^=exa] 40 | div[class$=mple] 41 | div[class*=e] 42 | div[class|=dialog] 43 | div[class!=made_up] 44 | div[class~=example] 45 | a[href^="#"] 46 | a[href^=#] 47 | a[href^='#'] 48 | a:first-child 49 | a:last-child 50 | div:not(.example) 51 | div:not(:contains("Example")) 52 | a:not(div[class]) 53 | p:empty 54 | p:contains(selectors) -------------------------------------------------------------------------------- /speed/slickspeed/selectors.list.sly.css: -------------------------------------------------------------------------------- 1 | .a1 2 | .a1 .a2 3 | div.a1 div.a2 4 | .a1 .a2 .a3 .a4 .a5 .a6 5 | .a2 .a4 .a6 6 | .a1 > .a2 > .a3 7 | #title 8 | h1#title 9 | div#title 10 | div #title 11 | blockquote #title 12 | div 13 | div p 14 | p 15 | div > p 16 | div + p 17 | div ~ p 18 | div[class^=exa][class$=mple] 19 | div p a 20 | div, p, a 21 | p em 22 | p a[href] 23 | h2 a[name] 24 | .note 25 | .example 26 | .dtd-example 27 | div.example 28 | ul .tocline2 29 | div.example, div.note 30 | dl dd.vcard 31 | ul.toc li.tocline2 32 | ul.toc > li.tocline2 33 | h1#title ~ p + a 34 | p ~ div > a 35 | h1[id]:contains(Selectors) 36 | a[href][lang][class] 37 | div[class] 38 | div[class=example] 39 | div[class^=exa] 40 | div[class$=mple] 41 | div[class*=e] 42 | div[class|=dialog] 43 | div[class!=made_up] 44 | div[class~=example] 45 | a[href^="#"] 46 | a[href^=#] 47 | a[href^='#'] 48 | a:first-child 49 | a:last-child 50 | div:not(.example) 51 | div:not(:contains("Example")) 52 | a:not(div[class]) 53 | p:contains(markup) 54 | p:contains(selectors) -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/debugger.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |moobugger - bookmark it!
42 |Compare various ways of aborting the rest of the operations
47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /SlickSpec/specs/slick_xml_specs.js: -------------------------------------------------------------------------------- 1 | function specsAssetsTemplateXML(specs,context){ 2 | 3 | Describe('SELECT Selector Engine on XML file',function(){ 4 | 5 | function makeSlickTestSearch(selector, count, disableQSA) { 6 | return function(){ 7 | context.SELECT.disableQSA = !!disableQSA; 8 | value_of( context.SELECT(context.document, selector).length ).should_be( count ); 9 | delete context.SELECT.disableQSA; 10 | }; 11 | } 12 | function it_should_find(count,selector){ 13 | if (global.document.querySelectorAll && !global.cannotDisableQSA) 14 | specs['should find '+count+' `'+selector+'` with QSA' ] = makeSlickTestSearch(selector, count, false); 15 | specs['should find '+count+' `'+selector + (!global.cannotDisableQSA ? '` without QSA' : '') ] = makeSlickTestSearch(selector, count, true); 16 | }; 17 | 18 | it_should_find(1, 'HTML'); 19 | it_should_find(1, '#id_idnode'); 20 | it_should_find(1, '[id=id_idnode]'); 21 | it_should_find(3, '.class_classNode'); 22 | it_should_find(3, '[class=class_classNode]'); 23 | it_should_find(0, '[className=class_classNode]'); 24 | it_should_find(3, 'camelCasedTag'); 25 | it_should_find(1, '#node[style=border]'); 26 | it_should_find(1, '[href^=http://]'); 27 | 28 | }); 29 | 30 | }; 31 | -------------------------------------------------------------------------------- /SlickSpec/mocks/template_xml.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 |SlickSpec—Copyright © MooTools 2009—MIT License
34 | 35 | 36 | -------------------------------------------------------------------------------- /SlickSpec/user-specs/pseudos.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 |26 | Every framework runs in his own iFrame, thus no conflicts can happen. Tests are run selector by selector, with an interval to prevent the browser from freeezing. 27 | Tests are run in a neutral environment (against a local copy of this document), no library or framework is included in the main javascript test, to avoid favoritism. 28 |
-------------------------------------------------------------------------------- /speed/slickspeed/selectors.list.simple.css: -------------------------------------------------------------------------------- 1 | #title 2 | h1#title 3 | div#title 4 | div #title 5 | a #title 6 | .company 7 | .copyright 8 | .described 9 | .dtd-example 10 | .example 11 | .figure 12 | .fn 13 | .head 14 | .index-inst 15 | .inner 16 | .meaning 17 | .note 18 | .profile 19 | .refs 20 | .selectorsReview 21 | .subtoc 22 | .title 23 | .toc 24 | .toc .tocline2 25 | .tocline2, .tocline3, .tocline4 26 | .tprofile 27 | .url 28 | .vcard 29 | .wrapper 30 | a 31 | a.inner 32 | .url.fn 33 | a.url.fn 34 | a[href^="http://"] 35 | a[href^=#] 36 | a[href=#] 37 | abbr 38 | abbr[title] 39 | abbr[title^="CSS"] 40 | acronym 41 | b 42 | br 43 | cite 44 | code 45 | dd 46 | dd.vcard 47 | dfn 48 | div 49 | div.example 50 | div.figure 51 | div.head 52 | div.note 53 | div.profile 54 | div.subtoc 55 | div.wrapper 56 | dl dt 57 | dl.refs 58 | dl dt 59 | dt 60 | em 61 | h2, h3, h4, h5 62 | hr 63 | .nest.a1 .flatInNest 64 | i.nest.a1 b.flatInNest 65 | img 66 | li 67 | li.tocline2 68 | li.tocline3 69 | li.tocline4 70 | ol 71 | p 72 | p.copyright 73 | p.note 74 | pre 75 | pre.dtd-example 76 | span 77 | span.company 78 | span.fn 79 | span.index-inst 80 | span.note 81 | strong 82 | sup 83 | table 84 | table.selectorsReview 85 | table.tprofile 86 | table .origin 87 | table .pattern 88 | table td.origin 89 | table td.pattern 90 | tbody 91 | td 92 | td.described 93 | td.meaning 94 | td.pattern, td.origin 95 | th 96 | th.described 97 | th.meaning 98 | table th.origin 99 | table th.pattern 100 | th.title 101 | thead 102 | tr 103 | ul 104 | ul.toc 105 | var -------------------------------------------------------------------------------- /SlickSpec/bootstrap/yui.slickspec.js: -------------------------------------------------------------------------------- 1 | function setupMethods(specs, window){ 2 | global.cannotDisableQSA = true; 3 | 4 | var YAHOO_util_Selector = (window.YAHOO || global.YAHOO).util.Selector; 5 | 6 | window.SELECT = function(context, selector, append){ 7 | return YAHOO_util_Selector.query(selector, context); 8 | }; 9 | window.SELECT1 = function(context, selector){ 10 | console.log('SELECT1', selector, context, true); 11 | return YAHOO_util_Selector.query(selector, context, true); 12 | }; 13 | window.MATCH = function(context, selector){ 14 | return YAHOO_util_Selector.test(context, selector); 15 | }; 16 | window.isXML = TODO; 17 | } 18 | 19 | function verifySetupMethods(specs, window){ 20 | Describe('Verify Setup',function(){ 21 | it['should define SELECT'] = function(){ 22 | value_of( typeof window.SELECT ).should_be('function'); 23 | value_of( window.SELECT(window.document, '*').length ).should_not_be(0); 24 | }; 25 | it['should define SELECT1'] = function(){ 26 | value_of( typeof window.SELECT1 ).should_be('function'); 27 | value_of( window.SELECT1(window.document, '*').length ).should_not_be(0); 28 | }; 29 | it['should define MATCH'] = function(){ 30 | value_of( typeof window.MATCH ).should_be('function'); 31 | value_of( window.MATCH(window.document.documentElement, '*') ).should_be_true(); 32 | }; 33 | it['should define isXML'] = function(){ 34 | value_of( typeof window.isXML ).should_be('function'); 35 | }; 36 | }); 37 | }; 38 | 39 | setupMethods({},this); 40 | new Mock('',setupMethods); 41 | 42 | verifySetupMethods({},this); 43 | new Mock('',verifySetupMethods); 44 | -------------------------------------------------------------------------------- /speed/jslitmus/label_break-vs-fn_return.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 |Compare various ways of aborting the rest of the operations
63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /speed/subtleslickspeed/lib/own_tests/report_test.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 |Compare various ways of aborting the rest of the operations
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /SlickSpec/match.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |SlickSpec—Copyright © MooTools 2009—MIT License
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 50 | 51 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /speed/jslitmus/get_attribute.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |SlickSpec—Copyright © MooTools 2009—MIT License
36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 52 | 53 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /SlickSpec/specrunner_browser.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |A simple demo showing how JSLitmus can be used to test the performance of some core JavaScript features. View source to see fully commented code.
95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /SlickSpec/mocks/yui-query_test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |lorem ipsum
11 |lorem ipsum
12 |lorem ipsum
13 |div lorem
last child
lorem ipsum dolor sit link
SlickSpec—Copyright © MooTools 2009—MIT License
116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 131 | 132 | 138 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /speed/slickspeed/system/index.php: -------------------------------------------------------------------------------- 1 | 'Default', 'loose' => 'Loose DOM Fragment', 'xml' => 'XML Document'); 7 | 8 | $special = ''; 9 | if (isset($_REQUEST['special'])) { 10 | if (array_key_exists($_REQUEST['special'], $special_list)) { 11 | $special = $_REQUEST['special']; 12 | } else { 13 | $valid = false; 14 | } 15 | } 16 | 17 | $css_list = array('' => 'Default', 'simple' => 'Simple', 'extended' => 'Extended', 'yahoo' => 'Yahoo (via ejohn)', 'crazy' => 'Just crazy'); 18 | 19 | $css = ''; 20 | if (isset($_REQUEST['css'])) { 21 | if (array_key_exists($_REQUEST['css'], $css_list)) { 22 | $css = $_REQUEST['css']; 23 | } else { 24 | $valid = false; 25 | } 26 | } 27 | 28 | if (!$valid) { 29 | header('Location: ' . $_SERVER['SCRIPT_NAME']); 30 | exit; 31 | } 32 | 33 | $link = $_SERVER['SCRIPT_NAME']; 34 | 35 | if (!$valid) { 36 | header('Location: ' . $link); 37 | exit; 38 | } 39 | 40 | if ($css || $special) { 41 | $build = array(); 42 | if ($css) $build['css'] = $css; 43 | if ($special) $build['special'] = $special; 44 | $link = $link . '?' . http_build_query($build, '', '&'); 45 | } 46 | 47 | if (count($_POST)) { 48 | header('Location: ' . $link); 49 | exit; 50 | } 51 | 52 | $file = 'selectors.list.css'; 53 | if ($css) $file = 'selectors.list.' . $css . '.css'; 54 | 55 | $selectors = file_get_contents($file); 56 | 57 | ?> 58 | 60 | 61 | 62 | 63 | 64 || selectors | 113 | $properties){ 115 | echo "$framework | "; 116 | } 117 | ?> 118 |$selector | "; 127 | foreach ($frameworks as $framework){ 128 | echo ""; 129 | } 130 | echo ""; 131 | } 132 | ?> 133 | 134 | 135 | 136 | |
|---|---|
| final ops/ms (more is better) | 138 | 0"; 141 | } 142 | ?> 143 |
| the faster | 154 |the slower | 155 |exception thrown or zero elements found | 156 |different returned elements | 157 |
|---|---|---|---|
| 161 | | 162 | | 163 | | 164 | |
SlickSpec—Copyright © MooTools 2009—MIT License
77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 92 | 93 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /SlickSpec/assets/moobugger/test.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
45 | 46 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
47 | 48 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
49 | 50 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
51 | 52 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
53 | 54 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
55 | 56 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
57 | 58 |Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
59 |ff8311be…8a27146a…2363dd60…41765d28