From 0ea887ea7b1c827fefd219900061dbd874c74f89 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Sat, 6 Sep 2014 19:38:42 +0430 Subject: [PATCH] Refactor :sparkles: --- README => client/README | 0 {css => client/css}/fonts.less | 0 client/css/main.css | 512 +++++++++++++++++++++++++ {css => client/css}/main.less | 2 +- {css => client/css}/normalize.less | 0 client/design.json | 34 ++ design.svg => client/design.svg | 0 {fonts => client/fonts}/BRoya.eot | Bin {fonts => client/fonts}/BRoya.ttf | Bin {fonts => client/fonts}/BRoya.woff | Bin {fonts => client/fonts}/Mj_Zobeir.eot | Bin {fonts => client/fonts}/Mj_Zobeir.html | 76 ++-- {fonts => client/fonts}/Mj_Zobeir.svg | 0 {fonts => client/fonts}/Mj_Zobeir.ttf | Bin {fonts => client/fonts}/Mj_Zobeir.woff | Bin {fonts => client/fonts}/sMj_Zobeir.ttf | Bin index.html => client/index.html | 14 +- {js => client/js}/libs/zepto.js | 0 {js => client/js}/main.js | 25 +- less.js => client/less.js | 0 design.json | 34 ++ general.json | 16 + ipsum.js | 90 +++++ 23 files changed, 742 insertions(+), 61 deletions(-) rename README => client/README (100%) rename {css => client/css}/fonts.less (100%) create mode 100644 client/css/main.css rename {css => client/css}/main.less (99%) rename {css => client/css}/normalize.less (100%) create mode 100644 client/design.json rename design.svg => client/design.svg (100%) rename {fonts => client/fonts}/BRoya.eot (100%) rename {fonts => client/fonts}/BRoya.ttf (100%) rename {fonts => client/fonts}/BRoya.woff (100%) rename {fonts => client/fonts}/Mj_Zobeir.eot (100%) rename {fonts => client/fonts}/Mj_Zobeir.html (96%) rename {fonts => client/fonts}/Mj_Zobeir.svg (100%) rename {fonts => client/fonts}/Mj_Zobeir.ttf (100%) rename {fonts => client/fonts}/Mj_Zobeir.woff (100%) rename {fonts => client/fonts}/sMj_Zobeir.ttf (100%) rename index.html => client/index.html (73%) rename {js => client/js}/libs/zepto.js (100%) rename {js => client/js}/main.js (63%) rename less.js => client/less.js (100%) create mode 100644 design.json create mode 100644 general.json create mode 100644 ipsum.js diff --git a/README b/client/README similarity index 100% rename from README rename to client/README diff --git a/css/fonts.less b/client/css/fonts.less similarity index 100% rename from css/fonts.less rename to client/css/fonts.less diff --git a/client/css/main.css b/client/css/main.css new file mode 100644 index 0000000..e22a900 --- /dev/null +++ b/client/css/main.css @@ -0,0 +1,512 @@ +/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined in IE 8/9. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} +/** + * Correct `inline-block` display not defined in IE 8/9. + */ +audio, +canvas, +video { + display: inline-block; +} +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* ========================================================================== + Base + ========================================================================== */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} +/** + * Remove default margin. + */ +body { + margin: 0; +} +/* ========================================================================== + Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background: transparent; +} +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ +a:focus { + outline: thin dotted; +} +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, +a:hover { + outline: 0; +} +/* ========================================================================== + Typography + ========================================================================== */ +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/** + * Address styling not present in Safari 5 and Chrome. + */ +dfn { + font-style: italic; +} +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} +/** + * Improve readability of pre-formatted text in all browsers. + */ +pre { + white-space: pre-wrap; +} +/** + * Set consistent quote types. + */ +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* ========================================================================== + Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9. + */ +img { + border: 0; +} +/** + * Correct overflow displayed oddly in IE 9. + */ +svg:not(:root) { + overflow: hidden; +} +/* ========================================================================== + Figures + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari 5. + */ +figure { + margin: 0; +} +/* ========================================================================== + Forms + ========================================================================== */ +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ +button, +input, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 2 */ + margin: 0; + /* 3 */ +} +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +button, +input { + line-height: normal; +} +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ +button, +select { + text-transform: none; +} +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} +/** + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + /* 2 */ + box-sizing: content-box; +} +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ +textarea { + overflow: auto; + /* 1 */ + vertical-align: top; + /* 2 */ +} +/* ========================================================================== + Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} +@font-face { + font-family: 'Zobeir'; + src: url(../fonts/Mj_Zobeir.ttf), url(../fonts/Mj_Zobeir.), url(../fonts/Mj_Zobeir.woff), url(../fonts/Mj_Zobeir.svg); + font-weight: normal; +} +@font-face { + font-family: 'Roya'; + src: url(../fonts/BRoya.ttf), url(../fonts/BRoya.eot), url(../fonts/BRoya.woff); +} +body, +html { + margin: 0; + font-size: 10px; + direction: rtl; +} +body { + background: #ff6e64; + color: white; + font-size: 1.6rem; + font-family: 'Roya'; + text-align: center; +} +*:focus, +*:focus:after, +*:focus:before { + outline: none !important; +} +*::-moz-focus-inner { + border: none; +} +h1 { + margin-top: 0; + font-family: 'Zobeir'; + font-size: 7.5rem; + font-weight: normal; + transition: 0.6s ease; + -webkit-transition: 0.6s ease; +} +h3 { + margin-top: 0; + font-weight: normal; + font-size: 2rem; + transition: 0.6s ease; + -webkit-transition: 0.6s ease; +} +p { + font-size: 2.8rem; +} +.options { + margin-top: 0; + margin-bottom: 5rem; + transition: 0.6s ease; + -webkit-transition: 0.6s ease; +} +.options div { + display: inline-block; + margin: 0 5%; + vertical-align: top; +} +ul { + list-style: none; + padding: 0; + font-size: 1.9rem; +} +li { + display: block; + cursor: pointer; + opacity: 0.6; + transition: 0.2s ease; + -webkit-transition: 0.2s ease; +} +li.active { + opacity: 1; +} +li:hover { + opacity: 1; + transition: 0.2s ease; + -webkit-transition: 0.2s ease; +} +a[href="#"] { + position: relative; + padding: 0.7rem 4rem; + color: white; + text-decoration: none; + font-size: 2rem; + border: 2px solid white; + border-radius: 3px; + transition: 0.4s ease; + -webkit-transition: 0.4s ease; +} +a[href="#"]:before { + content: ''; + background: white; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + border-radius: 3px; + transform: scale(1.2, 1.4); + -webkit-transform: scale(1.2, 1.4); + opacity: 0; + z-index: -1; + transition: 0.4s ease; + -webkit-transition: 0.4s ease; +} +a[href="#"]:not(.running):hover:before { + border-radius: 0; + transform: scale(1, 1); + -webkit-transform: scale(1, 1); + opacity: 1; + z-index: -1; + transition: 0.4s ease; + -webkit-transition: 0.4s ease; +} +a[href="#"]:not(.running):hover { + color: #464646; +} +a[href="#"].running { + pointer-events: none; + animation: loading 1.5s ease infinite; + -webkit-animation: loading 1.5s ease infinite; +} +@keyframes loading { + 0% { + box-shadow: 0 0 0 0 white inset; + } + 50% { + box-shadow: 0 5.5rem 0 0 white inset; + color: #464646; + } + 51% { + box-shadow: 0 -5.5rem 0 0 #ffffff inset; + color: #464646; + } + 100% { + box-shadow: 0 0 0 0 white inset; + } +} +@-webkit-keyframes loading { + 0% { + box-shadow: 0 0 0 0 white inset; + } + 50% { + box-shadow: 0 5.5rem 0 0 white inset; + color: #464646; + } + 51% { + box-shadow: 0 -5.5rem 0 0 #ffffff inset; + color: #464646; + } + 100% { + box-shadow: 0 0 0 0 white inset; + } +} +.runaway { + margin-top: -16.5rem; + transition: 0.6s ease; + -webkit-transition: 0.6s ease; +} +.modal { + width: 60%; + margin: 5rem auto; + padding: 2rem 3rem; + text-align: right; + font-size: 1.8rem; + text-indent: 2rem; +} +*::-moz-selection { + background-color: rgba(255, 255, 255, 0.2); + color: white; +} diff --git a/css/main.less b/client/css/main.less similarity index 99% rename from css/main.less rename to client/css/main.less index d31da74..619142c 100644 --- a/css/main.less +++ b/client/css/main.less @@ -169,7 +169,7 @@ a[href="#"].running { } .runaway { - margin-top: -15rem; + margin-top: -16.5rem; transition: 0.6s ease; -webkit-transition: 0.6s ease; diff --git a/css/normalize.less b/client/css/normalize.less similarity index 100% rename from css/normalize.less rename to client/css/normalize.less diff --git a/client/design.json b/client/design.json new file mode 100644 index 0000000..b3409ab --- /dev/null +++ b/client/design.json @@ -0,0 +1,34 @@ +["طراحی", +"گرافیک", +"نقش", +"ساخت", +"کشیدن", +"نماد", +"الگو", +"نام", +"لوگو", +"الحام", +"ایده", +"ناب", +"حقوق", +"خط", +"نرم‌افزار", +"اثر", +"کاغذ", +"قلم", +"مداد", +"ساختمان", +"اولیه", +"خودکار", +"شکل", +"دایره", +"هندسی", +"نقاط", +"جوهر", +"رنگ", +"منحنی", +"سه‌بعدی", +"خط‌کش", +"لایه", +"منظره", +"نور"] diff --git a/design.svg b/client/design.svg similarity index 100% rename from design.svg rename to client/design.svg diff --git a/fonts/BRoya.eot b/client/fonts/BRoya.eot similarity index 100% rename from fonts/BRoya.eot rename to client/fonts/BRoya.eot diff --git a/fonts/BRoya.ttf b/client/fonts/BRoya.ttf similarity index 100% rename from fonts/BRoya.ttf rename to client/fonts/BRoya.ttf diff --git a/fonts/BRoya.woff b/client/fonts/BRoya.woff similarity index 100% rename from fonts/BRoya.woff rename to client/fonts/BRoya.woff diff --git a/fonts/Mj_Zobeir.eot b/client/fonts/Mj_Zobeir.eot similarity index 100% rename from fonts/Mj_Zobeir.eot rename to client/fonts/Mj_Zobeir.eot diff --git a/fonts/Mj_Zobeir.html b/client/fonts/Mj_Zobeir.html similarity index 96% rename from fonts/Mj_Zobeir.html rename to client/fonts/Mj_Zobeir.html index 9e32a8e..de6f6cc 100644 --- a/fonts/Mj_Zobeir.html +++ b/client/fonts/Mj_Zobeir.html @@ -1,39 +1,39 @@ - - - - - Demo Mj_Zobeir - - - - -

-Ea fore firmissimum ab ubi ea illustriora. Qui nisi deserunt cohaerescant. Nam -legam domesticarum o illum aliquip excepteur et mandaremus e fore litteris ut do -enim tempor proident. Ullamco quis amet pariatur minim, offendit despicationes -in fabulas se aut quem tempor, aut mandaremus ad quamquam. Ut velit laboris -exercitation iis a te dolore sunt quorum. Quamquam philosophari ad ullamco. -Veniam laboris eruditionem id id velit occaecat eu probant eram varias e duis, -ut e firmissimum. -

-
-Generated using the @font-face Generator at font-face-generator.com -
- - + + + + + Demo Mj_Zobeir + + + + +

+Ea fore firmissimum ab ubi ea illustriora. Qui nisi deserunt cohaerescant. Nam +legam domesticarum o illum aliquip excepteur et mandaremus e fore litteris ut do +enim tempor proident. Ullamco quis amet pariatur minim, offendit despicationes +in fabulas se aut quem tempor, aut mandaremus ad quamquam. Ut velit laboris +exercitation iis a te dolore sunt quorum. Quamquam philosophari ad ullamco. +Veniam laboris eruditionem id id velit occaecat eu probant eram varias e duis, +ut e firmissimum. +

+
+Generated using the @font-face Generator at font-face-generator.com +
+ + \ No newline at end of file diff --git a/fonts/Mj_Zobeir.svg b/client/fonts/Mj_Zobeir.svg similarity index 100% rename from fonts/Mj_Zobeir.svg rename to client/fonts/Mj_Zobeir.svg diff --git a/fonts/Mj_Zobeir.ttf b/client/fonts/Mj_Zobeir.ttf similarity index 100% rename from fonts/Mj_Zobeir.ttf rename to client/fonts/Mj_Zobeir.ttf diff --git a/fonts/Mj_Zobeir.woff b/client/fonts/Mj_Zobeir.woff similarity index 100% rename from fonts/Mj_Zobeir.woff rename to client/fonts/Mj_Zobeir.woff diff --git a/fonts/sMj_Zobeir.ttf b/client/fonts/sMj_Zobeir.ttf similarity index 100% rename from fonts/sMj_Zobeir.ttf rename to client/fonts/sMj_Zobeir.ttf diff --git a/index.html b/client/index.html similarity index 73% rename from index.html rename to client/index.html index b21bd36..d325a33 100644 --- a/index.html +++ b/client/index.html @@ -17,27 +17,29 @@

دسته بندی

واحد

مقدار

@@ -46,7 +48,7 @@ بساز! diff --git a/js/libs/zepto.js b/client/js/libs/zepto.js similarity index 100% rename from js/libs/zepto.js rename to client/js/libs/zepto.js diff --git a/js/main.js b/client/js/main.js similarity index 63% rename from js/main.js rename to client/js/main.js index 3e323d6..fdc7002 100644 --- a/js/main.js +++ b/client/js/main.js @@ -15,13 +15,8 @@ $('a').click(function(e) { e.preventDefault(); var $this = $(this); - if($this.hasClass('runaway')) { - $this.text('بساز!'); - $run.removeClass('runaway'); - return; - } $this.addClass('running'); - var url = '/' + $('.options div:first-child li.active').data('val') + '/' + $('.options div:nth-child(2) li.active').data('val') + '/' + $('.options div:last-child li.active').data('val'); + var url = '/' + $('.options div:first-child li.active').data('val') + '/' + $('.options div:nth-child(2) li.active').data('val') + '/' + ($('.options div:last-child li.active').data('val') || 1); $.ajax({ url: url, @@ -35,14 +30,12 @@ $('li').click(function() { }) function success(ipsum) { - $('a').removeClass('running').text('بازگشت'); - $run.addClass('runaway'); - - $('.modal').text(ipsum); - - var range = document.createRange(); - range.selectNodeContents($('.modal')[0]); - var selection = window.getSelection(); - selection.removeAllRanges(); - selection.addRange(range); + $('a').removeClass('running'); + $('.modal').html(ipsum); + + var range = document.createRange(); + range.selectNodeContents($('.modal')[0]); + var selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); } diff --git a/less.js b/client/less.js similarity index 100% rename from less.js rename to client/less.js diff --git a/design.json b/design.json new file mode 100644 index 0000000..b3409ab --- /dev/null +++ b/design.json @@ -0,0 +1,34 @@ +["طراحی", +"گرافیک", +"نقش", +"ساخت", +"کشیدن", +"نماد", +"الگو", +"نام", +"لوگو", +"الحام", +"ایده", +"ناب", +"حقوق", +"خط", +"نرم‌افزار", +"اثر", +"کاغذ", +"قلم", +"مداد", +"ساختمان", +"اولیه", +"خودکار", +"شکل", +"دایره", +"هندسی", +"نقاط", +"جوهر", +"رنگ", +"منحنی", +"سه‌بعدی", +"خط‌کش", +"لایه", +"منظره", +"نور"] diff --git a/general.json b/general.json new file mode 100644 index 0000000..96d4ad5 --- /dev/null +++ b/general.json @@ -0,0 +1,16 @@ +["و", +"در", +"با", +"از", +"کی", +"پیش", +"همواره", +"بیش", +"همراه", +"چگونه", +"است", +"باشد", +"آن", +"این", +"اینگونه", +"معمولا"] diff --git a/ipsum.js b/ipsum.js new file mode 100644 index 0000000..d32b4ea --- /dev/null +++ b/ipsum.js @@ -0,0 +1,90 @@ +var express = require('express'), + app = express(); + +app.use(express.static(__dirname + '/ipsum', {maxAge: 60*60*24*7})); + +module.exports.app = app; + +app.get(/.*\/.*\/.*/, function(req, res) { + + res.end('

' + go(req.url) + '

'); +}) + +if(!String.prototype.repeat) { + String.prototype.repeat = function(n) { + return new Array(n+1).join(this); + } +} + + +/* IPSUM GENERATOR */ +var general = require('./general.json'); +var dictionary = { + 'design': require('./design.json') +} +var normal = 'لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیستری را برای طراحان رایانه ای و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.'; +function randomAlamat() { + if(Math.floor(Math.random() * 4) > 0) return ' '; + else { + if(Math.floor(Math.random() * 4) > 0) return ' '; + else return '، '; + } +} +function loremipsum(data) { + var method = data[0], + unit = data[1], + amount = +data[2]; + + + if(method == 'normal') { + switch(unit) { + case 'c': + return normal.slice(0, amount); + case 'p': + return normal.repeat(amount); + case 'w': + return normal.split(' ').slice(0, amount).join(' '); + } + } + + var d = dictionary[method].concat(general), + r = d.sort(function(a, b) { + return Math.random() > 0.5; + }); + + var stretch = function stretch(a, n) { + var d = a; + while(d.length < n) { + d = d.concat(a); + } + return d; + } + + switch(unit) { + case 'c': + r = stretch(r, amount/2); + return r.slice(0, amount/2).join(' ').slice(0, amount + (amount/4-1)); + case 'w': + r = stretch(r, amount); + return r.slice(0, amount).join(' '); + case 'p': + r = stretch(r, 15*(Math.random()+1)); + var s = r.join(' ') + '.
'; + for(var i = 1; i < amount; i++) { + r = r.sort(function() { return Math.random() > 0.5; }); + r = stretch(r, 15*(Math.random()*3+2)); + + s += r.join(' ') + '.
'; + } + return s; + } +} +function go(url) { + var req = url.split('/'), + data = {}; + req.splice(0, 1); + for(var i = 0, len = req.length; i < len; i++) { + data[i] = req[i]; + } + return loremipsum(data); +}