]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blame - bip39-standalone.html
BIP44 account extended keys compiled to standalone
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / bip39-standalone.html
CommitLineData
ebd8d4e8
IC
1<!DOCTYPE html>
2<html>
3 <head lang="en">
4 <meta charset="utf-8" />
5 <title>BIP39 - Mnemonic Code</title>
ab78acc6 6 <style>/*!
ebd8d4e8
IC
7 * Bootstrap v3.2.0 (http://getbootstrap.com)
8 * Copyright 2011-2014 Twitter, Inc.
9 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
ab78acc6
IC
10 *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}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-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}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}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.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 col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.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:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;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{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.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:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.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,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{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:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}</style>
11 <meta content="Mnemonic code for generating deterministic keys" name="description"/>
12 <meta content="width=device-width, initial-scale=1.0" name="viewport" />
13 <meta content="bitcoin mnemonic converter" name="description" />
b630f83d 14 <meta content="Ian Coleman" name="author" />
3af2954a 15
ab78acc6
IC
16 <style>
17 body {
18 padding-bottom: 32px;
19 }
20 .form-control[readonly] {
21 cursor: text;
22 }
23 .feedback-container {
24 position: fixed;
25 top: 0;
26 width: 100%;
27 text-align: center;
28 z-index: 4;
29 }
30 .feedback {
31 display: table;
32 padding: 0.5em 1em;
33 background-color: orange;
34 margin: 0 auto;
35 font-size: 2em;
36 color: #444;
37 border: 2px solid #555;
38 border-top: 0;
39 border-bottom-left-radius: 20px 20px;
40 border-bottom-right-radius: 20px 20px;
41 }
d5dc92fd
IC
42 .no-border {
43 border: 0;
44 box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
45 -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
46 }
0515eeec
IC
47 .phrase {
48 word-break: keep-all;
49 }
2a6dd137 50 .generate-container .strength {
b0818b31
IC
51 /* override mobile width from bootstrap */
52 width: auto!important;
53 display: inline-block;
54 }
ea87f1d3 55 .languages a {
0515eeec
IC
56 padding-left: 10px;
57 }
ea87f1d3
IC
58 .languages a:nth-of-type(1) {
59 margin-left: -12px;
60 padding-left: 0;
61 }
d737abf6
IC
62 .monospace {
63 font-family: monospace;
64 }
2a6dd137
IC
65 .entropy-container .filtered,
66 .entropy-container .binary {
67 word-wrap: break-word;
68 }
69 .entropy-container li {
70 padding-bottom: 5px;
71 }
72 .card-suit {
73 font-size: 19px;
74 line-height: 0;
75 }
76 .card-suit.club {
77 color: #009F00;
78 }
79 .card-suit.diamond {
80 color: #3D5DC4;
81 }
82 .card-suit.heart {
83 color: #F00;
84 }
85 .card-suit.spade {
86 color: #000;
87 }
e00964cc
IC
88 .qr-container {
89 position: fixed;
90 top: 0;
91 right: 0;
92 text-align: center;
93 background-color: #FFF;
94 border: 1px solid #CCC;
95 }
96 .qr-image {
97 margin: 5px;
98 }
99 .qr-hint {
100 padding: 2px;
101 }
ab78acc6
IC
102 </style>
103 </head>
104 <body>
105 <div class="container">
3af2954a 106
ab78acc6
IC
107 <h1 class="text-center">Mnemonic Code Converter</h1>
108 <hr>
109 <div class="row">
110 <div class="col-md-12">
111 <h2>Mnemonic</h2>
112 <form class="form-horizontal" role="form">
ab78acc6 113 <div class="form-group">
c6624d51
IC
114 <div class="col-sm-2"></div>
115 <div class="col-sm-10">
ea87f1d3
IC
116 <p data-translate>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).</p>
117 <p data-translate-html>
118 For more info see the
119 <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank">BIP39 spec</a>.
120 </p>
c6624d51
IC
121 </div>
122 </div>
123 <div class="form-group generate-container">
b0818b31 124 <label class="col-sm-2 control-label"></label>
ab78acc6 125 <div class="col-sm-10">
b0818b31
IC
126 <div class="form-inline">
127 <div class="input-group-inline">
ea87f1d3 128 <span data-translate>Generate a random mnemonic, or enter your own below</span>:
b0818b31 129 <button class="btn generate">Generate</button>
b0818b31
IC
130 <select id="strength" class="strength form-control">
131 <option value="3">3</option>
132 <option value="6">6</option>
133 <option value="9">9</option>
134 <option value="12">12</option>
135 <option value="15" selected>15</option>
136 <option value="18">18</option>
137 <option value="21">21</option>
138 <option value="24">24</option>
139 </select>
ea87f1d3 140 <span data-translate>words</span>
b0818b31
IC
141 </div>
142 </div>
ab78acc6 143 </div>
0515eeec 144 </div>
c6624d51 145 <div class="entropy-container hidden">
2a6dd137 146 <div class="form-group text-danger">
ea87f1d3 147 <label class="col-sm-2 control-label" data-translate>Warning</label>
2a6dd137 148 <div class="col-sm-10 form-control-static">
ea87f1d3
IC
149 <span data-translate>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.</span>
150 <a href="#entropy-notes" data-translate>Read more</a>
18abe53b
IC
151 </div>
152 </div>
2a6dd137 153 <div class="form-group">
ea87f1d3 154 <label for="entropy" class="col-sm-2 control-label" data-translate>Entropy</label>
2a6dd137 155 <div class="col-sm-7">
ea87f1d3 156 <textarea id="entropy" rows="2" class="entropy form-control" placeholder="Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder></textarea>
95f04905 157 <div class="row">
ea87f1d3 158 <label class="col-sm-3 control-label" data-translate>Strength</label>
95f04905 159 <div class="strength col-sm-3 form-control-static"></div>
ea87f1d3 160 <label class="col-sm-3 control-label" data-translate>Event Count</label>
95f04905
IC
161 <div class="event-count col-sm-3 form-control-static"></div>
162 </div>
163 <div class="row">
ea87f1d3 164 <label class="col-sm-3 control-label" data-translate>Entropy Type</label>
95f04905 165 <div class="type col-sm-3 form-control-static"></div>
ea87f1d3 166 <label class="col-sm-3 control-label" data-translate>Bits Per Event</label>
95f04905
IC
167 <div class="bits-per-event col-sm-3 form-control-static"></div>
168 </div>
169 <div class="row">
ea87f1d3 170 <label class="col-sm-3 control-label" data-translate>Word Count</label>
95f04905 171 <div class="word-count col-sm-3 form-control-static"></div>
ea87f1d3 172 <label class="col-sm-3 control-label" data-translate>Total Bits</label>
95f04905
IC
173 <div class="bits col-sm-3 form-control-static"></div>
174 </div>
ea87f1d3 175 <label class="col-sm-3 control-label" data-translate>Filtered Entropy</label>
2a6dd137 176 <div class="filtered col-sm-9 form-control-static"></div>
ea87f1d3 177 <label class="col-sm-3 control-label" data-translate>Raw Binary</label>
2a6dd137 178 <div class="binary col-sm-9 form-control-static"></div>
ea87f1d3 179 <label class="col-sm-3 control-label" data-translate>Mnemonic Length</label>
2a6dd137 180 <div class="col-sm-9">
18abe53b 181 <select class="mnemonic-length form-control">
ea87f1d3
IC
182 <option value="raw" data-translate>From entropy length (3 words per 32 bits)</option>
183 <option value="12">12 <span data-translate>Words</span></option>
184 <option value="15" selected>15 <span data-translate>Words</option>
185 <option value="18">18 <span data-translate>Words</span></option>
186 <option value="21">21 <span data-translate>Words</span></option>
187 <option value="24">24 <span data-translate>Words</span></option>
18abe53b 188 </select>
c6624d51 189 </div>
18abe53b 190 </div>
2a6dd137 191 <div class="col-sm-3">
ea87f1d3 192 <p data-translate>Valid entropy values include:</p>
2a6dd137 193 <ul>
ea87f1d3
IC
194 <li><strong data-translate>Binary</strong> [0-1]<br>101010011</li>
195 <li><strong data-translate>Base 6</strong> [0-5]<br>123434014</li>
196 <li><strong data-translate>Dice</strong> [1-6]<br>62535634</li>
197 <li><strong data-translate>Base 10</strong> [0-9]<br>90834528</li>
198 <li><strong data-translate>Hex</strong> [0-9A-F]<br>4187a8bfd9</li>
199 <li><strong data-translate>Card</strong> [A2-9TJQK][CDHS]<br>ahqs9dtc</li>
2a6dd137
IC
200 </ul>
201 </div>
c6624d51
IC
202 </div>
203 </div>
204 <div class="form-group">
205 <div class="col-sm-2"></div>
206 <div class="col-sm-10 checkbox">
207 <label>
208 <input type="checkbox" class="use-entropy">
ea87f1d3 209 <span data-translate>Supply my own source of entropy</span>
c6624d51
IC
210 </label>
211 </div>
212 </div>
213 <div class="form-group">
ea87f1d3 214 <label class="col-sm-2 control-label" data-translate>Mnemonic Language</label>
0515eeec 215 <div class="col-sm-10 languages">
ea87f1d3
IC
216 <div class="form-control no-border">
217 <a href="#english">English</a>
218 <a href="#japanese" title="Japanese">日本語</a>
219 <a href="#spanish" title="Spanish">Español</a>
220 <a href="#chinese_simplified" title="Chinese (Simplified)">中文(简体)</a>
221 <a href="#chinese_traditional" title="Chinese (Traditional)">中文(繁體)</a>
222 <a href="#french" title="French">Français</a>
223 <a href="#italian" title="Italian">Italiano</a>
224 </div>
0515eeec 225 </div>
ab78acc6
IC
226 </div>
227 <div class="form-group">
ea87f1d3 228 <label for="phrase" class="col-sm-2 control-label" data-translate>BIP39 Mnemonic</label>
ab78acc6 229 <div class="col-sm-10">
e00964cc 230 <textarea id="phrase" class="phrase form-control" data-show-qr></textarea>
ab78acc6
IC
231 </div>
232 </div>
233 <div class="form-group">
ea87f1d3 234 <label for="passphrase" class="col-sm-2 control-label" data-translate>BIP39 Passphrase (optional)</label>
ab78acc6
IC
235 <div class="col-sm-10">
236 <textarea id="passphrase" class="passphrase form-control"></textarea>
237 </div>
238 </div>
73161a92 239 <div class="form-group">
ea87f1d3 240 <label for="seed" class="col-sm-2 control-label" data-translate>BIP39 Seed</label>
73161a92 241 <div class="col-sm-10">
e00964cc 242 <textarea id="seed" class="seed form-control" readonly="readonly" data-show-qr></textarea>
73161a92
IC
243 </div>
244 </div>
ab78acc6 245 <div class="form-group">
ea87f1d3 246 <label for="network-phrase" class="col-sm-2 control-label" data-translate>Coin</label>
ab78acc6
IC
247 <div class="col-sm-10">
248 <select id="network-phrase" class="network form-control">
249 <!-- populated by javascript -->
250 </select>
251 </div>
252 </div>
253 <div class="form-group">
ea87f1d3 254 <label for="root-key" class="col-sm-2 control-label" data-translate>BIP32 Root Key</label>
ab78acc6 255 <div class="col-sm-10">
e00964cc 256 <textarea id="root-key" class="root-key form-control" data-show-qr></textarea>
ab78acc6
IC
257 </div>
258 </div>
259 </form>
260 </div>
261 </div>
3af2954a 262
ab78acc6 263 <hr>
3af2954a 264
ab78acc6
IC
265 <div class="row">
266 <div class="col-md-12">
267 <h2>Derivation Path</h2>
268 <ul class="derivation-type nav nav-tabs" role="tablist">
d5dc92fd 269 <li id="bip44-tab" class="active">
ab78acc6
IC
270 <a href="#bip44" role="tab" data-toggle="tab">BIP44</a>
271 </li>
272 <li id="bip32-tab">
273 <a href="#bip32" role="tab" data-toggle="tab">BIP32</a>
274 </li>
275 </ul>
276 <div class="derivation-type tab-content">
d5dc92fd 277 <div id="bip44" class="tab-pane active">
ab78acc6
IC
278 <form class="form-horizontal" role="form">
279 <br>
280 <div class="col-sm-2"></div>
281 <div class="col-sm-10">
ea87f1d3
IC
282 <p data-translate-html>
283 For more info see the
284 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">BIP44 spec</a>.
285 </p>
ab78acc6
IC
286 </div>
287 <div class="form-group">
288 <label for="purpose" class="col-sm-2 control-label">
ea87f1d3 289 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank" data-translate>Purpose</a>
ab78acc6
IC
290 </label>
291 <div class="col-sm-10">
292 <input id="purpose" type="text" class="purpose form-control" value="44">
293 </div>
294 </div>
295 <div class="form-group">
296 <label for="coin" class="col-sm-2 control-label">
ea87f1d3 297 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank" data-translate>Coin</a>
ab78acc6
IC
298 </label>
299 <div class="col-sm-10">
300 <input id="coin" type="text" class="coin form-control" value="0">
301 </div>
302 </div>
303 <div class="form-group">
304 <label for="account" class="col-sm-2 control-label">
ea87f1d3 305 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank" data-translate>Account</a>
ab78acc6
IC
306 </label>
307 <div class="col-sm-10">
308 <input id="account" type="text" class="account form-control" value="0">
309 </div>
310 </div>
311 <div class="form-group">
312 <label for="change" class="col-sm-2 control-label">
ea87f1d3 313 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank" data-translate>External / Internal</a>
ab78acc6
IC
314 </label>
315 <div class="col-sm-10">
316 <input id="change" type="text" class="change form-control" value="0">
317 </div>
318 </div>
20083ab9
IC
319 <div class="form-group">
320 <label class="col-sm-2 control-label">
321 </label>
322 <div class="col-sm-10">
323 <p data-translate>The account extendend keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.</p>
324 </div>
325 </div>
326 <div class="form-group">
327 <label for="account-xprv" class="col-sm-2 control-label">
328 <span data-translate>Account Extended Private Key</span>
329 </label>
330 <div class="col-sm-10">
331 <textarea id="account-xprv" type="text" class="account-xprv form-control" readonly data-show-qr></textarea>
332 </div>
333 </div>
334 <div class="form-group">
335 <label for="account-xpub" class="col-sm-2 control-label">
336 <span data-translate>Account Extended Public Key</span>
337 </label>
338 <div class="col-sm-10">
339 <textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
340 </div>
341 </div>
342 <div class="form-group">
343 <label class="col-sm-2 control-label">
344 </label>
345 <div class="col-sm-10">
346 <p data-translate>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
347 </div>
348 </div>
ab78acc6 349 <div class="form-group">
ea87f1d3 350 <label for="bip44-path" class="col-sm-2 control-label" data-translate>BIP32 Derivation Path</label>
ab78acc6
IC
351 <div class="col-sm-10">
352 <input id="bip44-path" type="text" class="path form-control" value="m/44'/0'/0'/0" readonly="readonly">
353 </div>
354 </div>
355 </form>
356 </div>
357 <div id="bip32" class="tab-pane">
358 <form class="form-horizontal" role="form">
359 <br>
360 <div class="col-sm-2"></div>
361 <div class="col-sm-10">
ea87f1d3
IC
362 <p data-translate>
363 For more info see the
364 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">BIP32 spec</a>
365 </p>
ab78acc6
IC
366 </div>
367 <div class="form-group">
ea87f1d3 368 <label for="bip32-path" class="col-sm-2 control-label" data-translate>BIP32 Derivation Path</label>
ab78acc6
IC
369 <div class="col-sm-10">
370 <input id="bip32-path" type="text" class="path form-control" value="m/0">
371 </div>
372 </div>
1975bfbc
IC
373 <div class="form-group">
374 <div class="col-sm-2"></div>
375 <label class="col-sm-10">
376 <input class="hardened-addresses" type="checkbox">
ea87f1d3 377 <span data-translate>Use hardened addresses</span>
1975bfbc
IC
378 </label>
379 </div>
1975bfbc 380 <div class="form-group">
ea87f1d3 381 <label for="core-path" class="col-sm-2 control-label" data-translate>Bitcoin Core</label>
1975bfbc 382 <div class="col-sm-10">
ea87f1d3 383 <p class="form-control no-border" data-translate-html>
1975bfbc 384 Use path <code>m/0'/0'</code> with hardened addresses.
c866242d 385 </p>
ea87f1d3
IC
386 <p class="form-control no-border" data-translate-html>
387 For more info see the
388 <a href="https://github.com/bitcoin/bitcoin/pull/8035" target="_blank">Bitcoin Core BIP32 implementation</a>
1975bfbc
IC
389 </p>
390 </div>
391 </div>
aa51da11 392 <div class="form-group">
ea87f1d3 393 <label class="col-sm-2 control-label" data-translate>Block Explorers</label>
aa51da11
IC
394 <div class="col-sm-10">
395 <p class="form-control no-border">
ea87f1d3
IC
396 <span data-translate-html>Use path <code>m/44'/0'/0'</code>.</span>
397 <span data-translate-html>Only enter the <code>xpub</code> extended key into block explorer search fields, never the <code>xprv</code> key.</span>
c866242d
IC
398 </p>
399 <p class="form-control no-border">
ea87f1d3
IC
400 <span data-translate>Can be used with</span>:
401 <a href="https://blockchain.info/" target="_blank">blockchain.info</a>
aa51da11
IC
402 </p>
403 </div>
404 </div>
ab78acc6
IC
405 </form>
406 </div>
407 </div>
408 <form class="form-horizontal" role="form">
409 <div class="form-group">
20083ab9 410 <label for="extended-priv-key" class="col-sm-2 control-label" data-translate>BIP32 Extended Private Key</label>
ab78acc6 411 <div class="col-sm-10">
e00964cc 412 <textarea id="extended-priv-key" class="extended-priv-key form-control" readonly="readonly" data-show-qr></textarea>
ab78acc6
IC
413 </div>
414 </div>
415 <div class="form-group">
20083ab9 416 <label for="extended-pub-key" class="col-sm-2 control-label" data-translate>BIP32 Extended Public Key</label>
ab78acc6 417 <div class="col-sm-10">
e00964cc 418 <textarea id="extended-pub-key" class="extended-pub-key form-control" readonly="readonly" data-show-qr></textarea>
ab78acc6
IC
419 </div>
420 </div>
421 </form>
422 </div>
423 </div>
3af2954a 424
ab78acc6 425 <hr>
3af2954a 426
ab78acc6
IC
427 <div class="row">
428 <div class="col-md-12">
429 <h2>Derived Addresses</h2>
ea87f1d3 430 <p data-translate>Note these addreses are derived from the BIP32 Extended Key</p>
ab78acc6
IC
431 <table class="table table-striped">
432 <thead>
433 <th>
434 <div class="input-group">
ea87f1d3
IC
435 <span data-translate>Path</span>&nbsp;&nbsp;
436 <button class="index-toggle" data-translate>Toggle</button>
ab78acc6
IC
437 </div>
438 </th>
439 <th>
440 <div class="input-group">
ea87f1d3
IC
441 <span data-translate>Address</span>&nbsp;&nbsp;
442 <button class="address-toggle" data-translate>Toggle</button>
ab78acc6
IC
443 </div>
444 </th>
1b12b2f5
IC
445 <th>
446 <div class="input-group">
ea87f1d3
IC
447 <span data-translate>Public Key</span>&nbsp;&nbsp;
448 <button class="public-key-toggle" data-translate>Toggle</button>
1b12b2f5
IC
449 </div>
450 </th>
ab78acc6
IC
451 <th>
452 <div class="input-group">
ea87f1d3
IC
453 <span data-translate>Private Key</span>&nbsp;&nbsp;
454 <button class="private-key-toggle" data-translate>Toggle</button>
ab78acc6
IC
455 </div>
456 </th>
457 </thead>
d737abf6 458 <tbody class="addresses monospace">
c866242d
IC
459 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
460 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
461 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
462 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
463 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
ab78acc6
IC
464 </tbody>
465 </table>
466 </div>
467 </div>
ea87f1d3 468 <span data-translate>Show more rows</span>:
ab78acc6 469 <input type="number" class="rows-to-add" value="20">
ea87f1d3 470 <button class="more" data-translate>Show</button>
3af2954a 471
ab78acc6 472 <hr>
3af2954a 473
ab78acc6
IC
474 <div class="row">
475 <div class="col-md-12">
ea87f1d3
IC
476 <h2 data-translate>More info</h2>
477 <h3>BIP39 <span class="small" data-translate>Mnemonic code for generating deterministic keys</span></h3>
478 <p data-translate-html>
ab78acc6
IC
479 Read more at the
480 <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec</a>
481 </p>
ea87f1d3
IC
482 <h3>BIP32 <span class="small" data-translate>Hierarchical Deterministic Wallets</span></h3>
483 <p data-translate-html>
ab78acc6
IC
484 Read more at the
485 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">official BIP32 spec</a>
ea87f1d3
IC
486 </p>
487 <p data-translate-html>
488 See the demo at
ab78acc6
IC
489 <a href="http://bip32.org/" target="_blank">bip32.org</a>
490 </p>
ea87f1d3
IC
491 <h3>BIP44 <span class="small" data-translate>Multi-Account Hierarchy for Deterministic Wallets</span></h3>
492 <p data-translate-html>
ab78acc6
IC
493 Read more at the
494 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">official BIP44 spec</a>
495 </p>
ea87f1d3 496 <h3 data-translate>Private Keys</h3>
ab78acc6 497 <p>
ea87f1d3
IC
498 <span data-translate-html>
499 Use private keys at
500 <a href="https://web.archive.org/web/20150707020924/https://brainwallet.org/" target="_blank">brainwallet.org</a>.
501 </span>
502 <span data-translate>Be careful - it can be easy to make mistakes if you don't know what you're doing.</span>
ab78acc6 503 </p>
ea87f1d3 504 <h3 id="entropy-notes" data-translate>Entropy</h3>
c6624d51 505 <p>
ea87f1d3
IC
506 <span data-translate-html>
507 Entropy values must be sourced from a
508 <a href="https://en.wikipedia.org/wiki/Random_number_generation" target="_blank">strong source of randomness</a>.
509 </span>
510 <span data-translate>This means flipping a fair coin, rolling a fair dice, noise measurements etc.</span>
511 <span data-translate-html>
512 Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or steet address,
513 keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't
514 random enough for the needs of this tool.
515 </span>
c6624d51
IC
516 </p>
517 <p>
ea87f1d3
IC
518 <span data-translate-html>
519 The random mnemonic generator on this page uses a
520 <a href="https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target="_blank">cryptographically secure random number generator</a>.
521 </span>
522 <span data-translate>The built in random generator can generally be trusted more than your own intuition about randomness.</span>
523 <span data-translate>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.</span>
524 <span data-translate>In that case you might choose to use your own source of entropy.</span>
c6624d51
IC
525 </p>
526 <p>
ea87f1d3 527 <a href="https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target="_blank" data-translate>You are not a good source of entropy.</a>
c6624d51 528 </p>
ab78acc6
IC
529 </div>
530 </div>
3af2954a 531
ab78acc6 532 <hr>
3af2954a 533
ab78acc6
IC
534 <div class="row">
535 <div class="col-md-12">
3af2954a 536
ea87f1d3 537 <h2 data-translate>Offline Usage</h2>
3af2954a 538
ea87f1d3 539 <p data-translate>
ab78acc6
IC
540 You can use this tool without having to be online.
541 </p>
ea87f1d3 542 <p data-translate>
ab78acc6
IC
543 In your browser, select file save-as, and save this page
544 as a file.
545 </p>
ea87f1d3 546 <p data-translate>
ab78acc6
IC
547 Double-click that file to open it in a browser
548 on any offline computer.
549 </p>
550 <p>
ea87f1d3
IC
551 <span data-translate>Alternatively, download the file from the repository</span>
552 -
553 <a href="https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39</a>
554 </p>
3af2954a 555
ab78acc6
IC
556 </div>
557 </div>
3af2954a 558
ab78acc6 559 <hr>
3af2954a 560
ab78acc6
IC
561 <div class="row">
562 <div class="col-md-12">
3af2954a 563
ea87f1d3 564 <h2 data-translate>This project is 100% open-source code</h2>
3af2954a 565
ab78acc6 566 <p>
ea87f1d3
IC
567 <span data-translate>Get the source code from the repository</span>
568 -
b630f83d
IC
569 <a href="https://github.com/iancoleman/bip39" target="_blank">
570 https://github.com/iancoleman/bip39
ab78acc6
IC
571 </a>
572 </p>
3af2954a 573
ea87f1d3 574 <h3 data-translate>Libraries</h3>
3af2954a 575
ab78acc6
IC
576 <p>
577 <span>BitcoinJS - </span>
578 <a href="https://github.com/bitcoinjs/bitcoinjs-lib" target="_blank">
579 https://github.com/bitcoinjs/bitcoinjs-lib
580 </a>
581 </p>
3af2954a 582
ab78acc6
IC
583 <p>
584 <span>jsBIP39 - </span>
585 <a href="https://github.com/iancoleman/jsbip39" target="_blank">
586 https://github.com/iancoleman/jsbip39
587 </a>
588 </p>
3af2954a 589
ab78acc6
IC
590 <p>
591 <span>sjcl - </span>
592 <a href="https://github.com/bitwiseshiftleft/sjcl" target="_blank">
593 https://github.com/bitwiseshiftleft/sjcl
594 </a>
595 </p>
3af2954a 596
ab78acc6
IC
597 <p>
598 <span>jQuery - </span>
599 <a href="https://jquery.com/" target="_blank">
600 https://jquery.com/
601 </a>
602 </p>
3af2954a 603
ab78acc6
IC
604 <p>
605 <span>Twitter Bootstrap - </span>
606 <a href="http://getbootstrap.com/" target="_blank">
607 http://getbootstrap.com/
608 </a>
609 </p>
3af2954a 610
ab78acc6
IC
611 </div>
612 </div>
3af2954a 613
ab78acc6 614 </div>
3af2954a 615
e00964cc
IC
616 <div class="qr-container hidden">
617 <div class="qr-hint bg-primary" data-translate>Click field to hide QR</div>
618 <div class="qr-hint bg-primary hidden" data-translate>Click field to show QR</div>
619 <div class="qr-image"></div>
620 </div>
621
ab78acc6
IC
622 <div class="feedback-container">
623 <div class="feedback">Loading...</div>
624 </div>
3af2954a 625
ab78acc6
IC
626 <script type="text/template" id="address-row-template">
627 <tr>
628 <td class="index"><span></span></td>
e00964cc
IC
629 <td class="address"><span data-show-qr></span></td>
630 <td class="pubkey"><span data-show-qr></span></td>
631 <td class="privkey"><span data-show-qr></span></td>
ab78acc6
IC
632 </tr>
633 </script>
634 <script>/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
635!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
636},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))
637},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
638</script>
639 <script>/*!
640 * Bootstrap v3.2.0 (http://getbootstrap.com)
3af2954a
IC
641 * Copyright 2011-2014 Twitter, Inc.
642 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
ab78acc6
IC
643 */
644if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$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]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.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]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.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?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName;return a.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:0,left:0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.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").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.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)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(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]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[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).parentsUntil(this.options.target,".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 d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.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.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.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("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).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(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.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(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);</script>
563e401a
IC
645 <script>(function() {
646 'use strict';
647
648 /**
649 * Extend an Object with another Object's properties.
650 *
651 * The source objects are specified as additional arguments.
652 *
653 * @param dst Object the object to extend.
654 *
655 * @return Object the final object.
656 */
657 var _extend = function(dst) {
658 var sources = Array.prototype.slice.call(arguments, 1);
659 for (var i=0; i<sources.length; ++i) {
660 var src = sources[i];
661 for (var p in src) {
662 if (src.hasOwnProperty(p)) dst[p] = src[p];
663 }
664 }
665 return dst;
666 };
667
668
669 /**
670 * Defer execution of given function.
671 * @param {Function} func
672 */
673 var _defer = function(func) {
674 if (typeof setImmediate === 'function') {
675 return setImmediate(func);
676 } else {
677 return setTimeout(func, 0);
678 }
679 };
680
681 /**
682 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
683 */
684 var Levenshtein = {
685 /**
686 * Calculate levenshtein distance of the two strings.
687 *
688 * @param str1 String the first string.
689 * @param str2 String the second string.
690 * @return Integer the levenshtein distance (0 and above).
691 */
692 get: function(str1, str2) {
693 // base cases
694 if (str1 === str2) return 0;
695 if (str1.length === 0) return str2.length;
696 if (str2.length === 0) return str1.length;
697
698 // two rows
699 var prevRow = new Array(str2.length + 1),
700 curCol, nextCol, i, j, tmp;
701
702 // initialise previous row
703 for (i=0; i<prevRow.length; ++i) {
704 prevRow[i] = i;
705 }
706
707 // calculate current row distance from previous row
708 for (i=0; i<str1.length; ++i) {
709 nextCol = i + 1;
710
711 for (j=0; j<str2.length; ++j) {
712 curCol = nextCol;
713
714 // substution
715 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ? 0 : 1 );
716 // insertion
717 tmp = curCol + 1;
718 if (nextCol > tmp) {
719 nextCol = tmp;
720 }
721 // deletion
722 tmp = prevRow[j + 1] + 1;
723 if (nextCol > tmp) {
724 nextCol = tmp;
725 }
726
727 // copy current col value into previous (in preparation for next iteration)
728 prevRow[j] = curCol;
729 }
730
731 // copy last col value into previous (in preparation for next iteration)
732 prevRow[j] = nextCol;
733 }
734
735 return nextCol;
736 },
737
738 /**
739 * Asynchronously calculate levenshtein distance of the two strings.
740 *
741 * @param str1 String the first string.
742 * @param str2 String the second string.
743 * @param cb Function callback function with signature: function(Error err, int distance)
744 * @param [options] Object additional options.
745 * @param [options.progress] Function progress callback with signature: function(percentComplete)
746 */
747 getAsync: function(str1, str2, cb, options) {
748 options = _extend({}, {
749 progress: null
750 }, options);
751
752 // base cases
753 if (str1 === str2) return cb(null, 0);
754 if (str1.length === 0) return cb(null, str2.length);
755 if (str2.length === 0) return cb(null, str1.length);
756
757 // two rows
758 var prevRow = new Array(str2.length + 1),
759 curCol, nextCol,
760 i, j, tmp,
761 startTime, currentTime;
762
763 // initialise previous row
764 for (i=0; i<prevRow.length; ++i) {
765 prevRow[i] = i;
766 }
767
768 nextCol = 1;
769 i = 0;
770 j = -1;
771
772 var __calculate = function() {
773 // reset timer
774 startTime = new Date().valueOf();
775 currentTime = startTime;
776
777 // keep going until one second has elapsed
778 while (currentTime - startTime < 1000) {
779 // reached end of current row?
780 if (str2.length <= (++j)) {
781 // copy current into previous (in preparation for next iteration)
782 prevRow[j] = nextCol;
783
784 // if already done all chars
785 if (str1.length <= (++i)) {
786 return cb(null, nextCol);
787 }
788 // else if we have more left to do
789 else {
790 nextCol = i + 1;
791 j = 0;
792 }
793 }
794
795 // calculation
796 curCol = nextCol;
797
798 // substution
799 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ? 0 : 1 );
800 // insertion
801 tmp = curCol + 1;
802 if (nextCol > tmp) {
803 nextCol = tmp;
804 }
805 // deletion
806 tmp = prevRow[j + 1] + 1;
807 if (nextCol > tmp) {
808 nextCol = tmp;
809 }
810
811 // copy current into previous (in preparation for next iteration)
812 prevRow[j] = curCol;
813
814 // get current time
815 currentTime = new Date().valueOf();
816 }
817
818 // send a progress update?
819 if (null !== options.progress) {
820 try {
821 options.progress.call(null, (i * 100.0/ str1.length));
822 } catch (err) {
823 return cb('Progress callback: ' + err.toString());
824 }
825 }
826
827 // next iteration
828 _defer(__calculate);
829 };
830
831 __calculate();
832 }
833
834 };
835
836 // amd
837 if (typeof define !== "undefined" && define !== null && define.amd) {
838 define(function() {
839 return Levenshtein;
840 });
841 }
842 // commonjs
843 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
844 module.exports = Levenshtein;
845 }
846 // web worker
847 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
848 self.Levenshtein = Levenshtein;
849 }
850 // browser main thread
851 else if (typeof window !== "undefined" && window !== null) {
852 window.Levenshtein = Levenshtein;
853 }
854}());
855
e00964cc
IC
856</script>
857 <script>(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
858write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
859for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
8607,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
8610<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
862setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
863j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
864b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
865c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
8660,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
867(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
86878,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
869j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
870a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
871a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
8722)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
873LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
874this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
875[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
876116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
87743,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
8783,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
87955,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
88045,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
881(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
882correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
883j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
884d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
563e401a 885</script>
ab78acc6
IC
886 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.bitcoin = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
887// (public) Constructor
888function BigInteger(a, b, c) {
889 if (!(this instanceof BigInteger))
890 return new BigInteger(a, b, c)
3af2954a 891
ab78acc6
IC
892 if (a != null) {
893 if ("number" == typeof a) this.fromNumber(a, b, c)
894 else if (b == null && "string" != typeof a) this.fromString(a, 256)
895 else this.fromString(a, b)
896 }
897}
3af2954a 898
ab78acc6 899var proto = BigInteger.prototype
3af2954a 900
ab78acc6
IC
901// duck-typed isBigInteger
902proto.__bigi = require('../package.json').version
903BigInteger.isBigInteger = function (obj, check_ver) {
904 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
905}
3af2954a 906
ab78acc6
IC
907// Bits per digit
908var dbits
3af2954a 909
ab78acc6
IC
910// am: Compute w_j += (x*this_i), propagate carries,
911// c is initial carry, returns final carry.
912// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
913// We need to select the fastest one that works in this environment.
3af2954a 914
ab78acc6
IC
915// am1: use a single mult and divide to get the high bits,
916// max digit bits should be 26 because
917// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
918function am1(i, x, w, j, c, n) {
919 while (--n >= 0) {
920 var v = x * this[i++] + w[j] + c
921 c = Math.floor(v / 0x4000000)
922 w[j++] = v & 0x3ffffff
3af2954a 923 }
ab78acc6
IC
924 return c
925}
926// am2 avoids a big mult-and-extract completely.
927// Max digit bits should be <= 30 because we do bitwise ops
928// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
929function am2(i, x, w, j, c, n) {
930 var xl = x & 0x7fff,
931 xh = x >> 15
932 while (--n >= 0) {
933 var l = this[i] & 0x7fff
934 var h = this[i++] >> 15
935 var m = xh * l + h * xl
936 l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff)
937 c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30)
938 w[j++] = l & 0x3fffffff
939 }
940 return c
941}
942// Alternately, set max digit bits to 28 since some
943// browsers slow down when dealing with 32-bit numbers.
944function am3(i, x, w, j, c, n) {
945 var xl = x & 0x3fff,
946 xh = x >> 14
947 while (--n >= 0) {
948 var l = this[i] & 0x3fff
949 var h = this[i++] >> 14
950 var m = xh * l + h * xl
951 l = xl * l + ((m & 0x3fff) << 14) + w[j] + c
952 c = (l >> 28) + (m >> 14) + xh * h
953 w[j++] = l & 0xfffffff
3af2954a 954 }
ab78acc6
IC
955 return c
956}
3af2954a 957
ab78acc6
IC
958// wtf?
959BigInteger.prototype.am = am1
960dbits = 26
3af2954a 961
ab78acc6
IC
962BigInteger.prototype.DB = dbits
963BigInteger.prototype.DM = ((1 << dbits) - 1)
964var DV = BigInteger.prototype.DV = (1 << dbits)
3af2954a 965
ab78acc6
IC
966var BI_FP = 52
967BigInteger.prototype.FV = Math.pow(2, BI_FP)
968BigInteger.prototype.F1 = BI_FP - dbits
969BigInteger.prototype.F2 = 2 * dbits - BI_FP
3af2954a 970
ab78acc6
IC
971// Digit conversions
972var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"
973var BI_RC = new Array()
974var rr, vv
975rr = "0".charCodeAt(0)
976for (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv
977rr = "a".charCodeAt(0)
978for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv
979rr = "A".charCodeAt(0)
980for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv
3af2954a 981
ab78acc6
IC
982function int2char(n) {
983 return BI_RM.charAt(n)
984}
3af2954a 985
ab78acc6
IC
986function intAt(s, i) {
987 var c = BI_RC[s.charCodeAt(i)]
988 return (c == null) ? -1 : c
989}
3af2954a 990
ab78acc6
IC
991// (protected) copy this to r
992function bnpCopyTo(r) {
993 for (var i = this.t - 1; i >= 0; --i) r[i] = this[i]
994 r.t = this.t
995 r.s = this.s
996}
3af2954a 997
ab78acc6
IC
998// (protected) set from integer value x, -DV <= x < DV
999function bnpFromInt(x) {
1000 this.t = 1
1001 this.s = (x < 0) ? -1 : 0
1002 if (x > 0) this[0] = x
1003 else if (x < -1) this[0] = x + DV
1004 else this.t = 0
1005}
3af2954a 1006
ab78acc6
IC
1007// return bigint initialized to value
1008function nbv(i) {
1009 var r = new BigInteger()
1010 r.fromInt(i)
1011 return r
1012}
3af2954a 1013
ab78acc6
IC
1014// (protected) set from string and radix
1015function bnpFromString(s, b) {
1016 var self = this
3af2954a 1017
ab78acc6
IC
1018 var k
1019 if (b == 16) k = 4
1020 else if (b == 8) k = 3
1021 else if (b == 256) k = 8; // byte array
1022 else if (b == 2) k = 1
1023 else if (b == 32) k = 5
1024 else if (b == 4) k = 2
1025 else {
1026 self.fromRadix(s, b)
1027 return
1028 }
1029 self.t = 0
1030 self.s = 0
1031 var i = s.length,
1032 mi = false,
1033 sh = 0
1034 while (--i >= 0) {
1035 var x = (k == 8) ? s[i] & 0xff : intAt(s, i)
1036 if (x < 0) {
1037 if (s.charAt(i) == "-") mi = true
1038 continue
1039 }
1040 mi = false
1041 if (sh == 0)
1042 self[self.t++] = x
1043 else if (sh + k > self.DB) {
1044 self[self.t - 1] |= (x & ((1 << (self.DB - sh)) - 1)) << sh
1045 self[self.t++] = (x >> (self.DB - sh))
1046 } else
1047 self[self.t - 1] |= x << sh
1048 sh += k
1049 if (sh >= self.DB) sh -= self.DB
1050 }
1051 if (k == 8 && (s[0] & 0x80) != 0) {
1052 self.s = -1
1053 if (sh > 0) self[self.t - 1] |= ((1 << (self.DB - sh)) - 1) << sh
1054 }
1055 self.clamp()
1056 if (mi) BigInteger.ZERO.subTo(self, self)
1057}
3af2954a 1058
ab78acc6
IC
1059// (protected) clamp off excess high words
1060function bnpClamp() {
1061 var c = this.s & this.DM
1062 while (this.t > 0 && this[this.t - 1] == c)--this.t
1063}
3af2954a 1064
ab78acc6
IC
1065// (public) return string representation in given radix
1066function bnToString(b) {
1067 var self = this
1068 if (self.s < 0) return "-" + self.negate()
1069 .toString(b)
1070 var k
1071 if (b == 16) k = 4
1072 else if (b == 8) k = 3
1073 else if (b == 2) k = 1
1074 else if (b == 32) k = 5
1075 else if (b == 4) k = 2
1076 else return self.toRadix(b)
1077 var km = (1 << k) - 1,
1078 d, m = false,
1079 r = "",
1080 i = self.t
1081 var p = self.DB - (i * self.DB) % k
1082 if (i-- > 0) {
1083 if (p < self.DB && (d = self[i] >> p) > 0) {
1084 m = true
1085 r = int2char(d)
1086 }
1087 while (i >= 0) {
1088 if (p < k) {
1089 d = (self[i] & ((1 << p) - 1)) << (k - p)
1090 d |= self[--i] >> (p += self.DB - k)
1091 } else {
1092 d = (self[i] >> (p -= k)) & km
1093 if (p <= 0) {
1094 p += self.DB
1095 --i
1096 }
1097 }
1098 if (d > 0) m = true
1099 if (m) r += int2char(d)
3af2954a 1100 }
3af2954a 1101 }
ab78acc6
IC
1102 return m ? r : "0"
1103}
3af2954a 1104
ab78acc6
IC
1105// (public) -this
1106function bnNegate() {
1107 var r = new BigInteger()
1108 BigInteger.ZERO.subTo(this, r)
1109 return r
1110}
3af2954a 1111
ab78acc6
IC
1112// (public) |this|
1113function bnAbs() {
1114 return (this.s < 0) ? this.negate() : this
1115}
3af2954a 1116
ab78acc6
IC
1117// (public) return + if this > a, - if this < a, 0 if equal
1118function bnCompareTo(a) {
1119 var r = this.s - a.s
1120 if (r != 0) return r
1121 var i = this.t
1122 r = i - a.t
1123 if (r != 0) return (this.s < 0) ? -r : r
1124 while (--i >= 0)
1125 if ((r = this[i] - a[i]) != 0) return r
1126 return 0
1127}
3af2954a 1128
ab78acc6
IC
1129// returns bit length of the integer x
1130function nbits(x) {
1131 var r = 1,
1132 t
1133 if ((t = x >>> 16) != 0) {
1134 x = t
1135 r += 16
1136 }
1137 if ((t = x >> 8) != 0) {
1138 x = t
1139 r += 8
1140 }
1141 if ((t = x >> 4) != 0) {
1142 x = t
1143 r += 4
1144 }
1145 if ((t = x >> 2) != 0) {
1146 x = t
1147 r += 2
3af2954a 1148 }
ab78acc6
IC
1149 if ((t = x >> 1) != 0) {
1150 x = t
1151 r += 1
1152 }
1153 return r
1154}
1155
1156// (public) return the number of bits in "this"
1157function bnBitLength() {
1158 if (this.t <= 0) return 0
1159 return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM))
1160}
3af2954a 1161
ab78acc6
IC
1162// (public) return the number of bytes in "this"
1163function bnByteLength() {
1164 return this.bitLength() >> 3
1165}
3af2954a 1166
ab78acc6
IC
1167// (protected) r = this << n*DB
1168function bnpDLShiftTo(n, r) {
1169 var i
1170 for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i]
1171 for (i = n - 1; i >= 0; --i) r[i] = 0
1172 r.t = this.t + n
1173 r.s = this.s
1174}
3af2954a 1175
ab78acc6
IC
1176// (protected) r = this >> n*DB
1177function bnpDRShiftTo(n, r) {
1178 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
1179 r.t = Math.max(this.t - n, 0)
1180 r.s = this.s
1181}
3af2954a 1182
ab78acc6
IC
1183// (protected) r = this << n
1184function bnpLShiftTo(n, r) {
1185 var self = this
1186 var bs = n % self.DB
1187 var cbs = self.DB - bs
1188 var bm = (1 << cbs) - 1
1189 var ds = Math.floor(n / self.DB),
1190 c = (self.s << bs) & self.DM,
1191 i
1192 for (i = self.t - 1; i >= 0; --i) {
1193 r[i + ds + 1] = (self[i] >> cbs) | c
1194 c = (self[i] & bm) << bs
1195 }
1196 for (i = ds - 1; i >= 0; --i) r[i] = 0
1197 r[ds] = c
1198 r.t = self.t + ds + 1
1199 r.s = self.s
1200 r.clamp()
1201}
3af2954a 1202
ab78acc6
IC
1203// (protected) r = this >> n
1204function bnpRShiftTo(n, r) {
1205 var self = this
1206 r.s = self.s
1207 var ds = Math.floor(n / self.DB)
1208 if (ds >= self.t) {
1209 r.t = 0
1210 return
3af2954a 1211 }
ab78acc6
IC
1212 var bs = n % self.DB
1213 var cbs = self.DB - bs
1214 var bm = (1 << bs) - 1
1215 r[0] = self[ds] >> bs
1216 for (var i = ds + 1; i < self.t; ++i) {
1217 r[i - ds - 1] |= (self[i] & bm) << cbs
1218 r[i - ds] = self[i] >> bs
1219 }
1220 if (bs > 0) r[self.t - ds - 1] |= (self.s & bm) << cbs
1221 r.t = self.t - ds
1222 r.clamp()
1223}
3af2954a 1224
ab78acc6
IC
1225// (protected) r = this - a
1226function bnpSubTo(a, r) {
1227 var self = this
1228 var i = 0,
1229 c = 0,
1230 m = Math.min(a.t, self.t)
1231 while (i < m) {
1232 c += self[i] - a[i]
1233 r[i++] = c & self.DM
1234 c >>= self.DB
1235 }
1236 if (a.t < self.t) {
1237 c -= a.s
1238 while (i < self.t) {
1239 c += self[i]
1240 r[i++] = c & self.DM
1241 c >>= self.DB
1242 }
1243 c += self.s
1244 } else {
1245 c += self.s
1246 while (i < a.t) {
1247 c -= a[i]
1248 r[i++] = c & self.DM
1249 c >>= self.DB
1250 }
1251 c -= a.s
1252 }
1253 r.s = (c < 0) ? -1 : 0
1254 if (c < -1) r[i++] = self.DV + c
1255 else if (c > 0) r[i++] = c
1256 r.t = i
1257 r.clamp()
1258}
3af2954a 1259
ab78acc6
IC
1260// (protected) r = this * a, r != this,a (HAC 14.12)
1261// "this" should be the larger one if appropriate.
1262function bnpMultiplyTo(a, r) {
1263 var x = this.abs(),
1264 y = a.abs()
1265 var i = x.t
1266 r.t = i + y.t
1267 while (--i >= 0) r[i] = 0
1268 for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t)
1269 r.s = 0
1270 r.clamp()
1271 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
1272}
3af2954a 1273
ab78acc6
IC
1274// (protected) r = this^2, r != this (HAC 14.16)
1275function bnpSquareTo(r) {
1276 var x = this.abs()
1277 var i = r.t = 2 * x.t
1278 while (--i >= 0) r[i] = 0
1279 for (i = 0; i < x.t - 1; ++i) {
1280 var c = x.am(i, x[i], r, 2 * i, 0, 1)
1281 if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {
1282 r[i + x.t] -= x.DV
1283 r[i + x.t + 1] = 1
1284 }
1285 }
1286 if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)
1287 r.s = 0
1288 r.clamp()
1289}
3af2954a 1290
ab78acc6
IC
1291// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
1292// r != q, this != m. q or r may be null.
1293function bnpDivRemTo(m, q, r) {
1294 var self = this
1295 var pm = m.abs()
1296 if (pm.t <= 0) return
1297 var pt = self.abs()
1298 if (pt.t < pm.t) {
1299 if (q != null) q.fromInt(0)
1300 if (r != null) self.copyTo(r)
1301 return
1302 }
1303 if (r == null) r = new BigInteger()
1304 var y = new BigInteger(),
1305 ts = self.s,
1306 ms = m.s
1307 var nsh = self.DB - nbits(pm[pm.t - 1]); // normalize modulus
1308 if (nsh > 0) {
1309 pm.lShiftTo(nsh, y)
1310 pt.lShiftTo(nsh, r)
1311 } else {
1312 pm.copyTo(y)
1313 pt.copyTo(r)
1314 }
1315 var ys = y.t
1316 var y0 = y[ys - 1]
1317 if (y0 == 0) return
1318 var yt = y0 * (1 << self.F1) + ((ys > 1) ? y[ys - 2] >> self.F2 : 0)
1319 var d1 = self.FV / yt,
1320 d2 = (1 << self.F1) / yt,
1321 e = 1 << self.F2
1322 var i = r.t,
1323 j = i - ys,
1324 t = (q == null) ? new BigInteger() : q
1325 y.dlShiftTo(j, t)
1326 if (r.compareTo(t) >= 0) {
1327 r[r.t++] = 1
1328 r.subTo(t, r)
1329 }
1330 BigInteger.ONE.dlShiftTo(ys, t)
1331 t.subTo(y, y); // "negative" y so we can replace sub with am later
1332 while (y.t < ys) y[y.t++] = 0
1333 while (--j >= 0) {
1334 // Estimate quotient digit
1335 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2)
1336 if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out
1337 y.dlShiftTo(j, t)
1338 r.subTo(t, r)
1339 while (r[i] < --qd) r.subTo(t, r)
3af2954a 1340 }
ab78acc6
IC
1341 }
1342 if (q != null) {
1343 r.drShiftTo(ys, q)
1344 if (ts != ms) BigInteger.ZERO.subTo(q, q)
1345 }
1346 r.t = ys
1347 r.clamp()
1348 if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder
1349 if (ts < 0) BigInteger.ZERO.subTo(r, r)
1350}
3af2954a 1351
ab78acc6
IC
1352// (public) this mod a
1353function bnMod(a) {
1354 var r = new BigInteger()
1355 this.abs()
1356 .divRemTo(a, null, r)
1357 if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r)
1358 return r
1359}
3af2954a 1360
ab78acc6
IC
1361// Modular reduction using "classic" algorithm
1362function Classic(m) {
1363 this.m = m
1364}
3af2954a 1365
ab78acc6
IC
1366function cConvert(x) {
1367 if (x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m)
1368 else return x
1369}
1370
1371function cRevert(x) {
1372 return x
1373}
3af2954a 1374
ab78acc6
IC
1375function cReduce(x) {
1376 x.divRemTo(this.m, null, x)
1377}
3af2954a 1378
ab78acc6
IC
1379function cMulTo(x, y, r) {
1380 x.multiplyTo(y, r)
1381 this.reduce(r)
1382}
3af2954a 1383
ab78acc6
IC
1384function cSqrTo(x, r) {
1385 x.squareTo(r)
1386 this.reduce(r)
1387}
3af2954a 1388
ab78acc6
IC
1389Classic.prototype.convert = cConvert
1390Classic.prototype.revert = cRevert
1391Classic.prototype.reduce = cReduce
1392Classic.prototype.mulTo = cMulTo
1393Classic.prototype.sqrTo = cSqrTo
3af2954a 1394
ab78acc6
IC
1395// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
1396// justification:
1397// xy == 1 (mod m)
1398// xy = 1+km
1399// xy(2-xy) = (1+km)(1-km)
1400// x[y(2-xy)] = 1-k^2m^2
1401// x[y(2-xy)] == 1 (mod m^2)
1402// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
1403// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
1404// JS multiply "overflows" differently from C/C++, so care is needed here.
1405function bnpInvDigit() {
1406 if (this.t < 1) return 0
1407 var x = this[0]
1408 if ((x & 1) == 0) return 0
1409 var y = x & 3; // y == 1/x mod 2^2
1410 y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4
1411 y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8
1412 y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16
1413 // last step - calculate inverse mod DV directly
1414 // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
1415 y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits
1416 // we really want the negative inverse, and -DV < y < DV
1417 return (y > 0) ? this.DV - y : -y
1418}
3af2954a 1419
ab78acc6
IC
1420// Montgomery reduction
1421function Montgomery(m) {
1422 this.m = m
1423 this.mp = m.invDigit()
1424 this.mpl = this.mp & 0x7fff
1425 this.mph = this.mp >> 15
1426 this.um = (1 << (m.DB - 15)) - 1
1427 this.mt2 = 2 * m.t
1428}
3af2954a 1429
ab78acc6
IC
1430// xR mod m
1431function montConvert(x) {
1432 var r = new BigInteger()
1433 x.abs()
1434 .dlShiftTo(this.m.t, r)
1435 r.divRemTo(this.m, null, r)
1436 if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r)
1437 return r
1438}
3af2954a 1439
ab78acc6
IC
1440// x/R mod m
1441function montRevert(x) {
1442 var r = new BigInteger()
1443 x.copyTo(r)
1444 this.reduce(r)
1445 return r
1446}
3af2954a 1447
ab78acc6
IC
1448// x = x/R mod m (HAC 14.32)
1449function montReduce(x) {
1450 while (x.t <= this.mt2) // pad x so am has enough room later
1451 x[x.t++] = 0
1452 for (var i = 0; i < this.m.t; ++i) {
1453 // faster way of calculating u0 = x[i]*mp mod DV
1454 var j = x[i] & 0x7fff
1455 var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM
1456 // use am to combine the multiply-shift-add into one call
1457 j = i + this.m.t
1458 x[j] += this.m.am(0, u0, x, i, 0, this.m.t)
1459 // propagate carry
1460 while (x[j] >= x.DV) {
1461 x[j] -= x.DV
1462 x[++j]++
1463 }
1464 }
1465 x.clamp()
1466 x.drShiftTo(this.m.t, x)
1467 if (x.compareTo(this.m) >= 0) x.subTo(this.m, x)
1468}
3af2954a 1469
ab78acc6
IC
1470// r = "x^2/R mod m"; x != r
1471function montSqrTo(x, r) {
1472 x.squareTo(r)
1473 this.reduce(r)
1474}
3af2954a 1475
ab78acc6
IC
1476// r = "xy/R mod m"; x,y != r
1477function montMulTo(x, y, r) {
1478 x.multiplyTo(y, r)
1479 this.reduce(r)
1480}
3af2954a 1481
ab78acc6
IC
1482Montgomery.prototype.convert = montConvert
1483Montgomery.prototype.revert = montRevert
1484Montgomery.prototype.reduce = montReduce
1485Montgomery.prototype.mulTo = montMulTo
1486Montgomery.prototype.sqrTo = montSqrTo
3af2954a 1487
ab78acc6
IC
1488// (protected) true iff this is even
1489function bnpIsEven() {
1490 return ((this.t > 0) ? (this[0] & 1) : this.s) == 0
1491}
3af2954a 1492
ab78acc6
IC
1493// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
1494function bnpExp(e, z) {
1495 if (e > 0xffffffff || e < 1) return BigInteger.ONE
1496 var r = new BigInteger(),
1497 r2 = new BigInteger(),
1498 g = z.convert(this),
1499 i = nbits(e) - 1
1500 g.copyTo(r)
1501 while (--i >= 0) {
1502 z.sqrTo(r, r2)
1503 if ((e & (1 << i)) > 0) z.mulTo(r2, g, r)
1504 else {
1505 var t = r
1506 r = r2
1507 r2 = t
3af2954a 1508 }
3af2954a 1509 }
ab78acc6
IC
1510 return z.revert(r)
1511}
3af2954a 1512
ab78acc6
IC
1513// (public) this^e % m, 0 <= e < 2^32
1514function bnModPowInt(e, m) {
1515 var z
1516 if (e < 256 || m.isEven()) z = new Classic(m)
1517 else z = new Montgomery(m)
1518 return this.exp(e, z)
1519}
3af2954a 1520
ab78acc6
IC
1521// protected
1522proto.copyTo = bnpCopyTo
1523proto.fromInt = bnpFromInt
1524proto.fromString = bnpFromString
1525proto.clamp = bnpClamp
1526proto.dlShiftTo = bnpDLShiftTo
1527proto.drShiftTo = bnpDRShiftTo
1528proto.lShiftTo = bnpLShiftTo
1529proto.rShiftTo = bnpRShiftTo
1530proto.subTo = bnpSubTo
1531proto.multiplyTo = bnpMultiplyTo
1532proto.squareTo = bnpSquareTo
1533proto.divRemTo = bnpDivRemTo
1534proto.invDigit = bnpInvDigit
1535proto.isEven = bnpIsEven
1536proto.exp = bnpExp
3af2954a 1537
ab78acc6
IC
1538// public
1539proto.toString = bnToString
1540proto.negate = bnNegate
1541proto.abs = bnAbs
1542proto.compareTo = bnCompareTo
1543proto.bitLength = bnBitLength
1544proto.byteLength = bnByteLength
1545proto.mod = bnMod
1546proto.modPowInt = bnModPowInt
3af2954a 1547
ab78acc6
IC
1548// (public)
1549function bnClone() {
1550 var r = new BigInteger()
1551 this.copyTo(r)
1552 return r
1553}
3af2954a 1554
ab78acc6
IC
1555// (public) return value as integer
1556function bnIntValue() {
1557 if (this.s < 0) {
1558 if (this.t == 1) return this[0] - this.DV
1559 else if (this.t == 0) return -1
1560 } else if (this.t == 1) return this[0]
1561 else if (this.t == 0) return 0
1562 // assumes 16 < DB < 32
1563 return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]
1564}
3af2954a 1565
ab78acc6
IC
1566// (public) return value as byte
1567function bnByteValue() {
1568 return (this.t == 0) ? this.s : (this[0] << 24) >> 24
1569}
3af2954a 1570
ab78acc6
IC
1571// (public) return value as short (assumes DB>=16)
1572function bnShortValue() {
1573 return (this.t == 0) ? this.s : (this[0] << 16) >> 16
1574}
3af2954a 1575
ab78acc6
IC
1576// (protected) return x s.t. r^x < DV
1577function bnpChunkSize(r) {
1578 return Math.floor(Math.LN2 * this.DB / Math.log(r))
1579}
3af2954a 1580
ab78acc6
IC
1581// (public) 0 if this == 0, 1 if this > 0
1582function bnSigNum() {
1583 if (this.s < 0) return -1
1584 else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0
1585 else return 1
1586}
3af2954a 1587
ab78acc6
IC
1588// (protected) convert to radix string
1589function bnpToRadix(b) {
1590 if (b == null) b = 10
1591 if (this.signum() == 0 || b < 2 || b > 36) return "0"
1592 var cs = this.chunkSize(b)
1593 var a = Math.pow(b, cs)
1594 var d = nbv(a),
1595 y = new BigInteger(),
1596 z = new BigInteger(),
1597 r = ""
1598 this.divRemTo(d, y, z)
1599 while (y.signum() > 0) {
1600 r = (a + z.intValue())
1601 .toString(b)
1602 .substr(1) + r
1603 y.divRemTo(d, y, z)
1604 }
1605 return z.intValue()
1606 .toString(b) + r
1607}
3af2954a 1608
ab78acc6
IC
1609// (protected) convert from radix string
1610function bnpFromRadix(s, b) {
1611 var self = this
1612 self.fromInt(0)
1613 if (b == null) b = 10
1614 var cs = self.chunkSize(b)
1615 var d = Math.pow(b, cs),
1616 mi = false,
1617 j = 0,
1618 w = 0
1619 for (var i = 0; i < s.length; ++i) {
1620 var x = intAt(s, i)
1621 if (x < 0) {
1622 if (s.charAt(i) == "-" && self.signum() == 0) mi = true
1623 continue
1624 }
1625 w = b * w + x
1626 if (++j >= cs) {
1627 self.dMultiply(d)
1628 self.dAddOffset(w, 0)
1629 j = 0
1630 w = 0
1631 }
1632 }
1633 if (j > 0) {
1634 self.dMultiply(Math.pow(b, j))
1635 self.dAddOffset(w, 0)
1636 }
1637 if (mi) BigInteger.ZERO.subTo(self, self)
1638}
3af2954a 1639
ab78acc6
IC
1640// (protected) alternate constructor
1641function bnpFromNumber(a, b, c) {
1642 var self = this
1643 if ("number" == typeof b) {
1644 // new BigInteger(int,int,RNG)
1645 if (a < 2) self.fromInt(1)
1646 else {
1647 self.fromNumber(a, c)
1648 if (!self.testBit(a - 1)) // force MSB set
1649 self.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, self)
1650 if (self.isEven()) self.dAddOffset(1, 0); // force odd
1651 while (!self.isProbablePrime(b)) {
1652 self.dAddOffset(2, 0)
1653 if (self.bitLength() > a) self.subTo(BigInteger.ONE.shiftLeft(a - 1), self)
1654 }
1655 }
1656 } else {
1657 // new BigInteger(int,RNG)
1658 var x = new Array(),
1659 t = a & 7
1660 x.length = (a >> 3) + 1
1661 b.nextBytes(x)
1662 if (t > 0) x[0] &= ((1 << t) - 1)
1663 else x[0] = 0
1664 self.fromString(x, 256)
3af2954a 1665 }
ab78acc6 1666}
3af2954a 1667
ab78acc6
IC
1668// (public) convert to bigendian byte array
1669function bnToByteArray() {
1670 var self = this
1671 var i = self.t,
1672 r = new Array()
1673 r[0] = self.s
1674 var p = self.DB - (i * self.DB) % 8,
1675 d, k = 0
1676 if (i-- > 0) {
1677 if (p < self.DB && (d = self[i] >> p) != (self.s & self.DM) >> p)
1678 r[k++] = d | (self.s << (self.DB - p))
1679 while (i >= 0) {
1680 if (p < 8) {
1681 d = (self[i] & ((1 << p) - 1)) << (8 - p)
1682 d |= self[--i] >> (p += self.DB - 8)
1683 } else {
1684 d = (self[i] >> (p -= 8)) & 0xff
1685 if (p <= 0) {
1686 p += self.DB
1687 --i
1688 }
1689 }
1690 if ((d & 0x80) != 0) d |= -256
1691 if (k === 0 && (self.s & 0x80) != (d & 0x80))++k
1692 if (k > 0 || d != self.s) r[k++] = d
3af2954a 1693 }
3af2954a 1694 }
ab78acc6
IC
1695 return r
1696}
3af2954a 1697
ab78acc6
IC
1698function bnEquals(a) {
1699 return (this.compareTo(a) == 0)
1700}
3af2954a 1701
ab78acc6
IC
1702function bnMin(a) {
1703 return (this.compareTo(a) < 0) ? this : a
1704}
3af2954a 1705
ab78acc6
IC
1706function bnMax(a) {
1707 return (this.compareTo(a) > 0) ? this : a
1708}
3af2954a 1709
ab78acc6
IC
1710// (protected) r = this op a (bitwise)
1711function bnpBitwiseTo(a, op, r) {
1712 var self = this
1713 var i, f, m = Math.min(a.t, self.t)
1714 for (i = 0; i < m; ++i) r[i] = op(self[i], a[i])
1715 if (a.t < self.t) {
1716 f = a.s & self.DM
1717 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
1718 r.t = self.t
1719 } else {
1720 f = self.s & self.DM
1721 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
1722 r.t = a.t
3af2954a 1723 }
ab78acc6
IC
1724 r.s = op(self.s, a.s)
1725 r.clamp()
1726}
3af2954a 1727
ab78acc6
IC
1728// (public) this & a
1729function op_and(x, y) {
1730 return x & y
1731}
3af2954a 1732
ab78acc6
IC
1733function bnAnd(a) {
1734 var r = new BigInteger()
1735 this.bitwiseTo(a, op_and, r)
1736 return r
1737}
3af2954a 1738
ab78acc6
IC
1739// (public) this | a
1740function op_or(x, y) {
1741 return x | y
1742}
3af2954a 1743
ab78acc6
IC
1744function bnOr(a) {
1745 var r = new BigInteger()
1746 this.bitwiseTo(a, op_or, r)
1747 return r
1748}
3af2954a 1749
ab78acc6
IC
1750// (public) this ^ a
1751function op_xor(x, y) {
1752 return x ^ y
1753}
3af2954a 1754
ab78acc6
IC
1755function bnXor(a) {
1756 var r = new BigInteger()
1757 this.bitwiseTo(a, op_xor, r)
1758 return r
1759}
3af2954a 1760
ab78acc6
IC
1761// (public) this & ~a
1762function op_andnot(x, y) {
1763 return x & ~y
1764}
3af2954a 1765
ab78acc6
IC
1766function bnAndNot(a) {
1767 var r = new BigInteger()
1768 this.bitwiseTo(a, op_andnot, r)
1769 return r
1770}
3af2954a 1771
ab78acc6
IC
1772// (public) ~this
1773function bnNot() {
1774 var r = new BigInteger()
1775 for (var i = 0; i < this.t; ++i) r[i] = this.DM & ~this[i]
1776 r.t = this.t
1777 r.s = ~this.s
1778 return r
1779}
3af2954a 1780
ab78acc6
IC
1781// (public) this << n
1782function bnShiftLeft(n) {
1783 var r = new BigInteger()
1784 if (n < 0) this.rShiftTo(-n, r)
1785 else this.lShiftTo(n, r)
1786 return r
1787}
3af2954a 1788
ab78acc6
IC
1789// (public) this >> n
1790function bnShiftRight(n) {
1791 var r = new BigInteger()
1792 if (n < 0) this.lShiftTo(-n, r)
1793 else this.rShiftTo(n, r)
1794 return r
1795}
3af2954a 1796
ab78acc6
IC
1797// return index of lowest 1-bit in x, x < 2^31
1798function lbit(x) {
1799 if (x == 0) return -1
1800 var r = 0
1801 if ((x & 0xffff) == 0) {
1802 x >>= 16
1803 r += 16
3af2954a 1804 }
ab78acc6
IC
1805 if ((x & 0xff) == 0) {
1806 x >>= 8
1807 r += 8
1808 }
1809 if ((x & 0xf) == 0) {
1810 x >>= 4
1811 r += 4
1812 }
1813 if ((x & 3) == 0) {
1814 x >>= 2
1815 r += 2
1816 }
1817 if ((x & 1) == 0)++r
1818 return r
1819}
3af2954a 1820
ab78acc6
IC
1821// (public) returns index of lowest 1-bit (or -1 if none)
1822function bnGetLowestSetBit() {
1823 for (var i = 0; i < this.t; ++i)
1824 if (this[i] != 0) return i * this.DB + lbit(this[i])
1825 if (this.s < 0) return this.t * this.DB
1826 return -1
1827}
3af2954a 1828
ab78acc6
IC
1829// return number of 1 bits in x
1830function cbit(x) {
1831 var r = 0
1832 while (x != 0) {
1833 x &= x - 1
1834 ++r
3af2954a 1835 }
ab78acc6
IC
1836 return r
1837}
3af2954a 1838
ab78acc6
IC
1839// (public) return number of set bits
1840function bnBitCount() {
1841 var r = 0,
1842 x = this.s & this.DM
1843 for (var i = 0; i < this.t; ++i) r += cbit(this[i] ^ x)
1844 return r
1845}
1846
1847// (public) true iff nth bit is set
1848function bnTestBit(n) {
1849 var j = Math.floor(n / this.DB)
1850 if (j >= this.t) return (this.s != 0)
1851 return ((this[j] & (1 << (n % this.DB))) != 0)
1852}
3af2954a 1853
ab78acc6
IC
1854// (protected) this op (1<<n)
1855function bnpChangeBit(n, op) {
1856 var r = BigInteger.ONE.shiftLeft(n)
1857 this.bitwiseTo(r, op, r)
1858 return r
1859}
3af2954a 1860
ab78acc6
IC
1861// (public) this | (1<<n)
1862function bnSetBit(n) {
1863 return this.changeBit(n, op_or)
1864}
3af2954a 1865
ab78acc6
IC
1866// (public) this & ~(1<<n)
1867function bnClearBit(n) {
1868 return this.changeBit(n, op_andnot)
1869}
3af2954a 1870
ab78acc6
IC
1871// (public) this ^ (1<<n)
1872function bnFlipBit(n) {
1873 return this.changeBit(n, op_xor)
1874}
3af2954a 1875
ab78acc6
IC
1876// (protected) r = this + a
1877function bnpAddTo(a, r) {
1878 var self = this
3af2954a 1879
ab78acc6
IC
1880 var i = 0,
1881 c = 0,
1882 m = Math.min(a.t, self.t)
1883 while (i < m) {
1884 c += self[i] + a[i]
1885 r[i++] = c & self.DM
1886 c >>= self.DB
1887 }
1888 if (a.t < self.t) {
1889 c += a.s
1890 while (i < self.t) {
1891 c += self[i]
1892 r[i++] = c & self.DM
1893 c >>= self.DB
1894 }
1895 c += self.s
1896 } else {
1897 c += self.s
1898 while (i < a.t) {
1899 c += a[i]
1900 r[i++] = c & self.DM
1901 c >>= self.DB
1902 }
1903 c += a.s
1904 }
1905 r.s = (c < 0) ? -1 : 0
1906 if (c > 0) r[i++] = c
1907 else if (c < -1) r[i++] = self.DV + c
1908 r.t = i
1909 r.clamp()
1910}
3af2954a 1911
ab78acc6
IC
1912// (public) this + a
1913function bnAdd(a) {
1914 var r = new BigInteger()
1915 this.addTo(a, r)
1916 return r
1917}
3af2954a 1918
ab78acc6
IC
1919// (public) this - a
1920function bnSubtract(a) {
1921 var r = new BigInteger()
1922 this.subTo(a, r)
1923 return r
1924}
3af2954a 1925
ab78acc6
IC
1926// (public) this * a
1927function bnMultiply(a) {
1928 var r = new BigInteger()
1929 this.multiplyTo(a, r)
1930 return r
1931}
3af2954a 1932
ab78acc6
IC
1933// (public) this^2
1934function bnSquare() {
1935 var r = new BigInteger()
1936 this.squareTo(r)
1937 return r
1938}
3af2954a 1939
ab78acc6
IC
1940// (public) this / a
1941function bnDivide(a) {
1942 var r = new BigInteger()
1943 this.divRemTo(a, r, null)
1944 return r
1945}
3af2954a 1946
ab78acc6
IC
1947// (public) this % a
1948function bnRemainder(a) {
1949 var r = new BigInteger()
1950 this.divRemTo(a, null, r)
1951 return r
1952}
3af2954a 1953
ab78acc6
IC
1954// (public) [this/a,this%a]
1955function bnDivideAndRemainder(a) {
1956 var q = new BigInteger(),
1957 r = new BigInteger()
1958 this.divRemTo(a, q, r)
1959 return new Array(q, r)
1960}
3af2954a 1961
ab78acc6
IC
1962// (protected) this *= n, this >= 0, 1 < n < DV
1963function bnpDMultiply(n) {
1964 this[this.t] = this.am(0, n - 1, this, 0, 0, this.t)
1965 ++this.t
1966 this.clamp()
1967}
3af2954a 1968
ab78acc6
IC
1969// (protected) this += n << w words, this >= 0
1970function bnpDAddOffset(n, w) {
1971 if (n == 0) return
1972 while (this.t <= w) this[this.t++] = 0
1973 this[w] += n
1974 while (this[w] >= this.DV) {
1975 this[w] -= this.DV
1976 if (++w >= this.t) this[this.t++] = 0
1977 ++this[w]
3af2954a 1978 }
ab78acc6 1979}
3af2954a 1980
ab78acc6
IC
1981// A "null" reducer
1982function NullExp() {}
3af2954a 1983
ab78acc6
IC
1984function nNop(x) {
1985 return x
1986}
3af2954a 1987
ab78acc6
IC
1988function nMulTo(x, y, r) {
1989 x.multiplyTo(y, r)
1990}
3af2954a 1991
ab78acc6
IC
1992function nSqrTo(x, r) {
1993 x.squareTo(r)
1994}
3af2954a 1995
ab78acc6
IC
1996NullExp.prototype.convert = nNop
1997NullExp.prototype.revert = nNop
1998NullExp.prototype.mulTo = nMulTo
1999NullExp.prototype.sqrTo = nSqrTo
3af2954a 2000
ab78acc6
IC
2001// (public) this^e
2002function bnPow(e) {
2003 return this.exp(e, new NullExp())
2004}
3af2954a 2005
ab78acc6
IC
2006// (protected) r = lower n words of "this * a", a.t <= n
2007// "this" should be the larger one if appropriate.
2008function bnpMultiplyLowerTo(a, n, r) {
2009 var i = Math.min(this.t + a.t, n)
2010 r.s = 0; // assumes a,this >= 0
2011 r.t = i
2012 while (i > 0) r[--i] = 0
2013 var j
2014 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(0, a[i], r, i, 0, this.t)
2015 for (j = Math.min(a.t, n); i < j; ++i) this.am(0, a[i], r, i, 0, n - i)
2016 r.clamp()
2017}
3af2954a 2018
ab78acc6
IC
2019// (protected) r = "this * a" without lower n words, n > 0
2020// "this" should be the larger one if appropriate.
2021function bnpMultiplyUpperTo(a, n, r) {
2022 --n
2023 var i = r.t = this.t + a.t - n
2024 r.s = 0; // assumes a,this >= 0
2025 while (--i >= 0) r[i] = 0
2026 for (i = Math.max(n - this.t, 0); i < a.t; ++i)
2027 r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n)
2028 r.clamp()
2029 r.drShiftTo(1, r)
2030}
3af2954a 2031
ab78acc6
IC
2032// Barrett modular reduction
2033function Barrett(m) {
2034 // setup Barrett
2035 this.r2 = new BigInteger()
2036 this.q3 = new BigInteger()
2037 BigInteger.ONE.dlShiftTo(2 * m.t, this.r2)
2038 this.mu = this.r2.divide(m)
2039 this.m = m
2040}
3af2954a 2041
ab78acc6
IC
2042function barrettConvert(x) {
2043 if (x.s < 0 || x.t > 2 * this.m.t) return x.mod(this.m)
2044 else if (x.compareTo(this.m) < 0) return x
2045 else {
2046 var r = new BigInteger()
2047 x.copyTo(r)
2048 this.reduce(r)
2049 return r
3af2954a 2050 }
ab78acc6 2051}
3af2954a 2052
ab78acc6
IC
2053function barrettRevert(x) {
2054 return x
2055}
3af2954a 2056
ab78acc6
IC
2057// x = x mod m (HAC 14.42)
2058function barrettReduce(x) {
2059 var self = this
2060 x.drShiftTo(self.m.t - 1, self.r2)
2061 if (x.t > self.m.t + 1) {
2062 x.t = self.m.t + 1
2063 x.clamp()
3af2954a 2064 }
ab78acc6
IC
2065 self.mu.multiplyUpperTo(self.r2, self.m.t + 1, self.q3)
2066 self.m.multiplyLowerTo(self.q3, self.m.t + 1, self.r2)
2067 while (x.compareTo(self.r2) < 0) x.dAddOffset(1, self.m.t + 1)
2068 x.subTo(self.r2, x)
2069 while (x.compareTo(self.m) >= 0) x.subTo(self.m, x)
2070}
3af2954a 2071
ab78acc6
IC
2072// r = x^2 mod m; x != r
2073function barrettSqrTo(x, r) {
2074 x.squareTo(r)
2075 this.reduce(r)
2076}
3af2954a 2077
ab78acc6
IC
2078// r = x*y mod m; x,y != r
2079function barrettMulTo(x, y, r) {
2080 x.multiplyTo(y, r)
2081 this.reduce(r)
2082}
3af2954a 2083
ab78acc6
IC
2084Barrett.prototype.convert = barrettConvert
2085Barrett.prototype.revert = barrettRevert
2086Barrett.prototype.reduce = barrettReduce
2087Barrett.prototype.mulTo = barrettMulTo
2088Barrett.prototype.sqrTo = barrettSqrTo
3af2954a 2089
ab78acc6
IC
2090// (public) this^e % m (HAC 14.85)
2091function bnModPow(e, m) {
2092 var i = e.bitLength(),
2093 k, r = nbv(1),
2094 z
2095 if (i <= 0) return r
2096 else if (i < 18) k = 1
2097 else if (i < 48) k = 3
2098 else if (i < 144) k = 4
2099 else if (i < 768) k = 5
2100 else k = 6
2101 if (i < 8)
2102 z = new Classic(m)
2103 else if (m.isEven())
2104 z = new Barrett(m)
2105 else
2106 z = new Montgomery(m)
3af2954a 2107
ab78acc6
IC
2108 // precomputation
2109 var g = new Array(),
2110 n = 3,
2111 k1 = k - 1,
2112 km = (1 << k) - 1
2113 g[1] = z.convert(this)
2114 if (k > 1) {
2115 var g2 = new BigInteger()
2116 z.sqrTo(g[1], g2)
2117 while (n <= km) {
2118 g[n] = new BigInteger()
2119 z.mulTo(g2, g[n - 2], g[n])
2120 n += 2
2121 }
2122 }
2123
2124 var j = e.t - 1,
2125 w, is1 = true,
2126 r2 = new BigInteger(),
2127 t
2128 i = nbits(e[j]) - 1
2129 while (j >= 0) {
2130 if (i >= k1) w = (e[j] >> (i - k1)) & km
2131 else {
2132 w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i)
2133 if (j > 0) w |= e[j - 1] >> (this.DB + i - k1)
2134 }
3af2954a 2135
ab78acc6
IC
2136 n = k
2137 while ((w & 1) == 0) {
2138 w >>= 1
2139 --n
2140 }
2141 if ((i -= n) < 0) {
2142 i += this.DB
2143 --j
2144 }
2145 if (is1) { // ret == 1, don't bother squaring or multiplying it
2146 g[w].copyTo(r)
2147 is1 = false
2148 } else {
2149 while (n > 1) {
2150 z.sqrTo(r, r2)
2151 z.sqrTo(r2, r)
2152 n -= 2
2153 }
2154 if (n > 0) z.sqrTo(r, r2)
2155 else {
2156 t = r
2157 r = r2
2158 r2 = t
2159 }
2160 z.mulTo(r2, g[w], r)
2161 }
3af2954a 2162
ab78acc6
IC
2163 while (j >= 0 && (e[j] & (1 << i)) == 0) {
2164 z.sqrTo(r, r2)
2165 t = r
2166 r = r2
2167 r2 = t
2168 if (--i < 0) {
2169 i = this.DB - 1
2170 --j
3af2954a 2171 }
3af2954a
IC
2172 }
2173 }
ab78acc6
IC
2174 return z.revert(r)
2175}
3af2954a 2176
ab78acc6
IC
2177// (public) gcd(this,a) (HAC 14.54)
2178function bnGCD(a) {
2179 var x = (this.s < 0) ? this.negate() : this.clone()
2180 var y = (a.s < 0) ? a.negate() : a.clone()
2181 if (x.compareTo(y) < 0) {
2182 var t = x
2183 x = y
2184 y = t
2185 }
2186 var i = x.getLowestSetBit(),
2187 g = y.getLowestSetBit()
2188 if (g < 0) return x
2189 if (i < g) g = i
2190 if (g > 0) {
2191 x.rShiftTo(g, x)
2192 y.rShiftTo(g, y)
2193 }
2194 while (x.signum() > 0) {
2195 if ((i = x.getLowestSetBit()) > 0) x.rShiftTo(i, x)
2196 if ((i = y.getLowestSetBit()) > 0) y.rShiftTo(i, y)
2197 if (x.compareTo(y) >= 0) {
2198 x.subTo(y, x)
2199 x.rShiftTo(1, x)
2200 } else {
2201 y.subTo(x, y)
2202 y.rShiftTo(1, y)
2203 }
3af2954a 2204 }
ab78acc6
IC
2205 if (g > 0) y.lShiftTo(g, y)
2206 return y
2207}
3af2954a 2208
ab78acc6
IC
2209// (protected) this % n, n < 2^26
2210function bnpModInt(n) {
2211 if (n <= 0) return 0
2212 var d = this.DV % n,
2213 r = (this.s < 0) ? n - 1 : 0
2214 if (this.t > 0)
2215 if (d == 0) r = this[0] % n
2216 else
2217 for (var i = this.t - 1; i >= 0; --i) r = (d * r + this[i]) % n
2218 return r
2219}
3af2954a 2220
ab78acc6
IC
2221// (public) 1/this % m (HAC 14.61)
2222function bnModInverse(m) {
2223 var ac = m.isEven()
2224 if ((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO
2225 var u = m.clone(),
2226 v = this.clone()
2227 var a = nbv(1),
2228 b = nbv(0),
2229 c = nbv(0),
2230 d = nbv(1)
2231 while (u.signum() != 0) {
2232 while (u.isEven()) {
2233 u.rShiftTo(1, u)
2234 if (ac) {
2235 if (!a.isEven() || !b.isEven()) {
2236 a.addTo(this, a)
2237 b.subTo(m, b)
2238 }
2239 a.rShiftTo(1, a)
2240 } else if (!b.isEven()) b.subTo(m, b)
2241 b.rShiftTo(1, b)
2242 }
2243 while (v.isEven()) {
2244 v.rShiftTo(1, v)
2245 if (ac) {
2246 if (!c.isEven() || !d.isEven()) {
2247 c.addTo(this, c)
2248 d.subTo(m, d)
2249 }
2250 c.rShiftTo(1, c)
2251 } else if (!d.isEven()) d.subTo(m, d)
2252 d.rShiftTo(1, d)
2253 }
2254 if (u.compareTo(v) >= 0) {
2255 u.subTo(v, u)
2256 if (ac) a.subTo(c, a)
2257 b.subTo(d, b)
2258 } else {
2259 v.subTo(u, v)
2260 if (ac) c.subTo(a, c)
2261 d.subTo(b, d)
2262 }
2263 }
2264 if (v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO
2265 if (d.compareTo(m) >= 0) return d.subtract(m)
2266 if (d.signum() < 0) d.addTo(m, d)
2267 else return d
2268 if (d.signum() < 0) return d.add(m)
2269 else return d
2270}
2271
2272var lowprimes = [
2273 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
2274 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
2275 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,
2276 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,
2277 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,
2278 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
2279 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607,
2280 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,
2281 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811,
2282 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
2283 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997
2284]
2285
2286var lplim = (1 << 26) / lowprimes[lowprimes.length - 1]
2287
2288// (public) test primality with certainty >= 1-.5^t
2289function bnIsProbablePrime(t) {
2290 var i, x = this.abs()
2291 if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {
2292 for (i = 0; i < lowprimes.length; ++i)
2293 if (x[0] == lowprimes[i]) return true
2294 return false
3af2954a 2295 }
ab78acc6
IC
2296 if (x.isEven()) return false
2297 i = 1
2298 while (i < lowprimes.length) {
2299 var m = lowprimes[i],
2300 j = i + 1
2301 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
2302 m = x.modInt(m)
2303 while (i < j) if (m % lowprimes[i++] == 0) return false
2304 }
2305 return x.millerRabin(t)
2306}
2307
2308// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
2309function bnpMillerRabin(t) {
2310 var n1 = this.subtract(BigInteger.ONE)
2311 var k = n1.getLowestSetBit()
2312 if (k <= 0) return false
2313 var r = n1.shiftRight(k)
2314 t = (t + 1) >> 1
2315 if (t > lowprimes.length) t = lowprimes.length
2316 var a = new BigInteger(null)
2317 var j, bases = []
2318 for (var i = 0; i < t; ++i) {
2319 for (;;) {
2320 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
2321 if (bases.indexOf(j) == -1) break
2322 }
2323 bases.push(j)
2324 a.fromInt(j)
2325 var y = a.modPow(r, this)
2326 if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
2327 var j = 1
2328 while (j++ < k && y.compareTo(n1) != 0) {
2329 y = y.modPowInt(2, this)
2330 if (y.compareTo(BigInteger.ONE) == 0) return false
2331 }
2332 if (y.compareTo(n1) != 0) return false
2333 }
3af2954a 2334 }
ab78acc6
IC
2335 return true
2336}
3af2954a 2337
ab78acc6
IC
2338// protected
2339proto.chunkSize = bnpChunkSize
2340proto.toRadix = bnpToRadix
2341proto.fromRadix = bnpFromRadix
2342proto.fromNumber = bnpFromNumber
2343proto.bitwiseTo = bnpBitwiseTo
2344proto.changeBit = bnpChangeBit
2345proto.addTo = bnpAddTo
2346proto.dMultiply = bnpDMultiply
2347proto.dAddOffset = bnpDAddOffset
2348proto.multiplyLowerTo = bnpMultiplyLowerTo
2349proto.multiplyUpperTo = bnpMultiplyUpperTo
2350proto.modInt = bnpModInt
2351proto.millerRabin = bnpMillerRabin
3af2954a 2352
ab78acc6
IC
2353// public
2354proto.clone = bnClone
2355proto.intValue = bnIntValue
2356proto.byteValue = bnByteValue
2357proto.shortValue = bnShortValue
2358proto.signum = bnSigNum
2359proto.toByteArray = bnToByteArray
2360proto.equals = bnEquals
2361proto.min = bnMin
2362proto.max = bnMax
2363proto.and = bnAnd
2364proto.or = bnOr
2365proto.xor = bnXor
2366proto.andNot = bnAndNot
2367proto.not = bnNot
2368proto.shiftLeft = bnShiftLeft
2369proto.shiftRight = bnShiftRight
2370proto.getLowestSetBit = bnGetLowestSetBit
2371proto.bitCount = bnBitCount
2372proto.testBit = bnTestBit
2373proto.setBit = bnSetBit
2374proto.clearBit = bnClearBit
2375proto.flipBit = bnFlipBit
2376proto.add = bnAdd
2377proto.subtract = bnSubtract
2378proto.multiply = bnMultiply
2379proto.divide = bnDivide
2380proto.remainder = bnRemainder
2381proto.divideAndRemainder = bnDivideAndRemainder
2382proto.modPow = bnModPow
2383proto.modInverse = bnModInverse
2384proto.pow = bnPow
2385proto.gcd = bnGCD
2386proto.isProbablePrime = bnIsProbablePrime
3af2954a 2387
ab78acc6
IC
2388// JSBN-specific extension
2389proto.square = bnSquare
3af2954a 2390
ab78acc6
IC
2391// constants
2392BigInteger.ZERO = nbv(0)
2393BigInteger.ONE = nbv(1)
2394BigInteger.valueOf = nbv
3af2954a 2395
ab78acc6 2396module.exports = BigInteger
3af2954a 2397
ab78acc6
IC
2398},{"../package.json":4}],2:[function(require,module,exports){
2399(function (Buffer){
2400// FIXME: Kind of a weird way to throw exceptions, consider removing
2401var assert = require('assert')
2402var BigInteger = require('./bigi')
3af2954a 2403
ab78acc6
IC
2404/**
2405 * Turns a byte array into a big integer.
2406 *
2407 * This function will interpret a byte array as a big integer in big
2408 * endian notation.
2409 */
2410BigInteger.fromByteArrayUnsigned = function(byteArray) {
2411 // BigInteger expects a DER integer conformant byte array
2412 if (byteArray[0] & 0x80) {
2413 return new BigInteger([0].concat(byteArray))
3af2954a
IC
2414 }
2415
ab78acc6
IC
2416 return new BigInteger(byteArray)
2417}
3af2954a 2418
ab78acc6
IC
2419/**
2420 * Returns a byte array representation of the big integer.
2421 *
2422 * This returns the absolute of the contained value in big endian
2423 * form. A value of zero results in an empty array.
2424 */
2425BigInteger.prototype.toByteArrayUnsigned = function() {
2426 var byteArray = this.toByteArray()
2427 return byteArray[0] === 0 ? byteArray.slice(1) : byteArray
2428}
3af2954a 2429
ab78acc6
IC
2430BigInteger.fromDERInteger = function(byteArray) {
2431 return new BigInteger(byteArray)
2432}
3af2954a 2433
ab78acc6
IC
2434/*
2435 * Converts BigInteger to a DER integer representation.
2436 *
2437 * The format for this value uses the most significant bit as a sign
2438 * bit. If the most significant bit is already set and the integer is
2439 * positive, a 0x00 is prepended.
2440 *
2441 * Examples:
2442 *
2443 * 0 => 0x00
2444 * 1 => 0x01
2445 * -1 => 0xff
2446 * 127 => 0x7f
2447 * -127 => 0x81
2448 * 128 => 0x0080
2449 * -128 => 0x80
2450 * 255 => 0x00ff
2451 * -255 => 0xff01
2452 * 16300 => 0x3fac
2453 * -16300 => 0xc054
2454 * 62300 => 0x00f35c
2455 * -62300 => 0xff0ca4
2456*/
2457BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
3af2954a 2458
ab78acc6
IC
2459BigInteger.fromBuffer = function(buffer) {
2460 // BigInteger expects a DER integer conformant byte array
2461 if (buffer[0] & 0x80) {
2462 var byteArray = Array.prototype.slice.call(buffer)
3af2954a 2463
ab78acc6 2464 return new BigInteger([0].concat(byteArray))
3af2954a
IC
2465 }
2466
ab78acc6
IC
2467 return new BigInteger(buffer)
2468}
3af2954a 2469
ab78acc6
IC
2470BigInteger.fromHex = function(hex) {
2471 if (hex === '') return BigInteger.ZERO
3af2954a 2472
ab78acc6
IC
2473 assert.equal(hex, hex.match(/^[A-Fa-f0-9]+/), 'Invalid hex string')
2474 assert.equal(hex.length % 2, 0, 'Incomplete hex')
2475 return new BigInteger(hex, 16)
2476}
3af2954a 2477
ab78acc6
IC
2478BigInteger.prototype.toBuffer = function(size) {
2479 var byteArray = this.toByteArrayUnsigned()
2480 var zeros = []
3af2954a 2481
ab78acc6
IC
2482 var padding = size - byteArray.length
2483 while (zeros.length < padding) zeros.push(0)
3af2954a 2484
ab78acc6
IC
2485 return new Buffer(zeros.concat(byteArray))
2486}
3af2954a 2487
ab78acc6
IC
2488BigInteger.prototype.toHex = function(size) {
2489 return this.toBuffer(size).toString('hex')
2490}
3af2954a 2491
ab78acc6
IC
2492}).call(this,require("buffer").Buffer)
2493},{"./bigi":1,"assert":5,"buffer":7}],3:[function(require,module,exports){
2494var BigInteger = require('./bigi')
3af2954a 2495
ab78acc6
IC
2496//addons
2497require('./convert')
3af2954a 2498
ab78acc6
IC
2499module.exports = BigInteger
2500},{"./bigi":1,"./convert":2}],4:[function(require,module,exports){
2501module.exports={
2502 "name": "bigi",
2503 "version": "1.4.0",
2504 "description": "Big integers.",
2505 "keywords": [
2506 "cryptography",
2507 "math",
2508 "bitcoin",
2509 "arbitrary",
2510 "precision",
2511 "arithmetic",
2512 "big",
2513 "integer",
2514 "int",
2515 "number",
2516 "biginteger",
2517 "bigint",
2518 "bignumber",
2519 "decimal",
2520 "float"
2521 ],
2522 "devDependencies": {
2523 "mocha": "^1.20.1",
2524 "jshint": "^2.5.1",
2525 "coveralls": "^2.10.0",
2526 "istanbul": "^0.2.11"
2527 },
2528 "repository": {
2529 "url": "https://github.com/cryptocoinjs/bigi",
2530 "type": "git"
2531 },
2532 "main": "./lib/index.js",
2533 "scripts": {
2534 "test": "_mocha -- test/*.js",
2535 "jshint": "jshint --config jshint.json lib/*.js ; true",
2536 "unit": "mocha",
2537 "coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
2538 "coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
2539 },
2540 "dependencies": {},
2541 "testling": {
2542 "files": "test/*.js",
2543 "harness": "mocha",
2544 "browsers": [
2545 "ie/9..latest",
2546 "firefox/latest",
2547 "chrome/latest",
2548 "safari/6.0..latest",
2549 "iphone/6.0..latest",
2550 "android-browser/4.2..latest"
2551 ]
2552 },
2553 "bugs": {
2554 "url": "https://github.com/cryptocoinjs/bigi/issues"
2555 },
2556 "homepage": "https://github.com/cryptocoinjs/bigi",
2557 "_id": "bigi@1.4.0",
2558 "dist": {
2559 "shasum": "90ac1aeac0a531216463bdb58f42c1e05c8407ac",
2560 "tarball": "http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
2561 },
2562 "_from": "bigi@^1.4.0",
2563 "_npmVersion": "1.4.3",
2564 "_npmUser": {
2565 "name": "jp",
2566 "email": "jprichardson@gmail.com"
2567 },
2568 "maintainers": [
2569 {
2570 "name": "jp",
2571 "email": "jprichardson@gmail.com"
2572 },
2573 {
2574 "name": "midnightlightning",
2575 "email": "boydb@midnightdesign.ws"
2576 },
2577 {
2578 "name": "sidazhang",
2579 "email": "sidazhang89@gmail.com"
2580 },
2581 {
2582 "name": "nadav",
2583 "email": "npm@shesek.info"
3af2954a 2584 }
ab78acc6
IC
2585 ],
2586 "directories": {},
2587 "_shasum": "90ac1aeac0a531216463bdb58f42c1e05c8407ac",
2588 "_resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
2589}
3af2954a 2590
ab78acc6
IC
2591},{}],5:[function(require,module,exports){
2592// http://wiki.commonjs.org/wiki/Unit_Testing/1.0
2593//
2594// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
2595//
2596// Originally from narwhal.js (http://narwhaljs.org)
2597// Copyright (c) 2009 Thomas Robinson <280north.com>
2598//
2599// Permission is hereby granted, free of charge, to any person obtaining a copy
2600// of this software and associated documentation files (the 'Software'), to
2601// deal in the Software without restriction, including without limitation the
2602// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
2603// sell copies of the Software, and to permit persons to whom the Software is
2604// furnished to do so, subject to the following conditions:
2605//
2606// The above copyright notice and this permission notice shall be included in
2607// all copies or substantial portions of the Software.
2608//
2609// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2610// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2611// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2612// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
2613// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
2614// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3af2954a 2615
ab78acc6
IC
2616// when used in node, this will actually load the util module we depend on
2617// versus loading the builtin util module as happens otherwise
2618// this is a bug in node module loading as far as I am concerned
2619var util = require('util/');
3af2954a 2620
ab78acc6
IC
2621var pSlice = Array.prototype.slice;
2622var hasOwn = Object.prototype.hasOwnProperty;
3af2954a 2623
ab78acc6
IC
2624// 1. The assert module provides functions that throw
2625// AssertionError's when particular conditions are not met. The
2626// assert module must conform to the following interface.
3af2954a 2627
ab78acc6 2628var assert = module.exports = ok;
3af2954a 2629
ab78acc6
IC
2630// 2. The AssertionError is defined in assert.
2631// new assert.AssertionError({ message: message,
2632// actual: actual,
2633// expected: expected })
3af2954a 2634
ab78acc6
IC
2635assert.AssertionError = function AssertionError(options) {
2636 this.name = 'AssertionError';
2637 this.actual = options.actual;
2638 this.expected = options.expected;
2639 this.operator = options.operator;
2640 if (options.message) {
2641 this.message = options.message;
2642 this.generatedMessage = false;
2643 } else {
2644 this.message = getMessage(this);
2645 this.generatedMessage = true;
2646 }
2647 var stackStartFunction = options.stackStartFunction || fail;
3af2954a 2648
ab78acc6
IC
2649 if (Error.captureStackTrace) {
2650 Error.captureStackTrace(this, stackStartFunction);
3af2954a 2651 }
ab78acc6
IC
2652 else {
2653 // non v8 browsers so we can have a stacktrace
2654 var err = new Error();
2655 if (err.stack) {
2656 var out = err.stack;
3af2954a 2657
ab78acc6
IC
2658 // try to strip useless frames
2659 var fn_name = stackStartFunction.name;
2660 var idx = out.indexOf('\n' + fn_name);
2661 if (idx >= 0) {
2662 // once we have located the function frame
2663 // we need to strip out everything before it (and its line)
2664 var next_line = out.indexOf('\n', idx + 1);
2665 out = out.substring(next_line + 1);
2666 }
3af2954a 2667
ab78acc6 2668 this.stack = out;
3af2954a 2669 }
3af2954a 2670 }
ab78acc6 2671};
3af2954a 2672
ab78acc6
IC
2673// assert.AssertionError instanceof Error
2674util.inherits(assert.AssertionError, Error);
3af2954a 2675
ab78acc6
IC
2676function replacer(key, value) {
2677 if (util.isUndefined(value)) {
2678 return '' + value;
2679 }
2680 if (util.isNumber(value) && !isFinite(value)) {
2681 return value.toString();
2682 }
2683 if (util.isFunction(value) || util.isRegExp(value)) {
2684 return value.toString();
2685 }
2686 return value;
2687}
3af2954a 2688
ab78acc6
IC
2689function truncate(s, n) {
2690 if (util.isString(s)) {
2691 return s.length < n ? s : s.slice(0, n);
2692 } else {
2693 return s;
2694 }
2695}
3af2954a 2696
ab78acc6
IC
2697function getMessage(self) {
2698 return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' +
2699 self.operator + ' ' +
2700 truncate(JSON.stringify(self.expected, replacer), 128);
2701}
3af2954a 2702
ab78acc6
IC
2703// At present only the three keys mentioned above are used and
2704// understood by the spec. Implementations or sub modules can pass
2705// other keys to the AssertionError's constructor - they will be
2706// ignored.
3af2954a 2707
ab78acc6
IC
2708// 3. All of the following functions must throw an AssertionError
2709// when a corresponding condition is not met, with a message that
2710// may be undefined if not provided. All assertion methods provide
2711// both the actual and expected values to the assertion error for
2712// display purposes.
3af2954a 2713
ab78acc6
IC
2714function fail(actual, expected, message, operator, stackStartFunction) {
2715 throw new assert.AssertionError({
2716 message: message,
2717 actual: actual,
2718 expected: expected,
2719 operator: operator,
2720 stackStartFunction: stackStartFunction
2721 });
2722}
3af2954a 2723
ab78acc6
IC
2724// EXTENSION! allows for well behaved errors defined elsewhere.
2725assert.fail = fail;
ebd8d4e8 2726
ab78acc6
IC
2727// 4. Pure assertion tests whether a value is truthy, as determined
2728// by !!guard.
2729// assert.ok(guard, message_opt);
2730// This statement is equivalent to assert.equal(true, !!guard,
2731// message_opt);. To test strictly for the value true, use
2732// assert.strictEqual(true, guard, message_opt);.
3af2954a 2733
ab78acc6
IC
2734function ok(value, message) {
2735 if (!value) fail(value, true, message, '==', assert.ok);
2736}
2737assert.ok = ok;
3af2954a 2738
ab78acc6
IC
2739// 5. The equality assertion tests shallow, coercive equality with
2740// ==.
2741// assert.equal(actual, expected, message_opt);
3af2954a 2742
ab78acc6
IC
2743assert.equal = function equal(actual, expected, message) {
2744 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
2745};
3af2954a 2746
ab78acc6
IC
2747// 6. The non-equality assertion tests for whether two objects are not equal
2748// with != assert.notEqual(actual, expected, message_opt);
3af2954a 2749
ab78acc6
IC
2750assert.notEqual = function notEqual(actual, expected, message) {
2751 if (actual == expected) {
2752 fail(actual, expected, message, '!=', assert.notEqual);
3af2954a 2753 }
ab78acc6 2754};
3af2954a 2755
ab78acc6
IC
2756// 7. The equivalence assertion tests a deep equality relation.
2757// assert.deepEqual(actual, expected, message_opt);
3af2954a 2758
ab78acc6
IC
2759assert.deepEqual = function deepEqual(actual, expected, message) {
2760 if (!_deepEqual(actual, expected)) {
2761 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
2762 }
2763};
3af2954a 2764
ab78acc6
IC
2765function _deepEqual(actual, expected) {
2766 // 7.1. All identical values are equivalent, as determined by ===.
2767 if (actual === expected) {
2768 return true;
3af2954a 2769
ab78acc6
IC
2770 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
2771 if (actual.length != expected.length) return false;
3af2954a 2772
ab78acc6
IC
2773 for (var i = 0; i < actual.length; i++) {
2774 if (actual[i] !== expected[i]) return false;
3af2954a
IC
2775 }
2776
ab78acc6 2777 return true;
3af2954a 2778
ab78acc6
IC
2779 // 7.2. If the expected value is a Date object, the actual value is
2780 // equivalent if it is also a Date object that refers to the same time.
2781 } else if (util.isDate(actual) && util.isDate(expected)) {
2782 return actual.getTime() === expected.getTime();
3af2954a 2783
ab78acc6
IC
2784 // 7.3 If the expected value is a RegExp object, the actual value is
2785 // equivalent if it is also a RegExp object with the same source and
2786 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
2787 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
2788 return actual.source === expected.source &&
2789 actual.global === expected.global &&
2790 actual.multiline === expected.multiline &&
2791 actual.lastIndex === expected.lastIndex &&
2792 actual.ignoreCase === expected.ignoreCase;
3af2954a 2793
ab78acc6
IC
2794 // 7.4. Other pairs that do not both pass typeof value == 'object',
2795 // equivalence is determined by ==.
2796 } else if (!util.isObject(actual) && !util.isObject(expected)) {
2797 return actual == expected;
3af2954a 2798
ab78acc6
IC
2799 // 7.5 For all other Object pairs, including Array objects, equivalence is
2800 // determined by having the same number of owned properties (as verified
2801 // with Object.prototype.hasOwnProperty.call), the same set of keys
2802 // (although not necessarily the same order), equivalent values for every
2803 // corresponding key, and an identical 'prototype' property. Note: this
2804 // accounts for both named and indexed properties on Arrays.
2805 } else {
2806 return objEquiv(actual, expected);
3af2954a 2807 }
ab78acc6 2808}
3af2954a 2809
ab78acc6
IC
2810function isArguments(object) {
2811 return Object.prototype.toString.call(object) == '[object Arguments]';
2812}
3af2954a 2813
ab78acc6
IC
2814function objEquiv(a, b) {
2815 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
2816 return false;
2817 // an identical 'prototype' property.
2818 if (a.prototype !== b.prototype) return false;
2819 // if one is a primitive, the other must be same
2820 if (util.isPrimitive(a) || util.isPrimitive(b)) {
2821 return a === b;
3af2954a 2822 }
ab78acc6
IC
2823 var aIsArgs = isArguments(a),
2824 bIsArgs = isArguments(b);
2825 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
2826 return false;
2827 if (aIsArgs) {
2828 a = pSlice.call(a);
2829 b = pSlice.call(b);
2830 return _deepEqual(a, b);
3af2954a 2831 }
ab78acc6
IC
2832 var ka = objectKeys(a),
2833 kb = objectKeys(b),
2834 key, i;
2835 // having the same number of owned properties (keys incorporates
2836 // hasOwnProperty)
2837 if (ka.length != kb.length)
2838 return false;
2839 //the same set of keys (although not necessarily the same order),
2840 ka.sort();
2841 kb.sort();
2842 //~~~cheap key test
2843 for (i = ka.length - 1; i >= 0; i--) {
2844 if (ka[i] != kb[i])
2845 return false;
3af2954a 2846 }
ab78acc6
IC
2847 //equivalent values for every corresponding key, and
2848 //~~~possibly expensive deep test
2849 for (i = ka.length - 1; i >= 0; i--) {
2850 key = ka[i];
2851 if (!_deepEqual(a[key], b[key])) return false;
3af2954a 2852 }
ab78acc6
IC
2853 return true;
2854}
2855
2856// 8. The non-equivalence assertion tests for any deep inequality.
2857// assert.notDeepEqual(actual, expected, message_opt);
3af2954a 2858
ab78acc6
IC
2859assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
2860 if (_deepEqual(actual, expected)) {
2861 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
3af2954a 2862 }
ab78acc6 2863};
3af2954a 2864
ab78acc6
IC
2865// 9. The strict equality assertion tests strict equality, as determined by ===.
2866// assert.strictEqual(actual, expected, message_opt);
3af2954a 2867
ab78acc6
IC
2868assert.strictEqual = function strictEqual(actual, expected, message) {
2869 if (actual !== expected) {
2870 fail(actual, expected, message, '===', assert.strictEqual);
3af2954a 2871 }
ab78acc6 2872};
3af2954a 2873
ab78acc6
IC
2874// 10. The strict non-equality assertion tests for strict inequality, as
2875// determined by !==. assert.notStrictEqual(actual, expected, message_opt);
3af2954a 2876
ab78acc6
IC
2877assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
2878 if (actual === expected) {
2879 fail(actual, expected, message, '!==', assert.notStrictEqual);
2880 }
2881};
3af2954a 2882
ab78acc6
IC
2883function expectedException(actual, expected) {
2884 if (!actual || !expected) {
2885 return false;
2886 }
3af2954a 2887
ab78acc6
IC
2888 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
2889 return expected.test(actual);
2890 } else if (actual instanceof expected) {
2891 return true;
2892 } else if (expected.call({}, actual) === true) {
2893 return true;
3af2954a
IC
2894 }
2895
ab78acc6
IC
2896 return false;
2897}
3af2954a 2898
ab78acc6
IC
2899function _throws(shouldThrow, block, expected, message) {
2900 var actual;
3af2954a 2901
ab78acc6
IC
2902 if (util.isString(expected)) {
2903 message = expected;
2904 expected = null;
3af2954a
IC
2905 }
2906
ab78acc6
IC
2907 try {
2908 block();
2909 } catch (e) {
2910 actual = e;
3af2954a
IC
2911 }
2912
ab78acc6
IC
2913 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
2914 (message ? ' ' + message : '.');
3af2954a 2915
ab78acc6
IC
2916 if (shouldThrow && !actual) {
2917 fail(actual, expected, 'Missing expected exception' + message);
3af2954a
IC
2918 }
2919
ab78acc6
IC
2920 if (!shouldThrow && expectedException(actual, expected)) {
2921 fail(actual, expected, 'Got unwanted exception' + message);
3af2954a
IC
2922 }
2923
ab78acc6
IC
2924 if ((shouldThrow && actual && expected &&
2925 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
2926 throw actual;
3af2954a 2927 }
ab78acc6 2928}
3af2954a 2929
ab78acc6
IC
2930// 11. Expected to throw an error:
2931// assert.throws(block, Error_opt, message_opt);
3af2954a 2932
ab78acc6
IC
2933assert.throws = function(block, /*optional*/error, /*optional*/message) {
2934 _throws.apply(this, [true].concat(pSlice.call(arguments)));
2935};
3af2954a 2936
ab78acc6
IC
2937// EXTENSION! This is annoying to write outside this module.
2938assert.doesNotThrow = function(block, /*optional*/message) {
2939 _throws.apply(this, [false].concat(pSlice.call(arguments)));
2940};
3af2954a 2941
ab78acc6 2942assert.ifError = function(err) { if (err) {throw err;}};
3af2954a 2943
ab78acc6
IC
2944var objectKeys = Object.keys || function (obj) {
2945 var keys = [];
2946 for (var key in obj) {
2947 if (hasOwn.call(obj, key)) keys.push(key);
3af2954a 2948 }
ab78acc6
IC
2949 return keys;
2950};
3af2954a 2951
ab78acc6 2952},{"util/":29}],6:[function(require,module,exports){
3af2954a 2953
ab78acc6
IC
2954},{}],7:[function(require,module,exports){
2955/*!
2956 * The buffer module from node.js, for the browser.
2957 *
2958 * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
2959 * @license MIT
2960 */
3af2954a 2961
ab78acc6
IC
2962var base64 = require('base64-js')
2963var ieee754 = require('ieee754')
2964var isArray = require('is-array')
3af2954a 2965
ab78acc6
IC
2966exports.Buffer = Buffer
2967exports.SlowBuffer = SlowBuffer
2968exports.INSPECT_MAX_BYTES = 50
2969Buffer.poolSize = 8192 // not used by this implementation
3af2954a 2970
ab78acc6 2971var rootParent = {}
3af2954a 2972
ab78acc6
IC
2973/**
2974 * If `Buffer.TYPED_ARRAY_SUPPORT`:
2975 * === true Use Uint8Array implementation (fastest)
2976 * === false Use Object implementation (most compatible, even IE6)
2977 *
2978 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
2979 * Opera 11.6+, iOS 4.2+.
2980 *
2981 * Due to various browser bugs, sometimes the Object implementation will be used even
2982 * when the browser supports typed arrays.
2983 *
2984 * Note:
2985 *
2986 * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
2987 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
2988 *
2989 * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property
2990 * on objects.
2991 *
2992 * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
2993 *
2994 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
2995 * incorrect length in some situations.
3af2954a 2996
ab78acc6
IC
2997 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
2998 * get the Object implementation, which is slower but behaves correctly.
2999 */
3000Buffer.TYPED_ARRAY_SUPPORT = (function () {
3001 function Bar () {}
3002 try {
3003 var arr = new Uint8Array(1)
3004 arr.foo = function () { return 42 }
3005 arr.constructor = Bar
3006 return arr.foo() === 42 && // typed array instances can be augmented
3007 arr.constructor === Bar && // constructor can be set
3008 typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
3009 arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
3010 } catch (e) {
3011 return false
3012 }
3013})()
3af2954a 3014
ab78acc6
IC
3015function kMaxLength () {
3016 return Buffer.TYPED_ARRAY_SUPPORT
3017 ? 0x7fffffff
3018 : 0x3fffffff
3019}
3af2954a 3020
ab78acc6
IC
3021/**
3022 * Class: Buffer
3023 * =============
3024 *
3025 * The Buffer constructor returns instances of `Uint8Array` that are augmented
3026 * with function properties for all the node `Buffer` API functions. We use
3027 * `Uint8Array` so that square bracket notation works as expected -- it returns
3028 * a single octet.
3029 *
3030 * By augmenting the instances, we can avoid modifying the `Uint8Array`
3031 * prototype.
3032 */
3033function Buffer (arg) {
3034 if (!(this instanceof Buffer)) {
3035 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
3036 if (arguments.length > 1) return new Buffer(arg, arguments[1])
3037 return new Buffer(arg)
3af2954a
IC
3038 }
3039
ab78acc6
IC
3040 this.length = 0
3041 this.parent = undefined
3af2954a 3042
ab78acc6
IC
3043 // Common case.
3044 if (typeof arg === 'number') {
3045 return fromNumber(this, arg)
3046 }
3af2954a 3047
ab78acc6
IC
3048 // Slightly less common case.
3049 if (typeof arg === 'string') {
3050 return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')
3051 }
3af2954a 3052
ab78acc6
IC
3053 // Unusual.
3054 return fromObject(this, arg)
3055}
3af2954a 3056
ab78acc6
IC
3057function fromNumber (that, length) {
3058 that = allocate(that, length < 0 ? 0 : checked(length) | 0)
3059 if (!Buffer.TYPED_ARRAY_SUPPORT) {
3060 for (var i = 0; i < length; i++) {
3061 that[i] = 0
3062 }
3af2954a 3063 }
ab78acc6
IC
3064 return that
3065}
3af2954a 3066
ab78acc6
IC
3067function fromString (that, string, encoding) {
3068 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
3af2954a 3069
ab78acc6
IC
3070 // Assumption: byteLength() return value is always < kMaxLength.
3071 var length = byteLength(string, encoding) | 0
3072 that = allocate(that, length)
3af2954a 3073
ab78acc6
IC
3074 that.write(string, encoding)
3075 return that
3076}
3af2954a 3077
ab78acc6
IC
3078function fromObject (that, object) {
3079 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
3af2954a 3080
ab78acc6 3081 if (isArray(object)) return fromArray(that, object)
3af2954a 3082
ab78acc6
IC
3083 if (object == null) {
3084 throw new TypeError('must start with number, buffer, array or string')
3085 }
3af2954a 3086
ab78acc6
IC
3087 if (typeof ArrayBuffer !== 'undefined') {
3088 if (object.buffer instanceof ArrayBuffer) {
3089 return fromTypedArray(that, object)
3090 }
3091 if (object instanceof ArrayBuffer) {
3092 return fromArrayBuffer(that, object)
3093 }
3af2954a
IC
3094 }
3095
ab78acc6 3096 if (object.length) return fromArrayLike(that, object)
3af2954a 3097
ab78acc6
IC
3098 return fromJsonObject(that, object)
3099}
3af2954a 3100
ab78acc6
IC
3101function fromBuffer (that, buffer) {
3102 var length = checked(buffer.length) | 0
3103 that = allocate(that, length)
3104 buffer.copy(that, 0, 0, length)
3105 return that
3106}
3af2954a 3107
ab78acc6
IC
3108function fromArray (that, array) {
3109 var length = checked(array.length) | 0
3110 that = allocate(that, length)
3111 for (var i = 0; i < length; i += 1) {
3112 that[i] = array[i] & 255
3af2954a 3113 }
ab78acc6
IC
3114 return that
3115}
3af2954a 3116
ab78acc6
IC
3117// Duplicate of fromArray() to keep fromArray() monomorphic.
3118function fromTypedArray (that, array) {
3119 var length = checked(array.length) | 0
3120 that = allocate(that, length)
3121 // Truncating the elements is probably not what people expect from typed
3122 // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior
3123 // of the old Buffer constructor.
3124 for (var i = 0; i < length; i += 1) {
3125 that[i] = array[i] & 255
3af2954a 3126 }
ab78acc6
IC
3127 return that
3128}
3af2954a 3129
ab78acc6
IC
3130function fromArrayBuffer (that, array) {
3131 if (Buffer.TYPED_ARRAY_SUPPORT) {
3132 // Return an augmented `Uint8Array` instance, for best performance
3133 array.byteLength
3134 that = Buffer._augment(new Uint8Array(array))
3135 } else {
3136 // Fallback: Return an object instance of the Buffer class
3137 that = fromTypedArray(that, new Uint8Array(array))
3138 }
3139 return that
3140}
3af2954a 3141
ab78acc6
IC
3142function fromArrayLike (that, array) {
3143 var length = checked(array.length) | 0
3144 that = allocate(that, length)
3145 for (var i = 0; i < length; i += 1) {
3146 that[i] = array[i] & 255
3af2954a 3147 }
ab78acc6
IC
3148 return that
3149}
3af2954a 3150
ab78acc6
IC
3151// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.
3152// Returns a zero-length buffer for inputs that don't conform to the spec.
3153function fromJsonObject (that, object) {
3154 var array
3155 var length = 0
3156
3157 if (object.type === 'Buffer' && isArray(object.data)) {
3158 array = object.data
3159 length = checked(array.length) | 0
3af2954a 3160 }
ab78acc6 3161 that = allocate(that, length)
3af2954a 3162
ab78acc6
IC
3163 for (var i = 0; i < length; i += 1) {
3164 that[i] = array[i] & 255
3af2954a 3165 }
ab78acc6
IC
3166 return that
3167}
3af2954a 3168
ab78acc6
IC
3169function allocate (that, length) {
3170 if (Buffer.TYPED_ARRAY_SUPPORT) {
3171 // Return an augmented `Uint8Array` instance, for best performance
3172 that = Buffer._augment(new Uint8Array(length))
3173 } else {
3174 // Fallback: Return an object instance of the Buffer class
3175 that.length = length
3176 that._isBuffer = true
3177 }
3af2954a 3178
ab78acc6
IC
3179 var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1
3180 if (fromPool) that.parent = rootParent
3af2954a 3181
ab78acc6
IC
3182 return that
3183}
3af2954a 3184
ab78acc6
IC
3185function checked (length) {
3186 // Note: cannot use `length < kMaxLength` here because that fails when
3187 // length is NaN (which is otherwise coerced to zero.)
3188 if (length >= kMaxLength()) {
3189 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
3190 'size: 0x' + kMaxLength().toString(16) + ' bytes')
3af2954a 3191 }
ab78acc6
IC
3192 return length | 0
3193}
3af2954a 3194
ab78acc6
IC
3195function SlowBuffer (subject, encoding) {
3196 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
3af2954a 3197
ab78acc6
IC
3198 var buf = new Buffer(subject, encoding)
3199 delete buf.parent
3200 return buf
3201}
3af2954a 3202
ab78acc6
IC
3203Buffer.isBuffer = function isBuffer (b) {
3204 return !!(b != null && b._isBuffer)
3205}
3af2954a 3206
ab78acc6
IC
3207Buffer.compare = function compare (a, b) {
3208 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
3209 throw new TypeError('Arguments must be Buffers')
3af2954a
IC
3210 }
3211
ab78acc6 3212 if (a === b) return 0
3af2954a 3213
ab78acc6
IC
3214 var x = a.length
3215 var y = b.length
3af2954a 3216
ab78acc6
IC
3217 var i = 0
3218 var len = Math.min(x, y)
3219 while (i < len) {
3220 if (a[i] !== b[i]) break
3af2954a 3221
ab78acc6
IC
3222 ++i
3223 }
3af2954a 3224
ab78acc6
IC
3225 if (i !== len) {
3226 x = a[i]
3227 y = b[i]
3228 }
3af2954a 3229
ab78acc6
IC
3230 if (x < y) return -1
3231 if (y < x) return 1
3232 return 0
3233}
3af2954a 3234
ab78acc6
IC
3235Buffer.isEncoding = function isEncoding (encoding) {
3236 switch (String(encoding).toLowerCase()) {
3237 case 'hex':
3238 case 'utf8':
3239 case 'utf-8':
3240 case 'ascii':
3241 case 'binary':
3242 case 'base64':
3243 case 'raw':
3244 case 'ucs2':
3245 case 'ucs-2':
3246 case 'utf16le':
3247 case 'utf-16le':
3248 return true
3249 default:
3250 return false
3af2954a 3251 }
ab78acc6 3252}
3af2954a 3253
ab78acc6
IC
3254Buffer.concat = function concat (list, length) {
3255 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
3af2954a 3256
ab78acc6
IC
3257 if (list.length === 0) {
3258 return new Buffer(0)
3af2954a
IC
3259 }
3260
ab78acc6
IC
3261 var i
3262 if (length === undefined) {
3263 length = 0
3264 for (i = 0; i < list.length; i++) {
3265 length += list[i].length
3266 }
3af2954a
IC
3267 }
3268
ab78acc6
IC
3269 var buf = new Buffer(length)
3270 var pos = 0
3271 for (i = 0; i < list.length; i++) {
3272 var item = list[i]
3273 item.copy(buf, pos)
3274 pos += item.length
3275 }
3276 return buf
3277}
3af2954a 3278
ab78acc6
IC
3279function byteLength (string, encoding) {
3280 if (typeof string !== 'string') string = '' + string
3281
3282 var len = string.length
3283 if (len === 0) return 0
3284
3285 // Use a for loop to avoid recursion
3286 var loweredCase = false
3287 for (;;) {
3288 switch (encoding) {
3289 case 'ascii':
3290 case 'binary':
3291 // Deprecated
3292 case 'raw':
3293 case 'raws':
3294 return len
3295 case 'utf8':
3296 case 'utf-8':
3297 return utf8ToBytes(string).length
3298 case 'ucs2':
3299 case 'ucs-2':
3300 case 'utf16le':
3301 case 'utf-16le':
3302 return len * 2
3303 case 'hex':
3304 return len >>> 1
3305 case 'base64':
3306 return base64ToBytes(string).length
3307 default:
3308 if (loweredCase) return utf8ToBytes(string).length // assume utf8
3309 encoding = ('' + encoding).toLowerCase()
3310 loweredCase = true
3af2954a 3311 }
3af2954a 3312 }
ab78acc6
IC
3313}
3314Buffer.byteLength = byteLength
3af2954a 3315
ab78acc6
IC
3316// pre-set for values that may exist in the future
3317Buffer.prototype.length = undefined
3318Buffer.prototype.parent = undefined
3af2954a 3319
ab78acc6
IC
3320function slowToString (encoding, start, end) {
3321 var loweredCase = false
3af2954a 3322
ab78acc6
IC
3323 start = start | 0
3324 end = end === undefined || end === Infinity ? this.length : end | 0
3af2954a 3325
ab78acc6
IC
3326 if (!encoding) encoding = 'utf8'
3327 if (start < 0) start = 0
3328 if (end > this.length) end = this.length
3329 if (end <= start) return ''
3af2954a 3330
ab78acc6
IC
3331 while (true) {
3332 switch (encoding) {
3333 case 'hex':
3334 return hexSlice(this, start, end)
3af2954a 3335
ab78acc6
IC
3336 case 'utf8':
3337 case 'utf-8':
3338 return utf8Slice(this, start, end)
3af2954a 3339
ab78acc6
IC
3340 case 'ascii':
3341 return asciiSlice(this, start, end)
3af2954a 3342
ab78acc6
IC
3343 case 'binary':
3344 return binarySlice(this, start, end)
3af2954a 3345
ab78acc6
IC
3346 case 'base64':
3347 return base64Slice(this, start, end)
3af2954a 3348
ab78acc6
IC
3349 case 'ucs2':
3350 case 'ucs-2':
3351 case 'utf16le':
3352 case 'utf-16le':
3353 return utf16leSlice(this, start, end)
3af2954a 3354
ab78acc6
IC
3355 default:
3356 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
3357 encoding = (encoding + '').toLowerCase()
3358 loweredCase = true
3359 }
3af2954a 3360 }
ab78acc6 3361}
3af2954a 3362
ab78acc6
IC
3363Buffer.prototype.toString = function toString () {
3364 var length = this.length | 0
3365 if (length === 0) return ''
3366 if (arguments.length === 0) return utf8Slice(this, 0, length)
3367 return slowToString.apply(this, arguments)
3368}
3af2954a 3369
ab78acc6
IC
3370Buffer.prototype.equals = function equals (b) {
3371 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
3372 if (this === b) return true
3373 return Buffer.compare(this, b) === 0
3374}
3af2954a 3375
ab78acc6
IC
3376Buffer.prototype.inspect = function inspect () {
3377 var str = ''
3378 var max = exports.INSPECT_MAX_BYTES
3379 if (this.length > 0) {
3380 str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
3381 if (this.length > max) str += ' ... '
3af2954a 3382 }
ab78acc6
IC
3383 return '<Buffer ' + str + '>'
3384}
3af2954a 3385
ab78acc6
IC
3386Buffer.prototype.compare = function compare (b) {
3387 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
3388 if (this === b) return 0
3389 return Buffer.compare(this, b)
3390}
3af2954a 3391
ab78acc6
IC
3392Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
3393 if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff
3394 else if (byteOffset < -0x80000000) byteOffset = -0x80000000
3395 byteOffset >>= 0
3af2954a 3396
ab78acc6
IC
3397 if (this.length === 0) return -1
3398 if (byteOffset >= this.length) return -1
3af2954a 3399
ab78acc6
IC
3400 // Negative offsets start from the end of the buffer
3401 if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)
3af2954a 3402
ab78acc6
IC
3403 if (typeof val === 'string') {
3404 if (val.length === 0) return -1 // special case: looking for empty string always fails
3405 return String.prototype.indexOf.call(this, val, byteOffset)
3af2954a 3406 }
ab78acc6
IC
3407 if (Buffer.isBuffer(val)) {
3408 return arrayIndexOf(this, val, byteOffset)
3af2954a 3409 }
ab78acc6
IC
3410 if (typeof val === 'number') {
3411 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
3412 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
3af2954a 3413 }
ab78acc6 3414 return arrayIndexOf(this, [ val ], byteOffset)
3af2954a
IC
3415 }
3416
ab78acc6
IC
3417 function arrayIndexOf (arr, val, byteOffset) {
3418 var foundIndex = -1
3419 for (var i = 0; byteOffset + i < arr.length; i++) {
3420 if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {
3421 if (foundIndex === -1) foundIndex = i
3422 if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex
3af2954a 3423 } else {
ab78acc6 3424 foundIndex = -1
3af2954a 3425 }
3af2954a 3426 }
ab78acc6
IC
3427 return -1
3428 }
3af2954a 3429
ab78acc6
IC
3430 throw new TypeError('val must be string, number or Buffer')
3431}
3af2954a 3432
ab78acc6
IC
3433// `get` is deprecated
3434Buffer.prototype.get = function get (offset) {
3435 console.log('.get() is deprecated. Access using array indexes instead.')
3436 return this.readUInt8(offset)
3437}
3af2954a 3438
ab78acc6
IC
3439// `set` is deprecated
3440Buffer.prototype.set = function set (v, offset) {
3441 console.log('.set() is deprecated. Access using array indexes instead.')
3442 return this.writeUInt8(v, offset)
3443}
3af2954a 3444
ab78acc6
IC
3445function hexWrite (buf, string, offset, length) {
3446 offset = Number(offset) || 0
3447 var remaining = buf.length - offset
3448 if (!length) {
3449 length = remaining
3450 } else {
3451 length = Number(length)
3452 if (length > remaining) {
3453 length = remaining
3454 }
3455 }
3af2954a 3456
ab78acc6
IC
3457 // must be an even number of digits
3458 var strLen = string.length
3459 if (strLen % 2 !== 0) throw new Error('Invalid hex string')
3af2954a 3460
ab78acc6
IC
3461 if (length > strLen / 2) {
3462 length = strLen / 2
3463 }
3464 for (var i = 0; i < length; i++) {
3465 var parsed = parseInt(string.substr(i * 2, 2), 16)
3466 if (isNaN(parsed)) throw new Error('Invalid hex string')
3467 buf[offset + i] = parsed
3af2954a 3468 }
ab78acc6
IC
3469 return i
3470}
3471
3472function utf8Write (buf, string, offset, length) {
3473 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
3474}
3af2954a 3475
ab78acc6
IC
3476function asciiWrite (buf, string, offset, length) {
3477 return blitBuffer(asciiToBytes(string), buf, offset, length)
3478}
3af2954a 3479
ab78acc6
IC
3480function binaryWrite (buf, string, offset, length) {
3481 return asciiWrite(buf, string, offset, length)
3482}
3af2954a 3483
ab78acc6
IC
3484function base64Write (buf, string, offset, length) {
3485 return blitBuffer(base64ToBytes(string), buf, offset, length)
3486}
3af2954a 3487
ab78acc6
IC
3488function ucs2Write (buf, string, offset, length) {
3489 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
3490}
3af2954a 3491
ab78acc6
IC
3492Buffer.prototype.write = function write (string, offset, length, encoding) {
3493 // Buffer#write(string)
3494 if (offset === undefined) {
3495 encoding = 'utf8'
3496 length = this.length
3497 offset = 0
3498 // Buffer#write(string, encoding)
3499 } else if (length === undefined && typeof offset === 'string') {
3500 encoding = offset
3501 length = this.length
3502 offset = 0
3503 // Buffer#write(string, offset[, length][, encoding])
3504 } else if (isFinite(offset)) {
3505 offset = offset | 0
3506 if (isFinite(length)) {
3507 length = length | 0
3508 if (encoding === undefined) encoding = 'utf8'
3509 } else {
3510 encoding = length
3511 length = undefined
3512 }
3513 // legacy write(string, encoding, offset, length) - remove in v0.13
3514 } else {
3515 var swap = encoding
3516 encoding = offset
3517 offset = length | 0
3518 length = swap
3af2954a
IC
3519 }
3520
ab78acc6
IC
3521 var remaining = this.length - offset
3522 if (length === undefined || length > remaining) length = remaining
3af2954a 3523
ab78acc6
IC
3524 if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
3525 throw new RangeError('attempt to write outside buffer bounds')
3526 }
3af2954a 3527
ab78acc6 3528 if (!encoding) encoding = 'utf8'
3af2954a 3529
ab78acc6
IC
3530 var loweredCase = false
3531 for (;;) {
3532 switch (encoding) {
3533 case 'hex':
3534 return hexWrite(this, string, offset, length)
ebd8d4e8 3535
ab78acc6
IC
3536 case 'utf8':
3537 case 'utf-8':
3538 return utf8Write(this, string, offset, length)
ebd8d4e8 3539
ab78acc6
IC
3540 case 'ascii':
3541 return asciiWrite(this, string, offset, length)
ebd8d4e8 3542
ab78acc6
IC
3543 case 'binary':
3544 return binaryWrite(this, string, offset, length)
ebd8d4e8 3545
ab78acc6
IC
3546 case 'base64':
3547 // Warning: maxLength not taken into account in base64Write
3548 return base64Write(this, string, offset, length)
ebd8d4e8 3549
ab78acc6
IC
3550 case 'ucs2':
3551 case 'ucs-2':
3552 case 'utf16le':
3553 case 'utf-16le':
3554 return ucs2Write(this, string, offset, length)
ebd8d4e8 3555
ab78acc6
IC
3556 default:
3557 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
3558 encoding = ('' + encoding).toLowerCase()
3559 loweredCase = true
3560 }
3561 }
3562}
212b1b46 3563
ab78acc6
IC
3564Buffer.prototype.toJSON = function toJSON () {
3565 return {
3566 type: 'Buffer',
3567 data: Array.prototype.slice.call(this._arr || this, 0)
3568 }
3569}
212b1b46 3570
ab78acc6
IC
3571function base64Slice (buf, start, end) {
3572 if (start === 0 && end === buf.length) {
3573 return base64.fromByteArray(buf)
3574 } else {
3575 return base64.fromByteArray(buf.slice(start, end))
3af2954a 3576 }
ab78acc6
IC
3577}
3578
3579function utf8Slice (buf, start, end) {
3580 end = Math.min(buf.length, end)
3581 var firstByte
3582 var secondByte
3583 var thirdByte
3584 var fourthByte
3585 var bytesPerSequence
3586 var tempCodePoint
3587 var codePoint
3588 var res = []
3589 var i = start
3590
3591 for (; i < end; i += bytesPerSequence) {
3592 firstByte = buf[i]
3593 codePoint = 0xFFFD
3594
3595 if (firstByte > 0xEF) {
3596 bytesPerSequence = 4
3597 } else if (firstByte > 0xDF) {
3598 bytesPerSequence = 3
3599 } else if (firstByte > 0xBF) {
3600 bytesPerSequence = 2
3601 } else {
3602 bytesPerSequence = 1
3603 }
212b1b46 3604
ab78acc6
IC
3605 if (i + bytesPerSequence <= end) {
3606 switch (bytesPerSequence) {
3607 case 1:
3608 if (firstByte < 0x80) {
3609 codePoint = firstByte
3610 }
3611 break
3612 case 2:
3613 secondByte = buf[i + 1]
3614 if ((secondByte & 0xC0) === 0x80) {
3615 tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
3616 if (tempCodePoint > 0x7F) {
3617 codePoint = tempCodePoint
3618 }
3619 }
3620 break
3621 case 3:
3622 secondByte = buf[i + 1]
3623 thirdByte = buf[i + 2]
3624 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
3625 tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
3626 if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
3627 codePoint = tempCodePoint
3628 }
3629 }
3630 break
3631 case 4:
3632 secondByte = buf[i + 1]
3633 thirdByte = buf[i + 2]
3634 fourthByte = buf[i + 3]
3635 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
3636 tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
3637 if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
3638 codePoint = tempCodePoint
3639 }
3640 }
3641 }
3642 }
212b1b46 3643
ab78acc6
IC
3644 if (codePoint === 0xFFFD) {
3645 // we generated an invalid codePoint so make sure to only advance by 1 byte
3646 bytesPerSequence = 1
3647 } else if (codePoint > 0xFFFF) {
3648 // encode to utf16 (surrogate pair dance)
3649 codePoint -= 0x10000
3650 res.push(codePoint >>> 10 & 0x3FF | 0xD800)
3651 codePoint = 0xDC00 | codePoint & 0x3FF
3652 }
212b1b46 3653
ab78acc6 3654 res.push(codePoint)
3af2954a 3655 }
212b1b46 3656
ab78acc6
IC
3657 return String.fromCharCode.apply(String, res)
3658}
212b1b46 3659
ab78acc6
IC
3660function asciiSlice (buf, start, end) {
3661 var ret = ''
3662 end = Math.min(buf.length, end)
3663
3664 for (var i = start; i < end; i++) {
3665 ret += String.fromCharCode(buf[i] & 0x7F)
3af2954a 3666 }
ab78acc6
IC
3667 return ret
3668}
212b1b46 3669
ab78acc6
IC
3670function binarySlice (buf, start, end) {
3671 var ret = ''
3672 end = Math.min(buf.length, end)
212b1b46 3673
ab78acc6
IC
3674 for (var i = start; i < end; i++) {
3675 ret += String.fromCharCode(buf[i])
3676 }
3677 return ret
3678}
212b1b46 3679
ab78acc6
IC
3680function hexSlice (buf, start, end) {
3681 var len = buf.length
212b1b46 3682
ab78acc6
IC
3683 if (!start || start < 0) start = 0
3684 if (!end || end < 0 || end > len) end = len
212b1b46 3685
ab78acc6
IC
3686 var out = ''
3687 for (var i = start; i < end; i++) {
3688 out += toHex(buf[i])
3689 }
3690 return out
3691}
212b1b46 3692
ab78acc6
IC
3693function utf16leSlice (buf, start, end) {
3694 var bytes = buf.slice(start, end)
3695 var res = ''
3696 for (var i = 0; i < bytes.length; i += 2) {
3697 res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
3698 }
3699 return res
3700}
212b1b46 3701
ab78acc6
IC
3702Buffer.prototype.slice = function slice (start, end) {
3703 var len = this.length
3704 start = ~~start
3705 end = end === undefined ? len : ~~end
212b1b46 3706
ab78acc6
IC
3707 if (start < 0) {
3708 start += len
3709 if (start < 0) start = 0
3710 } else if (start > len) {
3711 start = len
3712 }
212b1b46 3713
ab78acc6
IC
3714 if (end < 0) {
3715 end += len
3716 if (end < 0) end = 0
3717 } else if (end > len) {
3718 end = len
3719 }
212b1b46 3720
ab78acc6 3721 if (end < start) end = start
212b1b46 3722
ab78acc6
IC
3723 var newBuf
3724 if (Buffer.TYPED_ARRAY_SUPPORT) {
3725 newBuf = Buffer._augment(this.subarray(start, end))
3726 } else {
3727 var sliceLen = end - start
3728 newBuf = new Buffer(sliceLen, undefined)
3729 for (var i = 0; i < sliceLen; i++) {
3730 newBuf[i] = this[i + start]
3af2954a
IC
3731 }
3732 }
212b1b46 3733
ab78acc6 3734 if (newBuf.length) newBuf.parent = this.parent || this
ebd8d4e8 3735
ab78acc6
IC
3736 return newBuf
3737}
ebd8d4e8 3738
ab78acc6
IC
3739/*
3740 * Need to make sure that buffer isn't trying to write out of bounds.
3741 */
3742function checkOffset (offset, ext, length) {
3743 if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
3744 if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
3745}
ebd8d4e8 3746
ab78acc6
IC
3747Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
3748 offset = offset | 0
3749 byteLength = byteLength | 0
3750 if (!noAssert) checkOffset(offset, byteLength, this.length)
3af2954a 3751
ab78acc6
IC
3752 var val = this[offset]
3753 var mul = 1
3754 var i = 0
3755 while (++i < byteLength && (mul *= 0x100)) {
3756 val += this[offset + i] * mul
3757 }
3af2954a 3758
ab78acc6
IC
3759 return val
3760}
3af2954a 3761
ab78acc6
IC
3762Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
3763 offset = offset | 0
3764 byteLength = byteLength | 0
3765 if (!noAssert) {
3766 checkOffset(offset, byteLength, this.length)
3767 }
3af2954a 3768
ab78acc6
IC
3769 var val = this[offset + --byteLength]
3770 var mul = 1
3771 while (byteLength > 0 && (mul *= 0x100)) {
3772 val += this[offset + --byteLength] * mul
3af2954a
IC
3773 }
3774
ab78acc6
IC
3775 return val
3776}
3af2954a 3777
ab78acc6
IC
3778Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
3779 if (!noAssert) checkOffset(offset, 1, this.length)
3780 return this[offset]
3781}
3af2954a 3782
ab78acc6
IC
3783Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
3784 if (!noAssert) checkOffset(offset, 2, this.length)
3785 return this[offset] | (this[offset + 1] << 8)
3786}
3af2954a 3787
ab78acc6
IC
3788Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
3789 if (!noAssert) checkOffset(offset, 2, this.length)
3790 return (this[offset] << 8) | this[offset + 1]
3791}
ebd8d4e8 3792
ab78acc6
IC
3793Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
3794 if (!noAssert) checkOffset(offset, 4, this.length)
3af2954a 3795
ab78acc6
IC
3796 return ((this[offset]) |
3797 (this[offset + 1] << 8) |
3798 (this[offset + 2] << 16)) +
3799 (this[offset + 3] * 0x1000000)
3800}
3af2954a 3801
ab78acc6
IC
3802Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
3803 if (!noAssert) checkOffset(offset, 4, this.length)
ebd8d4e8 3804
ab78acc6
IC
3805 return (this[offset] * 0x1000000) +
3806 ((this[offset + 1] << 16) |
3807 (this[offset + 2] << 8) |
3808 this[offset + 3])
3809}
ebd8d4e8 3810
ab78acc6
IC
3811Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
3812 offset = offset | 0
3813 byteLength = byteLength | 0
3814 if (!noAssert) checkOffset(offset, byteLength, this.length)
ebd8d4e8 3815
ab78acc6
IC
3816 var val = this[offset]
3817 var mul = 1
3818 var i = 0
3819 while (++i < byteLength && (mul *= 0x100)) {
3820 val += this[offset + i] * mul
ebd8d4e8 3821 }
ab78acc6 3822 mul *= 0x80
ebd8d4e8 3823
ab78acc6
IC
3824 if (val >= mul) val -= Math.pow(2, 8 * byteLength)
3825
3826 return val
ebd8d4e8
IC
3827}
3828
ab78acc6
IC
3829Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
3830 offset = offset | 0
3831 byteLength = byteLength | 0
3832 if (!noAssert) checkOffset(offset, byteLength, this.length)
ebd8d4e8 3833
ab78acc6
IC
3834 var i = byteLength
3835 var mul = 1
3836 var val = this[offset + --i]
3837 while (i > 0 && (mul *= 0x100)) {
3838 val += this[offset + --i] * mul
3839 }
3840 mul *= 0x80
ebd8d4e8 3841
ab78acc6 3842 if (val >= mul) val -= Math.pow(2, 8 * byteLength)
ebd8d4e8 3843
ab78acc6
IC
3844 return val
3845}
ebd8d4e8 3846
ab78acc6
IC
3847Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
3848 if (!noAssert) checkOffset(offset, 1, this.length)
3849 if (!(this[offset] & 0x80)) return (this[offset])
3850 return ((0xff - this[offset] + 1) * -1)
ebd8d4e8 3851}
ab78acc6
IC
3852
3853Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
3854 if (!noAssert) checkOffset(offset, 2, this.length)
3855 var val = this[offset] | (this[offset + 1] << 8)
3856 return (val & 0x8000) ? val | 0xFFFF0000 : val
ebd8d4e8 3857}
ab78acc6
IC
3858
3859Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
3860 if (!noAssert) checkOffset(offset, 2, this.length)
3861 var val = this[offset + 1] | (this[offset] << 8)
3862 return (val & 0x8000) ? val | 0xFFFF0000 : val
ebd8d4e8
IC
3863}
3864
ab78acc6
IC
3865Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
3866 if (!noAssert) checkOffset(offset, 4, this.length)
ebd8d4e8 3867
ab78acc6
IC
3868 return (this[offset]) |
3869 (this[offset + 1] << 8) |
3870 (this[offset + 2] << 16) |
3871 (this[offset + 3] << 24)
ebd8d4e8 3872}
ebd8d4e8 3873
ab78acc6
IC
3874Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
3875 if (!noAssert) checkOffset(offset, 4, this.length)
ebd8d4e8 3876
ab78acc6
IC
3877 return (this[offset] << 24) |
3878 (this[offset + 1] << 16) |
3879 (this[offset + 2] << 8) |
3880 (this[offset + 3])
ebd8d4e8
IC
3881}
3882
ab78acc6
IC
3883Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
3884 if (!noAssert) checkOffset(offset, 4, this.length)
3885 return ieee754.read(this, offset, true, 23, 4)
ebd8d4e8
IC
3886}
3887
ab78acc6
IC
3888Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
3889 if (!noAssert) checkOffset(offset, 4, this.length)
3890 return ieee754.read(this, offset, false, 23, 4)
ebd8d4e8
IC
3891}
3892
ab78acc6
IC
3893Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
3894 if (!noAssert) checkOffset(offset, 8, this.length)
3895 return ieee754.read(this, offset, true, 52, 8)
ebd8d4e8
IC
3896}
3897
ab78acc6
IC
3898Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
3899 if (!noAssert) checkOffset(offset, 8, this.length)
3900 return ieee754.read(this, offset, false, 52, 8)
ebd8d4e8
IC
3901}
3902
ab78acc6
IC
3903function checkInt (buf, value, offset, ext, max, min) {
3904 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
3905 if (value > max || value < min) throw new RangeError('value is out of bounds')
3906 if (offset + ext > buf.length) throw new RangeError('index out of range')
ebd8d4e8
IC
3907}
3908
ab78acc6
IC
3909Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
3910 value = +value
3911 offset = offset | 0
3912 byteLength = byteLength | 0
3913 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
ebd8d4e8 3914
ab78acc6
IC
3915 var mul = 1
3916 var i = 0
3917 this[offset] = value & 0xFF
3918 while (++i < byteLength && (mul *= 0x100)) {
3919 this[offset + i] = (value / mul) & 0xFF
3920 }
ebd8d4e8 3921
ab78acc6 3922 return offset + byteLength
ebd8d4e8
IC
3923}
3924
ab78acc6
IC
3925Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
3926 value = +value
3927 offset = offset | 0
3928 byteLength = byteLength | 0
3929 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
ebd8d4e8 3930
ab78acc6
IC
3931 var i = byteLength - 1
3932 var mul = 1
3933 this[offset + i] = value & 0xFF
3934 while (--i >= 0 && (mul *= 0x100)) {
3935 this[offset + i] = (value / mul) & 0xFF
3936 }
ebd8d4e8 3937
ab78acc6 3938 return offset + byteLength
ebd8d4e8
IC
3939}
3940
ab78acc6
IC
3941Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
3942 value = +value
3943 offset = offset | 0
3944 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
3945 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
3946 this[offset] = value
3947 return offset + 1
ebd8d4e8
IC
3948}
3949
ab78acc6
IC
3950function objectWriteUInt16 (buf, value, offset, littleEndian) {
3951 if (value < 0) value = 0xffff + value + 1
3952 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {
3953 buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
3954 (littleEndian ? i : 1 - i) * 8
ebd8d4e8 3955 }
ebd8d4e8
IC
3956}
3957
ab78acc6
IC
3958Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
3959 value = +value
3960 offset = offset | 0
3961 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
3962 if (Buffer.TYPED_ARRAY_SUPPORT) {
3963 this[offset] = value
3964 this[offset + 1] = (value >>> 8)
3965 } else {
3966 objectWriteUInt16(this, value, offset, true)
3967 }
3968 return offset + 2
ebd8d4e8
IC
3969}
3970
ab78acc6
IC
3971Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
3972 value = +value
3973 offset = offset | 0
3974 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
3975 if (Buffer.TYPED_ARRAY_SUPPORT) {
3976 this[offset] = (value >>> 8)
3977 this[offset + 1] = value
3978 } else {
3979 objectWriteUInt16(this, value, offset, false)
ebd8d4e8 3980 }
ab78acc6 3981 return offset + 2
ebd8d4e8
IC
3982}
3983
ab78acc6
IC
3984function objectWriteUInt32 (buf, value, offset, littleEndian) {
3985 if (value < 0) value = 0xffffffff + value + 1
3986 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {
3987 buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
3988 }
ebd8d4e8
IC
3989}
3990
ab78acc6
IC
3991Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
3992 value = +value
3993 offset = offset | 0
3994 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
3995 if (Buffer.TYPED_ARRAY_SUPPORT) {
3996 this[offset + 3] = (value >>> 24)
3997 this[offset + 2] = (value >>> 16)
3998 this[offset + 1] = (value >>> 8)
3999 this[offset] = value
4000 } else {
4001 objectWriteUInt32(this, value, offset, true)
ebd8d4e8 4002 }
ab78acc6 4003 return offset + 4
ebd8d4e8
IC
4004}
4005
ab78acc6
IC
4006Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
4007 value = +value
4008 offset = offset | 0
4009 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
4010 if (Buffer.TYPED_ARRAY_SUPPORT) {
4011 this[offset] = (value >>> 24)
4012 this[offset + 1] = (value >>> 16)
4013 this[offset + 2] = (value >>> 8)
4014 this[offset + 3] = value
4015 } else {
4016 objectWriteUInt32(this, value, offset, false)
ebd8d4e8 4017 }
ab78acc6
IC
4018 return offset + 4
4019}
4020
4021Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
4022 value = +value
4023 offset = offset | 0
4024 if (!noAssert) {
4025 var limit = Math.pow(2, 8 * byteLength - 1)
4026
4027 checkInt(this, value, offset, byteLength, limit - 1, -limit)
ebd8d4e8 4028 }
ab78acc6
IC
4029
4030 var i = 0
4031 var mul = 1
4032 var sub = value < 0 ? 1 : 0
4033 this[offset] = value & 0xFF
4034 while (++i < byteLength && (mul *= 0x100)) {
4035 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
ebd8d4e8 4036 }
ebd8d4e8 4037
ab78acc6 4038 return offset + byteLength
ebd8d4e8
IC
4039}
4040
ab78acc6
IC
4041Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
4042 value = +value
4043 offset = offset | 0
4044 if (!noAssert) {
4045 var limit = Math.pow(2, 8 * byteLength - 1)
ebd8d4e8 4046
ab78acc6
IC
4047 checkInt(this, value, offset, byteLength, limit - 1, -limit)
4048 }
ebd8d4e8 4049
ab78acc6
IC
4050 var i = byteLength - 1
4051 var mul = 1
4052 var sub = value < 0 ? 1 : 0
4053 this[offset + i] = value & 0xFF
4054 while (--i >= 0 && (mul *= 0x100)) {
4055 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
4056 }
4057
4058 return offset + byteLength
ebd8d4e8
IC
4059}
4060
ab78acc6
IC
4061Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
4062 value = +value
4063 offset = offset | 0
4064 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
4065 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
4066 if (value < 0) value = 0xff + value + 1
4067 this[offset] = value
4068 return offset + 1
ebd8d4e8
IC
4069}
4070
ab78acc6
IC
4071Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
4072 value = +value
4073 offset = offset | 0
4074 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
4075 if (Buffer.TYPED_ARRAY_SUPPORT) {
4076 this[offset] = value
4077 this[offset + 1] = (value >>> 8)
4078 } else {
4079 objectWriteUInt16(this, value, offset, true)
4080 }
4081 return offset + 2
ebd8d4e8
IC
4082}
4083
ab78acc6
IC
4084Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
4085 value = +value
4086 offset = offset | 0
4087 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
4088 if (Buffer.TYPED_ARRAY_SUPPORT) {
4089 this[offset] = (value >>> 8)
4090 this[offset + 1] = value
4091 } else {
4092 objectWriteUInt16(this, value, offset, false)
4093 }
4094 return offset + 2
ebd8d4e8
IC
4095}
4096
ab78acc6
IC
4097Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
4098 value = +value
4099 offset = offset | 0
4100 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
4101 if (Buffer.TYPED_ARRAY_SUPPORT) {
4102 this[offset] = value
4103 this[offset + 1] = (value >>> 8)
4104 this[offset + 2] = (value >>> 16)
4105 this[offset + 3] = (value >>> 24)
4106 } else {
4107 objectWriteUInt32(this, value, offset, true)
4108 }
4109 return offset + 4
4110}
4111
4112Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
4113 value = +value
4114 offset = offset | 0
4115 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
4116 if (value < 0) value = 0xffffffff + value + 1
4117 if (Buffer.TYPED_ARRAY_SUPPORT) {
4118 this[offset] = (value >>> 24)
4119 this[offset + 1] = (value >>> 16)
4120 this[offset + 2] = (value >>> 8)
4121 this[offset + 3] = value
4122 } else {
4123 objectWriteUInt32(this, value, offset, false)
ebd8d4e8 4124 }
ab78acc6 4125 return offset + 4
ebd8d4e8
IC
4126}
4127
ab78acc6
IC
4128function checkIEEE754 (buf, value, offset, ext, max, min) {
4129 if (value > max || value < min) throw new RangeError('value is out of bounds')
4130 if (offset + ext > buf.length) throw new RangeError('index out of range')
4131 if (offset < 0) throw new RangeError('index out of range')
4132}
ebd8d4e8 4133
ab78acc6
IC
4134function writeFloat (buf, value, offset, littleEndian, noAssert) {
4135 if (!noAssert) {
4136 checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
4137 }
4138 ieee754.write(buf, value, offset, littleEndian, 23, 4)
4139 return offset + 4
4140}
ebd8d4e8 4141
ab78acc6
IC
4142Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
4143 return writeFloat(this, value, offset, true, noAssert)
4144}
ebd8d4e8 4145
ab78acc6
IC
4146Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
4147 return writeFloat(this, value, offset, false, noAssert)
4148}
ebd8d4e8 4149
ab78acc6
IC
4150function writeDouble (buf, value, offset, littleEndian, noAssert) {
4151 if (!noAssert) {
4152 checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
ebd8d4e8 4153 }
ab78acc6
IC
4154 ieee754.write(buf, value, offset, littleEndian, 52, 8)
4155 return offset + 8
ebd8d4e8
IC
4156}
4157
ab78acc6
IC
4158Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
4159 return writeDouble(this, value, offset, true, noAssert)
ebd8d4e8
IC
4160}
4161
ab78acc6
IC
4162Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
4163 return writeDouble(this, value, offset, false, noAssert)
4164}
ebd8d4e8 4165
ab78acc6
IC
4166// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
4167Buffer.prototype.copy = function copy (target, targetStart, start, end) {
4168 if (!start) start = 0
4169 if (!end && end !== 0) end = this.length
4170 if (targetStart >= target.length) targetStart = target.length
4171 if (!targetStart) targetStart = 0
4172 if (end > 0 && end < start) end = start
4173
4174 // Copy 0 bytes; we're done
4175 if (end === start) return 0
4176 if (target.length === 0 || this.length === 0) return 0
ebd8d4e8 4177
ab78acc6
IC
4178 // Fatal error conditions
4179 if (targetStart < 0) {
4180 throw new RangeError('targetStart out of bounds')
4181 }
4182 if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
4183 if (end < 0) throw new RangeError('sourceEnd out of bounds')
ebd8d4e8 4184
ab78acc6
IC
4185 // Are we oob?
4186 if (end > this.length) end = this.length
4187 if (target.length - targetStart < end - start) {
4188 end = target.length - targetStart + start
4189 }
ebd8d4e8 4190
ab78acc6
IC
4191 var len = end - start
4192 var i
ebd8d4e8 4193
ab78acc6
IC
4194 if (this === target && start < targetStart && targetStart < end) {
4195 // descending copy from end
4196 for (i = len - 1; i >= 0; i--) {
4197 target[i + targetStart] = this[i + start]
4198 }
4199 } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
4200 // ascending copy from start
4201 for (i = 0; i < len; i++) {
4202 target[i + targetStart] = this[i + start]
4203 }
4204 } else {
4205 target._set(this.subarray(start, start + len), targetStart)
ebd8d4e8 4206 }
ebd8d4e8 4207
ab78acc6
IC
4208 return len
4209}
ebd8d4e8 4210
ab78acc6
IC
4211// fill(value, start=0, end=buffer.length)
4212Buffer.prototype.fill = function fill (value, start, end) {
4213 if (!value) value = 0
4214 if (!start) start = 0
4215 if (!end) end = this.length
ebd8d4e8 4216
ab78acc6 4217 if (end < start) throw new RangeError('end < start')
ebd8d4e8 4218
ab78acc6
IC
4219 // Fill 0 bytes; we're done
4220 if (end === start) return
4221 if (this.length === 0) return
ebd8d4e8 4222
ab78acc6
IC
4223 if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')
4224 if (end < 0 || end > this.length) throw new RangeError('end out of bounds')
ebd8d4e8 4225
ab78acc6
IC
4226 var i
4227 if (typeof value === 'number') {
4228 for (i = start; i < end; i++) {
4229 this[i] = value
ebd8d4e8 4230 }
ab78acc6
IC
4231 } else {
4232 var bytes = utf8ToBytes(value.toString())
4233 var len = bytes.length
4234 for (i = start; i < end; i++) {
4235 this[i] = bytes[i % len]
ebd8d4e8
IC
4236 }
4237 }
ebd8d4e8 4238
ab78acc6 4239 return this
ebd8d4e8
IC
4240}
4241
ab78acc6
IC
4242/**
4243 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
4244 * Added in Node 0.12. Only available in browsers that support ArrayBuffer.
4245 */
4246Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
4247 if (typeof Uint8Array !== 'undefined') {
4248 if (Buffer.TYPED_ARRAY_SUPPORT) {
4249 return (new Buffer(this)).buffer
4250 } else {
4251 var buf = new Uint8Array(this.length)
4252 for (var i = 0, len = buf.length; i < len; i += 1) {
4253 buf[i] = this[i]
ebd8d4e8 4254 }
ab78acc6 4255 return buf.buffer
ebd8d4e8 4256 }
ab78acc6
IC
4257 } else {
4258 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
ebd8d4e8 4259 }
ebd8d4e8
IC
4260}
4261
ab78acc6
IC
4262// HELPER FUNCTIONS
4263// ================
ebd8d4e8 4264
ab78acc6 4265var BP = Buffer.prototype
ebd8d4e8 4266
ab78acc6
IC
4267/**
4268 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
4269 */
4270Buffer._augment = function _augment (arr) {
4271 arr.constructor = Buffer
4272 arr._isBuffer = true
ebd8d4e8 4273
ab78acc6
IC
4274 // save reference to original Uint8Array set method before overwriting
4275 arr._set = arr.set
ebd8d4e8 4276
ab78acc6
IC
4277 // deprecated
4278 arr.get = BP.get
4279 arr.set = BP.set
ebd8d4e8 4280
ab78acc6
IC
4281 arr.write = BP.write
4282 arr.toString = BP.toString
4283 arr.toLocaleString = BP.toString
4284 arr.toJSON = BP.toJSON
4285 arr.equals = BP.equals
4286 arr.compare = BP.compare
4287 arr.indexOf = BP.indexOf
4288 arr.copy = BP.copy
4289 arr.slice = BP.slice
4290 arr.readUIntLE = BP.readUIntLE
4291 arr.readUIntBE = BP.readUIntBE
4292 arr.readUInt8 = BP.readUInt8
4293 arr.readUInt16LE = BP.readUInt16LE
4294 arr.readUInt16BE = BP.readUInt16BE
4295 arr.readUInt32LE = BP.readUInt32LE
4296 arr.readUInt32BE = BP.readUInt32BE
4297 arr.readIntLE = BP.readIntLE
4298 arr.readIntBE = BP.readIntBE
4299 arr.readInt8 = BP.readInt8
4300 arr.readInt16LE = BP.readInt16LE
4301 arr.readInt16BE = BP.readInt16BE
4302 arr.readInt32LE = BP.readInt32LE
4303 arr.readInt32BE = BP.readInt32BE
4304 arr.readFloatLE = BP.readFloatLE
4305 arr.readFloatBE = BP.readFloatBE
4306 arr.readDoubleLE = BP.readDoubleLE
4307 arr.readDoubleBE = BP.readDoubleBE
4308 arr.writeUInt8 = BP.writeUInt8
4309 arr.writeUIntLE = BP.writeUIntLE
4310 arr.writeUIntBE = BP.writeUIntBE
4311 arr.writeUInt16LE = BP.writeUInt16LE
4312 arr.writeUInt16BE = BP.writeUInt16BE
4313 arr.writeUInt32LE = BP.writeUInt32LE
4314 arr.writeUInt32BE = BP.writeUInt32BE
4315 arr.writeIntLE = BP.writeIntLE
4316 arr.writeIntBE = BP.writeIntBE
4317 arr.writeInt8 = BP.writeInt8
4318 arr.writeInt16LE = BP.writeInt16LE
4319 arr.writeInt16BE = BP.writeInt16BE
4320 arr.writeInt32LE = BP.writeInt32LE
4321 arr.writeInt32BE = BP.writeInt32BE
4322 arr.writeFloatLE = BP.writeFloatLE
4323 arr.writeFloatBE = BP.writeFloatBE
4324 arr.writeDoubleLE = BP.writeDoubleLE
4325 arr.writeDoubleBE = BP.writeDoubleBE
4326 arr.fill = BP.fill
4327 arr.inspect = BP.inspect
4328 arr.toArrayBuffer = BP.toArrayBuffer
ebd8d4e8 4329
ab78acc6 4330 return arr
ebd8d4e8
IC
4331}
4332
ab78acc6 4333var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
ebd8d4e8 4334
ab78acc6
IC
4335function base64clean (str) {
4336 // Node strips out invalid characters like \n and \t from the string, base64-js does not
4337 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
4338 // Node converts strings with length < 2 to ''
4339 if (str.length < 2) return ''
4340 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
4341 while (str.length % 4 !== 0) {
4342 str = str + '='
4343 }
4344 return str
ebd8d4e8
IC
4345}
4346
ab78acc6
IC
4347function stringtrim (str) {
4348 if (str.trim) return str.trim()
4349 return str.replace(/^\s+|\s+$/g, '')
ebd8d4e8
IC
4350}
4351
ab78acc6
IC
4352function toHex (n) {
4353 if (n < 16) return '0' + n.toString(16)
4354 return n.toString(16)
ebd8d4e8
IC
4355}
4356
ab78acc6
IC
4357function utf8ToBytes (string, units) {
4358 units = units || Infinity
4359 var codePoint
4360 var length = string.length
4361 var leadSurrogate = null
4362 var bytes = []
ebd8d4e8 4363
ab78acc6
IC
4364 for (var i = 0; i < length; i++) {
4365 codePoint = string.charCodeAt(i)
ebd8d4e8 4366
ab78acc6
IC
4367 // is surrogate component
4368 if (codePoint > 0xD7FF && codePoint < 0xE000) {
4369 // last char was a lead
4370 if (!leadSurrogate) {
4371 // no lead yet
4372 if (codePoint > 0xDBFF) {
4373 // unexpected trail
4374 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
4375 continue
ebd8d4e8 4376
ab78acc6
IC
4377 } else if (i + 1 === length) {
4378 // unpaired lead
4379 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
4380 continue
4381 }
ebd8d4e8 4382
ab78acc6
IC
4383 // valid lead
4384 leadSurrogate = codePoint
ebd8d4e8 4385
ab78acc6
IC
4386 continue
4387 }
ebd8d4e8 4388
ab78acc6
IC
4389 // 2 leads in a row
4390 if (codePoint < 0xDC00) {
4391 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
4392 leadSurrogate = codePoint
4393 continue
4394 }
ebd8d4e8 4395
ab78acc6
IC
4396 // valid surrogate pair
4397 codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000
4398
4399 } else if (leadSurrogate) {
4400 // valid bmp char, but last char was a lead
4401 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
4402 }
4403
4404 leadSurrogate = null
4405
4406 // encode utf8
4407 if (codePoint < 0x80) {
4408 if ((units -= 1) < 0) break
4409 bytes.push(codePoint)
4410 } else if (codePoint < 0x800) {
4411 if ((units -= 2) < 0) break
4412 bytes.push(
4413 codePoint >> 0x6 | 0xC0,
4414 codePoint & 0x3F | 0x80
4415 )
4416 } else if (codePoint < 0x10000) {
4417 if ((units -= 3) < 0) break
4418 bytes.push(
4419 codePoint >> 0xC | 0xE0,
4420 codePoint >> 0x6 & 0x3F | 0x80,
4421 codePoint & 0x3F | 0x80
4422 )
4423 } else if (codePoint < 0x110000) {
4424 if ((units -= 4) < 0) break
4425 bytes.push(
4426 codePoint >> 0x12 | 0xF0,
4427 codePoint >> 0xC & 0x3F | 0x80,
4428 codePoint >> 0x6 & 0x3F | 0x80,
4429 codePoint & 0x3F | 0x80
4430 )
4431 } else {
4432 throw new Error('Invalid code point')
ebd8d4e8 4433 }
ebd8d4e8 4434 }
ab78acc6
IC
4435
4436 return bytes
4437}
4438
4439function asciiToBytes (str) {
4440 var byteArray = []
4441 for (var i = 0; i < str.length; i++) {
4442 // Node's code seems to be doing this and not & 0x7F..
4443 byteArray.push(str.charCodeAt(i) & 0xFF)
ebd8d4e8 4444 }
ab78acc6 4445 return byteArray
ebd8d4e8
IC
4446}
4447
ab78acc6
IC
4448function utf16leToBytes (str, units) {
4449 var c, hi, lo
4450 var byteArray = []
4451 for (var i = 0; i < str.length; i++) {
4452 if ((units -= 2) < 0) break
ebd8d4e8 4453
ab78acc6
IC
4454 c = str.charCodeAt(i)
4455 hi = c >> 8
4456 lo = c % 256
4457 byteArray.push(lo)
4458 byteArray.push(hi)
4459 }
ebd8d4e8 4460
ab78acc6
IC
4461 return byteArray
4462}
ebd8d4e8 4463
ab78acc6
IC
4464function base64ToBytes (str) {
4465 return base64.toByteArray(base64clean(str))
4466}
ebd8d4e8 4467
ab78acc6
IC
4468function blitBuffer (src, dst, offset, length) {
4469 for (var i = 0; i < length; i++) {
4470 if ((i + offset >= dst.length) || (i >= src.length)) break
4471 dst[i + offset] = src[i]
4472 }
4473 return i
4474}
4475
4476},{"base64-js":8,"ieee754":9,"is-array":10}],8:[function(require,module,exports){
4477var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
4478
4479;(function (exports) {
4480 'use strict';
4481
4482 var Arr = (typeof Uint8Array !== 'undefined')
4483 ? Uint8Array
4484 : Array
ebd8d4e8 4485
ab78acc6
IC
4486 var PLUS = '+'.charCodeAt(0)
4487 var SLASH = '/'.charCodeAt(0)
4488 var NUMBER = '0'.charCodeAt(0)
4489 var LOWER = 'a'.charCodeAt(0)
4490 var UPPER = 'A'.charCodeAt(0)
4491 var PLUS_URL_SAFE = '-'.charCodeAt(0)
4492 var SLASH_URL_SAFE = '_'.charCodeAt(0)
ebd8d4e8 4493
ab78acc6
IC
4494 function decode (elt) {
4495 var code = elt.charCodeAt(0)
4496 if (code === PLUS ||
4497 code === PLUS_URL_SAFE)
4498 return 62 // '+'
4499 if (code === SLASH ||
4500 code === SLASH_URL_SAFE)
4501 return 63 // '/'
4502 if (code < NUMBER)
4503 return -1 //no match
4504 if (code < NUMBER + 10)
4505 return code - NUMBER + 26 + 26
4506 if (code < UPPER + 26)
4507 return code - UPPER
4508 if (code < LOWER + 26)
4509 return code - LOWER + 26
4510 }
ebd8d4e8 4511
ab78acc6
IC
4512 function b64ToByteArray (b64) {
4513 var i, j, l, tmp, placeHolders, arr
ebd8d4e8 4514
ab78acc6
IC
4515 if (b64.length % 4 > 0) {
4516 throw new Error('Invalid string. Length must be a multiple of 4')
4517 }
ebd8d4e8 4518
ab78acc6
IC
4519 // the number of equal signs (place holders)
4520 // if there are two placeholders, than the two characters before it
4521 // represent one byte
4522 // if there is only one, then the three characters before it represent 2 bytes
4523 // this is just a cheap hack to not do indexOf twice
4524 var len = b64.length
4525 placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0
ebd8d4e8 4526
ab78acc6
IC
4527 // base64 is 4/3 + up to two characters of the original data
4528 arr = new Arr(b64.length * 3 / 4 - placeHolders)
ebd8d4e8 4529
ab78acc6
IC
4530 // if there are placeholders, only get up to the last complete 4 chars
4531 l = placeHolders > 0 ? b64.length - 4 : b64.length
ebd8d4e8 4532
ab78acc6 4533 var L = 0
ebd8d4e8 4534
ab78acc6
IC
4535 function push (v) {
4536 arr[L++] = v
4537 }
ebd8d4e8 4538
ab78acc6
IC
4539 for (i = 0, j = 0; i < l; i += 4, j += 3) {
4540 tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))
4541 push((tmp & 0xFF0000) >> 16)
4542 push((tmp & 0xFF00) >> 8)
4543 push(tmp & 0xFF)
4544 }
ebd8d4e8 4545
ab78acc6
IC
4546 if (placeHolders === 2) {
4547 tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)
4548 push(tmp & 0xFF)
4549 } else if (placeHolders === 1) {
4550 tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)
4551 push((tmp >> 8) & 0xFF)
4552 push(tmp & 0xFF)
4553 }
ebd8d4e8 4554
ab78acc6
IC
4555 return arr
4556 }
ebd8d4e8 4557
ab78acc6
IC
4558 function uint8ToBase64 (uint8) {
4559 var i,
4560 extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
4561 output = "",
4562 temp, length
ebd8d4e8 4563
ab78acc6
IC
4564 function encode (num) {
4565 return lookup.charAt(num)
4566 }
ebd8d4e8 4567
ab78acc6
IC
4568 function tripletToBase64 (num) {
4569 return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)
4570 }
ebd8d4e8 4571
ab78acc6
IC
4572 // go through the array every three bytes, we'll deal with trailing stuff later
4573 for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
4574 temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
4575 output += tripletToBase64(temp)
4576 }
ebd8d4e8 4577
ab78acc6
IC
4578 // pad the end with zeros, but make sure to not forget the extra bytes
4579 switch (extraBytes) {
4580 case 1:
4581 temp = uint8[uint8.length - 1]
4582 output += encode(temp >> 2)
4583 output += encode((temp << 4) & 0x3F)
4584 output += '=='
4585 break
4586 case 2:
4587 temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])
4588 output += encode(temp >> 10)
4589 output += encode((temp >> 4) & 0x3F)
4590 output += encode((temp << 2) & 0x3F)
4591 output += '='
4592 break
4593 }
ebd8d4e8 4594
ab78acc6
IC
4595 return output
4596 }
ebd8d4e8 4597
ab78acc6
IC
4598 exports.toByteArray = b64ToByteArray
4599 exports.fromByteArray = uint8ToBase64
4600}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
ebd8d4e8 4601
ab78acc6
IC
4602},{}],9:[function(require,module,exports){
4603exports.read = function (buffer, offset, isLE, mLen, nBytes) {
4604 var e, m
4605 var eLen = nBytes * 8 - mLen - 1
4606 var eMax = (1 << eLen) - 1
4607 var eBias = eMax >> 1
4608 var nBits = -7
4609 var i = isLE ? (nBytes - 1) : 0
4610 var d = isLE ? -1 : 1
4611 var s = buffer[offset + i]
4612
4613 i += d
4614
4615 e = s & ((1 << (-nBits)) - 1)
4616 s >>= (-nBits)
4617 nBits += eLen
4618 for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
4619
4620 m = e & ((1 << (-nBits)) - 1)
4621 e >>= (-nBits)
4622 nBits += mLen
4623 for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
ebd8d4e8 4624
ab78acc6
IC
4625 if (e === 0) {
4626 e = 1 - eBias
4627 } else if (e === eMax) {
4628 return m ? NaN : ((s ? -1 : 1) * Infinity)
4629 } else {
4630 m = m + Math.pow(2, mLen)
4631 e = e - eBias
ebd8d4e8 4632 }
ab78acc6 4633 return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
ebd8d4e8
IC
4634}
4635
ab78acc6
IC
4636exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
4637 var e, m, c
4638 var eLen = nBytes * 8 - mLen - 1
4639 var eMax = (1 << eLen) - 1
4640 var eBias = eMax >> 1
4641 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
4642 var i = isLE ? 0 : (nBytes - 1)
4643 var d = isLE ? 1 : -1
4644 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
ebd8d4e8 4645
ab78acc6 4646 value = Math.abs(value)
ebd8d4e8 4647
ab78acc6
IC
4648 if (isNaN(value) || value === Infinity) {
4649 m = isNaN(value) ? 1 : 0
4650 e = eMax
4651 } else {
4652 e = Math.floor(Math.log(value) / Math.LN2)
4653 if (value * (c = Math.pow(2, -e)) < 1) {
4654 e--
4655 c *= 2
ebd8d4e8 4656 }
ab78acc6
IC
4657 if (e + eBias >= 1) {
4658 value += rt / c
4659 } else {
4660 value += rt * Math.pow(2, 1 - eBias)
ebd8d4e8 4661 }
ab78acc6
IC
4662 if (value * c >= 2) {
4663 e++
4664 c /= 2
ebd8d4e8 4665 }
ab78acc6
IC
4666
4667 if (e + eBias >= eMax) {
4668 m = 0
4669 e = eMax
4670 } else if (e + eBias >= 1) {
4671 m = (value * c - 1) * Math.pow(2, mLen)
4672 e = e + eBias
4673 } else {
4674 m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
4675 e = 0
ebd8d4e8
IC
4676 }
4677 }
ebd8d4e8 4678
ab78acc6 4679 for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
ebd8d4e8 4680
ab78acc6
IC
4681 e = (e << mLen) | m
4682 eLen += mLen
4683 for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
ebd8d4e8 4684
ab78acc6
IC
4685 buffer[offset + i - d] |= s * 128
4686}
ebd8d4e8 4687
ab78acc6 4688},{}],10:[function(require,module,exports){
ebd8d4e8 4689
ab78acc6
IC
4690/**
4691 * isArray
4692 */
ebd8d4e8 4693
ab78acc6 4694var isArray = Array.isArray;
ebd8d4e8
IC
4695
4696/**
ab78acc6 4697 * toString
ebd8d4e8 4698 */
ebd8d4e8 4699
ab78acc6 4700var str = Object.prototype.toString;
ebd8d4e8
IC
4701
4702/**
ab78acc6
IC
4703 * Whether or not the given `val`
4704 * is an array.
ebd8d4e8 4705 *
ab78acc6
IC
4706 * example:
4707 *
4708 * isArray([]);
4709 * // > true
4710 * isArray(arguments);
4711 * // > false
4712 * isArray('');
4713 * // > false
4714 *
4715 * @param {mixed} val
4716 * @return {bool}
ebd8d4e8 4717 */
ebd8d4e8 4718
ab78acc6
IC
4719module.exports = isArray || function (val) {
4720 return !! val && '[object Array]' == str.call(val);
4721};
4722
4723},{}],11:[function(require,module,exports){
4724// Copyright Joyent, Inc. and other Node contributors.
4725//
4726// Permission is hereby granted, free of charge, to any person obtaining a
4727// copy of this software and associated documentation files (the
4728// "Software"), to deal in the Software without restriction, including
4729// without limitation the rights to use, copy, modify, merge, publish,
4730// distribute, sublicense, and/or sell copies of the Software, and to permit
4731// persons to whom the Software is furnished to do so, subject to the
4732// following conditions:
4733//
4734// The above copyright notice and this permission notice shall be included
4735// in all copies or substantial portions of the Software.
4736//
4737// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
4738// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
4739// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
4740// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
4741// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
4742// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
4743// USE OR OTHER DEALINGS IN THE SOFTWARE.
4744
4745function EventEmitter() {
4746 this._events = this._events || {};
4747 this._maxListeners = this._maxListeners || undefined;
ebd8d4e8 4748}
ab78acc6 4749module.exports = EventEmitter;
ebd8d4e8 4750
ab78acc6
IC
4751// Backwards-compat with node 0.10.x
4752EventEmitter.EventEmitter = EventEmitter;
ebd8d4e8 4753
ab78acc6
IC
4754EventEmitter.prototype._events = undefined;
4755EventEmitter.prototype._maxListeners = undefined;
4756
4757// By default EventEmitters will print a warning if more than 10 listeners are
4758// added to it. This is a useful default which helps finding memory leaks.
4759EventEmitter.defaultMaxListeners = 10;
4760
4761// Obviously not all Emitters should be limited to 10. This function allows
4762// that to be increased. Set to zero for unlimited.
4763EventEmitter.prototype.setMaxListeners = function(n) {
4764 if (!isNumber(n) || n < 0 || isNaN(n))
4765 throw TypeError('n must be a positive number');
4766 this._maxListeners = n;
4767 return this;
4768};
4769
4770EventEmitter.prototype.emit = function(type) {
4771 var er, handler, len, args, i, listeners;
4772
4773 if (!this._events)
4774 this._events = {};
4775
4776 // If there is no 'error' event listener then throw.
4777 if (type === 'error') {
4778 if (!this._events.error ||
4779 (isObject(this._events.error) && !this._events.error.length)) {
4780 er = arguments[1];
4781 if (er instanceof Error) {
4782 throw er; // Unhandled 'error' event
4783 }
4784 throw TypeError('Uncaught, unspecified "error" event.');
4785 }
4786 }
4787
4788 handler = this._events[type];
4789
4790 if (isUndefined(handler))
4791 return false;
4792
4793 if (isFunction(handler)) {
4794 switch (arguments.length) {
4795 // fast cases
4796 case 1:
4797 handler.call(this);
4798 break;
4799 case 2:
4800 handler.call(this, arguments[1]);
4801 break;
4802 case 3:
4803 handler.call(this, arguments[1], arguments[2]);
4804 break;
4805 // slower
4806 default:
4807 len = arguments.length;
4808 args = new Array(len - 1);
4809 for (i = 1; i < len; i++)
4810 args[i - 1] = arguments[i];
4811 handler.apply(this, args);
4812 }
4813 } else if (isObject(handler)) {
4814 len = arguments.length;
4815 args = new Array(len - 1);
4816 for (i = 1; i < len; i++)
4817 args[i - 1] = arguments[i];
ebd8d4e8 4818
ab78acc6
IC
4819 listeners = handler.slice();
4820 len = listeners.length;
4821 for (i = 0; i < len; i++)
4822 listeners[i].apply(this, args);
ebd8d4e8
IC
4823 }
4824
ab78acc6
IC
4825 return true;
4826};
ebd8d4e8 4827
ab78acc6
IC
4828EventEmitter.prototype.addListener = function(type, listener) {
4829 var m;
ebd8d4e8 4830
ab78acc6
IC
4831 if (!isFunction(listener))
4832 throw TypeError('listener must be a function');
ebd8d4e8 4833
ab78acc6
IC
4834 if (!this._events)
4835 this._events = {};
ebd8d4e8 4836
ab78acc6
IC
4837 // To avoid recursion in the case that type === "newListener"! Before
4838 // adding it to the listeners, first emit "newListener".
4839 if (this._events.newListener)
4840 this.emit('newListener', type,
4841 isFunction(listener.listener) ?
4842 listener.listener : listener);
ebd8d4e8 4843
ab78acc6
IC
4844 if (!this._events[type])
4845 // Optimize the case of one listener. Don't need the extra array object.
4846 this._events[type] = listener;
4847 else if (isObject(this._events[type]))
4848 // If we've already got an array, just append.
4849 this._events[type].push(listener);
4850 else
4851 // Adding the second element, need to change to array.
4852 this._events[type] = [this._events[type], listener];
4853
4854 // Check for listener leak
4855 if (isObject(this._events[type]) && !this._events[type].warned) {
4856 var m;
4857 if (!isUndefined(this._maxListeners)) {
4858 m = this._maxListeners;
4859 } else {
4860 m = EventEmitter.defaultMaxListeners;
4861 }
4862
4863 if (m && m > 0 && this._events[type].length > m) {
4864 this._events[type].warned = true;
4865 console.error('(node) warning: possible EventEmitter memory ' +
4866 'leak detected. %d listeners added. ' +
4867 'Use emitter.setMaxListeners() to increase limit.',
4868 this._events[type].length);
4869 if (typeof console.trace === 'function') {
4870 // not supported in IE 10
4871 console.trace();
4872 }
4873 }
4874 }
ebd8d4e8 4875
ab78acc6
IC
4876 return this;
4877};
ebd8d4e8 4878
ab78acc6 4879EventEmitter.prototype.on = EventEmitter.prototype.addListener;
ebd8d4e8 4880
ab78acc6
IC
4881EventEmitter.prototype.once = function(type, listener) {
4882 if (!isFunction(listener))
4883 throw TypeError('listener must be a function');
ebd8d4e8 4884
ab78acc6 4885 var fired = false;
ebd8d4e8 4886
ab78acc6
IC
4887 function g() {
4888 this.removeListener(type, g);
ebd8d4e8 4889
ab78acc6
IC
4890 if (!fired) {
4891 fired = true;
4892 listener.apply(this, arguments);
4893 }
4894 }
ebd8d4e8 4895
ab78acc6
IC
4896 g.listener = listener;
4897 this.on(type, g);
ebd8d4e8 4898
ab78acc6
IC
4899 return this;
4900};
ebd8d4e8 4901
ab78acc6
IC
4902// emits a 'removeListener' event iff the listener was removed
4903EventEmitter.prototype.removeListener = function(type, listener) {
4904 var list, position, length, i;
ebd8d4e8 4905
ab78acc6
IC
4906 if (!isFunction(listener))
4907 throw TypeError('listener must be a function');
ebd8d4e8 4908
ab78acc6
IC
4909 if (!this._events || !this._events[type])
4910 return this;
ebd8d4e8 4911
ab78acc6
IC
4912 list = this._events[type];
4913 length = list.length;
4914 position = -1;
4915
4916 if (list === listener ||
4917 (isFunction(list.listener) && list.listener === listener)) {
4918 delete this._events[type];
4919 if (this._events.removeListener)
4920 this.emit('removeListener', type, listener);
4921
4922 } else if (isObject(list)) {
4923 for (i = length; i-- > 0;) {
4924 if (list[i] === listener ||
4925 (list[i].listener && list[i].listener === listener)) {
4926 position = i;
4927 break;
ebd8d4e8 4928 }
ab78acc6 4929 }
ebd8d4e8 4930
ab78acc6
IC
4931 if (position < 0)
4932 return this;
4933
4934 if (list.length === 1) {
4935 list.length = 0;
4936 delete this._events[type];
4937 } else {
4938 list.splice(position, 1);
ebd8d4e8 4939 }
ab78acc6
IC
4940
4941 if (this._events.removeListener)
4942 this.emit('removeListener', type, listener);
ebd8d4e8 4943 }
ab78acc6
IC
4944
4945 return this;
ebd8d4e8
IC
4946};
4947
ab78acc6
IC
4948EventEmitter.prototype.removeAllListeners = function(type) {
4949 var key, listeners;
ebd8d4e8 4950
ab78acc6
IC
4951 if (!this._events)
4952 return this;
4953
4954 // not listening for removeListener, no need to emit
4955 if (!this._events.removeListener) {
4956 if (arguments.length === 0)
4957 this._events = {};
4958 else if (this._events[type])
4959 delete this._events[type];
4960 return this;
ebd8d4e8 4961 }
ab78acc6
IC
4962
4963 // emit removeListener for all listeners on all events
4964 if (arguments.length === 0) {
4965 for (key in this._events) {
4966 if (key === 'removeListener') continue;
4967 this.removeAllListeners(key);
4968 }
4969 this.removeAllListeners('removeListener');
4970 this._events = {};
4971 return this;
ebd8d4e8 4972 }
ebd8d4e8 4973
ab78acc6
IC
4974 listeners = this._events[type];
4975
4976 if (isFunction(listeners)) {
4977 this.removeListener(type, listeners);
ebd8d4e8 4978 } else {
ab78acc6
IC
4979 // LIFO order
4980 while (listeners.length)
4981 this.removeListener(type, listeners[listeners.length - 1]);
ebd8d4e8 4982 }
ab78acc6 4983 delete this._events[type];
ebd8d4e8 4984
ab78acc6
IC
4985 return this;
4986};
ebd8d4e8 4987
ab78acc6
IC
4988EventEmitter.prototype.listeners = function(type) {
4989 var ret;
4990 if (!this._events || !this._events[type])
4991 ret = [];
4992 else if (isFunction(this._events[type]))
4993 ret = [this._events[type]];
4994 else
4995 ret = this._events[type].slice();
4996 return ret;
4997};
ebd8d4e8 4998
ab78acc6
IC
4999EventEmitter.listenerCount = function(emitter, type) {
5000 var ret;
5001 if (!emitter._events || !emitter._events[type])
5002 ret = 0;
5003 else if (isFunction(emitter._events[type]))
5004 ret = 1;
5005 else
5006 ret = emitter._events[type].length;
5007 return ret;
5008};
ebd8d4e8 5009
ab78acc6
IC
5010function isFunction(arg) {
5011 return typeof arg === 'function';
ebd8d4e8
IC
5012}
5013
ab78acc6
IC
5014function isNumber(arg) {
5015 return typeof arg === 'number';
5016}
ebd8d4e8 5017
ab78acc6
IC
5018function isObject(arg) {
5019 return typeof arg === 'object' && arg !== null;
5020}
ebd8d4e8 5021
ab78acc6
IC
5022function isUndefined(arg) {
5023 return arg === void 0;
ebd8d4e8 5024}
ebd8d4e8 5025
ab78acc6
IC
5026},{}],12:[function(require,module,exports){
5027if (typeof Object.create === 'function') {
5028 // implementation from standard node.js 'util' module
5029 module.exports = function inherits(ctor, superCtor) {
5030 ctor.super_ = superCtor
5031 ctor.prototype = Object.create(superCtor.prototype, {
5032 constructor: {
5033 value: ctor,
5034 enumerable: false,
5035 writable: true,
5036 configurable: true
5037 }
5038 });
5039 };
5040} else {
5041 // old school shim for old browsers
5042 module.exports = function inherits(ctor, superCtor) {
5043 ctor.super_ = superCtor
5044 var TempCtor = function () {}
5045 TempCtor.prototype = superCtor.prototype
5046 ctor.prototype = new TempCtor()
5047 ctor.prototype.constructor = ctor
5048 }
5049}
ebd8d4e8 5050
ab78acc6
IC
5051},{}],13:[function(require,module,exports){
5052module.exports = Array.isArray || function (arr) {
5053 return Object.prototype.toString.call(arr) == '[object Array]';
ebd8d4e8
IC
5054};
5055
ab78acc6
IC
5056},{}],14:[function(require,module,exports){
5057// shim for using process in browser
ebd8d4e8 5058
ab78acc6
IC
5059var process = module.exports = {};
5060var queue = [];
5061var draining = false;
5062var currentQueue;
5063var queueIndex = -1;
5064
5065function cleanUpNextTick() {
5066 draining = false;
5067 if (currentQueue.length) {
5068 queue = currentQueue.concat(queue);
5069 } else {
5070 queueIndex = -1;
5071 }
5072 if (queue.length) {
5073 drainQueue();
5074 }
5075}
ebd8d4e8 5076
ab78acc6
IC
5077function drainQueue() {
5078 if (draining) {
5079 return;
5080 }
5081 var timeout = setTimeout(cleanUpNextTick);
5082 draining = true;
ebd8d4e8 5083
ab78acc6
IC
5084 var len = queue.length;
5085 while(len) {
5086 currentQueue = queue;
5087 queue = [];
5088 while (++queueIndex < len) {
5089 currentQueue[queueIndex].run();
5090 }
5091 queueIndex = -1;
5092 len = queue.length;
5093 }
5094 currentQueue = null;
5095 draining = false;
5096 clearTimeout(timeout);
5097}
5098
5099process.nextTick = function (fun) {
5100 var args = new Array(arguments.length - 1);
5101 if (arguments.length > 1) {
5102 for (var i = 1; i < arguments.length; i++) {
5103 args[i - 1] = arguments[i];
5104 }
5105 }
5106 queue.push(new Item(fun, args));
5107 if (queue.length === 1 && !draining) {
5108 setTimeout(drainQueue, 0);
5109 }
ebd8d4e8
IC
5110};
5111
ab78acc6
IC
5112// v8 likes predictible objects
5113function Item(fun, array) {
5114 this.fun = fun;
5115 this.array = array;
5116}
5117Item.prototype.run = function () {
5118 this.fun.apply(null, this.array);
5119};
5120process.title = 'browser';
5121process.browser = true;
5122process.env = {};
5123process.argv = [];
5124process.version = ''; // empty string to avoid regexp issues
5125process.versions = {};
ebd8d4e8 5126
ab78acc6
IC
5127function noop() {}
5128
5129process.on = noop;
5130process.addListener = noop;
5131process.once = noop;
5132process.off = noop;
5133process.removeListener = noop;
5134process.removeAllListeners = noop;
5135process.emit = noop;
5136
5137process.binding = function (name) {
5138 throw new Error('process.binding is not supported');
5139};
ebd8d4e8 5140
ab78acc6
IC
5141// TODO(shtylman)
5142process.cwd = function () { return '/' };
5143process.chdir = function (dir) {
5144 throw new Error('process.chdir is not supported');
5145};
5146process.umask = function() { return 0; };
ebd8d4e8 5147
ab78acc6
IC
5148},{}],15:[function(require,module,exports){
5149module.exports = require("./lib/_stream_duplex.js")
ebd8d4e8 5150
ab78acc6
IC
5151},{"./lib/_stream_duplex.js":16}],16:[function(require,module,exports){
5152(function (process){
5153// Copyright Joyent, Inc. and other Node contributors.
5154//
5155// Permission is hereby granted, free of charge, to any person obtaining a
5156// copy of this software and associated documentation files (the
5157// "Software"), to deal in the Software without restriction, including
5158// without limitation the rights to use, copy, modify, merge, publish,
5159// distribute, sublicense, and/or sell copies of the Software, and to permit
5160// persons to whom the Software is furnished to do so, subject to the
5161// following conditions:
5162//
5163// The above copyright notice and this permission notice shall be included
5164// in all copies or substantial portions of the Software.
5165//
5166// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
5167// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5168// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
5169// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
5170// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
5171// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
5172// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 5173
ab78acc6
IC
5174// a duplex stream is just a stream that is both readable and writable.
5175// Since JS doesn't have multiple prototypal inheritance, this class
5176// prototypally inherits from Readable, and then parasitically from
5177// Writable.
ebd8d4e8 5178
ab78acc6 5179module.exports = Duplex;
ebd8d4e8 5180
ab78acc6
IC
5181/*<replacement>*/
5182var objectKeys = Object.keys || function (obj) {
5183 var keys = [];
5184 for (var key in obj) keys.push(key);
5185 return keys;
ebd8d4e8 5186}
ab78acc6 5187/*</replacement>*/
ebd8d4e8 5188
ebd8d4e8 5189
ab78acc6
IC
5190/*<replacement>*/
5191var util = require('core-util-is');
5192util.inherits = require('inherits');
5193/*</replacement>*/
ebd8d4e8 5194
ab78acc6
IC
5195var Readable = require('./_stream_readable');
5196var Writable = require('./_stream_writable');
ebd8d4e8 5197
ab78acc6 5198util.inherits(Duplex, Readable);
ebd8d4e8 5199
ab78acc6
IC
5200forEach(objectKeys(Writable.prototype), function(method) {
5201 if (!Duplex.prototype[method])
5202 Duplex.prototype[method] = Writable.prototype[method];
5203});
ebd8d4e8 5204
ab78acc6
IC
5205function Duplex(options) {
5206 if (!(this instanceof Duplex))
5207 return new Duplex(options);
ebd8d4e8 5208
ab78acc6
IC
5209 Readable.call(this, options);
5210 Writable.call(this, options);
ebd8d4e8 5211
ab78acc6
IC
5212 if (options && options.readable === false)
5213 this.readable = false;
ebd8d4e8 5214
ab78acc6
IC
5215 if (options && options.writable === false)
5216 this.writable = false;
ebd8d4e8 5217
ab78acc6
IC
5218 this.allowHalfOpen = true;
5219 if (options && options.allowHalfOpen === false)
5220 this.allowHalfOpen = false;
ebd8d4e8 5221
ab78acc6 5222 this.once('end', onend);
ebd8d4e8
IC
5223}
5224
ab78acc6
IC
5225// the no-half-open enforcer
5226function onend() {
5227 // if we allow half-open state, or if the writable side ended,
5228 // then we're ok.
5229 if (this.allowHalfOpen || this._writableState.ended)
5230 return;
ebd8d4e8 5231
ab78acc6
IC
5232 // no more data can be written.
5233 // But allow more writes to happen in this tick.
5234 process.nextTick(this.end.bind(this));
5235}
ebd8d4e8 5236
ab78acc6
IC
5237function forEach (xs, f) {
5238 for (var i = 0, l = xs.length; i < l; i++) {
5239 f(xs[i], i);
ebd8d4e8 5240 }
ab78acc6 5241}
ebd8d4e8 5242
ab78acc6
IC
5243}).call(this,require('_process'))
5244},{"./_stream_readable":18,"./_stream_writable":20,"_process":14,"core-util-is":21,"inherits":12}],17:[function(require,module,exports){
5245// Copyright Joyent, Inc. and other Node contributors.
5246//
5247// Permission is hereby granted, free of charge, to any person obtaining a
5248// copy of this software and associated documentation files (the
5249// "Software"), to deal in the Software without restriction, including
5250// without limitation the rights to use, copy, modify, merge, publish,
5251// distribute, sublicense, and/or sell copies of the Software, and to permit
5252// persons to whom the Software is furnished to do so, subject to the
5253// following conditions:
5254//
5255// The above copyright notice and this permission notice shall be included
5256// in all copies or substantial portions of the Software.
5257//
5258// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
5259// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5260// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
5261// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
5262// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
5263// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
5264// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 5265
ab78acc6
IC
5266// a passthrough stream.
5267// basically just the most minimal sort of Transform stream.
5268// Every written chunk gets output as-is.
ebd8d4e8 5269
ab78acc6 5270module.exports = PassThrough;
ebd8d4e8 5271
ab78acc6 5272var Transform = require('./_stream_transform');
ebd8d4e8 5273
ab78acc6
IC
5274/*<replacement>*/
5275var util = require('core-util-is');
5276util.inherits = require('inherits');
5277/*</replacement>*/
ebd8d4e8 5278
ab78acc6 5279util.inherits(PassThrough, Transform);
ebd8d4e8 5280
ab78acc6
IC
5281function PassThrough(options) {
5282 if (!(this instanceof PassThrough))
5283 return new PassThrough(options);
ebd8d4e8 5284
ab78acc6
IC
5285 Transform.call(this, options);
5286}
ebd8d4e8 5287
ab78acc6
IC
5288PassThrough.prototype._transform = function(chunk, encoding, cb) {
5289 cb(null, chunk);
ebd8d4e8
IC
5290};
5291
ab78acc6
IC
5292},{"./_stream_transform":19,"core-util-is":21,"inherits":12}],18:[function(require,module,exports){
5293(function (process){
ebd8d4e8
IC
5294// Copyright Joyent, Inc. and other Node contributors.
5295//
5296// Permission is hereby granted, free of charge, to any person obtaining a
5297// copy of this software and associated documentation files (the
5298// "Software"), to deal in the Software without restriction, including
5299// without limitation the rights to use, copy, modify, merge, publish,
5300// distribute, sublicense, and/or sell copies of the Software, and to permit
5301// persons to whom the Software is furnished to do so, subject to the
5302// following conditions:
5303//
5304// The above copyright notice and this permission notice shall be included
5305// in all copies or substantial portions of the Software.
5306//
5307// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
5308// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
5309// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
5310// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
5311// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
5312// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
5313// USE OR OTHER DEALINGS IN THE SOFTWARE.
5314
ab78acc6 5315module.exports = Readable;
ebd8d4e8 5316
ab78acc6
IC
5317/*<replacement>*/
5318var isArray = require('isarray');
5319/*</replacement>*/
5320
5321
5322/*<replacement>*/
5323var Buffer = require('buffer').Buffer;
5324/*</replacement>*/
5325
5326Readable.ReadableState = ReadableState;
5327
5328var EE = require('events').EventEmitter;
5329
5330/*<replacement>*/
5331if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
5332 return emitter.listeners(type).length;
ebd8d4e8 5333};
ab78acc6
IC
5334/*</replacement>*/
5335
5336var Stream = require('stream');
5337
5338/*<replacement>*/
5339var util = require('core-util-is');
5340util.inherits = require('inherits');
5341/*</replacement>*/
5342
5343var StringDecoder;
5344
5345
5346/*<replacement>*/
5347var debug = require('util');
5348if (debug && debug.debuglog) {
5349 debug = debug.debuglog('stream');
5350} else {
5351 debug = function () {};
5352}
5353/*</replacement>*/
5354
5355
5356util.inherits(Readable, Stream);
5357
5358function ReadableState(options, stream) {
5359 var Duplex = require('./_stream_duplex');
5360
5361 options = options || {};
5362
5363 // the point at which it stops calling _read() to fill the buffer
5364 // Note: 0 is a valid value, means "don't call _read preemptively ever"
5365 var hwm = options.highWaterMark;
5366 var defaultHwm = options.objectMode ? 16 : 16 * 1024;
5367 this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
5368
5369 // cast to ints.
5370 this.highWaterMark = ~~this.highWaterMark;
5371
5372 this.buffer = [];
5373 this.length = 0;
5374 this.pipes = null;
5375 this.pipesCount = 0;
5376 this.flowing = null;
5377 this.ended = false;
5378 this.endEmitted = false;
5379 this.reading = false;
ebd8d4e8 5380
ab78acc6
IC
5381 // a flag to be able to tell if the onwrite cb is called immediately,
5382 // or on a later tick. We set this to true at first, because any
5383 // actions that shouldn't happen until "later" should generally also
5384 // not happen before the first write call.
5385 this.sync = true;
ebd8d4e8 5386
ab78acc6
IC
5387 // whenever we return null, then we set a flag to say
5388 // that we're awaiting a 'readable' event emission.
5389 this.needReadable = false;
5390 this.emittedReadable = false;
5391 this.readableListening = false;
ebd8d4e8 5392
ab78acc6
IC
5393
5394 // object stream flag. Used to make read(n) ignore n and to
5395 // make all the buffer merging and length checks go away
5396 this.objectMode = !!options.objectMode;
5397
5398 if (stream instanceof Duplex)
5399 this.objectMode = this.objectMode || !!options.readableObjectMode;
5400
5401 // Crypto is kind of old and crusty. Historically, its default string
5402 // encoding is 'binary' so we have to make this configurable.
5403 // Everything else in the universe uses 'utf8', though.
5404 this.defaultEncoding = options.defaultEncoding || 'utf8';
5405
5406 // when piping, we only care about 'readable' events that happen
5407 // after read()ing all the bytes and not getting any pushback.
5408 this.ranOut = false;
5409
5410 // the number of writers that are awaiting a drain event in .pipe()s
5411 this.awaitDrain = 0;
5412
5413 // if true, a maybeReadMore has been scheduled
5414 this.readingMore = false;
5415
5416 this.decoder = null;
5417 this.encoding = null;
5418 if (options.encoding) {
5419 if (!StringDecoder)
5420 StringDecoder = require('string_decoder/').StringDecoder;
5421 this.decoder = new StringDecoder(options.encoding);
5422 this.encoding = options.encoding;
ebd8d4e8 5423 }
ab78acc6 5424}
ebd8d4e8 5425
ab78acc6
IC
5426function Readable(options) {
5427 var Duplex = require('./_stream_duplex');
5428
5429 if (!(this instanceof Readable))
5430 return new Readable(options);
5431
5432 this._readableState = new ReadableState(options, this);
5433
5434 // legacy
5435 this.readable = true;
5436
5437 Stream.call(this);
5438}
5439
5440// Manually shove something into the read() buffer.
5441// This returns true if the highWaterMark has not been hit yet,
5442// similar to how Writable.write() returns true if you should
5443// write() some more.
5444Readable.prototype.push = function(chunk, encoding) {
5445 var state = this._readableState;
5446
5447 if (util.isString(chunk) && !state.objectMode) {
5448 encoding = encoding || state.defaultEncoding;
5449 if (encoding !== state.encoding) {
5450 chunk = new Buffer(chunk, encoding);
5451 encoding = '';
ebd8d4e8 5452 }
ebd8d4e8
IC
5453 }
5454
ab78acc6 5455 return readableAddChunk(this, state, chunk, encoding, false);
ebd8d4e8
IC
5456};
5457
ab78acc6
IC
5458// Unshift should *always* be something directly out of read()
5459Readable.prototype.unshift = function(chunk) {
5460 var state = this._readableState;
5461 return readableAddChunk(this, state, chunk, '', true);
5462};
ebd8d4e8 5463
ab78acc6
IC
5464function readableAddChunk(stream, state, chunk, encoding, addToFront) {
5465 var er = chunkInvalid(state, chunk);
5466 if (er) {
5467 stream.emit('error', er);
5468 } else if (util.isNullOrUndefined(chunk)) {
5469 state.reading = false;
5470 if (!state.ended)
5471 onEofChunk(stream, state);
5472 } else if (state.objectMode || chunk && chunk.length > 0) {
5473 if (state.ended && !addToFront) {
5474 var e = new Error('stream.push() after EOF');
5475 stream.emit('error', e);
5476 } else if (state.endEmitted && addToFront) {
5477 var e = new Error('stream.unshift() after end event');
5478 stream.emit('error', e);
ebd8d4e8 5479 } else {
ab78acc6
IC
5480 if (state.decoder && !addToFront && !encoding)
5481 chunk = state.decoder.write(chunk);
5482
5483 if (!addToFront)
5484 state.reading = false;
5485
5486 // if we want the data now, just emit it.
5487 if (state.flowing && state.length === 0 && !state.sync) {
5488 stream.emit('data', chunk);
5489 stream.read(0);
5490 } else {
5491 // update the buffer info.
5492 state.length += state.objectMode ? 1 : chunk.length;
5493 if (addToFront)
5494 state.buffer.unshift(chunk);
5495 else
5496 state.buffer.push(chunk);
5497
5498 if (state.needReadable)
5499 emitReadable(stream);
5500 }
5501
5502 maybeReadMore(stream, state);
ebd8d4e8 5503 }
ab78acc6
IC
5504 } else if (!addToFront) {
5505 state.reading = false;
ebd8d4e8 5506 }
ebd8d4e8 5507
ab78acc6
IC
5508 return needMoreData(state);
5509}
ebd8d4e8 5510
ab78acc6
IC
5511
5512
5513// if it's past the high water mark, we can push in some more.
5514// Also, if we have no data yet, we can stand some
5515// more bytes. This is to work around cases where hwm=0,
5516// such as the repl. Also, if the push() triggered a
5517// readable event, and the user called read(largeNumber) such that
5518// needReadable was set, then we ought to push more, so that another
5519// 'readable' event will be triggered.
5520function needMoreData(state) {
5521 return !state.ended &&
5522 (state.needReadable ||
5523 state.length < state.highWaterMark ||
5524 state.length === 0);
5525}
5526
5527// backwards compatibility.
5528Readable.prototype.setEncoding = function(enc) {
5529 if (!StringDecoder)
5530 StringDecoder = require('string_decoder/').StringDecoder;
5531 this._readableState.decoder = new StringDecoder(enc);
5532 this._readableState.encoding = enc;
5533 return this;
5534};
5535
5536// Don't raise the hwm > 128MB
5537var MAX_HWM = 0x800000;
5538function roundUpToNextPowerOf2(n) {
5539 if (n >= MAX_HWM) {
5540 n = MAX_HWM;
5541 } else {
5542 // Get the next highest power of 2
5543 n--;
5544 for (var p = 1; p < 32; p <<= 1) n |= n >> p;
5545 n++;
ebd8d4e8 5546 }
ab78acc6 5547 return n;
ebd8d4e8 5548}
ebd8d4e8 5549
ab78acc6
IC
5550function howMuchToRead(n, state) {
5551 if (state.length === 0 && state.ended)
5552 return 0;
ebd8d4e8 5553
ab78acc6
IC
5554 if (state.objectMode)
5555 return n === 0 ? 0 : 1;
ebd8d4e8 5556
ab78acc6
IC
5557 if (isNaN(n) || util.isNull(n)) {
5558 // only flow one buffer at a time
5559 if (state.flowing && state.buffer.length)
5560 return state.buffer[0].length;
5561 else
5562 return state.length;
5563 }
ebd8d4e8 5564
ab78acc6
IC
5565 if (n <= 0)
5566 return 0;
ebd8d4e8 5567
ab78acc6
IC
5568 // If we're asking for more than the target buffer level,
5569 // then raise the water mark. Bump up to the next highest
5570 // power of 2, to prevent increasing it excessively in tiny
5571 // amounts.
5572 if (n > state.highWaterMark)
5573 state.highWaterMark = roundUpToNextPowerOf2(n);
ebd8d4e8 5574
ab78acc6
IC
5575 // don't have that much. return null, unless we've ended.
5576 if (n > state.length) {
5577 if (!state.ended) {
5578 state.needReadable = true;
5579 return 0;
5580 } else
5581 return state.length;
ebd8d4e8 5582 }
ab78acc6
IC
5583
5584 return n;
ebd8d4e8
IC
5585}
5586
ab78acc6
IC
5587// you can override either this method, or the async _read(n) below.
5588Readable.prototype.read = function(n) {
5589 debug('read', n);
5590 var state = this._readableState;
5591 var nOrig = n;
ebd8d4e8 5592
ab78acc6
IC
5593 if (!util.isNumber(n) || n > 0)
5594 state.emittedReadable = false;
5595
5596 // if we're doing read(0) to trigger a readable event, but we
5597 // already have a bunch of data in the buffer, then just trigger
5598 // the 'readable' event and move on.
5599 if (n === 0 &&
5600 state.needReadable &&
5601 (state.length >= state.highWaterMark || state.ended)) {
5602 debug('read: emitReadable', state.length, state.ended);
5603 if (state.length === 0 && state.ended)
5604 endReadable(this);
5605 else
5606 emitReadable(this);
5607 return null;
5608 }
5609
5610 n = howMuchToRead(n, state);
5611
5612 // if we've ended, and we're now clear, then finish it up.
5613 if (n === 0 && state.ended) {
5614 if (state.length === 0)
5615 endReadable(this);
5616 return null;
5617 }
5618
5619 // All the actual chunk generation logic needs to be
5620 // *below* the call to _read. The reason is that in certain
5621 // synthetic stream cases, such as passthrough streams, _read
5622 // may be a completely synchronous operation which may change
5623 // the state of the read buffer, providing enough data when
5624 // before there was *not* enough.
5625 //
5626 // So, the steps are:
5627 // 1. Figure out what the state of things will be after we do
5628 // a read from the buffer.
5629 //
5630 // 2. If that resulting state will trigger a _read, then call _read.
5631 // Note that this may be asynchronous, or synchronous. Yes, it is
5632 // deeply ugly to write APIs this way, but that still doesn't mean
5633 // that the Readable class should behave improperly, as streams are
5634 // designed to be sync/async agnostic.
5635 // Take note if the _read call is sync or async (ie, if the read call
5636 // has returned yet), so that we know whether or not it's safe to emit
5637 // 'readable' etc.
5638 //
5639 // 3. Actually pull the requested chunks out of the buffer and return.
5640
5641 // if we need a readable event, then we need to do some reading.
5642 var doRead = state.needReadable;
5643 debug('need readable', doRead);
5644
5645 // if we currently have less than the highWaterMark, then also read some
5646 if (state.length === 0 || state.length - n < state.highWaterMark) {
5647 doRead = true;
5648 debug('length less than watermark', doRead);
5649 }
5650
5651 // however, if we've ended, then there's no point, and if we're already
5652 // reading, then it's unnecessary.
5653 if (state.ended || state.reading) {
5654 doRead = false;
5655 debug('reading or ended', doRead);
5656 }
5657
5658 if (doRead) {
5659 debug('do read');
5660 state.reading = true;
5661 state.sync = true;
5662 // if the length is currently zero, then we *need* a readable event.
5663 if (state.length === 0)
5664 state.needReadable = true;
5665 // call internal read method
5666 this._read(state.highWaterMark);
5667 state.sync = false;
5668 }
5669
5670 // If _read pushed data synchronously, then `reading` will be false,
5671 // and we need to re-evaluate how much data we can return to the user.
5672 if (doRead && !state.reading)
5673 n = howMuchToRead(nOrig, state);
5674
5675 var ret;
5676 if (n > 0)
5677 ret = fromList(n, state);
5678 else
5679 ret = null;
ebd8d4e8 5680
ab78acc6
IC
5681 if (util.isNull(ret)) {
5682 state.needReadable = true;
5683 n = 0;
5684 }
ebd8d4e8 5685
ab78acc6 5686 state.length -= n;
ebd8d4e8 5687
ab78acc6
IC
5688 // If we have nothing in the buffer, then we want to know
5689 // as soon as we *do* get something into the buffer.
5690 if (state.length === 0 && !state.ended)
5691 state.needReadable = true;
ebd8d4e8 5692
ab78acc6
IC
5693 // If we tried to read() past the EOF, then emit end on the next tick.
5694 if (nOrig !== n && state.ended && state.length === 0)
5695 endReadable(this);
5696
5697 if (!util.isNull(ret))
5698 this.emit('data', ret);
5699
5700 return ret;
5701};
5702
5703function chunkInvalid(state, chunk) {
5704 var er = null;
5705 if (!util.isBuffer(chunk) &&
5706 !util.isString(chunk) &&
5707 !util.isNullOrUndefined(chunk) &&
5708 !state.objectMode) {
5709 er = new TypeError('Invalid non-string/buffer chunk');
5710 }
5711 return er;
ebd8d4e8
IC
5712}
5713
5714
ab78acc6
IC
5715function onEofChunk(stream, state) {
5716 if (state.decoder && !state.ended) {
5717 var chunk = state.decoder.end();
5718 if (chunk && chunk.length) {
5719 state.buffer.push(chunk);
5720 state.length += state.objectMode ? 1 : chunk.length;
ebd8d4e8 5721 }
ebd8d4e8 5722 }
ab78acc6 5723 state.ended = true;
ebd8d4e8 5724
ab78acc6
IC
5725 // emit 'readable' now to make sure it gets picked up.
5726 emitReadable(stream);
5727}
5728
5729// Don't emit readable right away in sync mode, because this can trigger
5730// another read() call => stack overflow. This way, it might trigger
5731// a nextTick recursion warning, but that's not so bad.
5732function emitReadable(stream) {
5733 var state = stream._readableState;
5734 state.needReadable = false;
5735 if (!state.emittedReadable) {
5736 debug('emitReadable', state.flowing);
5737 state.emittedReadable = true;
5738 if (state.sync)
5739 process.nextTick(function() {
5740 emitReadable_(stream);
5741 });
5742 else
5743 emitReadable_(stream);
ebd8d4e8 5744 }
ab78acc6 5745}
ebd8d4e8 5746
ab78acc6
IC
5747function emitReadable_(stream) {
5748 debug('emit readable');
5749 stream.emit('readable');
5750 flow(stream);
5751}
ebd8d4e8 5752
ab78acc6
IC
5753
5754// at this point, the user has presumably seen the 'readable' event,
5755// and called read() to consume some data. that may have triggered
5756// in turn another _read(n) call, in which case reading = true if
5757// it's in progress.
5758// However, if we're not ended, or reading, and the length < hwm,
5759// then go ahead and try to read some more preemptively.
5760function maybeReadMore(stream, state) {
5761 if (!state.readingMore) {
5762 state.readingMore = true;
5763 process.nextTick(function() {
5764 maybeReadMore_(stream, state);
5765 });
ebd8d4e8 5766 }
ab78acc6 5767}
ebd8d4e8 5768
ab78acc6
IC
5769function maybeReadMore_(stream, state) {
5770 var len = state.length;
5771 while (!state.reading && !state.flowing && !state.ended &&
5772 state.length < state.highWaterMark) {
5773 debug('maybeReadMore read 0');
5774 stream.read(0);
5775 if (len === state.length)
5776 // didn't get any data, stop spinning.
5777 break;
5778 else
5779 len = state.length;
ebd8d4e8 5780 }
ab78acc6
IC
5781 state.readingMore = false;
5782}
ebd8d4e8 5783
ab78acc6
IC
5784// abstract method. to be overridden in specific implementation classes.
5785// call cb(er, data) where data is <= n in length.
5786// for virtual (non-string, non-buffer) streams, "length" is somewhat
5787// arbitrary, and perhaps not very meaningful.
5788Readable.prototype._read = function(n) {
5789 this.emit('error', new Error('not implemented'));
5790};
5791
5792Readable.prototype.pipe = function(dest, pipeOpts) {
5793 var src = this;
5794 var state = this._readableState;
5795
5796 switch (state.pipesCount) {
5797 case 0:
5798 state.pipes = dest;
5799 break;
5800 case 1:
5801 state.pipes = [state.pipes, dest];
5802 break;
5803 default:
5804 state.pipes.push(dest);
5805 break;
ebd8d4e8 5806 }
ab78acc6
IC
5807 state.pipesCount += 1;
5808 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
ebd8d4e8 5809
ab78acc6
IC
5810 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
5811 dest !== process.stdout &&
5812 dest !== process.stderr;
ebd8d4e8 5813
ab78acc6
IC
5814 var endFn = doEnd ? onend : cleanup;
5815 if (state.endEmitted)
5816 process.nextTick(endFn);
5817 else
5818 src.once('end', endFn);
5819
5820 dest.on('unpipe', onunpipe);
5821 function onunpipe(readable) {
5822 debug('onunpipe');
5823 if (readable === src) {
5824 cleanup();
5825 }
5826 }
5827
5828 function onend() {
5829 debug('onend');
5830 dest.end();
5831 }
5832
5833 // when the dest drains, it reduces the awaitDrain counter
5834 // on the source. This would be more elegant with a .once()
5835 // handler in flow(), but adding and removing repeatedly is
5836 // too slow.
5837 var ondrain = pipeOnDrain(src);
5838 dest.on('drain', ondrain);
5839
5840 function cleanup() {
5841 debug('cleanup');
5842 // cleanup event handlers once the pipe is broken
5843 dest.removeListener('close', onclose);
5844 dest.removeListener('finish', onfinish);
5845 dest.removeListener('drain', ondrain);
5846 dest.removeListener('error', onerror);
5847 dest.removeListener('unpipe', onunpipe);
5848 src.removeListener('end', onend);
5849 src.removeListener('end', cleanup);
5850 src.removeListener('data', ondata);
5851
5852 // if the reader is waiting for a drain event from this
5853 // specific writer, then it would cause it to never start
5854 // flowing again.
5855 // So, if this is awaiting a drain, then we just call it now.
5856 // If we don't know, then assume that we are waiting for one.
5857 if (state.awaitDrain &&
5858 (!dest._writableState || dest._writableState.needDrain))
5859 ondrain();
5860 }
5861
5862 src.on('data', ondata);
5863 function ondata(chunk) {
5864 debug('ondata');
5865 var ret = dest.write(chunk);
5866 if (false === ret) {
5867 debug('false write response, pause',
5868 src._readableState.awaitDrain);
5869 src._readableState.awaitDrain++;
5870 src.pause();
5871 }
5872 }
5873
5874 // if the dest has an error, then stop piping into it.
5875 // however, don't suppress the throwing behavior for this.
5876 function onerror(er) {
5877 debug('onerror', er);
5878 unpipe();
5879 dest.removeListener('error', onerror);
5880 if (EE.listenerCount(dest, 'error') === 0)
5881 dest.emit('error', er);
5882 }
5883 // This is a brutally ugly hack to make sure that our error handler
5884 // is attached before any userland ones. NEVER DO THIS.
5885 if (!dest._events || !dest._events.error)
5886 dest.on('error', onerror);
5887 else if (isArray(dest._events.error))
5888 dest._events.error.unshift(onerror);
5889 else
5890 dest._events.error = [onerror, dest._events.error];
5891
5892
5893
5894 // Both close and finish should trigger unpipe, but only once.
5895 function onclose() {
5896 dest.removeListener('finish', onfinish);
5897 unpipe();
ebd8d4e8 5898 }
ab78acc6
IC
5899 dest.once('close', onclose);
5900 function onfinish() {
5901 debug('onfinish');
5902 dest.removeListener('close', onclose);
5903 unpipe();
5904 }
5905 dest.once('finish', onfinish);
ebd8d4e8 5906
ab78acc6
IC
5907 function unpipe() {
5908 debug('unpipe');
5909 src.unpipe(dest);
ebd8d4e8
IC
5910 }
5911
ab78acc6
IC
5912 // tell the dest that it's being piped to
5913 dest.emit('pipe', src);
5914
5915 // start the flow if it hasn't been started already.
5916 if (!state.flowing) {
5917 debug('pipe resume');
5918 src.resume();
ebd8d4e8
IC
5919 }
5920
ab78acc6
IC
5921 return dest;
5922};
5923
5924function pipeOnDrain(src) {
5925 return function() {
5926 var state = src._readableState;
5927 debug('pipeOnDrain', state.awaitDrain);
5928 if (state.awaitDrain)
5929 state.awaitDrain--;
5930 if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) {
5931 state.flowing = true;
5932 flow(src);
5933 }
5934 };
5935}
5936
5937
5938Readable.prototype.unpipe = function(dest) {
5939 var state = this._readableState;
5940
5941 // if we're not piping anywhere, then do nothing.
5942 if (state.pipesCount === 0)
5943 return this;
5944
5945 // just one destination. most common case.
5946 if (state.pipesCount === 1) {
5947 // passed in one, but it's not the right one.
5948 if (dest && dest !== state.pipes)
5949 return this;
5950
5951 if (!dest)
5952 dest = state.pipes;
5953
5954 // got a match.
5955 state.pipes = null;
5956 state.pipesCount = 0;
5957 state.flowing = false;
5958 if (dest)
5959 dest.emit('unpipe', this);
5960 return this;
ebd8d4e8
IC
5961 }
5962
ab78acc6
IC
5963 // slow case. multiple pipe destinations.
5964
5965 if (!dest) {
5966 // remove all.
5967 var dests = state.pipes;
5968 var len = state.pipesCount;
5969 state.pipes = null;
5970 state.pipesCount = 0;
5971 state.flowing = false;
5972
5973 for (var i = 0; i < len; i++)
5974 dests[i].emit('unpipe', this);
5975 return this;
ebd8d4e8
IC
5976 }
5977
ab78acc6
IC
5978 // try to find the right one.
5979 var i = indexOf(state.pipes, dest);
5980 if (i === -1)
5981 return this;
5982
5983 state.pipes.splice(i, 1);
5984 state.pipesCount -= 1;
5985 if (state.pipesCount === 1)
5986 state.pipes = state.pipes[0];
5987
5988 dest.emit('unpipe', this);
ebd8d4e8 5989
ab78acc6
IC
5990 return this;
5991};
5992
5993// set up data events if they are asked for
5994// Ensure readable listeners eventually get something
5995Readable.prototype.on = function(ev, fn) {
5996 var res = Stream.prototype.on.call(this, ev, fn);
5997
5998 // If listening to data, and it has not explicitly been paused,
5999 // then call resume to start the flow of data on the next tick.
6000 if (ev === 'data' && false !== this._readableState.flowing) {
6001 this.resume();
6002 }
6003
6004 if (ev === 'readable' && this.readable) {
6005 var state = this._readableState;
6006 if (!state.readableListening) {
6007 state.readableListening = true;
6008 state.emittedReadable = false;
6009 state.needReadable = true;
6010 if (!state.reading) {
6011 var self = this;
6012 process.nextTick(function() {
6013 debug('readable nexttick read 0');
6014 self.read(0);
6015 });
6016 } else if (state.length) {
6017 emitReadable(this, state);
6018 }
ebd8d4e8
IC
6019 }
6020 }
6021
ab78acc6
IC
6022 return res;
6023};
6024Readable.prototype.addListener = Readable.prototype.on;
6025
6026// pause() and resume() are remnants of the legacy readable stream API
6027// If the user uses them, then switch into old mode.
6028Readable.prototype.resume = function() {
6029 var state = this._readableState;
6030 if (!state.flowing) {
6031 debug('resume');
6032 state.flowing = true;
6033 if (!state.reading) {
6034 debug('resume read 0');
6035 this.read(0);
6036 }
6037 resume(this, state);
6038 }
6039 return this;
6040};
ebd8d4e8 6041
ab78acc6
IC
6042function resume(stream, state) {
6043 if (!state.resumeScheduled) {
6044 state.resumeScheduled = true;
6045 process.nextTick(function() {
6046 resume_(stream, state);
ebd8d4e8
IC
6047 });
6048 }
ebd8d4e8
IC
6049}
6050
ab78acc6
IC
6051function resume_(stream, state) {
6052 state.resumeScheduled = false;
6053 stream.emit('resume');
6054 flow(stream);
6055 if (state.flowing && !state.reading)
6056 stream.read(0);
ebd8d4e8
IC
6057}
6058
ab78acc6
IC
6059Readable.prototype.pause = function() {
6060 debug('call pause flowing=%j', this._readableState.flowing);
6061 if (false !== this._readableState.flowing) {
6062 debug('pause');
6063 this._readableState.flowing = false;
6064 this.emit('pause');
6065 }
6066 return this;
6067};
ebd8d4e8 6068
ab78acc6
IC
6069function flow(stream) {
6070 var state = stream._readableState;
6071 debug('flow', state.flowing);
6072 if (state.flowing) {
6073 do {
6074 var chunk = stream.read();
6075 } while (null !== chunk && state.flowing);
6076 }
ebd8d4e8
IC
6077}
6078
ab78acc6
IC
6079// wrap an old-style stream as the async data source.
6080// This is *not* part of the readable stream interface.
6081// It is an ugly unfortunate mess of history.
6082Readable.prototype.wrap = function(stream) {
6083 var state = this._readableState;
6084 var paused = false;
ebd8d4e8 6085
ab78acc6
IC
6086 var self = this;
6087 stream.on('end', function() {
6088 debug('wrapped end');
6089 if (state.decoder && !state.ended) {
6090 var chunk = state.decoder.end();
6091 if (chunk && chunk.length)
6092 self.push(chunk);
ebd8d4e8 6093 }
ab78acc6
IC
6094
6095 self.push(null);
ebd8d4e8 6096 });
ebd8d4e8 6097
ab78acc6
IC
6098 stream.on('data', function(chunk) {
6099 debug('wrapped data');
6100 if (state.decoder)
6101 chunk = state.decoder.write(chunk);
6102 if (!chunk || !state.objectMode && !chunk.length)
6103 return;
ebd8d4e8 6104
ab78acc6
IC
6105 var ret = self.push(chunk);
6106 if (!ret) {
6107 paused = true;
6108 stream.pause();
ebd8d4e8 6109 }
ab78acc6
IC
6110 });
6111
6112 // proxy all the other methods.
6113 // important when wrapping filters and duplexes.
6114 for (var i in stream) {
6115 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
6116 this[i] = function(method) { return function() {
6117 return stream[method].apply(stream, arguments);
6118 }}(i);
ebd8d4e8
IC
6119 }
6120 }
ab78acc6
IC
6121
6122 // proxy certain important events.
6123 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
6124 forEach(events, function(ev) {
6125 stream.on(ev, self.emit.bind(self, ev));
6126 });
6127
6128 // when we try to consume some more bytes, simply unpause the
6129 // underlying stream.
6130 self._read = function(n) {
6131 debug('wrapped _read', n);
6132 if (paused) {
6133 paused = false;
6134 stream.resume();
ebd8d4e8 6135 }
ab78acc6
IC
6136 };
6137
6138 return self;
6139};
6140
6141
6142
6143// exposed for testing purposes only.
6144Readable._fromList = fromList;
6145
6146// Pluck off n bytes from an array of buffers.
6147// Length is the combined lengths of all the buffers in the list.
6148function fromList(n, state) {
6149 var list = state.buffer;
6150 var length = state.length;
6151 var stringMode = !!state.decoder;
6152 var objectMode = !!state.objectMode;
6153 var ret;
6154
6155 // nothing in the list, definitely empty.
6156 if (list.length === 0)
6157 return null;
6158
6159 if (length === 0)
6160 ret = null;
6161 else if (objectMode)
6162 ret = list.shift();
6163 else if (!n || n >= length) {
6164 // read it all, truncate the array.
6165 if (stringMode)
6166 ret = list.join('');
6167 else
6168 ret = Buffer.concat(list, length);
6169 list.length = 0;
6170 } else {
6171 // read just some of it.
6172 if (n < list[0].length) {
6173 // just take a part of the first list item.
6174 // slice is the same for buffers and strings.
6175 var buf = list[0];
6176 ret = buf.slice(0, n);
6177 list[0] = buf.slice(n);
6178 } else if (n === list[0].length) {
6179 // first list is a perfect match
6180 ret = list.shift();
ebd8d4e8 6181 } else {
ab78acc6
IC
6182 // complex case.
6183 // we have enough to cover it, but it spans past the first buffer.
6184 if (stringMode)
6185 ret = '';
6186 else
6187 ret = new Buffer(n);
ebd8d4e8 6188
ab78acc6
IC
6189 var c = 0;
6190 for (var i = 0, l = list.length; i < l && c < n; i++) {
6191 var buf = list[0];
6192 var cpy = Math.min(n - c, buf.length);
ebd8d4e8 6193
ab78acc6
IC
6194 if (stringMode)
6195 ret += buf.slice(0, cpy);
6196 else
6197 buf.copy(ret, c, 0, cpy);
ebd8d4e8 6198
ab78acc6
IC
6199 if (cpy < buf.length)
6200 list[0] = buf.slice(cpy);
6201 else
6202 list.shift();
ebd8d4e8 6203
ab78acc6
IC
6204 c += cpy;
6205 }
6206 }
ebd8d4e8
IC
6207 }
6208
ab78acc6 6209 return ret;
ebd8d4e8
IC
6210}
6211
ab78acc6
IC
6212function endReadable(stream) {
6213 var state = stream._readableState;
ebd8d4e8 6214
ab78acc6
IC
6215 // If we get here before consuming all the bytes, then that is a
6216 // bug in node. Should never happen.
6217 if (state.length > 0)
6218 throw new Error('endReadable called on non-empty stream');
ebd8d4e8 6219
ab78acc6
IC
6220 if (!state.endEmitted) {
6221 state.ended = true;
6222 process.nextTick(function() {
6223 // Check that we didn't get one last unshift.
6224 if (!state.endEmitted && state.length === 0) {
6225 state.endEmitted = true;
6226 stream.readable = false;
6227 stream.emit('end');
6228 }
6229 });
6230 }
ebd8d4e8 6231}
ebd8d4e8 6232
ab78acc6
IC
6233function forEach (xs, f) {
6234 for (var i = 0, l = xs.length; i < l; i++) {
6235 f(xs[i], i);
6236 }
ebd8d4e8 6237}
ebd8d4e8 6238
ab78acc6
IC
6239function indexOf (xs, x) {
6240 for (var i = 0, l = xs.length; i < l; i++) {
6241 if (xs[i] === x) return i;
6242 }
6243 return -1;
ebd8d4e8 6244}
ebd8d4e8 6245
ab78acc6
IC
6246}).call(this,require('_process'))
6247},{"./_stream_duplex":16,"_process":14,"buffer":7,"core-util-is":21,"events":11,"inherits":12,"isarray":13,"stream":26,"string_decoder/":27,"util":6}],19:[function(require,module,exports){
6248// Copyright Joyent, Inc. and other Node contributors.
6249//
6250// Permission is hereby granted, free of charge, to any person obtaining a
6251// copy of this software and associated documentation files (the
6252// "Software"), to deal in the Software without restriction, including
6253// without limitation the rights to use, copy, modify, merge, publish,
6254// distribute, sublicense, and/or sell copies of the Software, and to permit
6255// persons to whom the Software is furnished to do so, subject to the
6256// following conditions:
6257//
6258// The above copyright notice and this permission notice shall be included
6259// in all copies or substantial portions of the Software.
6260//
6261// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
6262// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
6263// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
6264// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
6265// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
6266// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
6267// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 6268
ebd8d4e8 6269
ab78acc6
IC
6270// a transform stream is a readable/writable stream where you do
6271// something with the data. Sometimes it's called a "filter",
6272// but that's not a great name for it, since that implies a thing where
6273// some bits pass through, and others are simply ignored. (That would
6274// be a valid example of a transform, of course.)
6275//
6276// While the output is causally related to the input, it's not a
6277// necessarily symmetric or synchronous transformation. For example,
6278// a zlib stream might take multiple plain-text writes(), and then
6279// emit a single compressed chunk some time in the future.
6280//
6281// Here's how this works:
6282//
6283// The Transform stream has all the aspects of the readable and writable
6284// stream classes. When you write(chunk), that calls _write(chunk,cb)
6285// internally, and returns false if there's a lot of pending writes
6286// buffered up. When you call read(), that calls _read(n) until
6287// there's enough pending readable data buffered up.
6288//
6289// In a transform stream, the written data is placed in a buffer. When
6290// _read(n) is called, it transforms the queued up data, calling the
6291// buffered _write cb's as it consumes chunks. If consuming a single
6292// written chunk would result in multiple output chunks, then the first
6293// outputted bit calls the readcb, and subsequent chunks just go into
6294// the read buffer, and will cause it to emit 'readable' if necessary.
6295//
6296// This way, back-pressure is actually determined by the reading side,
6297// since _read has to be called to start processing a new chunk. However,
6298// a pathological inflate type of transform can cause excessive buffering
6299// here. For example, imagine a stream where every byte of input is
6300// interpreted as an integer from 0-255, and then results in that many
6301// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
6302// 1kb of data being output. In this case, you could write a very small
6303// amount of input, and end up with a very large amount of output. In
6304// such a pathological inflating mechanism, there'd be no way to tell
6305// the system to stop doing the transform. A single 4MB write could
6306// cause the system to run out of memory.
6307//
6308// However, even in such a pathological case, only a single written chunk
6309// would be consumed, and then the rest would wait (un-transformed) until
6310// the results of the previous transformed chunk were consumed.
ebd8d4e8 6311
ab78acc6 6312module.exports = Transform;
ebd8d4e8 6313
ab78acc6 6314var Duplex = require('./_stream_duplex');
ebd8d4e8 6315
ab78acc6
IC
6316/*<replacement>*/
6317var util = require('core-util-is');
6318util.inherits = require('inherits');
6319/*</replacement>*/
6320
6321util.inherits(Transform, Duplex);
6322
6323
6324function TransformState(options, stream) {
6325 this.afterTransform = function(er, data) {
6326 return afterTransform(stream, er, data);
6327 };
6328
6329 this.needTransform = false;
6330 this.transforming = false;
6331 this.writecb = null;
6332 this.writechunk = null;
ebd8d4e8 6333}
ebd8d4e8 6334
ab78acc6
IC
6335function afterTransform(stream, er, data) {
6336 var ts = stream._transformState;
6337 ts.transforming = false;
6338
6339 var cb = ts.writecb;
6340
6341 if (!cb)
6342 return stream.emit('error', new Error('no writecb in Transform class'));
6343
6344 ts.writechunk = null;
6345 ts.writecb = null;
6346
6347 if (!util.isNullOrUndefined(data))
6348 stream.push(data);
6349
6350 if (cb)
6351 cb(er);
6352
6353 var rs = stream._readableState;
6354 rs.reading = false;
6355 if (rs.needReadable || rs.length < rs.highWaterMark) {
6356 stream._read(rs.highWaterMark);
6357 }
ebd8d4e8 6358}
ebd8d4e8 6359
ab78acc6
IC
6360
6361function Transform(options) {
6362 if (!(this instanceof Transform))
6363 return new Transform(options);
6364
6365 Duplex.call(this, options);
6366
6367 this._transformState = new TransformState(options, this);
6368
6369 // when the writable side finishes, then flush out anything remaining.
6370 var stream = this;
6371
6372 // start out asking for a readable event once data is transformed.
6373 this._readableState.needReadable = true;
6374
6375 // we have implemented the _read method, and done the other things
6376 // that Readable wants before the first _read call, so unset the
6377 // sync guard flag.
6378 this._readableState.sync = false;
6379
6380 this.once('prefinish', function() {
6381 if (util.isFunction(this._flush))
6382 this._flush(function(er) {
6383 done(stream, er);
6384 });
6385 else
6386 done(stream);
6387 });
ebd8d4e8 6388}
ebd8d4e8 6389
ab78acc6
IC
6390Transform.prototype.push = function(chunk, encoding) {
6391 this._transformState.needTransform = false;
6392 return Duplex.prototype.push.call(this, chunk, encoding);
6393};
6394
6395// This is the part where you do stuff!
6396// override this function in implementation classes.
6397// 'chunk' is an input chunk.
6398//
6399// Call `push(newChunk)` to pass along transformed output
6400// to the readable side. You may call 'push' zero or more times.
6401//
6402// Call `cb(err)` when you are done with this chunk. If you pass
6403// an error, then that'll put the hurt on the whole operation. If you
6404// never call cb(), then you'll never get another chunk.
6405Transform.prototype._transform = function(chunk, encoding, cb) {
6406 throw new Error('not implemented');
6407};
6408
6409Transform.prototype._write = function(chunk, encoding, cb) {
6410 var ts = this._transformState;
6411 ts.writecb = cb;
6412 ts.writechunk = chunk;
6413 ts.writeencoding = encoding;
6414 if (!ts.transforming) {
6415 var rs = this._readableState;
6416 if (ts.needTransform ||
6417 rs.needReadable ||
6418 rs.length < rs.highWaterMark)
6419 this._read(rs.highWaterMark);
6420 }
6421};
6422
6423// Doesn't matter what the args are here.
6424// _transform does all the work.
6425// That we got here means that the readable side wants more data.
6426Transform.prototype._read = function(n) {
6427 var ts = this._transformState;
ebd8d4e8 6428
ab78acc6
IC
6429 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
6430 ts.transforming = true;
6431 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
6432 } else {
6433 // mark that we need a transform, so that any data that comes in
6434 // will get processed, now that we've asked for it.
6435 ts.needTransform = true;
6436 }
6437};
ebd8d4e8 6438
ebd8d4e8 6439
ab78acc6
IC
6440function done(stream, er) {
6441 if (er)
6442 return stream.emit('error', er);
ebd8d4e8 6443
ab78acc6
IC
6444 // if there's nothing in the write buffer, then that means
6445 // that nothing more will ever be provided
6446 var ws = stream._writableState;
6447 var ts = stream._transformState;
ebd8d4e8 6448
ab78acc6
IC
6449 if (ws.length)
6450 throw new Error('calling transform done when ws.length != 0');
6451
6452 if (ts.transforming)
6453 throw new Error('calling transform done when still transforming');
6454
6455 return stream.push(null);
ebd8d4e8
IC
6456}
6457
ab78acc6
IC
6458},{"./_stream_duplex":16,"core-util-is":21,"inherits":12}],20:[function(require,module,exports){
6459(function (process){
6460// Copyright Joyent, Inc. and other Node contributors.
6461//
6462// Permission is hereby granted, free of charge, to any person obtaining a
6463// copy of this software and associated documentation files (the
6464// "Software"), to deal in the Software without restriction, including
6465// without limitation the rights to use, copy, modify, merge, publish,
6466// distribute, sublicense, and/or sell copies of the Software, and to permit
6467// persons to whom the Software is furnished to do so, subject to the
6468// following conditions:
6469//
6470// The above copyright notice and this permission notice shall be included
6471// in all copies or substantial portions of the Software.
6472//
6473// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
6474// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
6475// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
6476// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
6477// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
6478// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
6479// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 6480
ab78acc6
IC
6481// A bit simpler than readable streams.
6482// Implement an async ._write(chunk, cb), and it'll handle all
6483// the drain event emission and buffering.
ebd8d4e8 6484
ab78acc6 6485module.exports = Writable;
ebd8d4e8 6486
ab78acc6
IC
6487/*<replacement>*/
6488var Buffer = require('buffer').Buffer;
6489/*</replacement>*/
ebd8d4e8 6490
ab78acc6 6491Writable.WritableState = WritableState;
ebd8d4e8
IC
6492
6493
ab78acc6
IC
6494/*<replacement>*/
6495var util = require('core-util-is');
6496util.inherits = require('inherits');
6497/*</replacement>*/
ebd8d4e8 6498
ab78acc6 6499var Stream = require('stream');
ebd8d4e8 6500
ab78acc6 6501util.inherits(Writable, Stream);
ebd8d4e8 6502
ab78acc6
IC
6503function WriteReq(chunk, encoding, cb) {
6504 this.chunk = chunk;
6505 this.encoding = encoding;
6506 this.callback = cb;
ebd8d4e8
IC
6507}
6508
ab78acc6
IC
6509function WritableState(options, stream) {
6510 var Duplex = require('./_stream_duplex');
ebd8d4e8 6511
ab78acc6 6512 options = options || {};
ebd8d4e8 6513
ab78acc6
IC
6514 // the point at which write() starts returning false
6515 // Note: 0 is a valid value, means that we always return false if
6516 // the entire buffer is not flushed immediately on write()
6517 var hwm = options.highWaterMark;
6518 var defaultHwm = options.objectMode ? 16 : 16 * 1024;
6519 this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
ebd8d4e8 6520
ab78acc6
IC
6521 // object stream flag to indicate whether or not this stream
6522 // contains buffers or objects.
6523 this.objectMode = !!options.objectMode;
ebd8d4e8 6524
ab78acc6
IC
6525 if (stream instanceof Duplex)
6526 this.objectMode = this.objectMode || !!options.writableObjectMode;
ebd8d4e8 6527
ab78acc6
IC
6528 // cast to ints.
6529 this.highWaterMark = ~~this.highWaterMark;
ebd8d4e8 6530
ab78acc6
IC
6531 this.needDrain = false;
6532 // at the start of calling end()
6533 this.ending = false;
6534 // when end() has been called, and returned
6535 this.ended = false;
6536 // when 'finish' is emitted
6537 this.finished = false;
ebd8d4e8 6538
ab78acc6
IC
6539 // should we decode strings into buffers before passing to _write?
6540 // this is here so that some node-core streams can optimize string
6541 // handling at a lower level.
6542 var noDecode = options.decodeStrings === false;
6543 this.decodeStrings = !noDecode;
ebd8d4e8 6544
ab78acc6
IC
6545 // Crypto is kind of old and crusty. Historically, its default string
6546 // encoding is 'binary' so we have to make this configurable.
6547 // Everything else in the universe uses 'utf8', though.
6548 this.defaultEncoding = options.defaultEncoding || 'utf8';
ebd8d4e8 6549
ab78acc6
IC
6550 // not an actual buffer we keep track of, but a measurement
6551 // of how much we're waiting to get pushed to some underlying
6552 // socket or file.
6553 this.length = 0;
ebd8d4e8 6554
ab78acc6
IC
6555 // a flag to see when we're in the middle of a write.
6556 this.writing = false;
ebd8d4e8 6557
ab78acc6
IC
6558 // when true all writes will be buffered until .uncork() call
6559 this.corked = 0;
ebd8d4e8 6560
ab78acc6
IC
6561 // a flag to be able to tell if the onwrite cb is called immediately,
6562 // or on a later tick. We set this to true at first, because any
6563 // actions that shouldn't happen until "later" should generally also
6564 // not happen before the first write call.
6565 this.sync = true;
ebd8d4e8 6566
ab78acc6
IC
6567 // a flag to know if we're processing previously buffered items, which
6568 // may call the _write() callback in the same tick, so that we don't
6569 // end up in an overlapped onwrite situation.
6570 this.bufferProcessing = false;
ebd8d4e8 6571
ab78acc6
IC
6572 // the callback that's passed to _write(chunk,cb)
6573 this.onwrite = function(er) {
6574 onwrite(stream, er);
6575 };
ebd8d4e8 6576
ab78acc6
IC
6577 // the callback that the user supplies to write(chunk,encoding,cb)
6578 this.writecb = null;
ebd8d4e8 6579
ab78acc6
IC
6580 // the amount that is being written when _write is called.
6581 this.writelen = 0;
ebd8d4e8 6582
ab78acc6 6583 this.buffer = [];
ebd8d4e8 6584
ab78acc6
IC
6585 // number of pending user-supplied write callbacks
6586 // this must be 0 before 'finish' can be emitted
6587 this.pendingcb = 0;
ebd8d4e8 6588
ab78acc6
IC
6589 // emit prefinish if the only thing we're waiting for is _write cbs
6590 // This is relevant for synchronous Transform streams
6591 this.prefinished = false;
ebd8d4e8 6592
ab78acc6
IC
6593 // True if the error was already emitted and should not be thrown again
6594 this.errorEmitted = false;
ebd8d4e8
IC
6595}
6596
ab78acc6
IC
6597function Writable(options) {
6598 var Duplex = require('./_stream_duplex');
ebd8d4e8 6599
ab78acc6
IC
6600 // Writable ctor is applied to Duplexes, though they're not
6601 // instanceof Writable, they're instanceof Readable.
6602 if (!(this instanceof Writable) && !(this instanceof Duplex))
6603 return new Writable(options);
ebd8d4e8 6604
ab78acc6 6605 this._writableState = new WritableState(options, this);
ebd8d4e8 6606
ab78acc6
IC
6607 // legacy.
6608 this.writable = true;
ebd8d4e8 6609
ab78acc6 6610 Stream.call(this);
ebd8d4e8
IC
6611}
6612
ab78acc6
IC
6613// Otherwise people can pipe Writable streams, which is just wrong.
6614Writable.prototype.pipe = function() {
6615 this.emit('error', new Error('Cannot pipe. Not readable.'));
6616};
ebd8d4e8 6617
ebd8d4e8 6618
ab78acc6
IC
6619function writeAfterEnd(stream, state, cb) {
6620 var er = new Error('write after end');
6621 // TODO: defer error events consistently everywhere, not just the cb
6622 stream.emit('error', er);
6623 process.nextTick(function() {
6624 cb(er);
6625 });
ebd8d4e8
IC
6626}
6627
ab78acc6
IC
6628// If we get something that is not a buffer, string, null, or undefined,
6629// and we're not in objectMode, then that's an error.
6630// Otherwise stream chunks are all considered to be of length=1, and the
6631// watermarks determine how many objects to keep in the buffer, rather than
6632// how many bytes or characters.
6633function validChunk(stream, state, chunk, cb) {
6634 var valid = true;
6635 if (!util.isBuffer(chunk) &&
6636 !util.isString(chunk) &&
6637 !util.isNullOrUndefined(chunk) &&
6638 !state.objectMode) {
6639 var er = new TypeError('Invalid non-string/buffer chunk');
6640 stream.emit('error', er);
6641 process.nextTick(function() {
6642 cb(er);
6643 });
6644 valid = false;
6645 }
6646 return valid;
ebd8d4e8
IC
6647}
6648
ab78acc6
IC
6649Writable.prototype.write = function(chunk, encoding, cb) {
6650 var state = this._writableState;
6651 var ret = false;
ebd8d4e8 6652
ab78acc6
IC
6653 if (util.isFunction(encoding)) {
6654 cb = encoding;
6655 encoding = null;
ebd8d4e8 6656 }
ebd8d4e8 6657
ab78acc6
IC
6658 if (util.isBuffer(chunk))
6659 encoding = 'buffer';
6660 else if (!encoding)
6661 encoding = state.defaultEncoding;
6662
6663 if (!util.isFunction(cb))
6664 cb = function() {};
6665
6666 if (state.ended)
6667 writeAfterEnd(this, state, cb);
6668 else if (validChunk(this, state, chunk, cb)) {
6669 state.pendingcb++;
6670 ret = writeOrBuffer(this, state, chunk, encoding, cb);
ebd8d4e8 6671 }
ebd8d4e8 6672
ab78acc6
IC
6673 return ret;
6674};
6675
6676Writable.prototype.cork = function() {
6677 var state = this._writableState;
6678
6679 state.corked++;
6680};
ebd8d4e8 6681
ab78acc6
IC
6682Writable.prototype.uncork = function() {
6683 var state = this._writableState;
ebd8d4e8 6684
ab78acc6
IC
6685 if (state.corked) {
6686 state.corked--;
ebd8d4e8 6687
ab78acc6
IC
6688 if (!state.writing &&
6689 !state.corked &&
6690 !state.finished &&
6691 !state.bufferProcessing &&
6692 state.buffer.length)
6693 clearBuffer(this, state);
ebd8d4e8 6694 }
ab78acc6 6695};
ebd8d4e8 6696
ab78acc6
IC
6697function decodeChunk(state, chunk, encoding) {
6698 if (!state.objectMode &&
6699 state.decodeStrings !== false &&
6700 util.isString(chunk)) {
6701 chunk = new Buffer(chunk, encoding);
ebd8d4e8 6702 }
ab78acc6 6703 return chunk;
ebd8d4e8
IC
6704}
6705
ab78acc6
IC
6706// if we're already writing something, then just put this
6707// in the queue, and wait our turn. Otherwise, call _write
6708// If we return false, then we need a drain event, so set that flag.
6709function writeOrBuffer(stream, state, chunk, encoding, cb) {
6710 chunk = decodeChunk(state, chunk, encoding);
6711 if (util.isBuffer(chunk))
6712 encoding = 'buffer';
6713 var len = state.objectMode ? 1 : chunk.length;
6714
6715 state.length += len;
6716
6717 var ret = state.length < state.highWaterMark;
6718 // we must ensure that previous needDrain will not be reset to false.
6719 if (!ret)
6720 state.needDrain = true;
6721
6722 if (state.writing || state.corked)
6723 state.buffer.push(new WriteReq(chunk, encoding, cb));
6724 else
6725 doWrite(stream, state, false, len, chunk, encoding, cb);
6726
6727 return ret;
ebd8d4e8
IC
6728}
6729
ab78acc6
IC
6730function doWrite(stream, state, writev, len, chunk, encoding, cb) {
6731 state.writelen = len;
6732 state.writecb = cb;
6733 state.writing = true;
6734 state.sync = true;
6735 if (writev)
6736 stream._writev(chunk, state.onwrite);
6737 else
6738 stream._write(chunk, encoding, state.onwrite);
6739 state.sync = false;
ebd8d4e8
IC
6740}
6741
ab78acc6
IC
6742function onwriteError(stream, state, sync, er, cb) {
6743 if (sync)
6744 process.nextTick(function() {
6745 state.pendingcb--;
6746 cb(er);
6747 });
6748 else {
6749 state.pendingcb--;
6750 cb(er);
6751 }
ebd8d4e8 6752
ab78acc6
IC
6753 stream._writableState.errorEmitted = true;
6754 stream.emit('error', er);
6755}
ebd8d4e8 6756
ab78acc6
IC
6757function onwriteStateUpdate(state) {
6758 state.writing = false;
6759 state.writecb = null;
6760 state.length -= state.writelen;
6761 state.writelen = 0;
6762}
ebd8d4e8 6763
ab78acc6
IC
6764function onwrite(stream, er) {
6765 var state = stream._writableState;
6766 var sync = state.sync;
6767 var cb = state.writecb;
ebd8d4e8 6768
ab78acc6 6769 onwriteStateUpdate(state);
ebd8d4e8 6770
ab78acc6
IC
6771 if (er)
6772 onwriteError(stream, state, sync, er, cb);
6773 else {
6774 // Check if we're actually ready to finish, but don't emit yet
6775 var finished = needFinish(stream, state);
ebd8d4e8 6776
ab78acc6
IC
6777 if (!finished &&
6778 !state.corked &&
6779 !state.bufferProcessing &&
6780 state.buffer.length) {
6781 clearBuffer(stream, state);
6782 }
6783
6784 if (sync) {
6785 process.nextTick(function() {
6786 afterWrite(stream, state, finished, cb);
6787 });
6788 } else {
6789 afterWrite(stream, state, finished, cb);
ebd8d4e8 6790 }
ebd8d4e8
IC
6791 }
6792}
6793
ab78acc6
IC
6794function afterWrite(stream, state, finished, cb) {
6795 if (!finished)
6796 onwriteDrain(stream, state);
6797 state.pendingcb--;
6798 cb();
6799 finishMaybe(stream, state);
6800}
6801
6802// Must force callback to be called on nextTick, so that we don't
6803// emit 'drain' before the write() consumer gets the 'false' return
6804// value, and has a chance to attach a 'drain' listener.
6805function onwriteDrain(stream, state) {
6806 if (state.length === 0 && state.needDrain) {
6807 state.needDrain = false;
6808 stream.emit('drain');
ebd8d4e8
IC
6809 }
6810}
6811
ebd8d4e8 6812
ab78acc6
IC
6813// if there's something in the buffer waiting, then process it
6814function clearBuffer(stream, state) {
6815 state.bufferProcessing = true;
6816
6817 if (stream._writev && state.buffer.length > 1) {
6818 // Fast case, write everything using _writev()
6819 var cbs = [];
6820 for (var c = 0; c < state.buffer.length; c++)
6821 cbs.push(state.buffer[c].callback);
6822
6823 // count the one we are adding, as well.
6824 // TODO(isaacs) clean this up
6825 state.pendingcb++;
6826 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
6827 for (var i = 0; i < cbs.length; i++) {
6828 state.pendingcb--;
6829 cbs[i](err);
6830 }
6831 });
6832
6833 // Clear buffer
6834 state.buffer = [];
6835 } else {
6836 // Slow case, write chunks one-by-one
6837 for (var c = 0; c < state.buffer.length; c++) {
6838 var entry = state.buffer[c];
6839 var chunk = entry.chunk;
6840 var encoding = entry.encoding;
6841 var cb = entry.callback;
6842 var len = state.objectMode ? 1 : chunk.length;
6843
6844 doWrite(stream, state, false, len, chunk, encoding, cb);
6845
6846 // if we didn't call the onwrite immediately, then
6847 // it means that we need to wait until it does.
6848 // also, that means that the chunk and cb are currently
6849 // being processed, so move the buffer counter past them.
6850 if (state.writing) {
6851 c++;
6852 break;
6853 }
ebd8d4e8 6854 }
ab78acc6
IC
6855
6856 if (c < state.buffer.length)
6857 state.buffer = state.buffer.slice(c);
6858 else
6859 state.buffer.length = 0;
ebd8d4e8
IC
6860 }
6861
ab78acc6 6862 state.bufferProcessing = false;
ebd8d4e8
IC
6863}
6864
ab78acc6
IC
6865Writable.prototype._write = function(chunk, encoding, cb) {
6866 cb(new Error('not implemented'));
ebd8d4e8 6867
ab78acc6 6868};
ebd8d4e8 6869
ab78acc6 6870Writable.prototype._writev = null;
ebd8d4e8 6871
ab78acc6
IC
6872Writable.prototype.end = function(chunk, encoding, cb) {
6873 var state = this._writableState;
ebd8d4e8 6874
ab78acc6
IC
6875 if (util.isFunction(chunk)) {
6876 cb = chunk;
6877 chunk = null;
6878 encoding = null;
6879 } else if (util.isFunction(encoding)) {
6880 cb = encoding;
6881 encoding = null;
6882 }
ebd8d4e8 6883
ab78acc6
IC
6884 if (!util.isNullOrUndefined(chunk))
6885 this.write(chunk, encoding);
6886
6887 // .end() fully uncorks
6888 if (state.corked) {
6889 state.corked = 1;
6890 this.uncork();
ebd8d4e8 6891 }
ab78acc6
IC
6892
6893 // ignore unnecessary end() calls.
6894 if (!state.ending && !state.finished)
6895 endWritable(this, state, cb);
6896};
6897
6898
6899function needFinish(stream, state) {
6900 return (state.ending &&
6901 state.length === 0 &&
6902 !state.finished &&
6903 !state.writing);
ebd8d4e8
IC
6904}
6905
ab78acc6
IC
6906function prefinish(stream, state) {
6907 if (!state.prefinished) {
6908 state.prefinished = true;
6909 stream.emit('prefinish');
ebd8d4e8 6910 }
ebd8d4e8
IC
6911}
6912
ab78acc6
IC
6913function finishMaybe(stream, state) {
6914 var need = needFinish(stream, state);
6915 if (need) {
6916 if (state.pendingcb === 0) {
6917 prefinish(stream, state);
6918 state.finished = true;
6919 stream.emit('finish');
6920 } else
6921 prefinish(stream, state);
6922 }
6923 return need;
6924}
ebd8d4e8 6925
ab78acc6
IC
6926function endWritable(stream, state, cb) {
6927 state.ending = true;
6928 finishMaybe(stream, state);
6929 if (cb) {
6930 if (state.finished)
6931 process.nextTick(cb);
6932 else
6933 stream.once('finish', cb);
ebd8d4e8 6934 }
ab78acc6 6935 state.ended = true;
ebd8d4e8
IC
6936}
6937
ab78acc6
IC
6938}).call(this,require('_process'))
6939},{"./_stream_duplex":16,"_process":14,"buffer":7,"core-util-is":21,"inherits":12,"stream":26}],21:[function(require,module,exports){
6940(function (Buffer){
6941// Copyright Joyent, Inc. and other Node contributors.
6942//
6943// Permission is hereby granted, free of charge, to any person obtaining a
6944// copy of this software and associated documentation files (the
6945// "Software"), to deal in the Software without restriction, including
6946// without limitation the rights to use, copy, modify, merge, publish,
6947// distribute, sublicense, and/or sell copies of the Software, and to permit
6948// persons to whom the Software is furnished to do so, subject to the
6949// following conditions:
6950//
6951// The above copyright notice and this permission notice shall be included
6952// in all copies or substantial portions of the Software.
6953//
6954// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
6955// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
6956// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
6957// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
6958// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
6959// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
6960// USE OR OTHER DEALINGS IN THE SOFTWARE.
6961
6962// NOTE: These type checking functions intentionally don't use `instanceof`
6963// because it is fragile and can be easily faked with `Object.create()`.
6964function isArray(ar) {
6965 return Array.isArray(ar);
ebd8d4e8 6966}
ab78acc6 6967exports.isArray = isArray;
ebd8d4e8 6968
ab78acc6
IC
6969function isBoolean(arg) {
6970 return typeof arg === 'boolean';
ebd8d4e8 6971}
ab78acc6 6972exports.isBoolean = isBoolean;
ebd8d4e8 6973
ab78acc6
IC
6974function isNull(arg) {
6975 return arg === null;
6976}
6977exports.isNull = isNull;
ebd8d4e8 6978
ab78acc6
IC
6979function isNullOrUndefined(arg) {
6980 return arg == null;
6981}
6982exports.isNullOrUndefined = isNullOrUndefined;
ebd8d4e8 6983
ab78acc6
IC
6984function isNumber(arg) {
6985 return typeof arg === 'number';
ebd8d4e8 6986}
ab78acc6 6987exports.isNumber = isNumber;
ebd8d4e8 6988
ab78acc6
IC
6989function isString(arg) {
6990 return typeof arg === 'string';
6991}
6992exports.isString = isString;
ebd8d4e8 6993
ab78acc6
IC
6994function isSymbol(arg) {
6995 return typeof arg === 'symbol';
6996}
6997exports.isSymbol = isSymbol;
ebd8d4e8 6998
ab78acc6
IC
6999function isUndefined(arg) {
7000 return arg === void 0;
ebd8d4e8 7001}
ab78acc6 7002exports.isUndefined = isUndefined;
ebd8d4e8 7003
ab78acc6
IC
7004function isRegExp(re) {
7005 return isObject(re) && objectToString(re) === '[object RegExp]';
ebd8d4e8 7006}
ab78acc6 7007exports.isRegExp = isRegExp;
ebd8d4e8 7008
ab78acc6
IC
7009function isObject(arg) {
7010 return typeof arg === 'object' && arg !== null;
ebd8d4e8 7011}
ab78acc6 7012exports.isObject = isObject;
ebd8d4e8 7013
ab78acc6
IC
7014function isDate(d) {
7015 return isObject(d) && objectToString(d) === '[object Date]';
7016}
7017exports.isDate = isDate;
ebd8d4e8 7018
ab78acc6
IC
7019function isError(e) {
7020 return isObject(e) &&
7021 (objectToString(e) === '[object Error]' || e instanceof Error);
7022}
7023exports.isError = isError;
ebd8d4e8 7024
ab78acc6
IC
7025function isFunction(arg) {
7026 return typeof arg === 'function';
7027}
7028exports.isFunction = isFunction;
7029
7030function isPrimitive(arg) {
7031 return arg === null ||
7032 typeof arg === 'boolean' ||
7033 typeof arg === 'number' ||
7034 typeof arg === 'string' ||
7035 typeof arg === 'symbol' || // ES6 symbol
7036 typeof arg === 'undefined';
ebd8d4e8 7037}
ab78acc6 7038exports.isPrimitive = isPrimitive;
ebd8d4e8 7039
ab78acc6
IC
7040function isBuffer(arg) {
7041 return Buffer.isBuffer(arg);
ebd8d4e8 7042}
ab78acc6 7043exports.isBuffer = isBuffer;
ebd8d4e8 7044
ab78acc6
IC
7045function objectToString(o) {
7046 return Object.prototype.toString.call(o);
ebd8d4e8 7047}
ab78acc6
IC
7048}).call(this,require("buffer").Buffer)
7049},{"buffer":7}],22:[function(require,module,exports){
7050module.exports = require("./lib/_stream_passthrough.js")
ebd8d4e8 7051
ab78acc6
IC
7052},{"./lib/_stream_passthrough.js":17}],23:[function(require,module,exports){
7053exports = module.exports = require('./lib/_stream_readable.js');
7054exports.Stream = require('stream');
7055exports.Readable = exports;
7056exports.Writable = require('./lib/_stream_writable.js');
7057exports.Duplex = require('./lib/_stream_duplex.js');
7058exports.Transform = require('./lib/_stream_transform.js');
7059exports.PassThrough = require('./lib/_stream_passthrough.js');
ebd8d4e8 7060
ab78acc6
IC
7061},{"./lib/_stream_duplex.js":16,"./lib/_stream_passthrough.js":17,"./lib/_stream_readable.js":18,"./lib/_stream_transform.js":19,"./lib/_stream_writable.js":20,"stream":26}],24:[function(require,module,exports){
7062module.exports = require("./lib/_stream_transform.js")
ebd8d4e8 7063
ab78acc6
IC
7064},{"./lib/_stream_transform.js":19}],25:[function(require,module,exports){
7065module.exports = require("./lib/_stream_writable.js")
7066
7067},{"./lib/_stream_writable.js":20}],26:[function(require,module,exports){
7068// Copyright Joyent, Inc. and other Node contributors.
7069//
7070// Permission is hereby granted, free of charge, to any person obtaining a
7071// copy of this software and associated documentation files (the
7072// "Software"), to deal in the Software without restriction, including
7073// without limitation the rights to use, copy, modify, merge, publish,
7074// distribute, sublicense, and/or sell copies of the Software, and to permit
7075// persons to whom the Software is furnished to do so, subject to the
7076// following conditions:
7077//
7078// The above copyright notice and this permission notice shall be included
7079// in all copies or substantial portions of the Software.
7080//
7081// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
7082// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7083// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
7084// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
7085// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
7086// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
7087// USE OR OTHER DEALINGS IN THE SOFTWARE.
7088
7089module.exports = Stream;
7090
7091var EE = require('events').EventEmitter;
7092var inherits = require('inherits');
7093
7094inherits(Stream, EE);
7095Stream.Readable = require('readable-stream/readable.js');
7096Stream.Writable = require('readable-stream/writable.js');
7097Stream.Duplex = require('readable-stream/duplex.js');
7098Stream.Transform = require('readable-stream/transform.js');
7099Stream.PassThrough = require('readable-stream/passthrough.js');
7100
7101// Backwards-compat with node 0.4.x
7102Stream.Stream = Stream;
7103
7104
7105
7106// old-style streams. Note that the pipe method (the only relevant
7107// part of this class) is overridden in the Readable class.
7108
7109function Stream() {
7110 EE.call(this);
ebd8d4e8
IC
7111}
7112
ab78acc6
IC
7113Stream.prototype.pipe = function(dest, options) {
7114 var source = this;
ebd8d4e8 7115
ab78acc6
IC
7116 function ondata(chunk) {
7117 if (dest.writable) {
7118 if (false === dest.write(chunk) && source.pause) {
7119 source.pause();
7120 }
7121 }
7122 }
ebd8d4e8 7123
ab78acc6 7124 source.on('data', ondata);
ebd8d4e8 7125
ab78acc6
IC
7126 function ondrain() {
7127 if (source.readable && source.resume) {
7128 source.resume();
7129 }
7130 }
ebd8d4e8 7131
ab78acc6 7132 dest.on('drain', ondrain);
ebd8d4e8 7133
ab78acc6
IC
7134 // If the 'end' option is not supplied, dest.end() will be called when
7135 // source gets the 'end' or 'close' events. Only dest.end() once.
7136 if (!dest._isStdio && (!options || options.end !== false)) {
7137 source.on('end', onend);
7138 source.on('close', onclose);
ebd8d4e8
IC
7139 }
7140
ab78acc6
IC
7141 var didOnEnd = false;
7142 function onend() {
7143 if (didOnEnd) return;
7144 didOnEnd = true;
ebd8d4e8 7145
ab78acc6
IC
7146 dest.end();
7147 }
ebd8d4e8 7148
ebd8d4e8 7149
ab78acc6
IC
7150 function onclose() {
7151 if (didOnEnd) return;
7152 didOnEnd = true;
ebd8d4e8 7153
ab78acc6 7154 if (typeof dest.destroy === 'function') dest.destroy();
ebd8d4e8
IC
7155 }
7156
ab78acc6
IC
7157 // don't leave dangling pipes when there are errors.
7158 function onerror(er) {
7159 cleanup();
7160 if (EE.listenerCount(this, 'error') === 0) {
7161 throw er; // Unhandled stream error in pipe.
7162 }
7163 }
ebd8d4e8 7164
ab78acc6
IC
7165 source.on('error', onerror);
7166 dest.on('error', onerror);
ebd8d4e8 7167
ab78acc6
IC
7168 // remove all the event listeners that were added.
7169 function cleanup() {
7170 source.removeListener('data', ondata);
7171 dest.removeListener('drain', ondrain);
ebd8d4e8 7172
ab78acc6
IC
7173 source.removeListener('end', onend);
7174 source.removeListener('close', onclose);
7175
7176 source.removeListener('error', onerror);
7177 dest.removeListener('error', onerror);
7178
7179 source.removeListener('end', cleanup);
7180 source.removeListener('close', cleanup);
7181
7182 dest.removeListener('close', cleanup);
ebd8d4e8
IC
7183 }
7184
ab78acc6
IC
7185 source.on('end', cleanup);
7186 source.on('close', cleanup);
ebd8d4e8 7187
ab78acc6 7188 dest.on('close', cleanup);
ebd8d4e8 7189
ab78acc6 7190 dest.emit('pipe', source);
ebd8d4e8 7191
ab78acc6
IC
7192 // Allow for unix-like usage: A.pipe(B).pipe(C)
7193 return dest;
7194};
ebd8d4e8 7195
ab78acc6
IC
7196},{"events":11,"inherits":12,"readable-stream/duplex.js":15,"readable-stream/passthrough.js":22,"readable-stream/readable.js":23,"readable-stream/transform.js":24,"readable-stream/writable.js":25}],27:[function(require,module,exports){
7197// Copyright Joyent, Inc. and other Node contributors.
7198//
7199// Permission is hereby granted, free of charge, to any person obtaining a
7200// copy of this software and associated documentation files (the
7201// "Software"), to deal in the Software without restriction, including
7202// without limitation the rights to use, copy, modify, merge, publish,
7203// distribute, sublicense, and/or sell copies of the Software, and to permit
7204// persons to whom the Software is furnished to do so, subject to the
7205// following conditions:
7206//
7207// The above copyright notice and this permission notice shall be included
7208// in all copies or substantial portions of the Software.
7209//
7210// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
7211// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7212// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
7213// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
7214// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
7215// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
7216// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 7217
ab78acc6 7218var Buffer = require('buffer').Buffer;
ebd8d4e8 7219
ab78acc6
IC
7220var isBufferEncoding = Buffer.isEncoding
7221 || function(encoding) {
7222 switch (encoding && encoding.toLowerCase()) {
7223 case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
7224 default: return false;
7225 }
7226 }
ebd8d4e8 7227
ebd8d4e8 7228
ab78acc6
IC
7229function assertEncoding(encoding) {
7230 if (encoding && !isBufferEncoding(encoding)) {
7231 throw new Error('Unknown encoding: ' + encoding);
ebd8d4e8 7232 }
ebd8d4e8
IC
7233}
7234
ab78acc6
IC
7235// StringDecoder provides an interface for efficiently splitting a series of
7236// buffers into a series of JS strings without breaking apart multi-byte
7237// characters. CESU-8 is handled as part of the UTF-8 encoding.
7238//
7239// @TODO Handling all encodings inside a single object makes it very difficult
7240// to reason about this code, so it should be split up in the future.
7241// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
7242// points as used by CESU-8.
7243var StringDecoder = exports.StringDecoder = function(encoding) {
7244 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
7245 assertEncoding(encoding);
7246 switch (this.encoding) {
7247 case 'utf8':
7248 // CESU-8 represents each of Surrogate Pair by 3-bytes
7249 this.surrogateSize = 3;
7250 break;
7251 case 'ucs2':
7252 case 'utf16le':
7253 // UTF-16 represents each of Surrogate Pair by 2-bytes
7254 this.surrogateSize = 2;
7255 this.detectIncompleteChar = utf16DetectIncompleteChar;
7256 break;
7257 case 'base64':
7258 // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
7259 this.surrogateSize = 3;
7260 this.detectIncompleteChar = base64DetectIncompleteChar;
7261 break;
7262 default:
7263 this.write = passThroughWrite;
7264 return;
7265 }
ebd8d4e8 7266
ab78acc6
IC
7267 // Enough space to store all bytes of a single character. UTF-8 needs 4
7268 // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
7269 this.charBuffer = new Buffer(6);
7270 // Number of bytes received for the current incomplete multi-byte character.
7271 this.charReceived = 0;
7272 // Number of bytes expected for the current incomplete multi-byte character.
7273 this.charLength = 0;
7274};
ebd8d4e8 7275
ebd8d4e8 7276
ab78acc6
IC
7277// write decodes the given buffer and returns it as JS string that is
7278// guaranteed to not contain any partial multi-byte characters. Any partial
7279// character found at the end of the buffer is buffered up, and will be
7280// returned when calling write again with the remaining bytes.
7281//
7282// Note: Converting a Buffer containing an orphan surrogate to a String
7283// currently works, but converting a String to a Buffer (via `new Buffer`, or
7284// Buffer#write) will replace incomplete surrogates with the unicode
7285// replacement character. See https://codereview.chromium.org/121173009/ .
7286StringDecoder.prototype.write = function(buffer) {
7287 var charStr = '';
7288 // if our last write ended with an incomplete multibyte character
7289 while (this.charLength) {
7290 // determine how many remaining bytes this buffer has to offer for this char
7291 var available = (buffer.length >= this.charLength - this.charReceived) ?
7292 this.charLength - this.charReceived :
7293 buffer.length;
7294
7295 // add the new bytes to the char buffer
7296 buffer.copy(this.charBuffer, this.charReceived, 0, available);
7297 this.charReceived += available;
7298
7299 if (this.charReceived < this.charLength) {
7300 // still not enough chars in this buffer? wait for more ...
7301 return '';
7302 }
7303
7304 // remove bytes belonging to the current character from the buffer
7305 buffer = buffer.slice(available, buffer.length);
7306
7307 // get the character that was split
7308 charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
7309
7310 // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
7311 var charCode = charStr.charCodeAt(charStr.length - 1);
7312 if (charCode >= 0xD800 && charCode <= 0xDBFF) {
7313 this.charLength += this.surrogateSize;
7314 charStr = '';
7315 continue;
7316 }
7317 this.charReceived = this.charLength = 0;
ebd8d4e8 7318
ab78acc6
IC
7319 // if there are no more bytes in this buffer, just emit our char
7320 if (buffer.length === 0) {
7321 return charStr;
7322 }
7323 break;
ebd8d4e8 7324 }
ebd8d4e8 7325
ab78acc6
IC
7326 // determine and set charLength / charReceived
7327 this.detectIncompleteChar(buffer);
ebd8d4e8 7328
ab78acc6
IC
7329 var end = buffer.length;
7330 if (this.charLength) {
7331 // buffer the incomplete character bytes we got
7332 buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
7333 end -= this.charReceived;
ebd8d4e8
IC
7334 }
7335
ab78acc6 7336 charStr += buffer.toString(this.encoding, 0, end);
ebd8d4e8 7337
ab78acc6
IC
7338 var end = charStr.length - 1;
7339 var charCode = charStr.charCodeAt(end);
7340 // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
7341 if (charCode >= 0xD800 && charCode <= 0xDBFF) {
7342 var size = this.surrogateSize;
7343 this.charLength += size;
7344 this.charReceived += size;
7345 this.charBuffer.copy(this.charBuffer, size, 0, size);
7346 buffer.copy(this.charBuffer, 0, 0, size);
7347 return charStr.substring(0, end);
ebd8d4e8
IC
7348 }
7349
ab78acc6
IC
7350 // or just emit the charStr
7351 return charStr;
7352};
ebd8d4e8 7353
ab78acc6
IC
7354// detectIncompleteChar determines if there is an incomplete UTF-8 character at
7355// the end of the given buffer. If so, it sets this.charLength to the byte
7356// length that character, and sets this.charReceived to the number of bytes
7357// that are available for this character.
7358StringDecoder.prototype.detectIncompleteChar = function(buffer) {
7359 // determine how many bytes we have to check at the end of this buffer
7360 var i = (buffer.length >= 3) ? 3 : buffer.length;
ebd8d4e8 7361
ab78acc6
IC
7362 // Figure out if one of the last i bytes of our buffer announces an
7363 // incomplete char.
7364 for (; i > 0; i--) {
7365 var c = buffer[buffer.length - i];
ebd8d4e8 7366
ab78acc6 7367 // See http://en.wikipedia.org/wiki/UTF-8#Description
ebd8d4e8 7368
ab78acc6
IC
7369 // 110XXXXX
7370 if (i == 1 && c >> 5 == 0x06) {
7371 this.charLength = 2;
7372 break;
7373 }
ebd8d4e8 7374
ab78acc6
IC
7375 // 1110XXXX
7376 if (i <= 2 && c >> 4 == 0x0E) {
7377 this.charLength = 3;
7378 break;
7379 }
ebd8d4e8 7380
ab78acc6
IC
7381 // 11110XXX
7382 if (i <= 3 && c >> 3 == 0x1E) {
7383 this.charLength = 4;
7384 break;
7385 }
7386 }
7387 this.charReceived = i;
7388};
ebd8d4e8 7389
ab78acc6
IC
7390StringDecoder.prototype.end = function(buffer) {
7391 var res = '';
7392 if (buffer && buffer.length)
7393 res = this.write(buffer);
ebd8d4e8 7394
ab78acc6
IC
7395 if (this.charReceived) {
7396 var cr = this.charReceived;
7397 var buf = this.charBuffer;
7398 var enc = this.encoding;
7399 res += buf.slice(0, cr).toString(enc);
ebd8d4e8
IC
7400 }
7401
ab78acc6
IC
7402 return res;
7403};
ebd8d4e8 7404
ab78acc6
IC
7405function passThroughWrite(buffer) {
7406 return buffer.toString(this.encoding);
ebd8d4e8
IC
7407}
7408
ab78acc6
IC
7409function utf16DetectIncompleteChar(buffer) {
7410 this.charReceived = buffer.length % 2;
7411 this.charLength = this.charReceived ? 2 : 0;
ebd8d4e8
IC
7412}
7413
ab78acc6
IC
7414function base64DetectIncompleteChar(buffer) {
7415 this.charReceived = buffer.length % 3;
7416 this.charLength = this.charReceived ? 3 : 0;
ebd8d4e8
IC
7417}
7418
ab78acc6
IC
7419},{"buffer":7}],28:[function(require,module,exports){
7420module.exports = function isBuffer(arg) {
7421 return arg && typeof arg === 'object'
7422 && typeof arg.copy === 'function'
7423 && typeof arg.fill === 'function'
7424 && typeof arg.readUInt8 === 'function';
7425}
7426},{}],29:[function(require,module,exports){
7427(function (process,global){
7428// Copyright Joyent, Inc. and other Node contributors.
7429//
7430// Permission is hereby granted, free of charge, to any person obtaining a
7431// copy of this software and associated documentation files (the
7432// "Software"), to deal in the Software without restriction, including
7433// without limitation the rights to use, copy, modify, merge, publish,
7434// distribute, sublicense, and/or sell copies of the Software, and to permit
7435// persons to whom the Software is furnished to do so, subject to the
7436// following conditions:
7437//
7438// The above copyright notice and this permission notice shall be included
7439// in all copies or substantial portions of the Software.
7440//
7441// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
7442// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7443// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
7444// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
7445// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
7446// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
7447// USE OR OTHER DEALINGS IN THE SOFTWARE.
ebd8d4e8 7448
ab78acc6
IC
7449var formatRegExp = /%[sdj%]/g;
7450exports.format = function(f) {
7451 if (!isString(f)) {
7452 var objects = [];
7453 for (var i = 0; i < arguments.length; i++) {
7454 objects.push(inspect(arguments[i]));
7455 }
7456 return objects.join(' ');
7457 }
ebd8d4e8 7458
ab78acc6
IC
7459 var i = 1;
7460 var args = arguments;
7461 var len = args.length;
7462 var str = String(f).replace(formatRegExp, function(x) {
7463 if (x === '%%') return '%';
7464 if (i >= len) return x;
7465 switch (x) {
7466 case '%s': return String(args[i++]);
7467 case '%d': return Number(args[i++]);
7468 case '%j':
7469 try {
7470 return JSON.stringify(args[i++]);
7471 } catch (_) {
7472 return '[Circular]';
7473 }
7474 default:
7475 return x;
7476 }
7477 });
7478 for (var x = args[i]; i < len; x = args[++i]) {
7479 if (isNull(x) || !isObject(x)) {
7480 str += ' ' + x;
7481 } else {
7482 str += ' ' + inspect(x);
7483 }
7484 }
7485 return str;
7486};
ebd8d4e8 7487
ebd8d4e8 7488
ab78acc6
IC
7489// Mark that a method should not be used.
7490// Returns a modified function which warns once by default.
7491// If --no-deprecation is set, then it is a no-op.
7492exports.deprecate = function(fn, msg) {
7493 // Allow for deprecating things in the process of starting up.
7494 if (isUndefined(global.process)) {
7495 return function() {
7496 return exports.deprecate(fn, msg).apply(this, arguments);
7497 };
7498 }
ebd8d4e8 7499
ab78acc6
IC
7500 if (process.noDeprecation === true) {
7501 return fn;
7502 }
ebd8d4e8 7503
ab78acc6
IC
7504 var warned = false;
7505 function deprecated() {
7506 if (!warned) {
7507 if (process.throwDeprecation) {
7508 throw new Error(msg);
7509 } else if (process.traceDeprecation) {
7510 console.trace(msg);
7511 } else {
7512 console.error(msg);
7513 }
7514 warned = true;
7515 }
7516 return fn.apply(this, arguments);
7517 }
ebd8d4e8 7518
ab78acc6
IC
7519 return deprecated;
7520};
ebd8d4e8 7521
ebd8d4e8 7522
ab78acc6
IC
7523var debugs = {};
7524var debugEnviron;
7525exports.debuglog = function(set) {
7526 if (isUndefined(debugEnviron))
7527 debugEnviron = process.env.NODE_DEBUG || '';
7528 set = set.toUpperCase();
7529 if (!debugs[set]) {
7530 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
7531 var pid = process.pid;
7532 debugs[set] = function() {
7533 var msg = exports.format.apply(exports, arguments);
7534 console.error('%s %d: %s', set, pid, msg);
7535 };
7536 } else {
7537 debugs[set] = function() {};
ebd8d4e8
IC
7538 }
7539 }
ab78acc6
IC
7540 return debugs[set];
7541};
ebd8d4e8 7542
ebd8d4e8
IC
7543
7544/**
ab78acc6
IC
7545 * Echos the value of a value. Trys to print the value out
7546 * in the best way possible given the different types.
7547 *
7548 * @param {Object} obj The object to print out.
7549 * @param {Object} opts Optional options object that alters the output.
ebd8d4e8 7550 */
ab78acc6
IC
7551/* legacy: obj, showHidden, depth, colors*/
7552function inspect(obj, opts) {
7553 // default options
7554 var ctx = {
7555 seen: [],
7556 stylize: stylizeNoColor
7557 };
7558 // legacy...
7559 if (arguments.length >= 3) ctx.depth = arguments[2];
7560 if (arguments.length >= 4) ctx.colors = arguments[3];
7561 if (isBoolean(opts)) {
7562 // legacy...
7563 ctx.showHidden = opts;
7564 } else if (opts) {
7565 // got an "options" object
7566 exports._extend(ctx, opts);
ebd8d4e8 7567 }
ab78acc6
IC
7568 // set default options
7569 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
7570 if (isUndefined(ctx.depth)) ctx.depth = 2;
7571 if (isUndefined(ctx.colors)) ctx.colors = false;
7572 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
7573 if (ctx.colors) ctx.stylize = stylizeWithColor;
7574 return formatValue(ctx, obj, ctx.depth);
ebd8d4e8 7575}
ab78acc6 7576exports.inspect = inspect;
ebd8d4e8 7577
ebd8d4e8 7578
ab78acc6
IC
7579// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
7580inspect.colors = {
7581 'bold' : [1, 22],
7582 'italic' : [3, 23],
7583 'underline' : [4, 24],
7584 'inverse' : [7, 27],
7585 'white' : [37, 39],
7586 'grey' : [90, 39],
7587 'black' : [30, 39],
7588 'blue' : [34, 39],
7589 'cyan' : [36, 39],
7590 'green' : [32, 39],
7591 'magenta' : [35, 39],
7592 'red' : [31, 39],
7593 'yellow' : [33, 39]
7594};
ebd8d4e8 7595
ab78acc6
IC
7596// Don't use 'blue' not visible on cmd.exe
7597inspect.styles = {
7598 'special': 'cyan',
7599 'number': 'yellow',
7600 'boolean': 'yellow',
7601 'undefined': 'grey',
7602 'null': 'bold',
7603 'string': 'green',
7604 'date': 'magenta',
7605 // "name": intentionally not styling
7606 'regexp': 'red'
7607};
ebd8d4e8 7608
ebd8d4e8 7609
ab78acc6
IC
7610function stylizeWithColor(str, styleType) {
7611 var style = inspect.styles[styleType];
ebd8d4e8 7612
ab78acc6
IC
7613 if (style) {
7614 return '\u001b[' + inspect.colors[style][0] + 'm' + str +
7615 '\u001b[' + inspect.colors[style][1] + 'm';
7616 } else {
7617 return str;
ebd8d4e8 7618 }
ebd8d4e8
IC
7619}
7620
ebd8d4e8 7621
ab78acc6
IC
7622function stylizeNoColor(str, styleType) {
7623 return str;
ebd8d4e8
IC
7624}
7625
ebd8d4e8 7626
ab78acc6
IC
7627function arrayToHash(array) {
7628 var hash = {};
ebd8d4e8 7629
ab78acc6
IC
7630 array.forEach(function(val, idx) {
7631 hash[val] = true;
7632 });
ebd8d4e8 7633
ab78acc6 7634 return hash;
ebd8d4e8
IC
7635}
7636
ebd8d4e8 7637
ab78acc6
IC
7638function formatValue(ctx, value, recurseTimes) {
7639 // Provide a hook for user-specified inspect functions.
7640 // Check that value is an object with an inspect function on it
7641 if (ctx.customInspect &&
7642 value &&
7643 isFunction(value.inspect) &&
7644 // Filter out the util module, it's inspect function is special
7645 value.inspect !== exports.inspect &&
7646 // Also filter out any prototype objects using the circular check.
7647 !(value.constructor && value.constructor.prototype === value)) {
7648 var ret = value.inspect(recurseTimes, ctx);
7649 if (!isString(ret)) {
7650 ret = formatValue(ctx, ret, recurseTimes);
7651 }
7652 return ret;
ebd8d4e8 7653 }
ebd8d4e8 7654
ab78acc6
IC
7655 // Primitive types cannot have properties
7656 var primitive = formatPrimitive(ctx, value);
7657 if (primitive) {
7658 return primitive;
ebd8d4e8
IC
7659 }
7660
ab78acc6
IC
7661 // Look up the keys of the object.
7662 var keys = Object.keys(value);
7663 var visibleKeys = arrayToHash(keys);
ebd8d4e8 7664
ab78acc6
IC
7665 if (ctx.showHidden) {
7666 keys = Object.getOwnPropertyNames(value);
7667 }
ebd8d4e8 7668
ab78acc6
IC
7669 // IE doesn't make error fields non-enumerable
7670 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
7671 if (isError(value)
7672 && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
7673 return formatError(value);
ebd8d4e8 7674 }
ebd8d4e8 7675
ab78acc6
IC
7676 // Some type of object without properties can be shortcutted.
7677 if (keys.length === 0) {
7678 if (isFunction(value)) {
7679 var name = value.name ? ': ' + value.name : '';
7680 return ctx.stylize('[Function' + name + ']', 'special');
7681 }
7682 if (isRegExp(value)) {
7683 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
7684 }
7685 if (isDate(value)) {
7686 return ctx.stylize(Date.prototype.toString.call(value), 'date');
7687 }
7688 if (isError(value)) {
7689 return formatError(value);
7690 }
ebd8d4e8 7691 }
ebd8d4e8 7692
ab78acc6 7693 var base = '', array = false, braces = ['{', '}'];
ebd8d4e8 7694
ab78acc6
IC
7695 // Make Array say that they are Array
7696 if (isArray(value)) {
7697 array = true;
7698 braces = ['[', ']'];
7699 }
ebd8d4e8 7700
ab78acc6
IC
7701 // Make functions say that they are functions
7702 if (isFunction(value)) {
7703 var n = value.name ? ': ' + value.name : '';
7704 base = ' [Function' + n + ']';
7705 }
ebd8d4e8 7706
ab78acc6
IC
7707 // Make RegExps say that they are RegExps
7708 if (isRegExp(value)) {
7709 base = ' ' + RegExp.prototype.toString.call(value);
7710 }
ebd8d4e8 7711
ab78acc6
IC
7712 // Make dates with properties first say the date
7713 if (isDate(value)) {
7714 base = ' ' + Date.prototype.toUTCString.call(value);
7715 }
ebd8d4e8 7716
ab78acc6
IC
7717 // Make error with message first say the error
7718 if (isError(value)) {
7719 base = ' ' + formatError(value);
7720 }
ebd8d4e8 7721
ab78acc6
IC
7722 if (keys.length === 0 && (!array || value.length == 0)) {
7723 return braces[0] + base + braces[1];
7724 }
ebd8d4e8 7725
ab78acc6
IC
7726 if (recurseTimes < 0) {
7727 if (isRegExp(value)) {
7728 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
7729 } else {
7730 return ctx.stylize('[Object]', 'special');
7731 }
7732 }
ebd8d4e8 7733
ab78acc6 7734 ctx.seen.push(value);
ebd8d4e8 7735
ab78acc6
IC
7736 var output;
7737 if (array) {
7738 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
7739 } else {
7740 output = keys.map(function(key) {
7741 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
7742 });
7743 }
ebd8d4e8 7744
ab78acc6 7745 ctx.seen.pop();
ebd8d4e8 7746
ab78acc6
IC
7747 return reduceToSingleString(output, base, braces);
7748}
ebd8d4e8 7749
ebd8d4e8 7750
ab78acc6
IC
7751function formatPrimitive(ctx, value) {
7752 if (isUndefined(value))
7753 return ctx.stylize('undefined', 'undefined');
7754 if (isString(value)) {
7755 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
7756 .replace(/'/g, "\\'")
7757 .replace(/\\"/g, '"') + '\'';
7758 return ctx.stylize(simple, 'string');
7759 }
7760 if (isNumber(value))
7761 return ctx.stylize('' + value, 'number');
7762 if (isBoolean(value))
7763 return ctx.stylize('' + value, 'boolean');
7764 // For some reason typeof null is "object", so special case here.
7765 if (isNull(value))
7766 return ctx.stylize('null', 'null');
7767}
ebd8d4e8 7768
ebd8d4e8 7769
ab78acc6
IC
7770function formatError(value) {
7771 return '[' + Error.prototype.toString.call(value) + ']';
7772}
ebd8d4e8 7773
ebd8d4e8 7774
ab78acc6
IC
7775function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
7776 var output = [];
7777 for (var i = 0, l = value.length; i < l; ++i) {
7778 if (hasOwnProperty(value, String(i))) {
7779 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
7780 String(i), true));
7781 } else {
7782 output.push('');
7783 }
7784 }
7785 keys.forEach(function(key) {
7786 if (!key.match(/^\d+$/)) {
7787 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
7788 key, true));
7789 }
7790 });
7791 return output;
7792}
ebd8d4e8 7793
ebd8d4e8 7794
ab78acc6
IC
7795function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
7796 var name, str, desc;
7797 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
7798 if (desc.get) {
7799 if (desc.set) {
7800 str = ctx.stylize('[Getter/Setter]', 'special');
7801 } else {
7802 str = ctx.stylize('[Getter]', 'special');
7803 }
7804 } else {
7805 if (desc.set) {
7806 str = ctx.stylize('[Setter]', 'special');
7807 }
7808 }
7809 if (!hasOwnProperty(visibleKeys, key)) {
7810 name = '[' + key + ']';
7811 }
7812 if (!str) {
7813 if (ctx.seen.indexOf(desc.value) < 0) {
7814 if (isNull(recurseTimes)) {
7815 str = formatValue(ctx, desc.value, null);
7816 } else {
7817 str = formatValue(ctx, desc.value, recurseTimes - 1);
7818 }
7819 if (str.indexOf('\n') > -1) {
7820 if (array) {
7821 str = str.split('\n').map(function(line) {
7822 return ' ' + line;
7823 }).join('\n').substr(2);
7824 } else {
7825 str = '\n' + str.split('\n').map(function(line) {
7826 return ' ' + line;
7827 }).join('\n');
7828 }
7829 }
7830 } else {
7831 str = ctx.stylize('[Circular]', 'special');
7832 }
7833 }
7834 if (isUndefined(name)) {
7835 if (array && key.match(/^\d+$/)) {
7836 return str;
7837 }
7838 name = JSON.stringify('' + key);
7839 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
7840 name = name.substr(1, name.length - 2);
7841 name = ctx.stylize(name, 'name');
7842 } else {
7843 name = name.replace(/'/g, "\\'")
7844 .replace(/\\"/g, '"')
7845 .replace(/(^"|"$)/g, "'");
7846 name = ctx.stylize(name, 'string');
7847 }
7848 }
ebd8d4e8 7849
ab78acc6
IC
7850 return name + ': ' + str;
7851}
ebd8d4e8 7852
ebd8d4e8 7853
ab78acc6
IC
7854function reduceToSingleString(output, base, braces) {
7855 var numLinesEst = 0;
7856 var length = output.reduce(function(prev, cur) {
7857 numLinesEst++;
7858 if (cur.indexOf('\n') >= 0) numLinesEst++;
7859 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
7860 }, 0);
ebd8d4e8 7861
ab78acc6
IC
7862 if (length > 60) {
7863 return braces[0] +
7864 (base === '' ? '' : base + '\n ') +
7865 ' ' +
7866 output.join(',\n ') +
7867 ' ' +
7868 braces[1];
7869 }
ebd8d4e8 7870
ab78acc6
IC
7871 return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
7872}
ebd8d4e8 7873
ebd8d4e8 7874
ab78acc6
IC
7875// NOTE: These type checking functions intentionally don't use `instanceof`
7876// because it is fragile and can be easily faked with `Object.create()`.
7877function isArray(ar) {
7878 return Array.isArray(ar);
7879}
7880exports.isArray = isArray;
ebd8d4e8 7881
ab78acc6
IC
7882function isBoolean(arg) {
7883 return typeof arg === 'boolean';
7884}
7885exports.isBoolean = isBoolean;
ebd8d4e8 7886
ab78acc6
IC
7887function isNull(arg) {
7888 return arg === null;
7889}
7890exports.isNull = isNull;
ebd8d4e8 7891
ab78acc6
IC
7892function isNullOrUndefined(arg) {
7893 return arg == null;
7894}
7895exports.isNullOrUndefined = isNullOrUndefined;
ebd8d4e8 7896
ab78acc6
IC
7897function isNumber(arg) {
7898 return typeof arg === 'number';
7899}
7900exports.isNumber = isNumber;
ebd8d4e8 7901
ab78acc6
IC
7902function isString(arg) {
7903 return typeof arg === 'string';
7904}
7905exports.isString = isString;
ebd8d4e8 7906
ab78acc6
IC
7907function isSymbol(arg) {
7908 return typeof arg === 'symbol';
7909}
7910exports.isSymbol = isSymbol;
ebd8d4e8 7911
ab78acc6
IC
7912function isUndefined(arg) {
7913 return arg === void 0;
7914}
7915exports.isUndefined = isUndefined;
ebd8d4e8 7916
ab78acc6
IC
7917function isRegExp(re) {
7918 return isObject(re) && objectToString(re) === '[object RegExp]';
7919}
7920exports.isRegExp = isRegExp;
ebd8d4e8 7921
ab78acc6
IC
7922function isObject(arg) {
7923 return typeof arg === 'object' && arg !== null;
ebd8d4e8 7924}
ab78acc6 7925exports.isObject = isObject;
ebd8d4e8 7926
ab78acc6
IC
7927function isDate(d) {
7928 return isObject(d) && objectToString(d) === '[object Date]';
7929}
7930exports.isDate = isDate;
ebd8d4e8 7931
ab78acc6
IC
7932function isError(e) {
7933 return isObject(e) &&
7934 (objectToString(e) === '[object Error]' || e instanceof Error);
7935}
7936exports.isError = isError;
ebd8d4e8 7937
ab78acc6
IC
7938function isFunction(arg) {
7939 return typeof arg === 'function';
7940}
7941exports.isFunction = isFunction;
ebd8d4e8 7942
ab78acc6
IC
7943function isPrimitive(arg) {
7944 return arg === null ||
7945 typeof arg === 'boolean' ||
7946 typeof arg === 'number' ||
7947 typeof arg === 'string' ||
7948 typeof arg === 'symbol' || // ES6 symbol
7949 typeof arg === 'undefined';
7950}
7951exports.isPrimitive = isPrimitive;
ebd8d4e8 7952
ab78acc6 7953exports.isBuffer = require('./support/isBuffer');
ebd8d4e8 7954
ab78acc6
IC
7955function objectToString(o) {
7956 return Object.prototype.toString.call(o);
7957}
ebd8d4e8 7958
ebd8d4e8 7959
ab78acc6
IC
7960function pad(n) {
7961 return n < 10 ? '0' + n.toString(10) : n.toString(10);
7962}
ebd8d4e8 7963
ebd8d4e8 7964
ab78acc6
IC
7965var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
7966 'Oct', 'Nov', 'Dec'];
ebd8d4e8 7967
ab78acc6
IC
7968// 26 Feb 16:19:34
7969function timestamp() {
7970 var d = new Date();
7971 var time = [pad(d.getHours()),
7972 pad(d.getMinutes()),
7973 pad(d.getSeconds())].join(':');
7974 return [d.getDate(), months[d.getMonth()], time].join(' ');
ebd8d4e8
IC
7975}
7976
ab78acc6
IC
7977
7978// log is just a thin wrapper to console.log that prepends a timestamp
7979exports.log = function() {
7980 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
ebd8d4e8
IC
7981};
7982
ab78acc6
IC
7983
7984/**
7985 * Inherit the prototype methods from one constructor into another.
7986 *
7987 * The Function.prototype.inherits from lang.js rewritten as a standalone
7988 * function (not on Function.prototype). NOTE: If this file is to be loaded
7989 * during bootstrapping this function needs to be rewritten using some native
7990 * functions as prototype setup using normal JavaScript does not work as
7991 * expected during bootstrapping (see mirror.js in r114903).
7992 *
7993 * @param {function} ctor Constructor function which needs to inherit the
7994 * prototype.
7995 * @param {function} superCtor Constructor function to inherit prototype from.
7996 */
7997exports.inherits = require('inherits');
7998
7999exports._extend = function(origin, add) {
8000 // Don't do anything if add isn't an object
8001 if (!add || !isObject(add)) return origin;
8002
8003 var keys = Object.keys(add);
8004 var i = keys.length;
8005 while (i--) {
8006 origin[keys[i]] = add[keys[i]];
8007 }
8008 return origin;
8009};
8010
8011function hasOwnProperty(obj, prop) {
8012 return Object.prototype.hasOwnProperty.call(obj, prop);
8013}
8014
8015}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
8016},{"./support/isBuffer":28,"_process":14,"inherits":12}],30:[function(require,module,exports){
ebd8d4e8
IC
8017// Base58 encoding/decoding
8018// Originally written by Mike Hearn for BitcoinJ
8019// Copyright (c) 2011 Google Inc
8020// Ported to JavaScript by Stefan Thomas
8021// Merged Buffer refactorings from base58-native by Stephen Pair
8022// Copyright (c) 2013 BitPay Inc
8023
ebd8d4e8 8024var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
ebd8d4e8
IC
8025var ALPHABET_MAP = {}
8026for(var i = 0; i < ALPHABET.length; i++) {
ab78acc6 8027 ALPHABET_MAP[ALPHABET.charAt(i)] = i
ebd8d4e8 8028}
ab78acc6 8029var BASE = 58
ebd8d4e8
IC
8030
8031function encode(buffer) {
ab78acc6
IC
8032 if (buffer.length === 0) return ''
8033
8034 var i, j, digits = [0]
8035 for (i = 0; i < buffer.length; i++) {
8036 for (j = 0; j < digits.length; j++) digits[j] <<= 8
8037
8038 digits[0] += buffer[i]
ebd8d4e8 8039
ab78acc6
IC
8040 var carry = 0
8041 for (j = 0; j < digits.length; ++j) {
8042 digits[j] += carry
ebd8d4e8 8043
ab78acc6
IC
8044 carry = (digits[j] / BASE) | 0
8045 digits[j] %= BASE
8046 }
8047
8048 while (carry) {
8049 digits.push(carry % BASE)
8050
8051 carry = (carry / BASE) | 0
8052 }
ebd8d4e8
IC
8053 }
8054
8055 // deal with leading zeros
ab78acc6 8056 for (i = 0; buffer[i] === 0 && i < buffer.length - 1; i++) digits.push(0)
ebd8d4e8 8057
ab78acc6
IC
8058 // convert digits to a string
8059 var stringOutput = ""
8060 for (var i = digits.length - 1; i >= 0; i--) {
8061 stringOutput = stringOutput + ALPHABET[digits[i]]
8062 }
8063 return stringOutput
ebd8d4e8
IC
8064}
8065
8066function decode(string) {
ab78acc6 8067 if (string.length === 0) return []
ebd8d4e8 8068
ab78acc6
IC
8069 var i, j, bytes = [0]
8070 for (i = 0; i < string.length; i++) {
8071 var c = string[i]
8072 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
ebd8d4e8 8073
ab78acc6
IC
8074 for (j = 0; j < bytes.length; j++) bytes[j] *= BASE
8075 bytes[0] += ALPHABET_MAP[c]
ebd8d4e8 8076
ab78acc6
IC
8077 var carry = 0
8078 for (j = 0; j < bytes.length; ++j) {
8079 bytes[j] += carry
ebd8d4e8 8080
ab78acc6
IC
8081 carry = bytes[j] >> 8
8082 bytes[j] &= 0xff
8083 }
ebd8d4e8 8084
ab78acc6
IC
8085 while (carry) {
8086 bytes.push(carry & 0xff)
8087
8088 carry >>= 8
8089 }
ebd8d4e8
IC
8090 }
8091
ab78acc6
IC
8092 // deal with leading zeros
8093 for (i = 0; string[i] === '1' && i < string.length - 1; i++) bytes.push(0)
ebd8d4e8 8094
ab78acc6 8095 return bytes.reverse()
ebd8d4e8
IC
8096}
8097
8098module.exports = {
8099 encode: encode,
8100 decode: decode
8101}
8102
ab78acc6 8103},{}],31:[function(require,module,exports){
ebd8d4e8 8104(function (Buffer){
ab78acc6
IC
8105'use strict'
8106
8107var base58 = require('bs58')
8108var createHash = require('create-hash')
8109
8110// SHA256(SHA256(buffer))
8111function sha256x2 (buffer) {
8112 buffer = createHash('sha256').update(buffer).digest()
8113 return createHash('sha256').update(buffer).digest()
8114}
8115
8116// Encode a buffer as a base58-check encoded string
8117function encode (payload) {
8118 var checksum = sha256x2(payload).slice(0, 4)
8119
8120 return base58.encode(Buffer.concat([
8121 payload,
8122 checksum
8123 ]))
8124}
8125
8126// Decode a base58-check encoded string to a buffer
8127function decode (string) {
8128 var buffer = new Buffer(base58.decode(string))
8129
8130 var payload = buffer.slice(0, -4)
8131 var checksum = buffer.slice(-4)
8132 var newChecksum = sha256x2(payload).slice(0, 4)
8133
8134 for (var i = 0; i < newChecksum.length; ++i) {
8135 if (newChecksum[i] === checksum[i]) continue
8136
8137 throw new Error('Invalid checksum')
ebd8d4e8 8138 }
ab78acc6
IC
8139
8140 return payload
ebd8d4e8
IC
8141}
8142
ab78acc6
IC
8143module.exports = {
8144 encode: encode,
8145 decode: decode
ebd8d4e8
IC
8146}
8147
ab78acc6
IC
8148}).call(this,require("buffer").Buffer)
8149},{"bs58":30,"buffer":7,"create-hash":32}],32:[function(require,module,exports){
ebd8d4e8 8150(function (Buffer){
ab78acc6
IC
8151'use strict';
8152var inherits = require('inherits')
8153var md5 = require('./md5')
8154var rmd160 = require('ripemd160')
8155var sha = require('sha.js')
ebd8d4e8 8156
ab78acc6 8157var Transform = require('stream').Transform
ebd8d4e8 8158
ab78acc6
IC
8159function HashNoConstructor(hash) {
8160 Transform.call(this)
ebd8d4e8 8161
ab78acc6
IC
8162 this._hash = hash
8163 this.buffers = []
8164}
ebd8d4e8 8165
ab78acc6 8166inherits(HashNoConstructor, Transform)
ebd8d4e8 8167
ab78acc6
IC
8168HashNoConstructor.prototype._transform = function (data, _, next) {
8169 this.buffers.push(data)
ebd8d4e8 8170
ab78acc6
IC
8171 next()
8172}
ebd8d4e8 8173
ab78acc6
IC
8174HashNoConstructor.prototype._flush = function (next) {
8175 this.push(this.digest())
8176 next()
8177}
8178
8179HashNoConstructor.prototype.update = function (data, enc) {
8180 if (typeof data === 'string') {
8181 data = new Buffer(data, enc)
ebd8d4e8
IC
8182 }
8183
ab78acc6
IC
8184 this.buffers.push(data)
8185 return this
8186}
8187
8188HashNoConstructor.prototype.digest = function (enc) {
8189 var buf = Buffer.concat(this.buffers)
8190 var r = this._hash(buf)
8191 this.buffers = null
8192
8193 return enc ? r.toString(enc) : r
8194}
8195
8196function Hash(hash) {
8197 Transform.call(this)
8198
8199 this._hash = hash
8200}
8201
8202inherits(Hash, Transform)
8203
8204Hash.prototype._transform = function (data, enc, next) {
8205 if (enc) data = new Buffer(data, enc)
8206
8207 this._hash.update(data)
8208
8209 next()
ebd8d4e8
IC
8210}
8211
ab78acc6
IC
8212Hash.prototype._flush = function (next) {
8213 this.push(this._hash.digest())
8214 this._hash = null
8215
8216 next()
8217}
8218
8219Hash.prototype.update = function (data, enc) {
8220 if (typeof data === 'string') {
8221 data = new Buffer(data, enc)
8222 }
8223
8224 this._hash.update(data)
ebd8d4e8
IC
8225 return this
8226}
8227
ab78acc6
IC
8228Hash.prototype.digest = function (enc) {
8229 var outData = this._hash.digest()
8230
8231 return enc ? outData.toString(enc) : outData
ebd8d4e8
IC
8232}
8233
ab78acc6
IC
8234module.exports = function createHash (alg) {
8235 if ('md5' === alg) return new HashNoConstructor(md5)
8236 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
8237
8238 return new Hash(sha(alg))
8239}
ebd8d4e8 8240
ab78acc6
IC
8241}).call(this,require("buffer").Buffer)
8242},{"./md5":34,"buffer":7,"inherits":35,"ripemd160":36,"sha.js":38,"stream":26}],33:[function(require,module,exports){
ebd8d4e8 8243(function (Buffer){
ab78acc6 8244'use strict';
ebd8d4e8
IC
8245var intSize = 4;
8246var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0);
8247var chrsz = 8;
8248
8249function toArray(buf, bigEndian) {
8250 if ((buf.length % intSize) !== 0) {
8251 var len = buf.length + (intSize - (buf.length % intSize));
8252 buf = Buffer.concat([buf, zeroBuffer], len);
8253 }
8254
8255 var arr = [];
8256 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
8257 for (var i = 0; i < buf.length; i += intSize) {
8258 arr.push(fn.call(buf, i));
8259 }
8260 return arr;
8261}
8262
8263function toBuffer(arr, size, bigEndian) {
8264 var buf = new Buffer(size);
8265 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
8266 for (var i = 0; i < arr.length; i++) {
8267 fn.call(buf, arr[i], i * 4, true);
8268 }
8269 return buf;
8270}
8271
8272function hash(buf, fn, hashSize, bigEndian) {
8273 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
8274 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
8275 return toBuffer(arr, hashSize, bigEndian);
8276}
ab78acc6
IC
8277exports.hash = hash;
8278}).call(this,require("buffer").Buffer)
8279},{"buffer":7}],34:[function(require,module,exports){
8280'use strict';
ebd8d4e8
IC
8281/*
8282 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
8283 * Digest Algorithm, as defined in RFC 1321.
8284 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
8285 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
8286 * Distributed under the BSD License
8287 * See http://pajhome.org.uk/crypt/md5 for more info.
8288 */
8289
ab78acc6 8290var helpers = require('./helpers');
ebd8d4e8
IC
8291
8292/*
8293 * Calculate the MD5 of an array of little-endian words, and a bit length
8294 */
8295function core_md5(x, len)
8296{
8297 /* append padding */
8298 x[len >> 5] |= 0x80 << ((len) % 32);
8299 x[(((len + 64) >>> 9) << 4) + 14] = len;
8300
8301 var a = 1732584193;
8302 var b = -271733879;
8303 var c = -1732584194;
8304 var d = 271733878;
8305
8306 for(var i = 0; i < x.length; i += 16)
8307 {
8308 var olda = a;
8309 var oldb = b;
8310 var oldc = c;
8311 var oldd = d;
8312
8313 a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
8314 d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
8315 c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
8316 b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
8317 a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
8318 d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
8319 c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
8320 b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
8321 a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
8322 d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
8323 c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
8324 b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
8325 a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
8326 d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
8327 c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
8328 b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
8329
8330 a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
8331 d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
8332 c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
8333 b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
8334 a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
8335 d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
8336 c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
8337 b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
8338 a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
8339 d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
8340 c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
8341 b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
8342 a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
8343 d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
8344 c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
8345 b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
8346
8347 a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
8348 d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
8349 c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
8350 b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
8351 a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
8352 d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
8353 c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
8354 b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
8355 a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
8356 d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
8357 c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
8358 b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
8359 a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
8360 d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
8361 c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
8362 b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
8363
8364 a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
8365 d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
8366 c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
8367 b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
8368 a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
8369 d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
8370 c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
8371 b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
8372 a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
8373 d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
8374 c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
8375 b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
8376 a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
8377 d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
8378 c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
8379 b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
8380
8381 a = safe_add(a, olda);
8382 b = safe_add(b, oldb);
8383 c = safe_add(c, oldc);
8384 d = safe_add(d, oldd);
8385 }
8386 return Array(a, b, c, d);
8387
8388}
8389
8390/*
8391 * These functions implement the four basic operations the algorithm uses.
8392 */
8393function md5_cmn(q, a, b, x, s, t)
8394{
8395 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
8396}
8397function md5_ff(a, b, c, d, x, s, t)
8398{
8399 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
8400}
8401function md5_gg(a, b, c, d, x, s, t)
8402{
8403 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
8404}
8405function md5_hh(a, b, c, d, x, s, t)
8406{
8407 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
8408}
8409function md5_ii(a, b, c, d, x, s, t)
8410{
8411 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
8412}
8413
8414/*
8415 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
8416 * to work around bugs in some JS interpreters.
8417 */
8418function safe_add(x, y)
8419{
8420 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
8421 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
8422 return (msw << 16) | (lsw & 0xFFFF);
8423}
8424
8425/*
8426 * Bitwise rotate a 32-bit number to the left.
8427 */
8428function bit_rol(num, cnt)
8429{
8430 return (num << cnt) | (num >>> (32 - cnt));
8431}
8432
8433module.exports = function md5(buf) {
8434 return helpers.hash(buf, core_md5, 16);
8435};
ab78acc6
IC
8436},{"./helpers":33}],35:[function(require,module,exports){
8437arguments[4][12][0].apply(exports,arguments)
8438},{"dup":12}],36:[function(require,module,exports){
ebd8d4e8 8439(function (Buffer){
ebd8d4e8
IC
8440/*
8441CryptoJS v3.1.2
8442code.google.com/p/crypto-js
8443(c) 2009-2013 by Jeff Mott. All rights reserved.
8444code.google.com/p/crypto-js/wiki/License
8445*/
8446/** @preserve
8447(c) 2012 by Cédric Mesnil. All rights reserved.
8448
8449Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
8450
8451 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8452 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8453
8454THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8455*/
8456
ab78acc6 8457// constants table
ebd8d4e8 8458var zl = [
ab78acc6
IC
8459 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
8460 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
8461 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
8462 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
8463 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
8464]
8465
ebd8d4e8 8466var zr = [
ab78acc6
IC
8467 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
8468 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
8469 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
8470 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
8471 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
8472]
8473
ebd8d4e8 8474var sl = [
ab78acc6
IC
8475 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
8476 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
8477 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
8478 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
8479 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
8480]
8481
ebd8d4e8 8482var sr = [
ab78acc6
IC
8483 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
8484 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
8485 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
8486 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
8487 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
8488]
ebd8d4e8 8489
ab78acc6
IC
8490var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
8491var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
ebd8d4e8 8492
ab78acc6
IC
8493function bytesToWords (bytes) {
8494 var words = []
ebd8d4e8 8495 for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
ab78acc6 8496 words[b >>> 5] |= bytes[i] << (24 - b % 32)
ebd8d4e8 8497 }
ab78acc6
IC
8498 return words
8499}
ebd8d4e8 8500
ab78acc6
IC
8501function wordsToBytes (words) {
8502 var bytes = []
ebd8d4e8 8503 for (var b = 0; b < words.length * 32; b += 8) {
ab78acc6 8504 bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
ebd8d4e8 8505 }
ab78acc6
IC
8506 return bytes
8507}
ebd8d4e8 8508
ab78acc6
IC
8509function processBlock (H, M, offset) {
8510 // swap endian
ebd8d4e8 8511 for (var i = 0; i < 16; i++) {
ab78acc6
IC
8512 var offset_i = offset + i
8513 var M_offset_i = M[offset_i]
ebd8d4e8
IC
8514
8515 // Swap
8516 M[offset_i] = (
ab78acc6
IC
8517 (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
8518 (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
8519 )
ebd8d4e8
IC
8520 }
8521
8522 // Working variables
ab78acc6
IC
8523 var al, bl, cl, dl, el
8524 var ar, br, cr, dr, er
8525
8526 ar = al = H[0]
8527 br = bl = H[1]
8528 cr = cl = H[2]
8529 dr = dl = H[3]
8530 er = el = H[4]
8531
8532 // computation
8533 var t
8534 for (i = 0; i < 80; i += 1) {
8535 t = (al + M[offset + zl[i]]) | 0
8536 if (i < 16) {
8537 t += f1(bl, cl, dl) + hl[0]
8538 } else if (i < 32) {
8539 t += f2(bl, cl, dl) + hl[1]
8540 } else if (i < 48) {
8541 t += f3(bl, cl, dl) + hl[2]
8542 } else if (i < 64) {
8543 t += f4(bl, cl, dl) + hl[3]
ebd8d4e8 8544 } else {// if (i<80) {
ab78acc6
IC
8545 t += f5(bl, cl, dl) + hl[4]
8546 }
8547 t = t | 0
8548 t = rotl(t, sl[i])
8549 t = (t + el) | 0
8550 al = el
8551 el = dl
8552 dl = rotl(cl, 10)
8553 cl = bl
8554 bl = t
8555
8556 t = (ar + M[offset + zr[i]]) | 0
8557 if (i < 16) {
8558 t += f5(br, cr, dr) + hr[0]
8559 } else if (i < 32) {
8560 t += f4(br, cr, dr) + hr[1]
8561 } else if (i < 48) {
8562 t += f3(br, cr, dr) + hr[2]
8563 } else if (i < 64) {
8564 t += f2(br, cr, dr) + hr[3]
ebd8d4e8 8565 } else {// if (i<80) {
ab78acc6 8566 t += f1(br, cr, dr) + hr[4]
ebd8d4e8 8567 }
ebd8d4e8 8568
ab78acc6
IC
8569 t = t | 0
8570 t = rotl(t, sr[i])
8571 t = (t + er) | 0
8572 ar = er
8573 er = dr
8574 dr = rotl(cr, 10)
8575 cr = br
8576 br = t
8577 }
8578
8579 // intermediate hash value
8580 t = (H[1] + cl + dr) | 0
8581 H[1] = (H[2] + dl + er) | 0
8582 H[2] = (H[3] + el + ar) | 0
8583 H[3] = (H[4] + al + br) | 0
8584 H[4] = (H[0] + bl + cr) | 0
8585 H[0] = t
ebd8d4e8
IC
8586}
8587
ab78acc6
IC
8588function f1 (x, y, z) {
8589 return ((x) ^ (y) ^ (z))
ebd8d4e8
IC
8590}
8591
ab78acc6
IC
8592function f2 (x, y, z) {
8593 return (((x) & (y)) | ((~x) & (z)))
ebd8d4e8
IC
8594}
8595
ab78acc6
IC
8596function f3 (x, y, z) {
8597 return (((x) | (~(y))) ^ (z))
ebd8d4e8
IC
8598}
8599
ab78acc6
IC
8600function f4 (x, y, z) {
8601 return (((x) & (z)) | ((y) & (~(z))))
ebd8d4e8
IC
8602}
8603
ab78acc6
IC
8604function f5 (x, y, z) {
8605 return ((x) ^ ((y) | (~(z))))
ebd8d4e8
IC
8606}
8607
ab78acc6
IC
8608function rotl (x, n) {
8609 return (x << n) | (x >>> (32 - n))
8610}
8611
8612function ripemd160 (message) {
8613 var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
ebd8d4e8 8614
ab78acc6
IC
8615 if (typeof message === 'string') {
8616 message = new Buffer(message, 'utf8')
8617 }
ebd8d4e8 8618
ab78acc6 8619 var m = bytesToWords(message)
ebd8d4e8 8620
ab78acc6
IC
8621 var nBitsLeft = message.length * 8
8622 var nBitsTotal = message.length * 8
ebd8d4e8
IC
8623
8624 // Add padding
ab78acc6 8625 m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
ebd8d4e8 8626 m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
ab78acc6
IC
8627 (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
8628 (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
8629 )
ebd8d4e8 8630
ab78acc6
IC
8631 for (var i = 0; i < m.length; i += 16) {
8632 processBlock(H, m, i)
ebd8d4e8
IC
8633 }
8634
ab78acc6
IC
8635 // swap endian
8636 for (i = 0; i < 5; i++) {
8637 // shortcut
8638 var H_i = H[i]
ebd8d4e8
IC
8639
8640 // Swap
ab78acc6
IC
8641 H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
8642 (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
ebd8d4e8
IC
8643 }
8644
ab78acc6
IC
8645 var digestbytes = wordsToBytes(H)
8646 return new Buffer(digestbytes)
ebd8d4e8
IC
8647}
8648
ab78acc6
IC
8649module.exports = ripemd160
8650
8651}).call(this,require("buffer").Buffer)
8652},{"buffer":7}],37:[function(require,module,exports){
8653(function (Buffer){
8654// prototype class for hash functions
8655function Hash (blockSize, finalSize) {
8656 this._block = new Buffer(blockSize)
8657 this._finalSize = finalSize
8658 this._blockSize = blockSize
8659 this._len = 0
8660 this._s = 0
8661}
ebd8d4e8 8662
ab78acc6
IC
8663Hash.prototype.update = function (data, enc) {
8664 if (typeof data === 'string') {
8665 enc = enc || 'utf8'
8666 data = new Buffer(data, enc)
8667 }
ebd8d4e8 8668
ab78acc6
IC
8669 var l = this._len += data.length
8670 var s = this._s || 0
8671 var f = 0
8672 var buffer = this._block
ebd8d4e8 8673
ab78acc6
IC
8674 while (s < l) {
8675 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
8676 var ch = (t - f)
ebd8d4e8 8677
ab78acc6
IC
8678 for (var i = 0; i < ch; i++) {
8679 buffer[(s % this._blockSize) + i] = data[i + f]
8680 }
8681
8682 s += ch
8683 f += ch
ebd8d4e8 8684
ab78acc6
IC
8685 if ((s % this._blockSize) === 0) {
8686 this._update(buffer)
8687 }
ebd8d4e8 8688 }
ab78acc6
IC
8689 this._s = s
8690
8691 return this
8692}
ebd8d4e8 8693
ab78acc6
IC
8694Hash.prototype.digest = function (enc) {
8695 // Suppose the length of the message M, in bits, is l
8696 var l = this._len * 8
8697
8698 // Append the bit 1 to the end of the message
8699 this._block[this._len % this._blockSize] = 0x80
8700
8701 // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
8702 this._block.fill(0, this._len % this._blockSize + 1)
8703
8704 if (l % (this._blockSize * 8) >= this._finalSize * 8) {
8705 this._update(this._block)
8706 this._block.fill(0)
ebd8d4e8
IC
8707 }
8708
ab78acc6
IC
8709 // to this append the block which is equal to the number l written in binary
8710 // TODO: handle case where l is > Math.pow(2, 29)
8711 this._block.writeInt32BE(l, this._blockSize - 4)
8712
8713 var hash = this._update(this._block) || this._hash()
ebd8d4e8 8714
ab78acc6
IC
8715 return enc ? hash.toString(enc) : hash
8716}
ebd8d4e8 8717
ab78acc6
IC
8718Hash.prototype._update = function () {
8719 throw new Error('_update must be implemented by subclass')
8720}
ebd8d4e8 8721
ab78acc6 8722module.exports = Hash
ebd8d4e8 8723
ab78acc6
IC
8724}).call(this,require("buffer").Buffer)
8725},{"buffer":7}],38:[function(require,module,exports){
8726var exports = module.exports = function SHA (algorithm) {
8727 algorithm = algorithm.toLowerCase()
ebd8d4e8 8728
ab78acc6
IC
8729 var Algorithm = exports[algorithm]
8730 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
ebd8d4e8 8731
ab78acc6
IC
8732 return new Algorithm()
8733}
8734
8735exports.sha = require('./sha')
8736exports.sha1 = require('./sha1')
8737exports.sha224 = require('./sha224')
8738exports.sha256 = require('./sha256')
8739exports.sha384 = require('./sha384')
8740exports.sha512 = require('./sha512')
8741
8742},{"./sha":39,"./sha1":40,"./sha224":41,"./sha256":42,"./sha384":43,"./sha512":44}],39:[function(require,module,exports){
8743(function (Buffer){
8744/*
8745 * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
8746 * in FIPS PUB 180-1
8747 * This source code is derived from sha1.js of the same repository.
8748 * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
8749 * operation was added.
8750 */
ebd8d4e8 8751
ab78acc6
IC
8752var inherits = require('inherits')
8753var Hash = require('./hash')
ebd8d4e8 8754
ab78acc6 8755var W = new Array(80)
ebd8d4e8 8756
ab78acc6
IC
8757function Sha () {
8758 this.init()
8759 this._w = W
ebd8d4e8 8760
ab78acc6
IC
8761 Hash.call(this, 64, 56)
8762}
ebd8d4e8 8763
ab78acc6 8764inherits(Sha, Hash)
ebd8d4e8 8765
ab78acc6
IC
8766Sha.prototype.init = function () {
8767 this._a = 0x67452301 | 0
8768 this._b = 0xefcdab89 | 0
8769 this._c = 0x98badcfe | 0
8770 this._d = 0x10325476 | 0
8771 this._e = 0xc3d2e1f0 | 0
ebd8d4e8 8772
ab78acc6
IC
8773 return this
8774}
8775
8776/*
8777 * Bitwise rotate a 32-bit number to the left.
8778 */
8779function rol (num, cnt) {
8780 return (num << cnt) | (num >>> (32 - cnt))
8781}
8782
8783Sha.prototype._update = function (M) {
8784 var W = this._w
8785
8786 var a = this._a
8787 var b = this._b
8788 var c = this._c
8789 var d = this._d
8790 var e = this._e
ebd8d4e8 8791
ab78acc6
IC
8792 var j = 0, k
8793
8794 /*
8795 * SHA-1 has a bitwise rotate left operation. But, SHA is not
8796 * function calcW() { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
8797 */
8798 function calcW () { return W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16] }
8799 function loop (w, f) {
8800 W[j] = w
8801
8802 var t = rol(a, 5) + f + e + w + k
8803
8804 e = d
8805 d = c
8806 c = rol(b, 30)
8807 b = a
8808 a = t
8809 j++
ebd8d4e8
IC
8810 }
8811
ab78acc6
IC
8812 k = 1518500249
8813 while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
8814 while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
8815 k = 1859775393
8816 while (j < 40) loop(calcW(), b ^ c ^ d)
8817 k = -1894007588
8818 while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
8819 k = -899497514
8820 while (j < 80) loop(calcW(), b ^ c ^ d)
8821
8822 this._a = (a + this._a) | 0
8823 this._b = (b + this._b) | 0
8824 this._c = (c + this._c) | 0
8825 this._d = (d + this._d) | 0
8826 this._e = (e + this._e) | 0
ebd8d4e8
IC
8827}
8828
ab78acc6
IC
8829Sha.prototype._hash = function () {
8830 var H = new Buffer(20)
8831
8832 H.writeInt32BE(this._a | 0, 0)
8833 H.writeInt32BE(this._b | 0, 4)
8834 H.writeInt32BE(this._c | 0, 8)
8835 H.writeInt32BE(this._d | 0, 12)
8836 H.writeInt32BE(this._e | 0, 16)
8837
8838 return H
ebd8d4e8
IC
8839}
8840
ab78acc6 8841module.exports = Sha
ebd8d4e8 8842
ebd8d4e8 8843
ab78acc6
IC
8844}).call(this,require("buffer").Buffer)
8845},{"./hash":37,"buffer":7,"inherits":35}],40:[function(require,module,exports){
8846(function (Buffer){
ebd8d4e8
IC
8847/*
8848 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
8849 * in FIPS PUB 180-1
8850 * Version 2.1a Copyright Paul Johnston 2000 - 2002.
8851 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
8852 * Distributed under the BSD License
8853 * See http://pajhome.org.uk/crypt/md5 for details.
8854 */
ebd8d4e8 8855
ab78acc6
IC
8856var inherits = require('inherits')
8857var Hash = require('./hash')
ebd8d4e8 8858
ab78acc6 8859var W = new Array(80)
ebd8d4e8 8860
ab78acc6
IC
8861function Sha1 () {
8862 this.init()
8863 this._w = W
ebd8d4e8 8864
ab78acc6
IC
8865 Hash.call(this, 64, 56)
8866}
ebd8d4e8 8867
ab78acc6 8868inherits(Sha1, Hash)
ebd8d4e8 8869
ab78acc6
IC
8870Sha1.prototype.init = function () {
8871 this._a = 0x67452301 | 0
8872 this._b = 0xefcdab89 | 0
8873 this._c = 0x98badcfe | 0
8874 this._d = 0x10325476 | 0
8875 this._e = 0xc3d2e1f0 | 0
ebd8d4e8 8876
ab78acc6
IC
8877 return this
8878}
ebd8d4e8 8879
ab78acc6
IC
8880/*
8881 * Bitwise rotate a 32-bit number to the left.
8882 */
8883function rol (num, cnt) {
8884 return (num << cnt) | (num >>> (32 - cnt))
8885}
ebd8d4e8 8886
ab78acc6
IC
8887Sha1.prototype._update = function (M) {
8888 var W = this._w
ebd8d4e8 8889
ab78acc6
IC
8890 var a = this._a
8891 var b = this._b
8892 var c = this._c
8893 var d = this._d
8894 var e = this._e
ebd8d4e8 8895
ab78acc6 8896 var j = 0, k
ebd8d4e8 8897
ab78acc6
IC
8898 function calcW () { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
8899 function loop (w, f) {
8900 W[j] = w
ebd8d4e8 8901
ab78acc6 8902 var t = rol(a, 5) + f + e + w + k
ebd8d4e8 8903
ab78acc6
IC
8904 e = d
8905 d = c
8906 c = rol(b, 30)
8907 b = a
8908 a = t
8909 j++
ebd8d4e8
IC
8910 }
8911
ab78acc6
IC
8912 k = 1518500249
8913 while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
8914 while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
8915 k = 1859775393
8916 while (j < 40) loop(calcW(), b ^ c ^ d)
8917 k = -1894007588
8918 while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
8919 k = -899497514
8920 while (j < 80) loop(calcW(), b ^ c ^ d)
ebd8d4e8 8921
ab78acc6
IC
8922 this._a = (a + this._a) | 0
8923 this._b = (b + this._b) | 0
8924 this._c = (c + this._c) | 0
8925 this._d = (d + this._d) | 0
8926 this._e = (e + this._e) | 0
8927}
ebd8d4e8 8928
ab78acc6
IC
8929Sha1.prototype._hash = function () {
8930 var H = new Buffer(20)
ebd8d4e8 8931
ab78acc6
IC
8932 H.writeInt32BE(this._a | 0, 0)
8933 H.writeInt32BE(this._b | 0, 4)
8934 H.writeInt32BE(this._c | 0, 8)
8935 H.writeInt32BE(this._d | 0, 12)
8936 H.writeInt32BE(this._e | 0, 16)
ebd8d4e8 8937
ab78acc6
IC
8938 return H
8939}
ebd8d4e8 8940
ab78acc6 8941module.exports = Sha1
ebd8d4e8 8942
ab78acc6
IC
8943}).call(this,require("buffer").Buffer)
8944},{"./hash":37,"buffer":7,"inherits":35}],41:[function(require,module,exports){
8945(function (Buffer){
8946/**
8947 * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
8948 * in FIPS 180-2
8949 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
8950 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
8951 *
8952 */
ebd8d4e8 8953
ab78acc6
IC
8954var inherits = require('inherits')
8955var Sha256 = require('./sha256')
8956var Hash = require('./hash')
ebd8d4e8 8957
ab78acc6 8958var W = new Array(64)
ebd8d4e8 8959
ab78acc6
IC
8960function Sha224 () {
8961 this.init()
ebd8d4e8 8962
ab78acc6 8963 this._w = W // new Array(64)
ebd8d4e8 8964
ab78acc6
IC
8965 Hash.call(this, 64, 56)
8966}
ebd8d4e8 8967
ab78acc6 8968inherits(Sha224, Sha256)
ebd8d4e8 8969
ab78acc6
IC
8970Sha224.prototype.init = function () {
8971 this._a = 0xc1059ed8 | 0
8972 this._b = 0x367cd507 | 0
8973 this._c = 0x3070dd17 | 0
8974 this._d = 0xf70e5939 | 0
8975 this._e = 0xffc00b31 | 0
8976 this._f = 0x68581511 | 0
8977 this._g = 0x64f98fa7 | 0
8978 this._h = 0xbefa4fa4 | 0
8979
8980 return this
8981}
8982
8983Sha224.prototype._hash = function () {
8984 var H = new Buffer(28)
8985
8986 H.writeInt32BE(this._a, 0)
8987 H.writeInt32BE(this._b, 4)
8988 H.writeInt32BE(this._c, 8)
8989 H.writeInt32BE(this._d, 12)
8990 H.writeInt32BE(this._e, 16)
8991 H.writeInt32BE(this._f, 20)
8992 H.writeInt32BE(this._g, 24)
8993
8994 return H
ebd8d4e8
IC
8995}
8996
ab78acc6 8997module.exports = Sha224
ebd8d4e8 8998
ab78acc6
IC
8999}).call(this,require("buffer").Buffer)
9000},{"./hash":37,"./sha256":42,"buffer":7,"inherits":35}],42:[function(require,module,exports){
9001(function (Buffer){
ebd8d4e8
IC
9002/**
9003 * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
9004 * in FIPS 180-2
9005 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
9006 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
9007 *
9008 */
9009
ab78acc6
IC
9010var inherits = require('inherits')
9011var Hash = require('./hash')
9012
9013var K = [
9014 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
9015 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
9016 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
9017 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
9018 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
9019 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
9020 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
9021 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
9022 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
9023 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
9024 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
9025 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
9026 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
9027 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
9028 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
9029 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
9030]
9031
9032var W = new Array(64)
9033
9034function Sha256 () {
9035 this.init()
9036
9037 this._w = W // new Array(64)
9038
9039 Hash.call(this, 64, 56)
9040}
9041
9042inherits(Sha256, Hash)
9043
9044Sha256.prototype.init = function () {
9045 this._a = 0x6a09e667 | 0
9046 this._b = 0xbb67ae85 | 0
9047 this._c = 0x3c6ef372 | 0
9048 this._d = 0xa54ff53a | 0
9049 this._e = 0x510e527f | 0
9050 this._f = 0x9b05688c | 0
9051 this._g = 0x1f83d9ab | 0
9052 this._h = 0x5be0cd19 | 0
ebd8d4e8 9053
ab78acc6
IC
9054 return this
9055}
ebd8d4e8 9056
ab78acc6
IC
9057function S (X, n) {
9058 return (X >>> n) | (X << (32 - n))
9059}
ebd8d4e8 9060
ab78acc6
IC
9061function R (X, n) {
9062 return (X >>> n)
9063}
ebd8d4e8 9064
ab78acc6
IC
9065function Ch (x, y, z) {
9066 return ((x & y) ^ ((~x) & z))
9067}
ebd8d4e8 9068
ab78acc6
IC
9069function Maj (x, y, z) {
9070 return ((x & y) ^ (x & z) ^ (y & z))
9071}
ebd8d4e8 9072
ab78acc6
IC
9073function Sigma0256 (x) {
9074 return (S(x, 2) ^ S(x, 13) ^ S(x, 22))
9075}
ebd8d4e8 9076
ab78acc6
IC
9077function Sigma1256 (x) {
9078 return (S(x, 6) ^ S(x, 11) ^ S(x, 25))
9079}
ebd8d4e8 9080
ab78acc6
IC
9081function Gamma0256 (x) {
9082 return (S(x, 7) ^ S(x, 18) ^ R(x, 3))
9083}
ebd8d4e8 9084
ab78acc6
IC
9085function Gamma1256 (x) {
9086 return (S(x, 17) ^ S(x, 19) ^ R(x, 10))
9087}
ebd8d4e8 9088
ab78acc6
IC
9089Sha256.prototype._update = function (M) {
9090 var W = this._w
ebd8d4e8 9091
ab78acc6
IC
9092 var a = this._a | 0
9093 var b = this._b | 0
9094 var c = this._c | 0
9095 var d = this._d | 0
9096 var e = this._e | 0
9097 var f = this._f | 0
9098 var g = this._g | 0
9099 var h = this._h | 0
ebd8d4e8 9100
ab78acc6 9101 var j = 0
ebd8d4e8 9102
ab78acc6
IC
9103 function calcW () { return Gamma1256(W[j - 2]) + W[j - 7] + Gamma0256(W[j - 15]) + W[j - 16] }
9104 function loop (w) {
9105 W[j] = w
ebd8d4e8 9106
ab78acc6
IC
9107 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
9108 var T2 = Sigma0256(a) + Maj(a, b, c)
ebd8d4e8 9109
ab78acc6
IC
9110 h = g
9111 g = f
9112 f = e
9113 e = d + T1
9114 d = c
9115 c = b
9116 b = a
9117 a = T1 + T2
ebd8d4e8 9118
ab78acc6 9119 j++
ebd8d4e8
IC
9120 }
9121
ab78acc6
IC
9122 while (j < 16) loop(M.readInt32BE(j * 4))
9123 while (j < 64) loop(calcW())
ebd8d4e8 9124
ab78acc6
IC
9125 this._a = (a + this._a) | 0
9126 this._b = (b + this._b) | 0
9127 this._c = (c + this._c) | 0
9128 this._d = (d + this._d) | 0
9129 this._e = (e + this._e) | 0
9130 this._f = (f + this._f) | 0
9131 this._g = (g + this._g) | 0
9132 this._h = (h + this._h) | 0
9133}
ebd8d4e8 9134
ab78acc6
IC
9135Sha256.prototype._hash = function () {
9136 var H = new Buffer(32)
ebd8d4e8 9137
ab78acc6
IC
9138 H.writeInt32BE(this._a, 0)
9139 H.writeInt32BE(this._b, 4)
9140 H.writeInt32BE(this._c, 8)
9141 H.writeInt32BE(this._d, 12)
9142 H.writeInt32BE(this._e, 16)
9143 H.writeInt32BE(this._f, 20)
9144 H.writeInt32BE(this._g, 24)
9145 H.writeInt32BE(this._h, 28)
ebd8d4e8 9146
ab78acc6
IC
9147 return H
9148}
ebd8d4e8 9149
ab78acc6 9150module.exports = Sha256
ebd8d4e8 9151
ab78acc6
IC
9152}).call(this,require("buffer").Buffer)
9153},{"./hash":37,"buffer":7,"inherits":35}],43:[function(require,module,exports){
9154(function (Buffer){
9155var inherits = require('inherits')
9156var SHA512 = require('./sha512')
9157var Hash = require('./hash')
ebd8d4e8 9158
ab78acc6 9159var W = new Array(160)
ebd8d4e8 9160
ab78acc6
IC
9161function Sha384 () {
9162 this.init()
9163 this._w = W
ebd8d4e8 9164
ab78acc6
IC
9165 Hash.call(this, 128, 112)
9166}
ebd8d4e8 9167
ab78acc6 9168inherits(Sha384, SHA512)
ebd8d4e8 9169
ab78acc6
IC
9170Sha384.prototype.init = function () {
9171 this._a = 0xcbbb9d5d | 0
9172 this._b = 0x629a292a | 0
9173 this._c = 0x9159015a | 0
9174 this._d = 0x152fecd8 | 0
9175 this._e = 0x67332667 | 0
9176 this._f = 0x8eb44a87 | 0
9177 this._g = 0xdb0c2e0d | 0
9178 this._h = 0x47b5481d | 0
ebd8d4e8 9179
ab78acc6
IC
9180 this._al = 0xc1059ed8 | 0
9181 this._bl = 0x367cd507 | 0
9182 this._cl = 0x3070dd17 | 0
9183 this._dl = 0xf70e5939 | 0
9184 this._el = 0xffc00b31 | 0
9185 this._fl = 0x68581511 | 0
9186 this._gl = 0x64f98fa7 | 0
9187 this._hl = 0xbefa4fa4 | 0
ebd8d4e8 9188
ab78acc6 9189 return this
ebd8d4e8
IC
9190}
9191
ab78acc6
IC
9192Sha384.prototype._hash = function () {
9193 var H = new Buffer(48)
ebd8d4e8 9194
ab78acc6
IC
9195 function writeInt64BE (h, l, offset) {
9196 H.writeInt32BE(h, offset)
9197 H.writeInt32BE(l, offset + 4)
ebd8d4e8 9198 }
ebd8d4e8 9199
ab78acc6
IC
9200 writeInt64BE(this._a, this._al, 0)
9201 writeInt64BE(this._b, this._bl, 8)
9202 writeInt64BE(this._c, this._cl, 16)
9203 writeInt64BE(this._d, this._dl, 24)
9204 writeInt64BE(this._e, this._el, 32)
9205 writeInt64BE(this._f, this._fl, 40)
9206
9207 return H
ebd8d4e8
IC
9208}
9209
ab78acc6 9210module.exports = Sha384
ebd8d4e8 9211
ab78acc6
IC
9212}).call(this,require("buffer").Buffer)
9213},{"./hash":37,"./sha512":44,"buffer":7,"inherits":35}],44:[function(require,module,exports){
ebd8d4e8 9214(function (Buffer){
ab78acc6
IC
9215var inherits = require('inherits')
9216var Hash = require('./hash')
9217
9218var K = [
9219 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
9220 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
9221 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
9222 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
9223 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
9224 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
9225 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
9226 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
9227 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
9228 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
9229 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
9230 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
9231 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
9232 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
9233 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
9234 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
9235 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
9236 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
9237 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
9238 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
9239 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
9240 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
9241 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
9242 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
9243 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
9244 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
9245 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
9246 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
9247 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
9248 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
9249 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
9250 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
9251 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
9252 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
9253 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
9254 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
9255 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
9256 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
9257 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
9258 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
9259]
9260
9261var W = new Array(160)
9262
9263function Sha512 () {
9264 this.init()
9265 this._w = W
9266
9267 Hash.call(this, 128, 112)
9268}
9269
9270inherits(Sha512, Hash)
9271
9272Sha512.prototype.init = function () {
9273 this._a = 0x6a09e667 | 0
9274 this._b = 0xbb67ae85 | 0
9275 this._c = 0x3c6ef372 | 0
9276 this._d = 0xa54ff53a | 0
9277 this._e = 0x510e527f | 0
9278 this._f = 0x9b05688c | 0
9279 this._g = 0x1f83d9ab | 0
9280 this._h = 0x5be0cd19 | 0
9281
9282 this._al = 0xf3bcc908 | 0
9283 this._bl = 0x84caa73b | 0
9284 this._cl = 0xfe94f82b | 0
9285 this._dl = 0x5f1d36f1 | 0
9286 this._el = 0xade682d1 | 0
9287 this._fl = 0x2b3e6c1f | 0
9288 this._gl = 0xfb41bd6b | 0
9289 this._hl = 0x137e2179 | 0
ebd8d4e8 9290
ab78acc6 9291 return this
ebd8d4e8
IC
9292}
9293
ab78acc6
IC
9294function S (X, Xl, n) {
9295 return (X >>> n) | (Xl << (32 - n))
9296}
9297
9298function Ch (x, y, z) {
9299 return ((x & y) ^ ((~x) & z))
9300}
9301
9302function Maj (x, y, z) {
9303 return ((x & y) ^ (x & z) ^ (y & z))
9304}
9305
9306Sha512.prototype._update = function (M) {
9307 var W = this._w
9308
9309 var a = this._a | 0
9310 var b = this._b | 0
9311 var c = this._c | 0
9312 var d = this._d | 0
9313 var e = this._e | 0
9314 var f = this._f | 0
9315 var g = this._g | 0
9316 var h = this._h | 0
9317
9318 var al = this._al | 0
9319 var bl = this._bl | 0
9320 var cl = this._cl | 0
9321 var dl = this._dl | 0
9322 var el = this._el | 0
9323 var fl = this._fl | 0
9324 var gl = this._gl | 0
9325 var hl = this._hl | 0
9326
9327 var i = 0, j = 0
9328 var Wi, Wil
9329 function calcW () {
9330 var x = W[j - 15 * 2]
9331 var xl = W[j - 15 * 2 + 1]
9332 var gamma0 = S(x, xl, 1) ^ S(x, xl, 8) ^ (x >>> 7)
9333 var gamma0l = S(xl, x, 1) ^ S(xl, x, 8) ^ S(xl, x, 7)
9334
9335 x = W[j - 2 * 2]
9336 xl = W[j - 2 * 2 + 1]
9337 var gamma1 = S(x, xl, 19) ^ S(xl, x, 29) ^ (x >>> 6)
9338 var gamma1l = S(xl, x, 19) ^ S(x, xl, 29) ^ S(xl, x, 6)
9339
9340 // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
9341 var Wi7 = W[j - 7 * 2]
9342 var Wi7l = W[j - 7 * 2 + 1]
9343
9344 var Wi16 = W[j - 16 * 2]
9345 var Wi16l = W[j - 16 * 2 + 1]
ebd8d4e8 9346
ab78acc6
IC
9347 Wil = gamma0l + Wi7l
9348 Wi = gamma0 + Wi7 + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0)
9349 Wil = Wil + gamma1l
9350 Wi = Wi + gamma1 + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0)
9351 Wil = Wil + Wi16l
9352 Wi = Wi + Wi16 + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0)
9353 }
9354
9355 function loop () {
9356 W[j] = Wi
9357 W[j + 1] = Wil
ebd8d4e8 9358
ab78acc6
IC
9359 var maj = Maj(a, b, c)
9360 var majl = Maj(al, bl, cl)
ebd8d4e8 9361
ab78acc6
IC
9362 var sigma0h = S(a, al, 28) ^ S(al, a, 2) ^ S(al, a, 7)
9363 var sigma0l = S(al, a, 28) ^ S(a, al, 2) ^ S(a, al, 7)
9364 var sigma1h = S(e, el, 14) ^ S(e, el, 18) ^ S(el, e, 9)
9365 var sigma1l = S(el, e, 14) ^ S(el, e, 18) ^ S(e, el, 9)
ebd8d4e8 9366
ab78acc6
IC
9367 // t1 = h + sigma1 + ch + K[i] + W[i]
9368 var Ki = K[j]
9369 var Kil = K[j + 1]
ebd8d4e8 9370
ab78acc6
IC
9371 var ch = Ch(e, f, g)
9372 var chl = Ch(el, fl, gl)
ebd8d4e8 9373
ab78acc6
IC
9374 var t1l = hl + sigma1l
9375 var t1 = h + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0)
9376 t1l = t1l + chl
9377 t1 = t1 + ch + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0)
9378 t1l = t1l + Kil
9379 t1 = t1 + Ki + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0)
9380 t1l = t1l + Wil
9381 t1 = t1 + Wi + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0)
ebd8d4e8 9382
ab78acc6
IC
9383 // t2 = sigma0 + maj
9384 var t2l = sigma0l + majl
9385 var t2 = sigma0h + maj + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0)
ebd8d4e8 9386
ab78acc6
IC
9387 h = g
9388 hl = gl
9389 g = f
9390 gl = fl
9391 f = e
9392 fl = el
9393 el = (dl + t1l) | 0
9394 e = (d + t1 + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
9395 d = c
9396 dl = cl
9397 c = b
9398 cl = bl
9399 b = a
9400 bl = al
9401 al = (t1l + t2l) | 0
9402 a = (t1 + t2 + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0
9403
9404 i++
9405 j += 2
9406 }
9407
9408 while (i < 16) {
9409 Wi = M.readInt32BE(j * 4)
9410 Wil = M.readInt32BE(j * 4 + 4)
9411
9412 loop()
9413 }
9414
9415 while (i < 80) {
9416 calcW()
9417 loop()
9418 }
9419
9420 this._al = (this._al + al) | 0
9421 this._bl = (this._bl + bl) | 0
9422 this._cl = (this._cl + cl) | 0
9423 this._dl = (this._dl + dl) | 0
9424 this._el = (this._el + el) | 0
9425 this._fl = (this._fl + fl) | 0
9426 this._gl = (this._gl + gl) | 0
9427 this._hl = (this._hl + hl) | 0
9428
9429 this._a = (this._a + a + ((this._al >>> 0) < (al >>> 0) ? 1 : 0)) | 0
9430 this._b = (this._b + b + ((this._bl >>> 0) < (bl >>> 0) ? 1 : 0)) | 0
9431 this._c = (this._c + c + ((this._cl >>> 0) < (cl >>> 0) ? 1 : 0)) | 0
9432 this._d = (this._d + d + ((this._dl >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
9433 this._e = (this._e + e + ((this._el >>> 0) < (el >>> 0) ? 1 : 0)) | 0
9434 this._f = (this._f + f + ((this._fl >>> 0) < (fl >>> 0) ? 1 : 0)) | 0
9435 this._g = (this._g + g + ((this._gl >>> 0) < (gl >>> 0) ? 1 : 0)) | 0
9436 this._h = (this._h + h + ((this._hl >>> 0) < (hl >>> 0) ? 1 : 0)) | 0
9437}
9438
9439Sha512.prototype._hash = function () {
9440 var H = new Buffer(64)
9441
9442 function writeInt64BE (h, l, offset) {
9443 H.writeInt32BE(h, offset)
9444 H.writeInt32BE(l, offset + 4)
9445 }
9446
9447 writeInt64BE(this._a, this._al, 0)
9448 writeInt64BE(this._b, this._bl, 8)
9449 writeInt64BE(this._c, this._cl, 16)
9450 writeInt64BE(this._d, this._dl, 24)
9451 writeInt64BE(this._e, this._el, 32)
9452 writeInt64BE(this._f, this._fl, 40)
9453 writeInt64BE(this._g, this._gl, 48)
9454 writeInt64BE(this._h, this._hl, 56)
9455
9456 return H
9457}
9458
9459module.exports = Sha512
9460
9461}).call(this,require("buffer").Buffer)
9462},{"./hash":37,"buffer":7,"inherits":35}],45:[function(require,module,exports){
9463(function (Buffer){
9464'use strict';
9465var createHash = require('create-hash/browser');
9466var inherits = require('inherits')
ebd8d4e8 9467
ab78acc6 9468var Transform = require('stream').Transform
ebd8d4e8 9469
ab78acc6
IC
9470var ZEROS = new Buffer(128)
9471ZEROS.fill(0)
ebd8d4e8 9472
ab78acc6
IC
9473function Hmac(alg, key) {
9474 Transform.call(this)
ebd8d4e8 9475
ab78acc6
IC
9476 if (typeof key === 'string') {
9477 key = new Buffer(key)
9478 }
ebd8d4e8 9479
ab78acc6 9480 var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
ebd8d4e8 9481
ab78acc6
IC
9482 this._alg = alg
9483 this._key = key
ebd8d4e8 9484
ab78acc6
IC
9485 if (key.length > blocksize) {
9486 key = createHash(alg).update(key).digest()
ebd8d4e8 9487
ab78acc6
IC
9488 } else if (key.length < blocksize) {
9489 key = Buffer.concat([key, ZEROS], blocksize)
9490 }
ebd8d4e8 9491
ab78acc6
IC
9492 var ipad = this._ipad = new Buffer(blocksize)
9493 var opad = this._opad = new Buffer(blocksize)
ebd8d4e8 9494
ab78acc6
IC
9495 for (var i = 0; i < blocksize; i++) {
9496 ipad[i] = key[i] ^ 0x36
9497 opad[i] = key[i] ^ 0x5C
9498 }
ebd8d4e8 9499
ab78acc6
IC
9500 this._hash = createHash(alg).update(ipad)
9501}
ebd8d4e8 9502
ab78acc6 9503inherits(Hmac, Transform)
ebd8d4e8 9504
ab78acc6
IC
9505Hmac.prototype.update = function (data, enc) {
9506 this._hash.update(data, enc)
ebd8d4e8 9507
ab78acc6
IC
9508 return this
9509}
ebd8d4e8 9510
ab78acc6
IC
9511Hmac.prototype._transform = function (data, _, next) {
9512 this._hash.update(data)
ebd8d4e8 9513
ab78acc6
IC
9514 next()
9515}
ebd8d4e8 9516
ab78acc6
IC
9517Hmac.prototype._flush = function (next) {
9518 this.push(this.digest())
ebd8d4e8 9519
ab78acc6
IC
9520 next()
9521}
ebd8d4e8 9522
ab78acc6
IC
9523Hmac.prototype.digest = function (enc) {
9524 var h = this._hash.digest()
ebd8d4e8 9525
ab78acc6
IC
9526 return createHash(this._alg).update(this._opad).update(h).digest(enc)
9527}
ebd8d4e8 9528
ab78acc6
IC
9529module.exports = function createHmac(alg, key) {
9530 return new Hmac(alg, key)
9531}
ebd8d4e8 9532
ab78acc6
IC
9533}).call(this,require("buffer").Buffer)
9534},{"buffer":7,"create-hash/browser":32,"inherits":46,"stream":26}],46:[function(require,module,exports){
9535arguments[4][12][0].apply(exports,arguments)
9536},{"dup":12}],47:[function(require,module,exports){
9537var assert = require('assert')
9538var BigInteger = require('bigi')
ebd8d4e8 9539
ab78acc6 9540var Point = require('./point')
ebd8d4e8
IC
9541
9542function Curve(p, a, b, Gx, Gy, n, h) {
9543 this.p = p
9544 this.a = a
9545 this.b = b
9546 this.G = Point.fromAffine(this, Gx, Gy)
9547 this.n = n
9548 this.h = h
9549
9550 this.infinity = new Point(this, null, null, BigInteger.ZERO)
9551
9552 // result caching
9553 this.pOverFour = p.add(BigInteger.ONE).shiftRight(2)
9554}
9555
9556Curve.prototype.pointFromX = function(isOdd, x) {
9557 var alpha = x.pow(3).add(this.a.multiply(x)).add(this.b).mod(this.p)
ab78acc6 9558 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
ebd8d4e8
IC
9559
9560 var y = beta
9561 if (beta.isEven() ^ !isOdd) {
9562 y = this.p.subtract(y) // -y % p
9563 }
9564
9565 return Point.fromAffine(this, x, y)
9566}
9567
9568Curve.prototype.isInfinity = function(Q) {
9569 if (Q === this.infinity) return true
9570
9571 return Q.z.signum() === 0 && Q.y.signum() !== 0
9572}
9573
9574Curve.prototype.isOnCurve = function(Q) {
9575 if (this.isInfinity(Q)) return true
9576
9577 var x = Q.affineX
9578 var y = Q.affineY
9579 var a = this.a
9580 var b = this.b
9581 var p = this.p
9582
9583 // Check that xQ and yQ are integers in the interval [0, p - 1]
9584 if (x.signum() < 0 || x.compareTo(p) >= 0) return false
9585 if (y.signum() < 0 || y.compareTo(p) >= 0) return false
9586
9587 // and check that y^2 = x^3 + ax + b (mod p)
9588 var lhs = y.square().mod(p)
9589 var rhs = x.pow(3).add(a.multiply(x)).add(b).mod(p)
9590 return lhs.equals(rhs)
9591}
9592
9593/**
9594 * Validate an elliptic curve point.
9595 *
9596 * See SEC 1, section 3.2.2.1: Elliptic Curve Public Key Validation Primitive
9597 */
9598Curve.prototype.validate = function(Q) {
9599 // Check Q != O
9600 assert(!this.isInfinity(Q), 'Point is at infinity')
9601 assert(this.isOnCurve(Q), 'Point is not on the curve')
9602
9603 // Check nQ = O (where Q is a scalar multiple of G)
9604 var nQ = Q.multiply(this.n)
9605 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
9606
9607 return true
9608}
9609
9610module.exports = Curve
9611
ab78acc6 9612},{"./point":51,"assert":5,"bigi":3}],48:[function(require,module,exports){
ebd8d4e8
IC
9613module.exports={
9614 "secp128r1": {
9615 "p": "fffffffdffffffffffffffffffffffff",
9616 "a": "fffffffdfffffffffffffffffffffffc",
9617 "b": "e87579c11079f43dd824993c2cee5ed3",
9618 "n": "fffffffe0000000075a30d1b9038a115",
9619 "h": "01",
9620 "Gx": "161ff7528b899b2d0c28607ca52c5b86",
9621 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
9622 },
9623 "secp160k1": {
9624 "p": "fffffffffffffffffffffffffffffffeffffac73",
9625 "a": "00",
9626 "b": "07",
9627 "n": "0100000000000000000001b8fa16dfab9aca16b6b3",
9628 "h": "01",
9629 "Gx": "3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
9630 "Gy": "938cf935318fdced6bc28286531733c3f03c4fee"
9631 },
9632 "secp160r1": {
9633 "p": "ffffffffffffffffffffffffffffffff7fffffff",
9634 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
9635 "b": "1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
9636 "n": "0100000000000000000001f4c8f927aed3ca752257",
9637 "h": "01",
9638 "Gx": "4a96b5688ef573284664698968c38bb913cbfc82",
9639 "Gy": "23a628553168947d59dcc912042351377ac5fb32"
9640 },
9641 "secp192k1": {
9642 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
9643 "a": "00",
9644 "b": "03",
9645 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
9646 "h": "01",
9647 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
9648 "Gy": "9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
9649 },
9650 "secp192r1": {
9651 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
9652 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
9653 "b": "64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
9654 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
9655 "h": "01",
9656 "Gx": "188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
9657 "Gy": "07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
9658 },
ebd8d4e8
IC
9659 "secp256k1": {
9660 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
9661 "a": "00",
9662 "b": "07",
9663 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
9664 "h": "01",
9665 "Gx": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
9666 "Gy": "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
9667 },
9668 "secp256r1": {
9669 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
9670 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
9671 "b": "5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
9672 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
9673 "h": "01",
9674 "Gx": "6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
9675 "Gy": "4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
9676 }
9677}
9678
ab78acc6
IC
9679},{}],49:[function(require,module,exports){
9680var Point = require('./point')
9681var Curve = require('./curve')
ebd8d4e8 9682
ab78acc6 9683var getCurveByName = require('./names')
ebd8d4e8
IC
9684
9685module.exports = {
9686 Curve: Curve,
9687 Point: Point,
9688 getCurveByName: getCurveByName
9689}
9690
ab78acc6
IC
9691},{"./curve":47,"./names":50,"./point":51}],50:[function(require,module,exports){
9692var BigInteger = require('bigi')
ebd8d4e8 9693
ab78acc6
IC
9694var curves = require('./curves')
9695var Curve = require('./curve')
ebd8d4e8
IC
9696
9697function getCurveByName(name) {
9698 var curve = curves[name]
9699 if (!curve) return null
9700
9701 var p = new BigInteger(curve.p, 16)
9702 var a = new BigInteger(curve.a, 16)
9703 var b = new BigInteger(curve.b, 16)
9704 var n = new BigInteger(curve.n, 16)
9705 var h = new BigInteger(curve.h, 16)
9706 var Gx = new BigInteger(curve.Gx, 16)
9707 var Gy = new BigInteger(curve.Gy, 16)
9708
9709 return new Curve(p, a, b, Gx, Gy, n, h)
9710}
9711
9712module.exports = getCurveByName
9713
ab78acc6 9714},{"./curve":47,"./curves":48,"bigi":3}],51:[function(require,module,exports){
ebd8d4e8 9715(function (Buffer){
ab78acc6
IC
9716var assert = require('assert')
9717var BigInteger = require('bigi')
ebd8d4e8
IC
9718
9719var THREE = BigInteger.valueOf(3)
9720
9721function Point(curve, x, y, z) {
9722 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
9723
9724 this.curve = curve
9725 this.x = x
9726 this.y = y
9727 this.z = z
9728 this._zInv = null
9729
9730 this.compressed = true
9731}
9732
9733Object.defineProperty(Point.prototype, 'zInv', {
9734 get: function() {
9735 if (this._zInv === null) {
9736 this._zInv = this.z.modInverse(this.curve.p)
9737 }
9738
9739 return this._zInv
9740 }
9741})
9742
9743Object.defineProperty(Point.prototype, 'affineX', {
9744 get: function() {
9745 return this.x.multiply(this.zInv).mod(this.curve.p)
9746 }
9747})
9748
9749Object.defineProperty(Point.prototype, 'affineY', {
9750 get: function() {
9751 return this.y.multiply(this.zInv).mod(this.curve.p)
9752 }
9753})
9754
9755Point.fromAffine = function(curve, x, y) {
9756 return new Point(curve, x, y, BigInteger.ONE)
9757}
9758
9759Point.prototype.equals = function(other) {
9760 if (other === this) return true
9761 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
9762 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
9763
9764 // u = Y2 * Z1 - Y1 * Z2
9765 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
9766
9767 if (u.signum() !== 0) return false
9768
9769 // v = X2 * Z1 - X1 * Z2
9770 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
9771
9772 return v.signum() === 0
9773}
9774
9775Point.prototype.negate = function() {
9776 var y = this.curve.p.subtract(this.y)
9777
9778 return new Point(this.curve, this.x, y, this.z)
9779}
9780
9781Point.prototype.add = function(b) {
9782 if (this.curve.isInfinity(this)) return b
9783 if (this.curve.isInfinity(b)) return this
9784
9785 var x1 = this.x
9786 var y1 = this.y
9787 var x2 = b.x
9788 var y2 = b.y
9789
9790 // u = Y2 * Z1 - Y1 * Z2
9791 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
9792 // v = X2 * Z1 - X1 * Z2
9793 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
9794
9795 if (v.signum() === 0) {
9796 if (u.signum() === 0) {
9797 return this.twice() // this == b, so double
9798 }
9799
9800 return this.curve.infinity // this = -b, so infinity
9801 }
9802
9803 var v2 = v.square()
9804 var v3 = v2.multiply(v)
9805 var x1v2 = x1.multiply(v2)
9806 var zu2 = u.square().multiply(this.z)
9807
9808 // x3 = v * (z2 * (z1 * u^2 - 2 * x1 * v^2) - v^3)
9809 var x3 = zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
9810 // y3 = z2 * (3 * x1 * u * v^2 - y1 * v^3 - z1 * u^3) + u * v^3
9811 var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)
9812 // z3 = v^3 * z1 * z2
9813 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
9814
9815 return new Point(this.curve, x3, y3, z3)
9816}
9817
9818Point.prototype.twice = function() {
9819 if (this.curve.isInfinity(this)) return this
9820 if (this.y.signum() === 0) return this.curve.infinity
9821
9822 var x1 = this.x
9823 var y1 = this.y
9824
9825 var y1z1 = y1.multiply(this.z)
9826 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
9827 var a = this.curve.a
9828
9829 // w = 3 * x1^2 + a * z1^2
9830 var w = x1.square().multiply(THREE)
9831
9832 if (a.signum() !== 0) {
9833 w = w.add(this.z.square().multiply(a))
9834 }
9835
9836 w = w.mod(this.curve.p)
9837 // x3 = 2 * y1 * z1 * (w^2 - 8 * x1 * y1^2 * z1)
9838 var x3 = w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.p)
9839 // y3 = 4 * y1^2 * z1 * (3 * w * x1 - 2 * y1^2 * z1) - w^3
9840 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.pow(3)).mod(this.curve.p)
9841 // z3 = 8 * (y1 * z1)^3
9842 var z3 = y1z1.pow(3).shiftLeft(3).mod(this.curve.p)
9843
9844 return new Point(this.curve, x3, y3, z3)
9845}
9846
9847// Simple NAF (Non-Adjacent Form) multiplication algorithm
9848// TODO: modularize the multiplication algorithm
9849Point.prototype.multiply = function(k) {
9850 if (this.curve.isInfinity(this)) return this
9851 if (k.signum() === 0) return this.curve.infinity
9852
9853 var e = k
9854 var h = e.multiply(THREE)
9855
9856 var neg = this.negate()
9857 var R = this
9858
9859 for (var i = h.bitLength() - 2; i > 0; --i) {
9860 R = R.twice()
9861
9862 var hBit = h.testBit(i)
9863 var eBit = e.testBit(i)
9864
9865 if (hBit != eBit) {
9866 R = R.add(hBit ? this : neg)
9867 }
9868 }
9869
9870 return R
9871}
9872
9873// Compute this*j + x*k (simultaneous multiplication)
9874Point.prototype.multiplyTwo = function(j, x, k) {
9875 var i
9876
9877 if (j.bitLength() > k.bitLength())
9878 i = j.bitLength() - 1
9879 else
9880 i = k.bitLength() - 1
9881
9882 var R = this.curve.infinity
9883 var both = this.add(x)
9884
9885 while (i >= 0) {
9886 R = R.twice()
9887
9888 var jBit = j.testBit(i)
9889 var kBit = k.testBit(i)
9890
9891 if (jBit) {
9892 if (kBit) {
9893 R = R.add(both)
9894
9895 } else {
9896 R = R.add(this)
9897 }
9898
9899 } else {
9900 if (kBit) {
9901 R = R.add(x)
9902 }
9903 }
9904 --i
9905 }
9906
9907 return R
9908}
9909
9910Point.prototype.getEncoded = function(compressed) {
9911 if (compressed == undefined) compressed = this.compressed
9912 if (this.curve.isInfinity(this)) return new Buffer('00', 'hex') // Infinity point encoded is simply '00'
9913
9914 var x = this.affineX
9915 var y = this.affineY
9916
9917 var buffer
9918
9919 // Determine size of q in bytes
9920 var byteLength = Math.floor((this.curve.p.bitLength() + 7) / 8)
9921
9922 // 0x02/0x03 | X
9923 if (compressed) {
9924 buffer = new Buffer(1 + byteLength)
9925 buffer.writeUInt8(y.isEven() ? 0x02 : 0x03, 0)
9926
9927 // 0x04 | X | Y
9928 } else {
9929 buffer = new Buffer(1 + byteLength + byteLength)
9930 buffer.writeUInt8(0x04, 0)
9931
9932 y.toBuffer(byteLength).copy(buffer, 1 + byteLength)
9933 }
9934
9935 x.toBuffer(byteLength).copy(buffer, 1)
9936
9937 return buffer
9938}
9939
9940Point.decodeFrom = function(curve, buffer) {
9941 var type = buffer.readUInt8(0)
9942 var compressed = (type !== 4)
9943
ebd8d4e8 9944 var byteLength = Math.floor((curve.p.bitLength() + 7) / 8)
ab78acc6 9945 var x = BigInteger.fromBuffer(buffer.slice(1, 1 + byteLength))
ebd8d4e8
IC
9946
9947 var Q
9948 if (compressed) {
9949 assert.equal(buffer.length, byteLength + 1, 'Invalid sequence length')
9950 assert(type === 0x02 || type === 0x03, 'Invalid sequence tag')
9951
9952 var isOdd = (type === 0x03)
9953 Q = curve.pointFromX(isOdd, x)
9954
9955 } else {
9956 assert.equal(buffer.length, 1 + byteLength + byteLength, 'Invalid sequence length')
9957
9958 var y = BigInteger.fromBuffer(buffer.slice(1 + byteLength))
9959 Q = Point.fromAffine(curve, x, y)
9960 }
9961
9962 Q.compressed = compressed
9963 return Q
9964}
9965
9966Point.prototype.toString = function () {
9967 if (this.curve.isInfinity(this)) return '(INFINITY)'
9968
9969 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
9970}
9971
9972module.exports = Point
9973
ab78acc6
IC
9974}).call(this,require("buffer").Buffer)
9975},{"assert":5,"bigi":3,"buffer":7}],52:[function(require,module,exports){
9976(function (process,global,Buffer){
9977'use strict';
ebd8d4e8 9978
ab78acc6
IC
9979var crypto = global.crypto || global.msCrypto
9980if(crypto && crypto.getRandomValues) {
9981 module.exports = randomBytes;
9982} else {
9983 module.exports = oldBrowser;
9984}
9985function randomBytes(size, cb) {
9986 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
9987 /* This will not work in older browsers.
9988 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
9989 */
9990
9991 crypto.getRandomValues(bytes);
9992 if (typeof cb === 'function') {
9993 return process.nextTick(function () {
9994 cb(null, bytes);
9995 });
ebd8d4e8 9996 }
ab78acc6
IC
9997 return bytes;
9998}
9999function oldBrowser() {
10000 throw new Error(
10001 'secure random number generation not supported by this browser\n'+
10002 'use chrome, FireFox or Internet Explorer 11'
10003 )
ebd8d4e8
IC
10004}
10005
ab78acc6
IC
10006}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
10007},{"_process":14,"buffer":7}],53:[function(require,module,exports){
10008(function (Buffer){
10009'use strict';
ebd8d4e8 10010
ab78acc6
IC
10011function getFunctionName(fn) {
10012 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[1];
10013}
10014
10015function getTypeTypeName(type) {
10016 if (nativeTypes.Function(type)) {
10017 type = type.toJSON ? type.toJSON() : getFunctionName(type);
ebd8d4e8 10018 }
ab78acc6
IC
10019 if (nativeTypes.Object(type)) return JSON.stringify(type);
10020
10021 return type;
ebd8d4e8
IC
10022}
10023
ab78acc6
IC
10024function getValueTypeName(value) {
10025 if (nativeTypes.Null(value)) return '';
ebd8d4e8 10026
ab78acc6
IC
10027 return getFunctionName(value.constructor);
10028}
10029
10030function tfErrorString(type, value) {
10031 var typeTypeName = getTypeTypeName(type);
10032 var valueTypeName = getValueTypeName(value);
10033
10034 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
10035}
10036
10037function tfPropertyErrorString(type, name, value) {
10038 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
10039}
10040
10041var nativeTypes = {
10042 Array: (function (_Array) {
10043 function Array(_x) {
10044 return _Array.apply(this, arguments);
10045 }
10046
10047 Array.toString = function () {
10048 return _Array.toString();
10049 };
10050
10051 return Array;
10052 })(function (value) {
10053 return value !== null && value !== undefined && value.constructor === Array;
10054 }),
10055 Boolean: function Boolean(value) {
10056 return typeof value === 'boolean';
10057 },
10058 Buffer: (function (_Buffer) {
10059 function Buffer(_x2) {
10060 return _Buffer.apply(this, arguments);
10061 }
10062
10063 Buffer.toString = function () {
10064 return _Buffer.toString();
10065 };
10066
10067 return Buffer;
10068 })(function (value) {
10069 return Buffer.isBuffer(value);
10070 }),
10071 Function: function Function(value) {
10072 return typeof value === 'function';
10073 },
10074 Null: function Null(value) {
10075 return value === undefined || value === null;
10076 },
10077 Number: function Number(value) {
10078 return typeof value === 'number';
10079 },
10080 Object: function Object(value) {
10081 return typeof value === 'object';
10082 },
10083 String: function String(value) {
10084 return typeof value === 'string';
10085 },
10086 '': function _() {
10087 return true;
ebd8d4e8 10088 }
ab78acc6
IC
10089};
10090
10091function tJSON(type) {
10092 return type && type.toJSON ? type.toJSON() : type;
ebd8d4e8
IC
10093}
10094
ab78acc6
IC
10095function sJSON(type) {
10096 var json = tJSON(type);
10097 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
ebd8d4e8
IC
10098}
10099
ab78acc6
IC
10100var otherTypes = {
10101 arrayOf: function arrayOf(type) {
10102 function arrayOf(value, strict) {
10103 try {
10104 return nativeTypes.Array(value) && value.every(function (x) {
10105 return typeforce(type, x, strict);
10106 });
10107 } catch (e) {
10108 return false;
10109 }
10110 }
10111 arrayOf.toJSON = function () {
10112 return [tJSON(type)];
10113 };
10114
10115 return arrayOf;
10116 },
10117
10118 maybe: function maybe(type) {
10119 function maybe(value, strict) {
10120 return nativeTypes.Null(value) || typeforce(type, value, strict);
10121 }
10122 maybe.toJSON = function () {
10123 return '?' + sJSON(type);
10124 };
10125
10126 return maybe;
10127 },
10128
10129 object: function object(type) {
10130 function object(value, strict) {
10131 typeforce(nativeTypes.Object, value, strict);
10132
10133 var propertyName, propertyType, propertyValue;
10134
10135 try {
10136 for (propertyName in type) {
10137 propertyType = type[propertyName];
10138 propertyValue = value[propertyName];
10139
10140 typeforce(propertyType, propertyValue, strict);
10141 }
10142 } catch (e) {
10143 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
10144 }
10145
10146 if (strict) {
10147 for (propertyName in value) {
10148 if (type[propertyName]) continue;
10149
10150 throw new TypeError('Unexpected property "' + propertyName + '"');
10151 }
10152 }
10153
10154 return true;
10155 }
10156 object.toJSON = function () {
10157 return type;
10158 };
10159
10160 return object;
10161 },
10162
10163 oneOf: function oneOf() {
10164 for (var _len = arguments.length, types = Array(_len), _key = 0; _key < _len; _key++) {
10165 types[_key] = arguments[_key];
10166 }
10167
10168 function oneOf(value, strict) {
10169 return types.some(function (type) {
10170 try {
10171 return typeforce(type, value, strict);
10172 } catch (e) {
10173 return false;
10174 }
10175 });
10176 }
10177 oneOf.toJSON = function () {
10178 return types.map(sJSON).join('|');
10179 };
10180
10181 return oneOf;
10182 },
10183
10184 quacksLike: function quacksLike(type) {
10185 function quacksLike(value, strict) {
10186 return type === getValueTypeName(value);
10187 }
10188 quacksLike.toJSON = function () {
10189 return type;
10190 };
10191
10192 return quacksLike;
10193 },
10194
10195 tuple: function tuple() {
10196 for (var _len2 = arguments.length, types = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
10197 types[_key2] = arguments[_key2];
10198 }
10199
10200 function tuple(value, strict) {
10201 return types.every(function (type, i) {
10202 return typeforce(type, value[i], strict);
10203 });
10204 }
10205 tuple.toJSON = function () {
10206 return '(' + types.map(sJSON).join(', ') + ')';
10207 };
10208
10209 return tuple;
10210 },
10211
10212 value: function value(expected) {
10213 function value(actual) {
10214 return actual === expected;
10215 }
10216 value.toJSON = function () {
10217 return expected;
10218 };
10219
10220 return value;
10221 }
10222};
10223
10224function compile(type) {
10225 if (nativeTypes.String(type)) {
10226 if (type[0] === '?') return otherTypes.maybe(compile(type.slice(1)));
10227
10228 return nativeTypes[type] || otherTypes.quacksLike(type);
10229 } else if (type && nativeTypes.Object(type)) {
10230 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[0]));
10231
10232 var compiled = {};
10233
10234 for (var propertyName in type) {
10235 compiled[propertyName] = compile(type[propertyName]);
10236 }
10237
10238 return otherTypes.object(compiled);
10239 } else if (nativeTypes.Function(type)) {
10240 return type;
10241 }
10242
10243 return otherTypes.value(type);
ebd8d4e8
IC
10244}
10245
ab78acc6
IC
10246function typeforce(_x3, _x4, _x5) {
10247 var _again = true;
10248
10249 _function: while (_again) {
10250 var type = _x3,
10251 value = _x4,
10252 strict = _x5;
10253 _again = false;
10254
10255 if (nativeTypes.Function(type)) {
10256 if (type(value, strict)) return true;
10257
10258 throw new TypeError(tfErrorString(type, value));
10259 }
10260
10261 // JIT
10262 _x3 = compile(type);
10263 _x4 = value;
10264 _x5 = strict;
10265 _again = true;
10266 continue _function;
10267 }
ebd8d4e8
IC
10268}
10269
ab78acc6
IC
10270// assign all types to typeforce function
10271var typeName;
10272Object.keys(nativeTypes).forEach(function (typeName) {
10273 var nativeType = nativeTypes[typeName];
10274 nativeType.toJSON = function () {
10275 return typeName;
10276 };
10277
10278 typeforce[typeName] = nativeType;
10279});
ebd8d4e8 10280
ab78acc6
IC
10281for (typeName in otherTypes) {
10282 typeforce[typeName] = otherTypes[typeName];
10283}
ebd8d4e8 10284
ab78acc6
IC
10285module.exports = typeforce;
10286module.exports.compile = compile;
10287}).call(this,require("buffer").Buffer)
10288},{"buffer":7}],54:[function(require,module,exports){
ebd8d4e8 10289(function (Buffer){
ab78acc6
IC
10290var assert = require('assert')
10291var base58check = require('bs58check')
10292var typeForce = require('typeforce')
10293var networks = require('./networks')
10294var scripts = require('./scripts')
ebd8d4e8 10295
ab78acc6 10296function findScriptTypeByVersion (version) {
ebd8d4e8
IC
10297 for (var networkName in networks) {
10298 var network = networks[networkName]
10299
10300 if (version === network.pubKeyHash) return 'pubkeyhash'
10301 if (version === network.scriptHash) return 'scripthash'
10302 }
10303}
10304
ab78acc6
IC
10305function Address (hash, version) {
10306 typeForce('Buffer', hash)
10307
ebd8d4e8
IC
10308 assert.strictEqual(hash.length, 20, 'Invalid hash length')
10309 assert.strictEqual(version & 0xff, version, 'Invalid version byte')
10310
10311 this.hash = hash
10312 this.version = version
10313}
10314
ab78acc6 10315Address.fromBase58Check = function (string) {
ebd8d4e8
IC
10316 var payload = base58check.decode(string)
10317 var version = payload.readUInt8(0)
10318 var hash = payload.slice(1)
10319
10320 return new Address(hash, version)
10321}
10322
ab78acc6 10323Address.fromOutputScript = function (script, network) {
ebd8d4e8
IC
10324 network = network || networks.bitcoin
10325
ab78acc6
IC
10326 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[2], network.pubKeyHash)
10327 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[1], network.scriptHash)
ebd8d4e8 10328
ab78acc6 10329 assert(false, script.toASM() + ' has no matching Address')
ebd8d4e8
IC
10330}
10331
ebd8d4e8
IC
10332Address.prototype.toBase58Check = function () {
10333 var payload = new Buffer(21)
10334 payload.writeUInt8(this.version, 0)
10335 this.hash.copy(payload, 1)
10336
10337 return base58check.encode(payload)
10338}
10339
ab78acc6 10340Address.prototype.toOutputScript = function () {
ebd8d4e8
IC
10341 var scriptType = findScriptTypeByVersion(this.version)
10342
10343 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
10344 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
10345
ab78acc6
IC
10346 assert(false, this.toString() + ' has no matching Script')
10347}
10348
10349Address.prototype.toString = Address.prototype.toBase58Check
10350
10351module.exports = Address
10352
10353}).call(this,require("buffer").Buffer)
10354},{"./networks":66,"./scripts":69,"assert":5,"bs58check":31,"buffer":7,"typeforce":53}],55:[function(require,module,exports){
10355var bs58check = require('bs58check')
10356
10357function decode () {
10358 console.warn('bs58check will be removed in 2.0.0. require("bs58check") instead.')
10359
10360 return bs58check.decode.apply(undefined, arguments)
10361}
10362
10363function encode () {
10364 console.warn('bs58check will be removed in 2.0.0. require("bs58check") instead.')
10365
10366 return bs58check.encode.apply(undefined, arguments)
10367}
10368
10369module.exports = {
10370 decode: decode,
10371 encode: encode
10372}
10373
10374},{"bs58check":31}],56:[function(require,module,exports){
10375(function (Buffer){
10376var assert = require('assert')
10377var bufferutils = require('./bufferutils')
10378var crypto = require('./crypto')
10379
10380var Transaction = require('./transaction')
10381
10382function Block () {
10383 this.version = 1
10384 this.prevHash = null
10385 this.merkleRoot = null
10386 this.timestamp = 0
10387 this.bits = 0
10388 this.nonce = 0
10389}
10390
10391Block.fromBuffer = function (buffer) {
10392 assert(buffer.length >= 80, 'Buffer too small (< 80 bytes)')
10393
10394 var offset = 0
10395 function readSlice (n) {
10396 offset += n
10397 return buffer.slice(offset - n, offset)
10398 }
10399
10400 function readUInt32 () {
10401 var i = buffer.readUInt32LE(offset)
10402 offset += 4
10403 return i
10404 }
10405
10406 var block = new Block()
10407 block.version = readUInt32()
10408 block.prevHash = readSlice(32)
10409 block.merkleRoot = readSlice(32)
10410 block.timestamp = readUInt32()
10411 block.bits = readUInt32()
10412 block.nonce = readUInt32()
10413
10414 if (buffer.length === 80) return block
10415
10416 function readVarInt () {
10417 var vi = bufferutils.readVarInt(buffer, offset)
10418 offset += vi.size
10419 return vi.number
10420 }
10421
10422 // FIXME: poor performance
10423 function readTransaction () {
10424 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
10425
10426 offset += tx.toBuffer().length
10427 return tx
10428 }
10429
10430 var nTransactions = readVarInt()
10431 block.transactions = []
10432
10433 for (var i = 0; i < nTransactions; ++i) {
10434 var tx = readTransaction()
10435 block.transactions.push(tx)
10436 }
10437
10438 return block
10439}
10440
10441Block.fromHex = function (hex) {
10442 return Block.fromBuffer(new Buffer(hex, 'hex'))
10443}
10444
10445Block.prototype.getHash = function () {
10446 return crypto.hash256(this.toBuffer(true))
10447}
10448
10449Block.prototype.getId = function () {
10450 return bufferutils.reverse(this.getHash()).toString('hex')
ebd8d4e8
IC
10451}
10452
ab78acc6
IC
10453Block.prototype.getUTCDate = function () {
10454 var date = new Date(0) // epoch
10455 date.setUTCSeconds(this.timestamp)
ebd8d4e8 10456
ab78acc6
IC
10457 return date
10458}
ebd8d4e8 10459
ab78acc6
IC
10460Block.prototype.toBuffer = function (headersOnly) {
10461 var buffer = new Buffer(80)
ebd8d4e8 10462
ab78acc6
IC
10463 var offset = 0
10464 function writeSlice (slice) {
10465 slice.copy(buffer, offset)
10466 offset += slice.length
10467 }
ebd8d4e8 10468
ab78acc6
IC
10469 function writeUInt32 (i) {
10470 buffer.writeUInt32LE(i, offset)
10471 offset += 4
10472 }
ebd8d4e8 10473
ab78acc6
IC
10474 writeUInt32(this.version)
10475 writeSlice(this.prevHash)
10476 writeSlice(this.merkleRoot)
10477 writeUInt32(this.timestamp)
10478 writeUInt32(this.bits)
10479 writeUInt32(this.nonce)
ebd8d4e8 10480
ab78acc6 10481 if (headersOnly || !this.transactions) return buffer
ebd8d4e8 10482
ab78acc6
IC
10483 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
10484 var txBuffers = this.transactions.map(function (tx) {
10485 return tx.toBuffer()
10486 })
ebd8d4e8 10487
ab78acc6 10488 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
ebd8d4e8
IC
10489}
10490
ab78acc6
IC
10491Block.prototype.toHex = function (headersOnly) {
10492 return this.toBuffer(headersOnly).toString('hex')
ebd8d4e8
IC
10493}
10494
ab78acc6
IC
10495module.exports = Block
10496
10497}).call(this,require("buffer").Buffer)
10498},{"./bufferutils":57,"./crypto":58,"./transaction":70,"assert":5,"buffer":7}],57:[function(require,module,exports){
10499(function (Buffer){
10500var assert = require('assert')
10501var opcodes = require('./opcodes')
ebd8d4e8
IC
10502
10503// https://github.com/feross/buffer/blob/master/index.js#L1127
ab78acc6 10504function verifuint (value, max) {
ebd8d4e8
IC
10505 assert(typeof value === 'number', 'cannot write a non-number as a number')
10506 assert(value >= 0, 'specified a negative value for writing an unsigned value')
10507 assert(value <= max, 'value is larger than maximum value for type')
10508 assert(Math.floor(value) === value, 'value has a fractional component')
10509}
10510
ab78acc6 10511function pushDataSize (i) {
ebd8d4e8 10512 return i < opcodes.OP_PUSHDATA1 ? 1
ab78acc6
IC
10513 : i < 0xff ? 2
10514 : i < 0xffff ? 3
10515 : 5
ebd8d4e8
IC
10516}
10517
ab78acc6 10518function readPushDataInt (buffer, offset) {
ebd8d4e8
IC
10519 var opcode = buffer.readUInt8(offset)
10520 var number, size
10521
10522 // ~6 bit
10523 if (opcode < opcodes.OP_PUSHDATA1) {
10524 number = opcode
10525 size = 1
10526
10527 // 8 bit
10528 } else if (opcode === opcodes.OP_PUSHDATA1) {
ab78acc6 10529 if (offset + 2 > buffer.length) return null
ebd8d4e8
IC
10530 number = buffer.readUInt8(offset + 1)
10531 size = 2
10532
10533 // 16 bit
10534 } else if (opcode === opcodes.OP_PUSHDATA2) {
ab78acc6 10535 if (offset + 3 > buffer.length) return null
ebd8d4e8
IC
10536 number = buffer.readUInt16LE(offset + 1)
10537 size = 3
10538
10539 // 32 bit
10540 } else {
ab78acc6 10541 if (offset + 5 > buffer.length) return null
ebd8d4e8
IC
10542 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
10543
10544 number = buffer.readUInt32LE(offset + 1)
10545 size = 5
ebd8d4e8
IC
10546 }
10547
10548 return {
10549 opcode: opcode,
10550 number: number,
10551 size: size
10552 }
10553}
10554
ab78acc6 10555function readUInt64LE (buffer, offset) {
ebd8d4e8
IC
10556 var a = buffer.readUInt32LE(offset)
10557 var b = buffer.readUInt32LE(offset + 4)
10558 b *= 0x100000000
10559
10560 verifuint(b + a, 0x001fffffffffffff)
10561
10562 return b + a
10563}
10564
ab78acc6 10565function readVarInt (buffer, offset) {
ebd8d4e8
IC
10566 var t = buffer.readUInt8(offset)
10567 var number, size
10568
10569 // 8 bit
10570 if (t < 253) {
10571 number = t
10572 size = 1
10573
10574 // 16 bit
10575 } else if (t < 254) {
10576 number = buffer.readUInt16LE(offset + 1)
10577 size = 3
10578
10579 // 32 bit
10580 } else if (t < 255) {
10581 number = buffer.readUInt32LE(offset + 1)
10582 size = 5
10583
10584 // 64 bit
10585 } else {
10586 number = readUInt64LE(buffer, offset + 1)
10587 size = 9
10588 }
10589
10590 return {
10591 number: number,
10592 size: size
10593 }
10594}
10595
ab78acc6 10596function writePushDataInt (buffer, number, offset) {
ebd8d4e8
IC
10597 var size = pushDataSize(number)
10598
10599 // ~6 bit
10600 if (size === 1) {
10601 buffer.writeUInt8(number, offset)
10602
10603 // 8 bit
10604 } else if (size === 2) {
10605 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
10606 buffer.writeUInt8(number, offset + 1)
10607
10608 // 16 bit
10609 } else if (size === 3) {
10610 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
10611 buffer.writeUInt16LE(number, offset + 1)
10612
10613 // 32 bit
10614 } else {
10615 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
10616 buffer.writeUInt32LE(number, offset + 1)
ebd8d4e8
IC
10617 }
10618
10619 return size
10620}
10621
ab78acc6 10622function writeUInt64LE (buffer, value, offset) {
ebd8d4e8
IC
10623 verifuint(value, 0x001fffffffffffff)
10624
10625 buffer.writeInt32LE(value & -1, offset)
10626 buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4)
10627}
10628
ab78acc6
IC
10629function varIntSize (i) {
10630 return i < 253 ? 1
10631 : i < 0x10000 ? 3
10632 : i < 0x100000000 ? 5
10633 : 9
ebd8d4e8
IC
10634}
10635
ab78acc6 10636function writeVarInt (buffer, number, offset) {
ebd8d4e8
IC
10637 var size = varIntSize(number)
10638
10639 // 8 bit
10640 if (size === 1) {
10641 buffer.writeUInt8(number, offset)
10642
10643 // 16 bit
10644 } else if (size === 3) {
10645 buffer.writeUInt8(253, offset)
10646 buffer.writeUInt16LE(number, offset + 1)
10647
10648 // 32 bit
10649 } else if (size === 5) {
10650 buffer.writeUInt8(254, offset)
10651 buffer.writeUInt32LE(number, offset + 1)
10652
10653 // 64 bit
10654 } else {
10655 buffer.writeUInt8(255, offset)
10656 writeUInt64LE(buffer, number, offset + 1)
10657 }
10658
10659 return size
10660}
10661
ab78acc6
IC
10662function varIntBuffer (i) {
10663 var size = varIntSize(i)
10664 var buffer = new Buffer(size)
10665 writeVarInt(buffer, i, 0)
10666
10667 return buffer
10668}
10669
10670function reverse (buffer) {
10671 var buffer2 = new Buffer(buffer)
10672 Array.prototype.reverse.call(buffer2)
10673 return buffer2
10674}
10675
ebd8d4e8
IC
10676module.exports = {
10677 pushDataSize: pushDataSize,
10678 readPushDataInt: readPushDataInt,
10679 readUInt64LE: readUInt64LE,
10680 readVarInt: readVarInt,
ab78acc6
IC
10681 reverse: reverse,
10682 varIntBuffer: varIntBuffer,
ebd8d4e8
IC
10683 varIntSize: varIntSize,
10684 writePushDataInt: writePushDataInt,
10685 writeUInt64LE: writeUInt64LE,
10686 writeVarInt: writeVarInt
10687}
10688
ab78acc6
IC
10689}).call(this,require("buffer").Buffer)
10690},{"./opcodes":67,"assert":5,"buffer":7}],58:[function(require,module,exports){
10691var createHash = require('create-hash')
ebd8d4e8 10692
ab78acc6 10693function hash160 (buffer) {
ebd8d4e8
IC
10694 return ripemd160(sha256(buffer))
10695}
10696
ab78acc6 10697function hash256 (buffer) {
ebd8d4e8
IC
10698 return sha256(sha256(buffer))
10699}
10700
ab78acc6
IC
10701function ripemd160 (buffer) {
10702 return createHash('rmd160').update(buffer).digest()
ebd8d4e8
IC
10703}
10704
ab78acc6
IC
10705function sha1 (buffer) {
10706 return createHash('sha1').update(buffer).digest()
ebd8d4e8
IC
10707}
10708
ab78acc6
IC
10709function sha256 (buffer) {
10710 return createHash('sha256').update(buffer).digest()
ebd8d4e8
IC
10711}
10712
10713// FIXME: Name not consistent with others
ab78acc6 10714var createHmac = require('create-hmac')
ebd8d4e8 10715
ab78acc6
IC
10716function HmacSHA256 (buffer, secret) {
10717 console.warn('Hmac* functions are deprecated for removal in 2.0.0, use node crypto instead')
10718 return createHmac('sha256', secret).update(buffer).digest()
10719}
ebd8d4e8 10720
ab78acc6
IC
10721function HmacSHA512 (buffer, secret) {
10722 console.warn('Hmac* functions are deprecated for removal in 2.0.0, use node crypto instead')
10723 return createHmac('sha512', secret).update(buffer).digest()
ebd8d4e8
IC
10724}
10725
10726module.exports = {
10727 ripemd160: ripemd160,
10728 sha1: sha1,
10729 sha256: sha256,
10730 hash160: hash160,
10731 hash256: hash256,
10732 HmacSHA256: HmacSHA256,
10733 HmacSHA512: HmacSHA512
10734}
10735
ab78acc6 10736},{"create-hash":32,"create-hmac":45}],59:[function(require,module,exports){
ebd8d4e8 10737(function (Buffer){
ab78acc6
IC
10738var assert = require('assert')
10739var createHmac = require('create-hmac')
10740var typeForce = require('typeforce')
ebd8d4e8 10741
ab78acc6
IC
10742var BigInteger = require('bigi')
10743var ECSignature = require('./ecsignature')
10744
10745var ZERO = new Buffer([0])
10746var ONE = new Buffer([1])
ebd8d4e8
IC
10747
10748// https://tools.ietf.org/html/rfc6979#section-3.2
ab78acc6
IC
10749function deterministicGenerateK (curve, hash, d, checkSig) {
10750 typeForce('Buffer', hash)
10751 typeForce('BigInteger', d)
10752
10753 // FIXME: remove/uncomment for 2.0.0
10754 // typeForce('Function', checkSig)
10755
10756 if (typeof checkSig !== 'function') {
10757 console.warn('deterministicGenerateK requires a checkSig callback in 2.0.0, see #337 for more information')
10758
10759 checkSig = function (k) {
10760 var G = curve.G
10761 var n = curve.n
10762 var e = BigInteger.fromBuffer(hash)
10763
10764 var Q = G.multiply(k)
10765
10766 if (curve.isInfinity(Q))
10767 return false
10768
10769 var r = Q.affineX.mod(n)
10770 if (r.signum() === 0)
10771 return false
10772
10773 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
10774 if (s.signum() === 0)
10775 return false
10776
10777 return true
10778 }
10779 }
10780
10781 // sanity check
ebd8d4e8 10782 assert.equal(hash.length, 32, 'Hash must be 256 bit')
ebd8d4e8
IC
10783
10784 var x = d.toBuffer(32)
10785 var k = new Buffer(32)
10786 var v = new Buffer(32)
10787
ab78acc6 10788 // Step A, ignored as hash already provided
ebd8d4e8
IC
10789 // Step B
10790 v.fill(1)
10791
10792 // Step C
10793 k.fill(0)
10794
10795 // Step D
ab78acc6
IC
10796 k = createHmac('sha256', k)
10797 .update(v)
10798 .update(ZERO)
10799 .update(x)
10800 .update(hash)
10801 .digest()
ebd8d4e8
IC
10802
10803 // Step E
ab78acc6 10804 v = createHmac('sha256', k).update(v).digest()
ebd8d4e8
IC
10805
10806 // Step F
ab78acc6
IC
10807 k = createHmac('sha256', k)
10808 .update(v)
10809 .update(ONE)
10810 .update(x)
10811 .update(hash)
10812 .digest()
ebd8d4e8
IC
10813
10814 // Step G
ab78acc6 10815 v = createHmac('sha256', k).update(v).digest()
ebd8d4e8
IC
10816
10817 // Step H1/H2a, ignored as tlen === qlen (256 bit)
10818 // Step H2b
ab78acc6 10819 v = createHmac('sha256', k).update(v).digest()
ebd8d4e8
IC
10820
10821 var T = BigInteger.fromBuffer(v)
10822
ab78acc6
IC
10823 // Step H3, repeat until T is within the interval [1, n - 1] and is suitable for ECDSA
10824 while ((T.signum() <= 0) || (T.compareTo(curve.n) >= 0) || !checkSig(T)) {
10825 k = createHmac('sha256', k)
10826 .update(v)
10827 .update(ZERO)
10828 .digest()
10829
10830 v = createHmac('sha256', k).update(v).digest()
ebd8d4e8 10831
ab78acc6
IC
10832 // Step H1/H2a, again, ignored as tlen === qlen (256 bit)
10833 // Step H2b again
10834 v = createHmac('sha256', k).update(v).digest()
ebd8d4e8
IC
10835 T = BigInteger.fromBuffer(v)
10836 }
10837
10838 return T
10839}
10840
ab78acc6
IC
10841function sign (curve, hash, d) {
10842 var r, s
ebd8d4e8 10843
ab78acc6 10844 var e = BigInteger.fromBuffer(hash)
ebd8d4e8
IC
10845 var n = curve.n
10846 var G = curve.G
ebd8d4e8 10847
ab78acc6
IC
10848 deterministicGenerateK(curve, hash, d, function (k) {
10849 var Q = G.multiply(k)
10850
10851 if (curve.isInfinity(Q))
10852 return false
10853
10854 r = Q.affineX.mod(n)
10855 if (r.signum() === 0)
10856 return false
10857
10858 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
10859 if (s.signum() === 0)
10860 return false
ebd8d4e8 10861
ab78acc6
IC
10862 return true
10863 })
ebd8d4e8
IC
10864
10865 var N_OVER_TWO = n.shiftRight(1)
10866
10867 // enforce low S values, see bip62: 'low s values in signatures'
10868 if (s.compareTo(N_OVER_TWO) > 0) {
10869 s = n.subtract(s)
10870 }
10871
10872 return new ECSignature(r, s)
10873}
10874
ab78acc6 10875function verifyRaw (curve, e, signature, Q) {
ebd8d4e8
IC
10876 var n = curve.n
10877 var G = curve.G
10878
10879 var r = signature.r
10880 var s = signature.s
10881
ab78acc6
IC
10882 // 1.4.1 Enforce r and s are both integers in the interval [1, n − 1]
10883 if (r.signum() <= 0 || r.compareTo(n) >= 0) return false
10884 if (s.signum() <= 0 || s.compareTo(n) >= 0) return false
ebd8d4e8 10885
ab78acc6 10886 // c = s^-1 mod n
ebd8d4e8
IC
10887 var c = s.modInverse(n)
10888
ab78acc6
IC
10889 // 1.4.4 Compute u1 = es^−1 mod n
10890 // u2 = rs^−1 mod n
ebd8d4e8
IC
10891 var u1 = e.multiply(c).mod(n)
10892 var u2 = r.multiply(c).mod(n)
10893
ab78acc6
IC
10894 // 1.4.5 Compute R = (xR, yR) = u1G + u2Q
10895 var R = G.multiplyTwo(u1, Q, u2)
10896 var v = R.affineX.mod(n)
ebd8d4e8 10897
ab78acc6
IC
10898 // 1.4.5 (cont.) Enforce R is not at infinity
10899 if (curve.isInfinity(R)) return false
10900
10901 // 1.4.8 If v = r, output "valid", and if v != r, output "invalid"
ebd8d4e8
IC
10902 return v.equals(r)
10903}
10904
ab78acc6
IC
10905function verify (curve, hash, signature, Q) {
10906 // 1.4.2 H = Hash(M), already done by the user
10907 // 1.4.3 e = H
10908 var e = BigInteger.fromBuffer(hash)
10909
10910 return verifyRaw(curve, e, signature, Q)
10911}
10912
ebd8d4e8
IC
10913/**
10914 * Recover a public key from a signature.
10915 *
10916 * See SEC 1: Elliptic Curve Cryptography, section 4.1.6, "Public
10917 * Key Recovery Operation".
10918 *
10919 * http://www.secg.org/download/aid-780/sec1-v2.pdf
10920 */
ab78acc6 10921function recoverPubKey (curve, e, signature, i) {
ebd8d4e8
IC
10922 assert.strictEqual(i & 3, i, 'Recovery param is more than two bits')
10923
ab78acc6
IC
10924 var n = curve.n
10925 var G = curve.G
10926
ebd8d4e8
IC
10927 var r = signature.r
10928 var s = signature.s
10929
ab78acc6
IC
10930 assert(r.signum() > 0 && r.compareTo(n) < 0, 'Invalid r value')
10931 assert(s.signum() > 0 && s.compareTo(n) < 0, 'Invalid s value')
10932
ebd8d4e8
IC
10933 // A set LSB signifies that the y-coordinate is odd
10934 var isYOdd = i & 1
10935
10936 // The more significant bit specifies whether we should use the
10937 // first or second candidate key.
10938 var isSecondKey = i >> 1
10939
ebd8d4e8
IC
10940 // 1.1 Let x = r + jn
10941 var x = isSecondKey ? r.add(n) : r
10942 var R = curve.pointFromX(isYOdd, x)
10943
10944 // 1.4 Check that nR is at infinity
10945 var nR = R.multiply(n)
10946 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
10947
10948 // Compute -e from e
10949 var eNeg = e.negate().mod(n)
10950
10951 // 1.6.1 Compute Q = r^-1 (sR - eG)
10952 // Q = r^-1 (sR + -eG)
10953 var rInv = r.modInverse(n)
10954
10955 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
10956 curve.validate(Q)
10957
10958 return Q
10959}
10960
10961/**
10962 * Calculate pubkey extraction parameter.
10963 *
10964 * When extracting a pubkey from a signature, we have to
10965 * distinguish four different cases. Rather than putting this
10966 * burden on the verifier, Bitcoin includes a 2-bit value with the
10967 * signature.
10968 *
10969 * This function simply tries all four cases and returns the value
10970 * that resulted in a successful pubkey recovery.
10971 */
ab78acc6 10972function calcPubKeyRecoveryParam (curve, e, signature, Q) {
ebd8d4e8
IC
10973 for (var i = 0; i < 4; i++) {
10974 var Qprime = recoverPubKey(curve, e, signature, i)
10975
10976 // 1.6.2 Verify Q
10977 if (Qprime.equals(Q)) {
10978 return i
10979 }
10980 }
10981
10982 throw new Error('Unable to find valid recovery factor')
10983}
10984
10985module.exports = {
10986 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
10987 deterministicGenerateK: deterministicGenerateK,
10988 recoverPubKey: recoverPubKey,
10989 sign: sign,
10990 verify: verify,
10991 verifyRaw: verifyRaw
10992}
10993
ab78acc6
IC
10994}).call(this,require("buffer").Buffer)
10995},{"./ecsignature":62,"assert":5,"bigi":3,"buffer":7,"create-hmac":45,"typeforce":53}],60:[function(require,module,exports){
ebd8d4e8 10996(function (Buffer){
ab78acc6
IC
10997var assert = require('assert')
10998var base58check = require('bs58check')
10999var ecdsa = require('./ecdsa')
11000var networks = require('./networks')
11001var randomBytes = require('randombytes')
11002var typeForce = require('typeforce')
ebd8d4e8 11003
ab78acc6
IC
11004var BigInteger = require('bigi')
11005var ECPubKey = require('./ecpubkey')
ebd8d4e8 11006
ab78acc6
IC
11007var ecurve = require('ecurve')
11008var secp256k1 = ecurve.getCurveByName('secp256k1')
ebd8d4e8 11009
ab78acc6 11010function ECKey (d, compressed) {
ebd8d4e8 11011 assert(d.signum() > 0, 'Private key must be greater than 0')
ab78acc6 11012 assert(d.compareTo(ECKey.curve.n) < 0, 'Private key must be less than the curve order')
ebd8d4e8 11013
ab78acc6 11014 var Q = ECKey.curve.G.multiply(d)
ebd8d4e8
IC
11015
11016 this.d = d
11017 this.pub = new ECPubKey(Q, compressed)
11018}
11019
ab78acc6
IC
11020// Constants
11021ECKey.curve = secp256k1
11022
ebd8d4e8 11023// Static constructors
ab78acc6 11024ECKey.fromWIF = function (string) {
ebd8d4e8
IC
11025 var payload = base58check.decode(string)
11026 var compressed = false
11027
11028 // Ignore the version byte
11029 payload = payload.slice(1)
11030
11031 if (payload.length === 33) {
11032 assert.strictEqual(payload[32], 0x01, 'Invalid compression flag')
11033
11034 // Truncate the compression flag
11035 payload = payload.slice(0, -1)
11036 compressed = true
11037 }
11038
11039 assert.equal(payload.length, 32, 'Invalid WIF payload length')
11040
11041 var d = BigInteger.fromBuffer(payload)
11042 return new ECKey(d, compressed)
11043}
11044
ab78acc6
IC
11045ECKey.makeRandom = function (compressed, rng) {
11046 rng = rng || randomBytes
ebd8d4e8
IC
11047
11048 var buffer = rng(32)
ab78acc6
IC
11049 typeForce('Buffer', buffer)
11050 assert.equal(buffer.length, 32, 'Expected 256-bit Buffer from RNG')
ebd8d4e8
IC
11051
11052 var d = BigInteger.fromBuffer(buffer)
ab78acc6 11053 d = d.mod(ECKey.curve.n)
ebd8d4e8
IC
11054
11055 return new ECKey(d, compressed)
11056}
11057
11058// Export functions
ab78acc6 11059ECKey.prototype.toWIF = function (network) {
ebd8d4e8
IC
11060 network = network || networks.bitcoin
11061
11062 var bufferLen = this.pub.compressed ? 34 : 33
11063 var buffer = new Buffer(bufferLen)
11064
11065 buffer.writeUInt8(network.wif, 0)
11066 this.d.toBuffer(32).copy(buffer, 1)
11067
11068 if (this.pub.compressed) {
11069 buffer.writeUInt8(0x01, 33)
11070 }
11071
11072 return base58check.encode(buffer)
11073}
11074
11075// Operations
ab78acc6
IC
11076ECKey.prototype.sign = function (hash) {
11077 return ecdsa.sign(ECKey.curve, hash, this.d)
ebd8d4e8
IC
11078}
11079
11080module.exports = ECKey
11081
ab78acc6
IC
11082}).call(this,require("buffer").Buffer)
11083},{"./ecdsa":59,"./ecpubkey":61,"./networks":66,"assert":5,"bigi":3,"bs58check":31,"buffer":7,"ecurve":49,"randombytes":52,"typeforce":53}],61:[function(require,module,exports){
ebd8d4e8 11084(function (Buffer){
ab78acc6
IC
11085var crypto = require('./crypto')
11086var ecdsa = require('./ecdsa')
11087var typeForce = require('typeforce')
11088var networks = require('./networks')
ebd8d4e8 11089
ab78acc6 11090var Address = require('./address')
ebd8d4e8 11091
ab78acc6
IC
11092var ecurve = require('ecurve')
11093var secp256k1 = ecurve.getCurveByName('secp256k1')
ebd8d4e8 11094
ab78acc6
IC
11095function ECPubKey (Q, compressed) {
11096 if (compressed === undefined) {
11097 compressed = true
11098 }
ebd8d4e8 11099
ab78acc6
IC
11100 typeForce('Point', Q)
11101 typeForce('Boolean', compressed)
ebd8d4e8
IC
11102
11103 this.compressed = compressed
11104 this.Q = Q
11105}
11106
ab78acc6
IC
11107// Constants
11108ECPubKey.curve = secp256k1
11109
ebd8d4e8 11110// Static constructors
ab78acc6
IC
11111ECPubKey.fromBuffer = function (buffer) {
11112 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
ebd8d4e8
IC
11113 return new ECPubKey(Q, Q.compressed)
11114}
11115
ab78acc6 11116ECPubKey.fromHex = function (hex) {
ebd8d4e8
IC
11117 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
11118}
11119
11120// Operations
ab78acc6 11121ECPubKey.prototype.getAddress = function (network) {
ebd8d4e8
IC
11122 network = network || networks.bitcoin
11123
11124 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
11125}
11126
ab78acc6
IC
11127ECPubKey.prototype.verify = function (hash, signature) {
11128 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
ebd8d4e8
IC
11129}
11130
11131// Export functions
ab78acc6 11132ECPubKey.prototype.toBuffer = function () {
ebd8d4e8
IC
11133 return this.Q.getEncoded(this.compressed)
11134}
11135
ab78acc6 11136ECPubKey.prototype.toHex = function () {
ebd8d4e8
IC
11137 return this.toBuffer().toString('hex')
11138}
11139
11140module.exports = ECPubKey
11141
ab78acc6
IC
11142}).call(this,require("buffer").Buffer)
11143},{"./address":54,"./crypto":58,"./ecdsa":59,"./networks":66,"buffer":7,"ecurve":49,"typeforce":53}],62:[function(require,module,exports){
ebd8d4e8 11144(function (Buffer){
ab78acc6
IC
11145var assert = require('assert')
11146var typeForce = require('typeforce')
11147
11148var BigInteger = require('bigi')
11149
11150function ECSignature (r, s) {
11151 typeForce('BigInteger', r)
11152 typeForce('BigInteger', s)
ebd8d4e8 11153
ebd8d4e8
IC
11154 this.r = r
11155 this.s = s
11156}
11157
ab78acc6 11158ECSignature.parseCompact = function (buffer) {
ebd8d4e8
IC
11159 assert.equal(buffer.length, 65, 'Invalid signature length')
11160 var i = buffer.readUInt8(0) - 27
11161
11162 // At most 3 bits
11163 assert.equal(i, i & 7, 'Invalid signature parameter')
11164 var compressed = !!(i & 4)
11165
11166 // Recovery param only
11167 i = i & 3
11168
11169 var r = BigInteger.fromBuffer(buffer.slice(1, 33))
11170 var s = BigInteger.fromBuffer(buffer.slice(33))
11171
11172 return {
11173 compressed: compressed,
11174 i: i,
11175 signature: new ECSignature(r, s)
11176 }
11177}
11178
ab78acc6 11179ECSignature.fromDER = function (buffer) {
ebd8d4e8
IC
11180 assert.equal(buffer.readUInt8(0), 0x30, 'Not a DER sequence')
11181 assert.equal(buffer.readUInt8(1), buffer.length - 2, 'Invalid sequence length')
11182 assert.equal(buffer.readUInt8(2), 0x02, 'Expected a DER integer')
11183
11184 var rLen = buffer.readUInt8(3)
11185 assert(rLen > 0, 'R length is zero')
11186
11187 var offset = 4 + rLen
11188 assert.equal(buffer.readUInt8(offset), 0x02, 'Expected a DER integer (2)')
11189
11190 var sLen = buffer.readUInt8(offset + 1)
11191 assert(sLen > 0, 'S length is zero')
11192
11193 var rB = buffer.slice(4, offset)
11194 var sB = buffer.slice(offset + 2)
11195 offset += 2 + sLen
11196
11197 if (rLen > 1 && rB.readUInt8(0) === 0x00) {
11198 assert(rB.readUInt8(1) & 0x80, 'R value excessively padded')
11199 }
11200
11201 if (sLen > 1 && sB.readUInt8(0) === 0x00) {
11202 assert(sB.readUInt8(1) & 0x80, 'S value excessively padded')
11203 }
11204
11205 assert.equal(offset, buffer.length, 'Invalid DER encoding')
11206 var r = BigInteger.fromDERInteger(rB)
11207 var s = BigInteger.fromDERInteger(sB)
11208
11209 assert(r.signum() >= 0, 'R value is negative')
11210 assert(s.signum() >= 0, 'S value is negative')
11211
11212 return new ECSignature(r, s)
11213}
11214
ab78acc6
IC
11215// BIP62: 1 byte hashType flag (only 0x01, 0x02, 0x03, 0x81, 0x82 and 0x83 are allowed)
11216ECSignature.parseScriptSignature = function (buffer) {
ebd8d4e8
IC
11217 var hashType = buffer.readUInt8(buffer.length - 1)
11218 var hashTypeMod = hashType & ~0x80
11219
ab78acc6 11220 assert(hashTypeMod > 0x00 && hashTypeMod < 0x04, 'Invalid hashType ' + hashType)
ebd8d4e8
IC
11221
11222 return {
11223 signature: ECSignature.fromDER(buffer.slice(0, -1)),
11224 hashType: hashType
11225 }
11226}
11227
ab78acc6
IC
11228ECSignature.prototype.toCompact = function (i, compressed) {
11229 if (compressed) {
11230 i += 4
11231 }
11232
ebd8d4e8
IC
11233 i += 27
11234
11235 var buffer = new Buffer(65)
11236 buffer.writeUInt8(i, 0)
11237
11238 this.r.toBuffer(32).copy(buffer, 1)
11239 this.s.toBuffer(32).copy(buffer, 33)
11240
11241 return buffer
11242}
11243
ab78acc6 11244ECSignature.prototype.toDER = function () {
ebd8d4e8
IC
11245 var rBa = this.r.toDERInteger()
11246 var sBa = this.s.toDERInteger()
11247
11248 var sequence = []
ab78acc6
IC
11249
11250 // INTEGER
11251 sequence.push(0x02, rBa.length)
ebd8d4e8
IC
11252 sequence = sequence.concat(rBa)
11253
ab78acc6
IC
11254 // INTEGER
11255 sequence.push(0x02, sBa.length)
ebd8d4e8
IC
11256 sequence = sequence.concat(sBa)
11257
ab78acc6
IC
11258 // SEQUENCE
11259 sequence.unshift(0x30, sequence.length)
ebd8d4e8
IC
11260
11261 return new Buffer(sequence)
11262}
11263
ab78acc6
IC
11264ECSignature.prototype.toScriptSignature = function (hashType) {
11265 var hashTypeMod = hashType & ~0x80
11266 assert(hashTypeMod > 0x00 && hashTypeMod < 0x04, 'Invalid hashType ' + hashType)
11267
ebd8d4e8
IC
11268 var hashTypeBuffer = new Buffer(1)
11269 hashTypeBuffer.writeUInt8(hashType, 0)
11270
11271 return Buffer.concat([this.toDER(), hashTypeBuffer])
11272}
11273
11274module.exports = ECSignature
11275
ab78acc6
IC
11276}).call(this,require("buffer").Buffer)
11277},{"assert":5,"bigi":3,"buffer":7,"typeforce":53}],63:[function(require,module,exports){
ebd8d4e8 11278(function (Buffer){
ab78acc6
IC
11279var assert = require('assert')
11280var base58check = require('bs58check')
11281var bcrypto = require('./crypto')
11282var createHmac = require('create-hmac')
11283var typeForce = require('typeforce')
11284var networks = require('./networks')
11285
11286var BigInteger = require('bigi')
11287var ECKey = require('./eckey')
11288var ECPubKey = require('./ecpubkey')
11289
11290var ecurve = require('ecurve')
ebd8d4e8
IC
11291var curve = ecurve.getCurveByName('secp256k1')
11292
ab78acc6 11293function findBIP32NetworkByVersion (version) {
ebd8d4e8
IC
11294 for (var name in networks) {
11295 var network = networks[name]
11296
ab78acc6
IC
11297 if (version === network.bip32.private || version === network.bip32.public) {
11298 return network
ebd8d4e8
IC
11299 }
11300 }
11301
ab78acc6 11302 assert(false, 'Could not find network for ' + version.toString(16))
ebd8d4e8
IC
11303}
11304
ab78acc6 11305function HDNode (K, chainCode, network) {
ebd8d4e8
IC
11306 network = network || networks.bitcoin
11307
ab78acc6
IC
11308 typeForce('Buffer', chainCode)
11309
11310 assert.equal(chainCode.length, 32, 'Expected chainCode length of 32, got ' + chainCode.length)
ebd8d4e8
IC
11311 assert(network.bip32, 'Unknown BIP32 constants for network')
11312
11313 this.chainCode = chainCode
11314 this.depth = 0
11315 this.index = 0
ab78acc6 11316 this.parentFingerprint = 0x00000000
ebd8d4e8
IC
11317 this.network = network
11318
11319 if (K instanceof BigInteger) {
11320 this.privKey = new ECKey(K, true)
11321 this.pubKey = this.privKey.pub
ab78acc6
IC
11322 } else if (K instanceof ECKey) {
11323 assert(K.pub.compressed, 'ECKey must be compressed')
11324 this.privKey = K
11325 this.pubKey = K.pub
11326 } else if (K instanceof ECPubKey) {
11327 assert(K.compressed, 'ECPubKey must be compressed')
11328 this.pubKey = K
ebd8d4e8
IC
11329 } else {
11330 this.pubKey = new ECPubKey(K, true)
11331 }
11332}
11333
11334HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
11335HDNode.HIGHEST_BIT = 0x80000000
11336HDNode.LENGTH = 78
11337
ab78acc6
IC
11338HDNode.fromSeedBuffer = function (seed, network) {
11339 typeForce('Buffer', seed)
11340
11341 assert(seed.length >= 16, 'Seed should be at least 128 bits')
11342 assert(seed.length <= 64, 'Seed should be at most 512 bits')
11343
11344 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
ebd8d4e8
IC
11345 var IL = I.slice(0, 32)
11346 var IR = I.slice(32)
11347
11348 // In case IL is 0 or >= n, the master key is invalid
11349 // This is handled by `new ECKey` in the HDNode constructor
11350 var pIL = BigInteger.fromBuffer(IL)
11351
11352 return new HDNode(pIL, IR, network)
11353}
11354
ab78acc6 11355HDNode.fromSeedHex = function (hex, network) {
ebd8d4e8
IC
11356 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
11357}
11358
ab78acc6
IC
11359HDNode.fromBase58 = function (string, network) {
11360 return HDNode.fromBuffer(base58check.decode(string), network, true)
ebd8d4e8
IC
11361}
11362
ab78acc6
IC
11363// FIXME: remove in 2.x.y
11364HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
11365 if (!__ignoreDeprecation) {
11366 console.warn('HDNode.fromBuffer() is deprecated for removal in 2.x.y, use fromBase58 instead')
11367 }
11368
ebd8d4e8
IC
11369 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
11370
11371 // 4 byte: version bytes
11372 var version = buffer.readUInt32BE(0)
ab78acc6
IC
11373
11374 if (network) {
11375 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
11376
11377 // auto-detect
11378 } else {
11379 network = findBIP32NetworkByVersion(version)
11380 }
ebd8d4e8
IC
11381
11382 // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ...
11383 var depth = buffer.readUInt8(4)
11384
11385 // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)
11386 var parentFingerprint = buffer.readUInt32BE(5)
11387 if (depth === 0) {
11388 assert.strictEqual(parentFingerprint, 0x00000000, 'Invalid parent fingerprint')
11389 }
11390
11391 // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
11392 // This is encoded in MSB order. (0x00000000 if master key)
11393 var index = buffer.readUInt32BE(9)
11394 assert(depth > 0 || index === 0, 'Invalid index')
11395
11396 // 32 bytes: the chain code
11397 var chainCode = buffer.slice(13, 45)
ab78acc6 11398 var data, hd
ebd8d4e8
IC
11399
11400 // 33 bytes: private key data (0x00 + k)
ab78acc6 11401 if (version === network.bip32.private) {
ebd8d4e8 11402 assert.strictEqual(buffer.readUInt8(45), 0x00, 'Invalid private key')
ab78acc6 11403 data = buffer.slice(46, 78)
ebd8d4e8 11404 var d = BigInteger.fromBuffer(data)
ab78acc6 11405 hd = new HDNode(d, chainCode, network)
ebd8d4e8
IC
11406
11407 // 33 bytes: public key data (0x02 + X or 0x03 + X)
11408 } else {
ab78acc6 11409 data = buffer.slice(45, 78)
ebd8d4e8
IC
11410 var Q = ecurve.Point.decodeFrom(curve, data)
11411 assert.equal(Q.compressed, true, 'Invalid public key')
11412
11413 // Verify that the X coordinate in the public point corresponds to a point on the curve.
11414 // If not, the extended public key is invalid.
11415 curve.validate(Q)
11416
ab78acc6 11417 hd = new HDNode(Q, chainCode, network)
ebd8d4e8
IC
11418 }
11419
11420 hd.depth = depth
11421 hd.index = index
11422 hd.parentFingerprint = parentFingerprint
11423
11424 return hd
11425}
11426
ab78acc6
IC
11427// FIXME: remove in 2.x.y
11428HDNode.fromHex = function (hex, network) {
11429 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
ebd8d4e8
IC
11430}
11431
ab78acc6
IC
11432HDNode.prototype.getIdentifier = function () {
11433 return bcrypto.hash160(this.pubKey.toBuffer())
ebd8d4e8
IC
11434}
11435
ab78acc6 11436HDNode.prototype.getFingerprint = function () {
ebd8d4e8
IC
11437 return this.getIdentifier().slice(0, 4)
11438}
11439
ab78acc6 11440HDNode.prototype.getAddress = function () {
ebd8d4e8
IC
11441 return this.pubKey.getAddress(this.network)
11442}
11443
ab78acc6
IC
11444HDNode.prototype.neutered = function () {
11445 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
11446 neutered.depth = this.depth
11447 neutered.index = this.index
11448 neutered.parentFingerprint = this.parentFingerprint
11449
11450 return neutered
11451}
11452
11453HDNode.prototype.toBase58 = function (isPrivate) {
11454 return base58check.encode(this.toBuffer(isPrivate, true))
ebd8d4e8
IC
11455}
11456
ab78acc6
IC
11457// FIXME: remove in 2.x.y
11458HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
11459 if (isPrivate === undefined) {
11460 isPrivate = !!this.privKey
11461
11462 // FIXME: remove in 2.x.y
11463 } else {
11464 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
11465 }
11466
11467 if (!__ignoreDeprecation) {
11468 console.warn('HDNode.toBuffer() is deprecated for removal in 2.x.y, use toBase58 instead')
11469 }
ebd8d4e8
IC
11470
11471 // Version
11472 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
11473 var buffer = new Buffer(HDNode.LENGTH)
11474
11475 // 4 bytes: version bytes
11476 buffer.writeUInt32BE(version, 0)
11477
11478 // Depth
11479 // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....
11480 buffer.writeUInt8(this.depth, 4)
11481
11482 // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)
ab78acc6 11483 buffer.writeUInt32BE(this.parentFingerprint, 5)
ebd8d4e8
IC
11484
11485 // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
11486 // This is encoded in Big endian. (0x00000000 if master key)
11487 buffer.writeUInt32BE(this.index, 9)
11488
11489 // 32 bytes: the chain code
11490 this.chainCode.copy(buffer, 13)
11491
11492 // 33 bytes: the public key or private key data
11493 if (isPrivate) {
ab78acc6 11494 // FIXME: remove in 2.x.y
ebd8d4e8
IC
11495 assert(this.privKey, 'Missing private key')
11496
11497 // 0x00 + k for private keys
11498 buffer.writeUInt8(0, 45)
11499 this.privKey.d.toBuffer(32).copy(buffer, 46)
11500 } else {
ebd8d4e8
IC
11501 // X9.62 encoding for public keys
11502 this.pubKey.toBuffer().copy(buffer, 45)
11503 }
11504
11505 return buffer
11506}
11507
ab78acc6
IC
11508// FIXME: remove in 2.x.y
11509HDNode.prototype.toHex = function (isPrivate) {
ebd8d4e8
IC
11510 return this.toBuffer(isPrivate).toString('hex')
11511}
11512
11513// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions
ab78acc6 11514HDNode.prototype.derive = function (index) {
ebd8d4e8
IC
11515 var isHardened = index >= HDNode.HIGHEST_BIT
11516 var indexBuffer = new Buffer(4)
11517 indexBuffer.writeUInt32BE(index, 0)
11518
11519 var data
11520
11521 // Hardened child
11522 if (isHardened) {
11523 assert(this.privKey, 'Could not derive hardened child key')
11524
11525 // data = 0x00 || ser256(kpar) || ser32(index)
11526 data = Buffer.concat([
11527 this.privKey.d.toBuffer(33),
11528 indexBuffer
11529 ])
11530
11531 // Normal child
11532 } else {
11533 // data = serP(point(kpar)) || ser32(index)
11534 // = serP(Kpar) || ser32(index)
11535 data = Buffer.concat([
11536 this.pubKey.toBuffer(),
11537 indexBuffer
11538 ])
11539 }
11540
ab78acc6 11541 var I = createHmac('sha512', this.chainCode).update(data).digest()
ebd8d4e8
IC
11542 var IL = I.slice(0, 32)
11543 var IR = I.slice(32)
11544
11545 var pIL = BigInteger.fromBuffer(IL)
11546
11547 // In case parse256(IL) >= n, proceed with the next value for i
11548 if (pIL.compareTo(curve.n) >= 0) {
11549 return this.derive(index + 1)
11550 }
11551
11552 // Private parent key -> private child key
11553 var hd
11554 if (this.privKey) {
11555 // ki = parse256(IL) + kpar (mod n)
11556 var ki = pIL.add(this.privKey.d).mod(curve.n)
11557
11558 // In case ki == 0, proceed with the next value for i
11559 if (ki.signum() === 0) {
11560 return this.derive(index + 1)
11561 }
11562
11563 hd = new HDNode(ki, IR, this.network)
11564
11565 // Public parent key -> public child key
11566 } else {
11567 // Ki = point(parse256(IL)) + Kpar
11568 // = G*IL + Kpar
11569 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
11570
11571 // In case Ki is the point at infinity, proceed with the next value for i
11572 if (curve.isInfinity(Ki)) {
11573 return this.derive(index + 1)
11574 }
11575
11576 hd = new HDNode(Ki, IR, this.network)
11577 }
11578
11579 hd.depth = this.depth + 1
11580 hd.index = index
11581 hd.parentFingerprint = this.getFingerprint().readUInt32BE(0)
11582
11583 return hd
11584}
11585
ab78acc6 11586HDNode.prototype.deriveHardened = function (index) {
ebd8d4e8
IC
11587 // Only derives hardened private keys by default
11588 return this.derive(index + HDNode.HIGHEST_BIT)
11589}
11590
11591HDNode.prototype.toString = HDNode.prototype.toBase58
11592
11593module.exports = HDNode
11594
ab78acc6
IC
11595}).call(this,require("buffer").Buffer)
11596},{"./crypto":58,"./eckey":60,"./ecpubkey":61,"./networks":66,"assert":5,"bigi":3,"bs58check":31,"buffer":7,"create-hmac":45,"ecurve":49,"typeforce":53}],64:[function(require,module,exports){
ebd8d4e8 11597module.exports = {
ab78acc6
IC
11598 Address: require('./address'),
11599 base58check: require('./base58check'),
11600 Block: require('./block'),
11601 bufferutils: require('./bufferutils'),
11602 crypto: require('./crypto'),
11603 ecdsa: require('./ecdsa'),
11604 ECKey: require('./eckey'),
11605 ECPubKey: require('./ecpubkey'),
11606 ECSignature: require('./ecsignature'),
11607 Message: require('./message'),
11608 opcodes: require('./opcodes'),
11609 HDNode: require('./hdnode'),
11610 Script: require('./script'),
11611 scripts: require('./scripts'),
11612 Transaction: require('./transaction'),
11613 TransactionBuilder: require('./transaction_builder'),
11614 networks: require('./networks'),
11615 Wallet: require('./wallet')
11616}
11617
11618},{"./address":54,"./base58check":55,"./block":56,"./bufferutils":57,"./crypto":58,"./ecdsa":59,"./eckey":60,"./ecpubkey":61,"./ecsignature":62,"./hdnode":63,"./message":65,"./networks":66,"./opcodes":67,"./script":68,"./scripts":69,"./transaction":70,"./transaction_builder":71,"./wallet":72}],65:[function(require,module,exports){
ebd8d4e8 11619(function (Buffer){
ab78acc6
IC
11620var bufferutils = require('./bufferutils')
11621var crypto = require('./crypto')
11622var ecdsa = require('./ecdsa')
11623var networks = require('./networks')
11624
11625var BigInteger = require('bigi')
11626var ECPubKey = require('./ecpubkey')
11627var ECSignature = require('./ecsignature')
11628
11629var ecurve = require('ecurve')
ebd8d4e8
IC
11630var ecparams = ecurve.getCurveByName('secp256k1')
11631
ab78acc6 11632function magicHash (message, network) {
ebd8d4e8
IC
11633 var magicPrefix = new Buffer(network.magicPrefix)
11634 var messageBuffer = new Buffer(message)
ab78acc6 11635 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
ebd8d4e8
IC
11636
11637 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
11638 return crypto.hash256(buffer)
11639}
11640
ab78acc6 11641function sign (privKey, message, network) {
ebd8d4e8
IC
11642 network = network || networks.bitcoin
11643
11644 var hash = magicHash(message, network)
11645 var signature = privKey.sign(hash)
11646 var e = BigInteger.fromBuffer(hash)
11647 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
11648
11649 return signature.toCompact(i, privKey.pub.compressed)
11650}
11651
11652// TODO: network could be implied from address
ab78acc6
IC
11653function verify (address, signature, message, network) {
11654 if (!Buffer.isBuffer(signature)) {
11655 signature = new Buffer(signature, 'base64')
ebd8d4e8 11656 }
ab78acc6 11657
ebd8d4e8
IC
11658 network = network || networks.bitcoin
11659
11660 var hash = magicHash(message, network)
ab78acc6 11661 var parsed = ECSignature.parseCompact(signature)
ebd8d4e8
IC
11662 var e = BigInteger.fromBuffer(hash)
11663 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
11664
11665 var pubKey = new ECPubKey(Q, parsed.compressed)
ab78acc6 11666 return pubKey.getAddress(network).toString() === address.toString()
ebd8d4e8
IC
11667}
11668
11669module.exports = {
11670 magicHash: magicHash,
11671 sign: sign,
11672 verify: verify
11673}
11674
ab78acc6
IC
11675}).call(this,require("buffer").Buffer)
11676},{"./bufferutils":57,"./crypto":58,"./ecdsa":59,"./ecpubkey":61,"./ecsignature":62,"./networks":66,"bigi":3,"buffer":7,"ecurve":49}],66:[function(require,module,exports){
ebd8d4e8
IC
11677// https://en.bitcoin.it/wiki/List_of_address_prefixes
11678// Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=409731
11679
11680var networks = {
11681 bitcoin: {
11682 magicPrefix: '\x18Bitcoin Signed Message:\n',
11683 bip32: {
11684 public: 0x0488b21e,
11685 private: 0x0488ade4
11686 },
11687 pubKeyHash: 0x00,
11688 scriptHash: 0x05,
11689 wif: 0x80,
11690 dustThreshold: 546, // https://github.com/bitcoin/bitcoin/blob/v0.9.2/src/core.h#L151-L162
11691 feePerKb: 10000, // https://github.com/bitcoin/bitcoin/blob/v0.9.2/src/main.cpp#L53
11692 estimateFee: estimateFee('bitcoin')
a9385c1b 11693 },
ab78acc6
IC
11694 testnet: {
11695 magicPrefix: '\x18Bitcoin Signed Message:\n',
a9385c1b 11696 bip32: {
ab78acc6
IC
11697 public: 0x043587cf,
11698 private: 0x04358394
a9385c1b 11699 },
ab78acc6
IC
11700 pubKeyHash: 0x6f,
11701 scriptHash: 0xc4,
11702 wif: 0xef,
11703 dustThreshold: 546,
cb325c58 11704 feePerKb: 10000,
ab78acc6 11705 estimateFee: estimateFee('testnet')
a9385c1b 11706 },
ab78acc6
IC
11707 litecoin: {
11708 magicPrefix: '\x19Litecoin Signed Message:\n',
a9385c1b 11709 bip32: {
ab78acc6
IC
11710 public: 0x019da462,
11711 private: 0x019d9cfe
a9385c1b 11712 },
ab78acc6
IC
11713 pubKeyHash: 0x30,
11714 scriptHash: 0x05,
11715 wif: 0xb0,
11716 dustThreshold: 0, // https://github.com/litecoin-project/litecoin/blob/v0.8.7.2/src/main.cpp#L360-L365
11717 dustSoftThreshold: 100000, // https://github.com/litecoin-project/litecoin/blob/v0.8.7.2/src/main.h#L53
11718 feePerKb: 100000, // https://github.com/litecoin-project/litecoin/blob/v0.8.7.2/src/main.cpp#L56
11719 estimateFee: estimateFee('litecoin')
ebd8d4e8
IC
11720 },
11721 dogecoin: {
11722 magicPrefix: '\x19Dogecoin Signed Message:\n',
11723 bip32: {
11724 public: 0x02facafd,
11725 private: 0x02fac398
11726 },
11727 pubKeyHash: 0x1e,
11728 scriptHash: 0x16,
11729 wif: 0x9e,
11730 dustThreshold: 0, // https://github.com/dogecoin/dogecoin/blob/v1.7.1/src/core.h#L155-L160
11731 dustSoftThreshold: 100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7.1/src/main.h#L62
11732 feePerKb: 100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7.1/src/main.cpp#L58
11733 estimateFee: estimateFee('dogecoin')
11734 },
ab78acc6
IC
11735 viacoin: {
11736 magicPrefix: '\x18Viacoin Signed Message:\n',
ebd8d4e8 11737 bip32: {
ab78acc6
IC
11738 public: 0x0488b21e,
11739 private: 0x0488ade4
ebd8d4e8 11740 },
ab78acc6
IC
11741 pubKeyHash: 0x47,
11742 scriptHash: 0x21,
11743 wif: 0xc7,
11744 dustThreshold: 560,
11745 dustSoftThreshold: 100000,
11746 feePerKb: 100000, //
11747 estimateFee: estimateFee('viacoin')
ebd8d4e8 11748 },
ab78acc6
IC
11749 viacointestnet: {
11750 magicPrefix: '\x18Viacoin Signed Message:\n',
ebd8d4e8
IC
11751 bip32: {
11752 public: 0x043587cf,
11753 private: 0x04358394
11754 },
ab78acc6 11755 pubKeyHash: 0x7f,
ebd8d4e8 11756 scriptHash: 0xc4,
ab78acc6
IC
11757 wif: 0xff,
11758 dustThreshold: 560,
11759 dustSoftThreshold: 100000,
11760 feePerKb: 100000,
11761 estimateFee: estimateFee('viacointestnet')
11762 },
11763 gamerscoin: {
11764 magicPrefix: '\x19Gamerscoin Signed Message:\n',
11765 bip32: {
11766 public: 0x019da462,
11767 private: 0x019d9cfe
11768 },
11769 pubKeyHash: 0x26,
11770 scriptHash: 0x05,
11771 wif: 0xA6,
11772 dustThreshold: 0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
11773 dustSoftThreshold: 100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
11774 feePerKb: 100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
11775 estimateFee: estimateFee('gamerscoin')
11776 },
11777 jumbucks: {
11778 magicPrefix: '\x19Jumbucks Signed Message:\n',
11779 bip32: {
11780 public: 0x037a689a,
11781 private: 0x037a6460
11782 },
11783 pubKeyHash: 0x2b,
11784 scriptHash: 0x05,
11785 wif: 0xab,
11786 dustThreshold: 0,
11787 dustSoftThreshold: 10000,
ebd8d4e8 11788 feePerKb: 10000,
ab78acc6
IC
11789 estimateFee: estimateFee('jumbucks')
11790 },
11791 zetacoin: {
11792 magicPrefix: '\x18Zetacoin Signed Message:\n',
11793 bip32: {
11794 public: 0x0488b21e,
11795 private: 0x0488ade4
11796 },
11797 pubKeyHash: 0x50,
11798 scriptHash: 0x09,
11799 wif: 0xe0,
11800 dustThreshold: 546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
11801 feePerKb: 10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
11802 estimateFee: estimateFee('zetacoin')
ebd8d4e8
IC
11803 }
11804}
11805
ab78acc6
IC
11806function estimateFee (type) {
11807 return function (tx) {
ebd8d4e8
IC
11808 var network = networks[type]
11809 var baseFee = network.feePerKb
11810 var byteSize = tx.toBuffer().length
11811
11812 var fee = baseFee * Math.ceil(byteSize / 1000)
ab78acc6 11813 if (network.dustSoftThreshold === undefined) return fee
ebd8d4e8 11814
ab78acc6 11815 tx.outs.forEach(function (e) {
ebd8d4e8
IC
11816 if (e.value < network.dustSoftThreshold) {
11817 fee += baseFee
11818 }
11819 })
11820
11821 return fee
11822 }
11823}
11824
11825module.exports = networks
11826
ab78acc6 11827},{}],67:[function(require,module,exports){
ebd8d4e8
IC
11828module.exports = {
11829 // push value
ab78acc6
IC
11830 OP_FALSE: 0,
11831 OP_0: 0,
11832 OP_PUSHDATA1: 76,
11833 OP_PUSHDATA2: 77,
11834 OP_PUSHDATA4: 78,
11835 OP_1NEGATE: 79,
11836 OP_RESERVED: 80,
11837 OP_1: 81,
11838 OP_TRUE: 81,
11839 OP_2: 82,
11840 OP_3: 83,
11841 OP_4: 84,
11842 OP_5: 85,
11843 OP_6: 86,
11844 OP_7: 87,
11845 OP_8: 88,
11846 OP_9: 89,
11847 OP_10: 90,
11848 OP_11: 91,
11849 OP_12: 92,
11850 OP_13: 93,
11851 OP_14: 94,
11852 OP_15: 95,
11853 OP_16: 96,
ebd8d4e8
IC
11854
11855 // control
ab78acc6
IC
11856 OP_NOP: 97,
11857 OP_VER: 98,
11858 OP_IF: 99,
11859 OP_NOTIF: 100,
11860 OP_VERIF: 101,
11861 OP_VERNOTIF: 102,
11862 OP_ELSE: 103,
11863 OP_ENDIF: 104,
11864 OP_VERIFY: 105,
11865 OP_RETURN: 106,
ebd8d4e8
IC
11866
11867 // stack ops
ab78acc6
IC
11868 OP_TOALTSTACK: 107,
11869 OP_FROMALTSTACK: 108,
11870 OP_2DROP: 109,
11871 OP_2DUP: 110,
11872 OP_3DUP: 111,
11873 OP_2OVER: 112,
11874 OP_2ROT: 113,
11875 OP_2SWAP: 114,
11876 OP_IFDUP: 115,
11877 OP_DEPTH: 116,
11878 OP_DROP: 117,
11879 OP_DUP: 118,
11880 OP_NIP: 119,
11881 OP_OVER: 120,
11882 OP_PICK: 121,
11883 OP_ROLL: 122,
11884 OP_ROT: 123,
11885 OP_SWAP: 124,
11886 OP_TUCK: 125,
ebd8d4e8
IC
11887
11888 // splice ops
ab78acc6
IC
11889 OP_CAT: 126,
11890 OP_SUBSTR: 127,
11891 OP_LEFT: 128,
11892 OP_RIGHT: 129,
11893 OP_SIZE: 130,
ebd8d4e8
IC
11894
11895 // bit logic
ab78acc6
IC
11896 OP_INVERT: 131,
11897 OP_AND: 132,
11898 OP_OR: 133,
11899 OP_XOR: 134,
11900 OP_EQUAL: 135,
11901 OP_EQUALVERIFY: 136,
11902 OP_RESERVED1: 137,
11903 OP_RESERVED2: 138,
ebd8d4e8
IC
11904
11905 // numeric
ab78acc6
IC
11906 OP_1ADD: 139,
11907 OP_1SUB: 140,
11908 OP_2MUL: 141,
11909 OP_2DIV: 142,
11910 OP_NEGATE: 143,
11911 OP_ABS: 144,
11912 OP_NOT: 145,
11913 OP_0NOTEQUAL: 146,
11914
11915 OP_ADD: 147,
11916 OP_SUB: 148,
11917 OP_MUL: 149,
11918 OP_DIV: 150,
11919 OP_MOD: 151,
11920 OP_LSHIFT: 152,
11921 OP_RSHIFT: 153,
11922
11923 OP_BOOLAND: 154,
11924 OP_BOOLOR: 155,
11925 OP_NUMEQUAL: 156,
11926 OP_NUMEQUALVERIFY: 157,
11927 OP_NUMNOTEQUAL: 158,
11928 OP_LESSTHAN: 159,
11929 OP_GREATERTHAN: 160,
11930 OP_LESSTHANOREQUAL: 161,
11931 OP_GREATERTHANOREQUAL: 162,
11932 OP_MIN: 163,
11933 OP_MAX: 164,
11934
11935 OP_WITHIN: 165,
ebd8d4e8
IC
11936
11937 // crypto
ab78acc6
IC
11938 OP_RIPEMD160: 166,
11939 OP_SHA1: 167,
11940 OP_SHA256: 168,
11941 OP_HASH160: 169,
11942 OP_HASH256: 170,
11943 OP_CODESEPARATOR: 171,
11944 OP_CHECKSIG: 172,
11945 OP_CHECKSIGVERIFY: 173,
11946 OP_CHECKMULTISIG: 174,
11947 OP_CHECKMULTISIGVERIFY: 175,
ebd8d4e8
IC
11948
11949 // expansion
ab78acc6
IC
11950 OP_NOP1: 176,
11951 OP_NOP2: 177,
11952 OP_NOP3: 178,
11953 OP_NOP4: 179,
11954 OP_NOP5: 180,
11955 OP_NOP6: 181,
11956 OP_NOP7: 182,
11957 OP_NOP8: 183,
11958 OP_NOP9: 184,
11959 OP_NOP10: 185,
ebd8d4e8
IC
11960
11961 // template matching params
ab78acc6
IC
11962 OP_PUBKEYHASH: 253,
11963 OP_PUBKEY: 254,
11964 OP_INVALIDOPCODE: 255
ebd8d4e8
IC
11965}
11966
ab78acc6 11967},{}],68:[function(require,module,exports){
ebd8d4e8 11968(function (Buffer){
ab78acc6
IC
11969var assert = require('assert')
11970var bufferutils = require('./bufferutils')
11971var crypto = require('./crypto')
11972var typeForce = require('typeforce')
11973var opcodes = require('./opcodes')
ebd8d4e8 11974
ab78acc6
IC
11975function Script (buffer, chunks) {
11976 typeForce('Buffer', buffer)
11977 typeForce('Array', chunks)
ebd8d4e8
IC
11978
11979 this.buffer = buffer
11980 this.chunks = chunks
11981}
11982
ab78acc6 11983Script.fromASM = function (asm) {
ebd8d4e8 11984 var strChunks = asm.split(' ')
ab78acc6
IC
11985 var chunks = strChunks.map(function (strChunk) {
11986 // opcode
ebd8d4e8
IC
11987 if (strChunk in opcodes) {
11988 return opcodes[strChunk]
11989
ab78acc6 11990 // data chunk
ebd8d4e8
IC
11991 } else {
11992 return new Buffer(strChunk, 'hex')
11993 }
11994 })
11995
11996 return Script.fromChunks(chunks)
11997}
11998
ab78acc6 11999Script.fromBuffer = function (buffer) {
ebd8d4e8 12000 var chunks = []
ebd8d4e8
IC
12001 var i = 0
12002
12003 while (i < buffer.length) {
12004 var opcode = buffer.readUInt8(i)
12005
ab78acc6 12006 // data chunk
ebd8d4e8
IC
12007 if ((opcode > opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
12008 var d = bufferutils.readPushDataInt(buffer, i)
ab78acc6
IC
12009
12010 // did reading a pushDataInt fail? return non-chunked script
12011 if (d === null) return new Script(buffer, [])
ebd8d4e8
IC
12012 i += d.size
12013
ab78acc6
IC
12014 // attempt to read too much data?
12015 if (i + d.number > buffer.length) return new Script(buffer, [])
12016
ebd8d4e8
IC
12017 var data = buffer.slice(i, i + d.number)
12018 i += d.number
12019
12020 chunks.push(data)
12021
ab78acc6 12022 // opcode
ebd8d4e8
IC
12023 } else {
12024 chunks.push(opcode)
12025
12026 i += 1
12027 }
12028 }
12029
12030 return new Script(buffer, chunks)
12031}
12032
ab78acc6
IC
12033Script.fromChunks = function (chunks) {
12034 typeForce('Array', chunks)
ebd8d4e8 12035
ab78acc6
IC
12036 var bufferSize = chunks.reduce(function (accum, chunk) {
12037 // data chunk
ebd8d4e8
IC
12038 if (Buffer.isBuffer(chunk)) {
12039 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
12040 }
12041
ab78acc6 12042 // opcode
ebd8d4e8
IC
12043 return accum + 1
12044 }, 0.0)
12045
12046 var buffer = new Buffer(bufferSize)
12047 var offset = 0
12048
ab78acc6
IC
12049 chunks.forEach(function (chunk) {
12050 // data chunk
ebd8d4e8
IC
12051 if (Buffer.isBuffer(chunk)) {
12052 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
12053
12054 chunk.copy(buffer, offset)
12055 offset += chunk.length
12056
ab78acc6 12057 // opcode
ebd8d4e8
IC
12058 } else {
12059 buffer.writeUInt8(chunk, offset)
12060 offset += 1
12061 }
12062 })
12063
12064 assert.equal(offset, buffer.length, 'Could not decode chunks')
12065 return new Script(buffer, chunks)
12066}
12067
ab78acc6 12068Script.fromHex = function (hex) {
ebd8d4e8
IC
12069 return Script.fromBuffer(new Buffer(hex, 'hex'))
12070}
12071
ebd8d4e8
IC
12072Script.EMPTY = Script.fromChunks([])
12073
ab78acc6 12074Script.prototype.getHash = function () {
ebd8d4e8
IC
12075 return crypto.hash160(this.buffer)
12076}
12077
12078// FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
ab78acc6
IC
12079Script.prototype.without = function (needle) {
12080 return Script.fromChunks(this.chunks.filter(function (op) {
ebd8d4e8
IC
12081 return op !== needle
12082 }))
12083}
12084
ebd8d4e8
IC
12085var reverseOps = []
12086for (var op in opcodes) {
12087 var code = opcodes[op]
12088 reverseOps[code] = op
12089}
12090
ab78acc6
IC
12091Script.prototype.toASM = function () {
12092 return this.chunks.map(function (chunk) {
12093 // data chunk
ebd8d4e8
IC
12094 if (Buffer.isBuffer(chunk)) {
12095 return chunk.toString('hex')
12096
ab78acc6 12097 // opcode
ebd8d4e8
IC
12098 } else {
12099 return reverseOps[chunk]
12100 }
12101 }).join(' ')
12102}
12103
ab78acc6 12104Script.prototype.toBuffer = function () {
ebd8d4e8
IC
12105 return this.buffer
12106}
12107
ab78acc6 12108Script.prototype.toHex = function () {
ebd8d4e8
IC
12109 return this.toBuffer().toString('hex')
12110}
12111
12112module.exports = Script
12113
ab78acc6
IC
12114}).call(this,require("buffer").Buffer)
12115},{"./bufferutils":57,"./crypto":58,"./opcodes":67,"assert":5,"buffer":7,"typeforce":53}],69:[function(require,module,exports){
ebd8d4e8 12116(function (Buffer){
ab78acc6
IC
12117var assert = require('assert')
12118var ops = require('./opcodes')
12119var typeForce = require('typeforce')
ebd8d4e8 12120
ab78acc6 12121var ecurve = require('ecurve')
ebd8d4e8
IC
12122var curve = ecurve.getCurveByName('secp256k1')
12123
ab78acc6
IC
12124var ECSignature = require('./ecsignature')
12125var Script = require('./script')
ebd8d4e8 12126
ab78acc6 12127function isCanonicalPubKey (buffer) {
ebd8d4e8
IC
12128 if (!Buffer.isBuffer(buffer)) return false
12129
12130 try {
ebd8d4e8
IC
12131 ecurve.Point.decodeFrom(curve, buffer)
12132 } catch (e) {
ab78acc6
IC
12133 if (!(e.message.match(/Invalid sequence (length|tag)/)))
12134 throw e
ebd8d4e8
IC
12135
12136 return false
12137 }
12138
12139 return true
12140}
12141
ab78acc6 12142function isCanonicalSignature (buffer) {
ebd8d4e8
IC
12143 if (!Buffer.isBuffer(buffer)) return false
12144
12145 try {
12146 ECSignature.parseScriptSignature(buffer)
ab78acc6
IC
12147 } catch (e) {
12148 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
12149 throw e
12150 }
ebd8d4e8
IC
12151
12152 return false
12153 }
12154
12155 return true
12156}
12157
ab78acc6
IC
12158function isPubKeyHashInput (script) {
12159 return script.chunks.length === 2 &&
12160 isCanonicalSignature(script.chunks[0]) &&
12161 isCanonicalPubKey(script.chunks[1])
ebd8d4e8
IC
12162}
12163
ab78acc6
IC
12164function isPubKeyHashOutput (script) {
12165 return script.chunks.length === 5 &&
12166 script.chunks[0] === ops.OP_DUP &&
12167 script.chunks[1] === ops.OP_HASH160 &&
12168 Buffer.isBuffer(script.chunks[2]) &&
12169 script.chunks[2].length === 20 &&
12170 script.chunks[3] === ops.OP_EQUALVERIFY &&
12171 script.chunks[4] === ops.OP_CHECKSIG
ebd8d4e8
IC
12172}
12173
ab78acc6
IC
12174function isPubKeyInput (script) {
12175 return script.chunks.length === 1 &&
12176 isCanonicalSignature(script.chunks[0])
ebd8d4e8
IC
12177}
12178
ab78acc6
IC
12179function isPubKeyOutput (script) {
12180 return script.chunks.length === 2 &&
12181 isCanonicalPubKey(script.chunks[0]) &&
12182 script.chunks[1] === ops.OP_CHECKSIG
ebd8d4e8
IC
12183}
12184
ab78acc6
IC
12185function isScriptHashInput (script, allowIncomplete) {
12186 if (script.chunks.length < 2) return false
ebd8d4e8 12187
ab78acc6 12188 var lastChunk = script.chunks[script.chunks.length - 1]
ebd8d4e8
IC
12189 if (!Buffer.isBuffer(lastChunk)) return false
12190
ab78acc6
IC
12191 var scriptSig = Script.fromChunks(script.chunks.slice(0, -1))
12192 var redeemScript = Script.fromBuffer(lastChunk)
ebd8d4e8 12193
ab78acc6
IC
12194 // is redeemScript a valid script?
12195 if (redeemScript.chunks.length === 0) return false
12196
12197 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
ebd8d4e8
IC
12198}
12199
ab78acc6
IC
12200function isScriptHashOutput (script) {
12201 return script.chunks.length === 3 &&
12202 script.chunks[0] === ops.OP_HASH160 &&
12203 Buffer.isBuffer(script.chunks[1]) &&
12204 script.chunks[1].length === 20 &&
12205 script.chunks[2] === ops.OP_EQUAL
ebd8d4e8
IC
12206}
12207
ab78acc6
IC
12208// allowIncomplete is to account for combining signatures
12209// See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
12210function isMultisigInput (script, allowIncomplete) {
12211 if (script.chunks.length < 2) return false
12212 if (script.chunks[0] !== ops.OP_0) return false
12213
12214 if (allowIncomplete) {
12215 return script.chunks.slice(1).every(function (chunk) {
12216 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
12217 })
12218 }
12219
12220 return script.chunks.slice(1).every(isCanonicalSignature)
ebd8d4e8
IC
12221}
12222
ab78acc6
IC
12223function isMultisigOutput (script) {
12224 if (script.chunks.length < 4) return false
12225 if (script.chunks[script.chunks.length - 1] !== ops.OP_CHECKMULTISIG) return false
ebd8d4e8 12226
ab78acc6
IC
12227 var mOp = script.chunks[0]
12228 if (mOp === ops.OP_0) return false
12229 if (mOp < ops.OP_1) return false
12230 if (mOp > ops.OP_16) return false
ebd8d4e8 12231
ab78acc6
IC
12232 var nOp = script.chunks[script.chunks.length - 2]
12233 if (nOp === ops.OP_0) return false
12234 if (nOp < ops.OP_1) return false
12235 if (nOp > ops.OP_16) return false
ebd8d4e8 12236
ab78acc6
IC
12237 var m = mOp - (ops.OP_1 - 1)
12238 var n = nOp - (ops.OP_1 - 1)
ebd8d4e8
IC
12239 if (n < m) return false
12240
ab78acc6 12241 var pubKeys = script.chunks.slice(1, -2)
ebd8d4e8
IC
12242 if (n < pubKeys.length) return false
12243
12244 return pubKeys.every(isCanonicalPubKey)
12245}
12246
ab78acc6
IC
12247function isNullDataOutput (script) {
12248 return script.chunks[0] === ops.OP_RETURN
12249}
12250
12251function classifyOutput (script) {
12252 typeForce('Script', script)
12253
12254 if (isPubKeyHashOutput(script)) {
12255 return 'pubkeyhash'
12256 } else if (isScriptHashOutput(script)) {
12257 return 'scripthash'
12258 } else if (isMultisigOutput(script)) {
12259 return 'multisig'
12260 } else if (isPubKeyOutput(script)) {
12261 return 'pubkey'
12262 } else if (isNullDataOutput(script)) {
12263 return 'nulldata'
12264 }
12265
12266 return 'nonstandard'
12267}
12268
12269function classifyInput (script, allowIncomplete) {
12270 typeForce('Script', script)
12271
12272 if (isPubKeyHashInput(script)) {
12273 return 'pubkeyhash'
12274 } else if (isMultisigInput(script, allowIncomplete)) {
12275 return 'multisig'
12276 } else if (isScriptHashInput(script, allowIncomplete)) {
12277 return 'scripthash'
12278 } else if (isPubKeyInput(script)) {
12279 return 'pubkey'
12280 }
12281
12282 return 'nonstandard'
ebd8d4e8
IC
12283}
12284
12285// Standard Script Templates
12286// {pubKey} OP_CHECKSIG
ab78acc6 12287function pubKeyOutput (pubKey) {
ebd8d4e8
IC
12288 return Script.fromChunks([
12289 pubKey.toBuffer(),
ab78acc6 12290 ops.OP_CHECKSIG
ebd8d4e8
IC
12291 ])
12292}
12293
12294// OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
ab78acc6
IC
12295function pubKeyHashOutput (hash) {
12296 typeForce('Buffer', hash)
ebd8d4e8
IC
12297
12298 return Script.fromChunks([
ab78acc6
IC
12299 ops.OP_DUP,
12300 ops.OP_HASH160,
ebd8d4e8 12301 hash,
ab78acc6
IC
12302 ops.OP_EQUALVERIFY,
12303 ops.OP_CHECKSIG
ebd8d4e8
IC
12304 ])
12305}
12306
12307// OP_HASH160 {scriptHash} OP_EQUAL
ab78acc6
IC
12308function scriptHashOutput (hash) {
12309 typeForce('Buffer', hash)
ebd8d4e8
IC
12310
12311 return Script.fromChunks([
ab78acc6 12312 ops.OP_HASH160,
ebd8d4e8 12313 hash,
ab78acc6 12314 ops.OP_EQUAL
ebd8d4e8
IC
12315 ])
12316}
12317
12318// m [pubKeys ...] n OP_CHECKMULTISIG
ab78acc6
IC
12319function multisigOutput (m, pubKeys) {
12320 typeForce(['ECPubKey'], pubKeys)
12321
ebd8d4e8
IC
12322 assert(pubKeys.length >= m, 'Not enough pubKeys provided')
12323
ab78acc6 12324 var pubKeyBuffers = pubKeys.map(function (pubKey) {
ebd8d4e8
IC
12325 return pubKey.toBuffer()
12326 })
12327 var n = pubKeys.length
12328
12329 return Script.fromChunks([].concat(
ab78acc6 12330 (ops.OP_1 - 1) + m,
ebd8d4e8 12331 pubKeyBuffers,
ab78acc6
IC
12332 (ops.OP_1 - 1) + n,
12333 ops.OP_CHECKMULTISIG
ebd8d4e8
IC
12334 ))
12335}
12336
12337// {signature}
ab78acc6
IC
12338function pubKeyInput (signature) {
12339 typeForce('Buffer', signature)
ebd8d4e8
IC
12340
12341 return Script.fromChunks([signature])
12342}
12343
12344// {signature} {pubKey}
ab78acc6
IC
12345function pubKeyHashInput (signature, pubKey) {
12346 typeForce('Buffer', signature)
ebd8d4e8
IC
12347
12348 return Script.fromChunks([signature, pubKey.toBuffer()])
12349}
12350
12351// <scriptSig> {serialized scriptPubKey script}
ab78acc6 12352function scriptHashInput (scriptSig, scriptPubKey) {
ebd8d4e8
IC
12353 return Script.fromChunks([].concat(
12354 scriptSig.chunks,
12355 scriptPubKey.toBuffer()
12356 ))
12357}
12358
12359// OP_0 [signatures ...]
ab78acc6 12360function multisigInput (signatures, scriptPubKey) {
ebd8d4e8 12361 if (scriptPubKey) {
ab78acc6
IC
12362 assert(isMultisigOutput(scriptPubKey))
12363
12364 var mOp = scriptPubKey.chunks[0]
12365 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length - 2]
12366 var m = mOp - (ops.OP_1 - 1)
12367 var n = nOp - (ops.OP_1 - 1)
ebd8d4e8 12368
ab78acc6
IC
12369 assert(signatures.length >= m, 'Not enough signatures provided')
12370 assert(signatures.length <= n, 'Too many signatures provided')
ebd8d4e8
IC
12371 }
12372
ab78acc6
IC
12373 return Script.fromChunks([].concat(ops.OP_0, signatures))
12374}
12375
12376function nullDataOutput (data) {
12377 return Script.fromChunks([ops.OP_RETURN, data])
ebd8d4e8
IC
12378}
12379
12380module.exports = {
ab78acc6
IC
12381 isCanonicalPubKey: isCanonicalPubKey,
12382 isCanonicalSignature: isCanonicalSignature,
12383 isPubKeyHashInput: isPubKeyHashInput,
12384 isPubKeyHashOutput: isPubKeyHashOutput,
12385 isPubKeyInput: isPubKeyInput,
12386 isPubKeyOutput: isPubKeyOutput,
12387 isScriptHashInput: isScriptHashInput,
12388 isScriptHashOutput: isScriptHashOutput,
12389 isMultisigInput: isMultisigInput,
12390 isMultisigOutput: isMultisigOutput,
12391 isNullDataOutput: isNullDataOutput,
ebd8d4e8 12392 classifyOutput: classifyOutput,
ab78acc6
IC
12393 classifyInput: classifyInput,
12394 pubKeyOutput: pubKeyOutput,
ebd8d4e8 12395 pubKeyHashOutput: pubKeyHashOutput,
ab78acc6
IC
12396 scriptHashOutput: scriptHashOutput,
12397 multisigOutput: multisigOutput,
ebd8d4e8 12398 pubKeyInput: pubKeyInput,
ab78acc6 12399 pubKeyHashInput: pubKeyHashInput,
ebd8d4e8 12400 scriptHashInput: scriptHashInput,
ab78acc6
IC
12401 multisigInput: multisigInput,
12402 dataOutput: function (data) {
12403 console.warn('dataOutput is deprecated, use nullDataOutput by 2.0.0')
12404 return nullDataOutput(data)
12405 },
12406 nullDataOutput: nullDataOutput
ebd8d4e8
IC
12407}
12408
ab78acc6
IC
12409}).call(this,require("buffer").Buffer)
12410},{"./ecsignature":62,"./opcodes":67,"./script":68,"assert":5,"buffer":7,"ecurve":49,"typeforce":53}],70:[function(require,module,exports){
ebd8d4e8 12411(function (Buffer){
ab78acc6
IC
12412var assert = require('assert')
12413var bufferutils = require('./bufferutils')
12414var crypto = require('./crypto')
12415var typeForce = require('typeforce')
12416var opcodes = require('./opcodes')
12417var scripts = require('./scripts')
12418
12419var Address = require('./address')
12420var ECSignature = require('./ecsignature')
12421var Script = require('./script')
12422
12423function Transaction () {
12424 this.version = 1
12425 this.locktime = 0
12426 this.ins = []
12427 this.outs = []
12428}
ebd8d4e8
IC
12429
12430Transaction.DEFAULT_SEQUENCE = 0xffffffff
12431Transaction.SIGHASH_ALL = 0x01
12432Transaction.SIGHASH_NONE = 0x02
12433Transaction.SIGHASH_SINGLE = 0x03
12434Transaction.SIGHASH_ANYONECANPAY = 0x80
12435
ab78acc6
IC
12436Transaction.fromBuffer = function (buffer, __disableAssert) {
12437 var offset = 0
12438 function readSlice (n) {
12439 offset += n
12440 return buffer.slice(offset - n, offset)
12441 }
12442
12443 function readUInt32 () {
12444 var i = buffer.readUInt32LE(offset)
12445 offset += 4
12446 return i
12447 }
12448
12449 function readUInt64 () {
12450 var i = bufferutils.readUInt64LE(buffer, offset)
12451 offset += 8
12452 return i
12453 }
12454
12455 function readVarInt () {
12456 var vi = bufferutils.readVarInt(buffer, offset)
12457 offset += vi.size
12458 return vi.number
12459 }
12460
12461 function readScript () {
12462 return Script.fromBuffer(readSlice(readVarInt()))
12463 }
12464
12465 function readGenerationScript () {
12466 return new Script(readSlice(readVarInt()), [])
12467 }
12468
12469 var tx = new Transaction()
12470 tx.version = readUInt32()
12471
12472 var vinLen = readVarInt()
12473 for (var i = 0; i < vinLen; ++i) {
12474 var hash = readSlice(32)
12475
12476 if (Transaction.isCoinbaseHash(hash)) {
12477 tx.ins.push({
12478 hash: hash,
12479 index: readUInt32(),
12480 script: readGenerationScript(),
12481 sequence: readUInt32()
12482 })
12483 } else {
12484 tx.ins.push({
12485 hash: hash,
12486 index: readUInt32(),
12487 script: readScript(),
12488 sequence: readUInt32()
12489 })
12490 }
12491 }
12492
12493 var voutLen = readVarInt()
12494 for (i = 0; i < voutLen; ++i) {
12495 tx.outs.push({
12496 value: readUInt64(),
12497 script: readScript()
12498 })
12499 }
12500
12501 tx.locktime = readUInt32()
12502
12503 if (!__disableAssert) {
12504 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
12505 }
12506
12507 return tx
12508}
12509
12510Transaction.fromHex = function (hex) {
12511 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
12512}
12513
12514Transaction.isCoinbaseHash = function (buffer) {
12515 return Array.prototype.every.call(buffer, function (x) {
12516 return x === 0
12517 })
ebd8d4e8
IC
12518}
12519
12520/**
ab78acc6 12521 * Create a new txIn.
ebd8d4e8
IC
12522 *
12523 * Can be called with any of:
12524 *
12525 * - A transaction and an index
12526 * - A transaction hash and an index
12527 *
12528 * Note that this method does not sign the created input.
12529 */
ab78acc6
IC
12530Transaction.prototype.addInput = function (hash, index, sequence, script) {
12531 if (sequence === undefined || sequence === null) {
12532 sequence = Transaction.DEFAULT_SEQUENCE
12533 }
ebd8d4e8 12534
ab78acc6 12535 script = script || Script.EMPTY
ebd8d4e8 12536
ab78acc6 12537 if (typeof hash === 'string') {
ebd8d4e8 12538 // TxId hex is big-endian, we need little-endian
ab78acc6
IC
12539 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
12540 } else if (hash instanceof Transaction) {
12541 hash = hash.getHash()
ebd8d4e8
IC
12542 }
12543
ab78acc6
IC
12544 typeForce('Buffer', hash)
12545 typeForce('Number', index)
12546 typeForce('Number', sequence)
12547 typeForce('Script', script)
12548
ebd8d4e8 12549 assert.equal(hash.length, 32, 'Expected hash length of 32, got ' + hash.length)
ebd8d4e8 12550
ab78acc6 12551 // Add the input and return the input's index
ebd8d4e8
IC
12552 return (this.ins.push({
12553 hash: hash,
12554 index: index,
ab78acc6 12555 script: script,
ebd8d4e8
IC
12556 sequence: sequence
12557 }) - 1)
12558}
12559
12560/**
ab78acc6 12561 * Create a new txOut.
ebd8d4e8
IC
12562 *
12563 * Can be called with:
12564 *
12565 * - A base58 address string and a value
12566 * - An Address object and a value
12567 * - A scriptPubKey Script and a value
12568 */
ab78acc6 12569Transaction.prototype.addOutput = function (scriptPubKey, value) {
ebd8d4e8
IC
12570 // Attempt to get a valid address if it's a base58 address string
12571 if (typeof scriptPubKey === 'string') {
12572 scriptPubKey = Address.fromBase58Check(scriptPubKey)
12573 }
12574
12575 // Attempt to get a valid script if it's an Address object
12576 if (scriptPubKey instanceof Address) {
ab78acc6 12577 scriptPubKey = scriptPubKey.toOutputScript()
ebd8d4e8
IC
12578 }
12579
ab78acc6
IC
12580 typeForce('Script', scriptPubKey)
12581 typeForce('Number', value)
12582
12583 // Add the output and return the output's index
ebd8d4e8
IC
12584 return (this.outs.push({
12585 script: scriptPubKey,
ab78acc6 12586 value: value
ebd8d4e8
IC
12587 }) - 1)
12588}
12589
ab78acc6
IC
12590Transaction.prototype.clone = function () {
12591 var newTx = new Transaction()
12592 newTx.version = this.version
12593 newTx.locktime = this.locktime
12594
12595 newTx.ins = this.ins.map(function (txIn) {
12596 return {
12597 hash: txIn.hash,
12598 index: txIn.index,
12599 script: txIn.script,
12600 sequence: txIn.sequence
12601 }
12602 })
12603
12604 newTx.outs = this.outs.map(function (txOut) {
12605 return {
12606 script: txOut.script,
12607 value: txOut.value
12608 }
12609 })
12610
12611 return newTx
12612}
12613
12614/**
12615 * Hash transaction for signing a specific input.
12616 *
12617 * Bitcoin uses a different hash for each signed transaction input. This
12618 * method copies the transaction, makes the necessary changes based on the
12619 * hashType, serializes and finally hashes the result. This hash can then be
12620 * used to sign the transaction input in question.
12621 */
12622Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
12623 // FIXME: remove in 2.x.y
12624 if (arguments[0] instanceof Script) {
12625 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
12626
12627 // swap the arguments (must be stored in tmp, arguments is special)
12628 var tmp = arguments[0]
12629 inIndex = arguments[1]
12630 prevOutScript = tmp
12631 }
12632
12633 typeForce('Number', inIndex)
12634 typeForce('Script', prevOutScript)
12635 typeForce('Number', hashType)
12636
12637 assert(inIndex >= 0, 'Invalid vin index')
12638 assert(inIndex < this.ins.length, 'Invalid vin index')
12639
12640 var txTmp = this.clone()
12641 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
12642
12643 // Blank out other inputs' signatures
12644 txTmp.ins.forEach(function (txIn) {
12645 txIn.script = Script.EMPTY
12646 })
12647 txTmp.ins[inIndex].script = hashScript
12648
12649 var hashTypeModifier = hashType & 0x1f
12650
12651 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
12652 assert(false, 'SIGHASH_NONE not yet supported')
12653 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
12654 assert(false, 'SIGHASH_SINGLE not yet supported')
12655 }
12656
12657 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
12658 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
12659 }
12660
12661 var hashTypeBuffer = new Buffer(4)
12662 hashTypeBuffer.writeInt32LE(hashType, 0)
12663
12664 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
12665 return crypto.hash256(buffer)
12666}
12667
12668Transaction.prototype.getHash = function () {
12669 return crypto.hash256(this.toBuffer())
12670}
12671
12672Transaction.prototype.getId = function () {
12673 // TxHash is little-endian, we need big-endian
12674 return bufferutils.reverse(this.getHash()).toString('hex')
12675}
12676
ebd8d4e8 12677Transaction.prototype.toBuffer = function () {
ab78acc6
IC
12678 function scriptSize (script) {
12679 var length = script.buffer.length
ebd8d4e8 12680
ab78acc6
IC
12681 return bufferutils.varIntSize(length) + length
12682 }
ebd8d4e8
IC
12683
12684 var buffer = new Buffer(
12685 8 +
12686 bufferutils.varIntSize(this.ins.length) +
12687 bufferutils.varIntSize(this.outs.length) +
ab78acc6
IC
12688 this.ins.reduce(function (sum, input) { return sum + 40 + scriptSize(input.script) }, 0) +
12689 this.outs.reduce(function (sum, output) { return sum + 8 + scriptSize(output.script) }, 0)
ebd8d4e8
IC
12690 )
12691
12692 var offset = 0
ab78acc6 12693 function writeSlice (slice) {
ebd8d4e8
IC
12694 slice.copy(buffer, offset)
12695 offset += slice.length
12696 }
ab78acc6
IC
12697
12698 function writeUInt32 (i) {
ebd8d4e8
IC
12699 buffer.writeUInt32LE(i, offset)
12700 offset += 4
12701 }
ab78acc6
IC
12702
12703 function writeUInt64 (i) {
ebd8d4e8
IC
12704 bufferutils.writeUInt64LE(buffer, i, offset)
12705 offset += 8
12706 }
ab78acc6
IC
12707
12708 function writeVarInt (i) {
ebd8d4e8
IC
12709 var n = bufferutils.writeVarInt(buffer, i, offset)
12710 offset += n
12711 }
12712
12713 writeUInt32(this.version)
12714 writeVarInt(this.ins.length)
12715
ab78acc6
IC
12716 this.ins.forEach(function (txIn) {
12717 writeSlice(txIn.hash)
12718 writeUInt32(txIn.index)
12719 writeVarInt(txIn.script.buffer.length)
12720 writeSlice(txIn.script.buffer)
12721 writeUInt32(txIn.sequence)
ebd8d4e8
IC
12722 })
12723
12724 writeVarInt(this.outs.length)
ab78acc6
IC
12725 this.outs.forEach(function (txOut) {
12726 writeUInt64(txOut.value)
12727 writeVarInt(txOut.script.buffer.length)
12728 writeSlice(txOut.script.buffer)
ebd8d4e8
IC
12729 })
12730
12731 writeUInt32(this.locktime)
12732
12733 return buffer
12734}
12735
ab78acc6 12736Transaction.prototype.toHex = function () {
ebd8d4e8
IC
12737 return this.toBuffer().toString('hex')
12738}
12739
ab78acc6
IC
12740Transaction.prototype.setInputScript = function (index, script) {
12741 typeForce('Number', index)
12742 typeForce('Script', script)
12743
12744 this.ins[index].script = script
12745}
12746
12747// FIXME: remove in 2.x.y
12748Transaction.prototype.sign = function (index, privKey, hashType) {
12749 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
12750
12751 var prevOutScript = privKey.pub.getAddress().toOutputScript()
12752 var signature = this.signInput(index, prevOutScript, privKey, hashType)
12753
12754 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
12755 this.setInputScript(index, scriptSig)
12756}
12757
12758// FIXME: remove in 2.x.y
12759Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
12760 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
12761
12762 hashType = hashType || Transaction.SIGHASH_ALL
12763
12764 var hash = this.hashForSignature(index, prevOutScript, hashType)
12765 var signature = privKey.sign(hash)
12766
12767 return signature.toScriptSignature(hashType)
12768}
12769
12770// FIXME: remove in 2.x.y
12771Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
12772 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
12773
12774 var parsed = ECSignature.parseScriptSignature(buffer)
12775 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
12776
12777 return pubKey.verify(hash, parsed.signature)
12778}
12779
12780module.exports = Transaction
12781
12782}).call(this,require("buffer").Buffer)
12783},{"./address":54,"./bufferutils":57,"./crypto":58,"./ecsignature":62,"./opcodes":67,"./script":68,"./scripts":69,"assert":5,"buffer":7,"typeforce":53}],71:[function(require,module,exports){
12784(function (Buffer){
12785var assert = require('assert')
12786var ops = require('./opcodes')
12787var scripts = require('./scripts')
12788
12789var ECPubKey = require('./ecpubkey')
12790var ECSignature = require('./ecsignature')
12791var Script = require('./script')
12792var Transaction = require('./transaction')
12793
12794function extractInput (txIn) {
12795 var redeemScript
12796 var scriptSig = txIn.script
12797 var prevOutScript
12798 var prevOutType = scripts.classifyInput(scriptSig, true)
12799 var scriptType
12800
12801 // Re-classify if scriptHash
12802 if (prevOutType === 'scripthash') {
12803 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-1)[0])
12804 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
12805
12806 scriptSig = Script.fromChunks(scriptSig.chunks.slice(0, -1))
12807 scriptType = scripts.classifyInput(scriptSig, true)
12808 } else {
12809 scriptType = prevOutType
12810 }
12811
12812 // Extract hashType, pubKeys and signatures
12813 var hashType, parsed, pubKeys, signatures
12814
12815 switch (scriptType) {
12816 case 'pubkeyhash': {
12817 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[0])
12818 hashType = parsed.hashType
12819 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[1])]
12820 signatures = [parsed.signature]
12821 prevOutScript = pubKeys[0].getAddress().toOutputScript()
12822
12823 break
12824 }
12825
12826 case 'pubkey': {
12827 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[0])
12828 hashType = parsed.hashType
12829 signatures = [parsed.signature]
12830
12831 if (redeemScript) {
12832 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[0])]
12833 }
12834
12835 break
12836 }
12837
12838 case 'multisig': {
12839 signatures = scriptSig.chunks.slice(1).map(function (chunk) {
12840 if (chunk === ops.OP_0) return chunk
12841
12842 var parsed = ECSignature.parseScriptSignature(chunk)
12843 hashType = parsed.hashType
12844
12845 return parsed.signature
12846 })
12847
12848 if (redeemScript) {
12849 pubKeys = redeemScript.chunks.slice(1, -2).map(ECPubKey.fromBuffer)
12850 }
12851
12852 break
12853 }
12854 }
12855
12856 return {
12857 hashType: hashType,
12858 prevOutScript: prevOutScript,
12859 prevOutType: prevOutType,
12860 pubKeys: pubKeys,
12861 redeemScript: redeemScript,
12862 scriptType: scriptType,
12863 signatures: signatures
12864 }
12865}
12866
12867function TransactionBuilder () {
12868 this.prevTxMap = {}
12869 this.prevOutScripts = {}
12870 this.prevOutTypes = {}
12871
12872 this.inputs = []
12873 this.tx = new Transaction()
12874}
12875
12876TransactionBuilder.fromTransaction = function (transaction) {
12877 var txb = new TransactionBuilder()
12878
12879 // Copy other transaction fields
12880 txb.tx.version = transaction.version
12881 txb.tx.locktime = transaction.locktime
12882
12883 // Extract/add inputs
12884 transaction.ins.forEach(function (txIn) {
12885 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
12886 })
12887
12888 // Extract/add outputs
12889 transaction.outs.forEach(function (txOut) {
12890 txb.addOutput(txOut.script, txOut.value)
12891 })
12892
12893 // Extract/add signatures
12894 txb.inputs = transaction.ins.map(function (txIn) {
12895 // TODO: remove me after testcase added
12896 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
12897
12898 // Ignore empty scripts
12899 if (txIn.script.buffer.length === 0) return {}
12900
12901 return extractInput(txIn)
12902 })
12903
12904 return txb
12905}
12906
12907TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
12908 var prevOutHash
12909
12910 // txId
12911 if (typeof prevTx === 'string') {
12912 prevOutHash = new Buffer(prevTx, 'hex')
12913
12914 // TxId hex is big-endian, we want little-endian hash
12915 Array.prototype.reverse.call(prevOutHash)
12916
12917 // Transaction
12918 } else if (prevTx instanceof Transaction) {
12919 prevOutHash = prevTx.getHash()
12920 prevOutScript = prevTx.outs[index].script
12921
12922 // txHash
12923 } else {
12924 prevOutHash = prevTx
12925 }
12926
12927 var input = {}
12928 if (prevOutScript) {
12929 var prevOutType = scripts.classifyOutput(prevOutScript)
12930
12931 // if we can, extract pubKey information
12932 switch (prevOutType) {
12933 case 'multisig': {
12934 input.pubKeys = prevOutScript.chunks.slice(1, -2).map(ECPubKey.fromBuffer)
12935 break
12936 }
12937
12938 case 'pubkey': {
12939 input.pubKeys = prevOutScript.chunks.slice(0, 1).map(ECPubKey.fromBuffer)
12940 break
12941 }
12942 }
12943
12944 if (prevOutType !== 'scripthash') {
12945 input.scriptType = prevOutType
12946 }
12947
12948 input.prevOutScript = prevOutScript
12949 input.prevOutType = prevOutType
12950 }
12951
12952 assert(this.inputs.every(function (input2) {
12953 if (input2.hashType === undefined) return true
12954
12955 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
12956 }), 'No, this would invalidate signatures')
12957
12958 var prevOut = prevOutHash.toString('hex') + ':' + index
12959 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
12960
12961 var vin = this.tx.addInput(prevOutHash, index, sequence)
12962 this.inputs[vin] = input
12963 this.prevTxMap[prevOut] = vin
12964
12965 return vin
12966}
12967
12968TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
12969 assert(this.inputs.every(function (input) {
12970 if (input.hashType === undefined) return true
ebd8d4e8 12971
ab78acc6
IC
12972 return (input.hashType & 0x1f) === Transaction.SIGHASH_SINGLE
12973 }), 'No, this would invalidate signatures')
ebd8d4e8 12974
ab78acc6
IC
12975 return this.tx.addOutput(scriptPubKey, value)
12976}
ebd8d4e8 12977
ab78acc6
IC
12978TransactionBuilder.prototype.build = function () {
12979 return this.__build(false)
12980}
12981TransactionBuilder.prototype.buildIncomplete = function () {
12982 return this.__build(true)
12983}
ebd8d4e8 12984
ab78acc6
IC
12985var canSignTypes = {
12986 'pubkeyhash': true,
12987 'multisig': true,
12988 'pubkey': true
12989}
ebd8d4e8 12990
ab78acc6
IC
12991TransactionBuilder.prototype.__build = function (allowIncomplete) {
12992 if (!allowIncomplete) {
12993 assert(this.tx.ins.length > 0, 'Transaction has no inputs')
12994 assert(this.tx.outs.length > 0, 'Transaction has no outputs')
ebd8d4e8
IC
12995 }
12996
ab78acc6 12997 var tx = this.tx.clone()
ebd8d4e8 12998
ab78acc6
IC
12999 // Create script signatures from signature meta-data
13000 this.inputs.forEach(function (input, index) {
13001 var scriptType = input.scriptType
13002 var scriptSig
ebd8d4e8 13003
ab78acc6
IC
13004 if (!allowIncomplete) {
13005 assert(!!scriptType, 'Transaction is not complete')
13006 assert(scriptType in canSignTypes, scriptType + ' not supported')
13007 assert(input.signatures, 'Transaction is missing signatures')
13008 }
ebd8d4e8 13009
ab78acc6
IC
13010 if (input.signatures) {
13011 switch (scriptType) {
13012 case 'pubkeyhash': {
13013 var pkhSignature = input.signatures[0].toScriptSignature(input.hashType)
13014 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[0])
13015 break
13016 }
ebd8d4e8 13017
ab78acc6
IC
13018 case 'multisig': {
13019 // Array.prototype.map is sparse-compatible
13020 var msSignatures = input.signatures.map(function (signature) {
13021 return signature && signature.toScriptSignature(input.hashType)
13022 })
ebd8d4e8 13023
ab78acc6
IC
13024 // fill in blanks with OP_0
13025 if (allowIncomplete) {
13026 for (var i = 0; i < msSignatures.length; ++i) {
13027 if (msSignatures[i]) continue
ebd8d4e8 13028
ab78acc6
IC
13029 msSignatures[i] = ops.OP_0
13030 }
13031 } else {
13032 // Array.prototype.filter returns non-sparse array
13033 msSignatures = msSignatures.filter(function (x) { return x })
13034 }
ebd8d4e8 13035
ab78acc6
IC
13036 var redeemScript = allowIncomplete ? undefined : input.redeemScript
13037 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
13038 break
13039 }
ebd8d4e8 13040
ab78acc6
IC
13041 case 'pubkey': {
13042 var pkSignature = input.signatures[0].toScriptSignature(input.hashType)
13043 scriptSig = scripts.pubKeyInput(pkSignature)
13044 break
13045 }
13046 }
ebd8d4e8 13047 }
ebd8d4e8 13048
ab78acc6
IC
13049 // did we build a scriptSig?
13050 if (scriptSig) {
13051 // wrap as scriptHash if necessary
13052 if (input.prevOutType === 'scripthash') {
13053 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
13054 }
13055
13056 tx.setInputScript(index, scriptSig)
ebd8d4e8
IC
13057 }
13058 })
13059
ab78acc6 13060 return tx
ebd8d4e8
IC
13061}
13062
ab78acc6
IC
13063TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
13064 assert(index in this.inputs, 'No input at index: ' + index)
13065 hashType = hashType || Transaction.SIGHASH_ALL
ebd8d4e8 13066
ab78acc6
IC
13067 var input = this.inputs[index]
13068 var canSign = input.hashType &&
13069 input.prevOutScript &&
13070 input.prevOutType &&
13071 input.pubKeys &&
13072 input.scriptType &&
13073 input.signatures
ebd8d4e8 13074
ab78acc6
IC
13075 // are we almost ready to sign?
13076 if (canSign) {
13077 // if redeemScript was provided, enforce consistency
13078 if (redeemScript) {
13079 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
13080 }
ebd8d4e8 13081
ab78acc6 13082 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
ebd8d4e8 13083
ab78acc6
IC
13084 // no? prepare
13085 } else {
13086 // must be pay-to-scriptHash?
13087 if (redeemScript) {
13088 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
13089 if (input.prevOutScript) {
13090 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
13091
13092 var scriptHash = input.prevOutScript.chunks[1]
13093 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
13094 }
ebd8d4e8 13095
ab78acc6
IC
13096 var scriptType = scripts.classifyOutput(redeemScript)
13097 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
ebd8d4e8 13098
ab78acc6
IC
13099 var pubKeys = []
13100 switch (scriptType) {
13101 case 'multisig': {
13102 pubKeys = redeemScript.chunks.slice(1, -2).map(ECPubKey.fromBuffer)
13103 break
13104 }
ebd8d4e8 13105
ab78acc6
IC
13106 case 'pubkeyhash': {
13107 var pkh1 = redeemScript.chunks[2]
13108 var pkh2 = privKey.pub.getAddress().hash
ebd8d4e8 13109
ab78acc6
IC
13110 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
13111 pubKeys = [privKey.pub]
13112 break
13113 }
ebd8d4e8 13114
ab78acc6
IC
13115 case 'pubkey': {
13116 pubKeys = redeemScript.chunks.slice(0, 1).map(ECPubKey.fromBuffer)
13117 break
13118 }
13119 }
ebd8d4e8 13120
ab78acc6
IC
13121 if (!input.prevOutScript) {
13122 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
13123 input.prevOutType = 'scripthash'
13124 }
ebd8d4e8 13125
ab78acc6
IC
13126 input.pubKeys = pubKeys
13127 input.redeemScript = redeemScript
13128 input.scriptType = scriptType
ebd8d4e8 13129
ab78acc6
IC
13130 // cannot be pay-to-scriptHash
13131 } else {
13132 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
ebd8d4e8 13133
ab78acc6
IC
13134 // can we otherwise sign this?
13135 if (input.scriptType) {
13136 assert(input.pubKeys, input.scriptType + ' not supported')
ebd8d4e8 13137
ab78acc6
IC
13138 // we know nothin' Jon Snow, assume pubKeyHash
13139 } else {
13140 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
13141 input.prevOutType = 'pubkeyhash'
13142 input.pubKeys = [privKey.pub]
13143 input.scriptType = input.prevOutType
13144 }
13145 }
ebd8d4e8 13146
ab78acc6
IC
13147 input.hashType = hashType
13148 input.signatures = input.signatures || []
13149 }
13150
13151 var signatureScript = input.redeemScript || input.prevOutScript
13152 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
13153
13154 // enforce signature order matches public keys
13155 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
13156 // maintain a local copy of unmatched signatures
13157 var unmatched = input.signatures.slice()
13158
13159 input.signatures = input.pubKeys.map(function (pubKey) {
13160 var match
13161
13162 // check for any matching signatures
13163 unmatched.some(function (signature, i) {
13164 if (!pubKey.verify(signatureHash, signature)) return false
13165 match = signature
13166
13167 // remove matched signature from unmatched
13168 unmatched.splice(i, 1)
13169
13170 return true
13171 })
13172
13173 return match || undefined
13174 })
13175 }
13176
13177 // enforce in order signing of public keys
13178 assert(input.pubKeys.some(function (pubKey, i) {
13179 if (!privKey.pub.Q.equals(pubKey.Q)) return false
13180
13181 assert(!input.signatures[i], 'Signature already exists')
13182 var signature = privKey.sign(signatureHash)
13183 input.signatures[i] = signature
13184
13185 return true
13186 }, this), 'privateKey cannot sign for this input')
ebd8d4e8
IC
13187}
13188
ab78acc6 13189module.exports = TransactionBuilder
ebd8d4e8 13190
ab78acc6
IC
13191}).call(this,require("buffer").Buffer)
13192},{"./ecpubkey":61,"./ecsignature":62,"./opcodes":67,"./script":68,"./scripts":69,"./transaction":70,"assert":5,"buffer":7}],72:[function(require,module,exports){
ebd8d4e8 13193(function (Buffer){
ab78acc6
IC
13194var assert = require('assert')
13195var bufferutils = require('./bufferutils')
13196var typeForce = require('typeforce')
13197var networks = require('./networks')
13198var randomBytes = require('randombytes')
ebd8d4e8 13199
ab78acc6
IC
13200var Address = require('./address')
13201var HDNode = require('./hdnode')
13202var TransactionBuilder = require('./transaction_builder')
13203var Script = require('./script')
ebd8d4e8 13204
ab78acc6
IC
13205function Wallet (seed, network) {
13206 console.warn('Wallet is deprecated and will be removed in 2.0.0, see #296')
13207
13208 seed = seed || randomBytes(32)
ebd8d4e8
IC
13209 network = network || networks.bitcoin
13210
13211 // Stored in a closure to make accidental serialization less likely
ab78acc6
IC
13212 var masterKey = HDNode.fromSeedBuffer(seed, network)
13213
13214 // HD first-level child derivation method should be hardened
13215 // See https://bitcointalk.org/index.php?topic=405179.msg4415254#msg4415254
13216 var accountZero = masterKey.deriveHardened(0)
13217 var externalAccount = accountZero.derive(0)
13218 var internalAccount = accountZero.derive(1)
ebd8d4e8 13219
ebd8d4e8
IC
13220 this.addresses = []
13221 this.changeAddresses = []
ab78acc6
IC
13222 this.network = network
13223 this.unspents = []
ebd8d4e8 13224
ab78acc6
IC
13225 // FIXME: remove in 2.0.0
13226 this.unspentMap = {}
ebd8d4e8 13227
ab78acc6
IC
13228 // FIXME: remove in 2.0.0
13229 var me = this
13230 this.newMasterKey = function (seed) {
13231 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
13232
13233 seed = seed || randomBytes(32)
13234 masterKey = HDNode.fromSeedBuffer(seed, network)
ebd8d4e8 13235
ab78acc6 13236 accountZero = masterKey.deriveHardened(0)
ebd8d4e8
IC
13237 externalAccount = accountZero.derive(0)
13238 internalAccount = accountZero.derive(1)
13239
13240 me.addresses = []
13241 me.changeAddresses = []
13242
ab78acc6
IC
13243 me.unspents = []
13244 me.unspentMap = {}
ebd8d4e8
IC
13245 }
13246
ab78acc6
IC
13247 this.getMasterKey = function () {
13248 return masterKey
ebd8d4e8 13249 }
ab78acc6
IC
13250 this.getAccountZero = function () {
13251 return accountZero
ebd8d4e8 13252 }
ab78acc6
IC
13253 this.getExternalAccount = function () {
13254 return externalAccount
13255 }
13256 this.getInternalAccount = function () {
13257 return internalAccount
ebd8d4e8 13258 }
ab78acc6 13259}
ebd8d4e8 13260
ab78acc6
IC
13261Wallet.prototype.createTransaction = function (to, value, options) {
13262 // FIXME: remove in 2.0.0
13263 if (typeof options !== 'object') {
13264 if (options !== undefined) {
13265 console.warn('Non options object parameters are deprecated, use options object instead')
ebd8d4e8 13266
ab78acc6
IC
13267 options = {
13268 fixedFee: arguments[2],
13269 changeAddress: arguments[3]
13270 }
ebd8d4e8 13271 }
ebd8d4e8
IC
13272 }
13273
ab78acc6 13274 options = options || {}
ebd8d4e8 13275
ab78acc6 13276 assert(value > this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
ebd8d4e8 13277
ab78acc6
IC
13278 var changeAddress = options.changeAddress
13279 var fixedFee = options.fixedFee
13280 var minConf = options.minConf === undefined ? 0 : options.minConf // FIXME: change minConf:1 by default in 2.0.0
ebd8d4e8 13281
ab78acc6
IC
13282 // filter by minConf, then pending and sort by descending value
13283 var unspents = this.unspents.filter(function (unspent) {
13284 return unspent.confirmations >= minConf
13285 }).filter(function (unspent) {
13286 return !unspent.pending
13287 }).sort(function (o1, o2) {
13288 return o2.value - o1.value
13289 })
ebd8d4e8 13290
ab78acc6
IC
13291 var accum = 0
13292 var addresses = []
13293 var subTotal = value
ebd8d4e8 13294
ab78acc6
IC
13295 var txb = new TransactionBuilder()
13296 txb.addOutput(to, value)
ebd8d4e8 13297
ab78acc6
IC
13298 for (var i = 0; i < unspents.length; ++i) {
13299 var unspent = unspents[i]
13300 addresses.push(unspent.address)
ebd8d4e8 13301
ab78acc6
IC
13302 txb.addInput(unspent.txHash, unspent.index)
13303
13304 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
ebd8d4e8 13305
ab78acc6
IC
13306 accum += unspent.value
13307 subTotal = value + fee
13308
13309 if (accum >= subTotal) {
13310 var change = accum - subTotal
13311
13312 if (change > this.network.dustThreshold) {
13313 txb.addOutput(changeAddress || this.getChangeAddress(), change)
ebd8d4e8 13314 }
ebd8d4e8 13315
ab78acc6 13316 break
ebd8d4e8
IC
13317 }
13318 }
13319
ab78acc6 13320 assert(accum >= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
ebd8d4e8 13321
ab78acc6
IC
13322 return this.signWith(txb, addresses).build()
13323}
ebd8d4e8 13324
ab78acc6
IC
13325// FIXME: remove in 2.0.0
13326Wallet.prototype.processPendingTx = function (tx) {
13327 this.__processTx(tx, true)
13328}
ebd8d4e8 13329
ab78acc6
IC
13330// FIXME: remove in 2.0.0
13331Wallet.prototype.processConfirmedTx = function (tx) {
13332 this.__processTx(tx, false)
13333}
ebd8d4e8 13334
ab78acc6
IC
13335// FIXME: remove in 2.0.0
13336Wallet.prototype.__processTx = function (tx, isPending) {
13337 console.warn('processTransaction is considered harmful, see issue #260 for more information')
ebd8d4e8 13338
ab78acc6
IC
13339 var txId = tx.getId()
13340 var txHash = tx.getHash()
ebd8d4e8 13341
ab78acc6
IC
13342 tx.outs.forEach(function (txOut, i) {
13343 var address
ebd8d4e8 13344
ab78acc6
IC
13345 try {
13346 address = Address.fromOutputScript(txOut.script, this.network).toString()
13347 } catch (e) {
13348 if (!(e.message.match(/has no matching Address/)))
13349 throw e
13350 }
13351
13352 var myAddresses = this.addresses.concat(this.changeAddresses)
13353 if (myAddresses.indexOf(address) > -1) {
13354 var lookup = txId + ':' + i
13355 if (lookup in this.unspentMap) return
13356
13357 // its unique, add it
13358 var unspent = {
13359 address: address,
13360 confirmations: 0, // no way to determine this without more information
13361 index: i,
13362 txHash: txHash,
13363 txId: txId,
13364 value: txOut.value,
13365 pending: isPending
ebd8d4e8 13366 }
ebd8d4e8 13367
ab78acc6
IC
13368 this.unspentMap[lookup] = unspent
13369 this.unspents.push(unspent)
13370 }
13371 }, this)
ebd8d4e8 13372
ab78acc6
IC
13373 tx.ins.forEach(function (txIn) {
13374 // copy and convert to big-endian hex
13375 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
ebd8d4e8 13376
ab78acc6
IC
13377 var lookup = txInId + ':' + txIn.index
13378 if (!(lookup in this.unspentMap)) return
ebd8d4e8 13379
ab78acc6 13380 var unspent = this.unspentMap[lookup]
ebd8d4e8 13381
ab78acc6
IC
13382 if (isPending) {
13383 unspent.pending = true
13384 unspent.spent = true
13385 } else {
13386 delete this.unspentMap[lookup]
ebd8d4e8 13387
ab78acc6
IC
13388 this.unspents = this.unspents.filter(function (unspent2) {
13389 return unspent !== unspent2
13390 })
13391 }
13392 }, this)
13393}
ebd8d4e8 13394
ab78acc6
IC
13395Wallet.prototype.generateAddress = function () {
13396 var k = this.addresses.length
13397 var address = this.getExternalAccount().derive(k).getAddress()
ebd8d4e8 13398
ab78acc6 13399 this.addresses.push(address.toString())
ebd8d4e8 13400
ab78acc6
IC
13401 return this.getReceiveAddress()
13402}
ebd8d4e8 13403
ab78acc6
IC
13404Wallet.prototype.generateChangeAddress = function () {
13405 var k = this.changeAddresses.length
13406 var address = this.getInternalAccount().derive(k).getAddress()
ebd8d4e8 13407
ab78acc6 13408 this.changeAddresses.push(address.toString())
ebd8d4e8 13409
ab78acc6
IC
13410 return this.getChangeAddress()
13411}
ebd8d4e8 13412
ab78acc6
IC
13413Wallet.prototype.getAddress = function () {
13414 if (this.addresses.length === 0) {
13415 this.generateAddress()
ebd8d4e8
IC
13416 }
13417
ab78acc6
IC
13418 return this.addresses[this.addresses.length - 1]
13419}
ebd8d4e8 13420
ab78acc6
IC
13421Wallet.prototype.getBalance = function (minConf) {
13422 minConf = minConf || 0
ebd8d4e8 13423
ab78acc6
IC
13424 return this.unspents.filter(function (unspent) {
13425 return unspent.confirmations >= minConf
13426
13427 // FIXME: remove spent filter in 2.0.0
13428 }).filter(function (unspent) {
13429 return !unspent.spent
13430 }).reduce(function (accum, unspent) {
13431 return accum + unspent.value
13432 }, 0)
13433}
ebd8d4e8 13434
ab78acc6
IC
13435Wallet.prototype.getChangeAddress = function () {
13436 if (this.changeAddresses.length === 0) {
13437 this.generateChangeAddress()
ebd8d4e8
IC
13438 }
13439
ab78acc6
IC
13440 return this.changeAddresses[this.changeAddresses.length - 1]
13441}
13442
13443Wallet.prototype.getInternalPrivateKey = function (index) {
13444 return this.getInternalAccount().derive(index).privKey
13445}
13446
13447Wallet.prototype.getPrivateKey = function (index) {
13448 return this.getExternalAccount().derive(index).privKey
13449}
13450
13451Wallet.prototype.getPrivateKeyForAddress = function (address) {
13452 var index
ebd8d4e8 13453
ab78acc6
IC
13454 if ((index = this.addresses.indexOf(address)) > -1) {
13455 return this.getPrivateKey(index)
ebd8d4e8
IC
13456 }
13457
ab78acc6
IC
13458 if ((index = this.changeAddresses.indexOf(address)) > -1) {
13459 return this.getInternalPrivateKey(index)
ebd8d4e8
IC
13460 }
13461
ab78acc6
IC
13462 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
13463}
ebd8d4e8 13464
ab78acc6
IC
13465Wallet.prototype.getUnspentOutputs = function (minConf) {
13466 minConf = minConf || 0
ebd8d4e8 13467
ab78acc6
IC
13468 return this.unspents.filter(function (unspent) {
13469 return unspent.confirmations >= minConf
ebd8d4e8 13470
ab78acc6
IC
13471 // FIXME: remove spent filter in 2.0.0
13472 }).filter(function (unspent) {
13473 return !unspent.spent
13474 }).map(function (unspent) {
13475 return {
13476 address: unspent.address,
13477 confirmations: unspent.confirmations,
13478 index: unspent.index,
13479 txId: unspent.txId,
13480 value: unspent.value,
13481
13482 // FIXME: remove in 2.0.0
13483 hash: unspent.txId,
13484 pending: unspent.pending
13485 }
13486 })
13487}
ebd8d4e8 13488
ab78acc6
IC
13489Wallet.prototype.setUnspentOutputs = function (unspents) {
13490 this.unspentMap = {}
13491 this.unspents = unspents.map(function (unspent) {
13492 // FIXME: remove unspent.hash in 2.0.0
13493 var txId = unspent.txId || unspent.hash
13494 var index = unspent.index
ebd8d4e8 13495
ab78acc6
IC
13496 // FIXME: remove in 2.0.0
13497 if (unspent.hash !== undefined) {
13498 console.warn('unspent.hash is deprecated, use unspent.txId instead')
13499 }
ebd8d4e8 13500
ab78acc6
IC
13501 // FIXME: remove in 2.0.0
13502 if (index === undefined) {
13503 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
13504 index = unspent.outputIndex
13505 }
ebd8d4e8 13506
ab78acc6
IC
13507 typeForce('String', txId)
13508 typeForce('Number', index)
13509 typeForce('Number', unspent.value)
13510
13511 assert.equal(txId.length, 64, 'Expected valid txId, got ' + txId)
13512 assert.doesNotThrow(function () {
13513 Address.fromBase58Check(unspent.address)
13514 }, 'Expected Base58 Address, got ' + unspent.address)
13515 assert(isFinite(index), 'Expected finite index, got ' + index)
13516
13517 // FIXME: remove branch in 2.0.0
13518 if (unspent.confirmations !== undefined) {
13519 typeForce('Number', unspent.confirmations)
ebd8d4e8 13520 }
ebd8d4e8 13521
ab78acc6 13522 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
ebd8d4e8 13523
ab78acc6
IC
13524 unspent = {
13525 address: unspent.address,
13526 confirmations: unspent.confirmations || 0,
13527 index: index,
13528 txHash: txHash,
13529 txId: txId,
13530 value: unspent.value,
ebd8d4e8 13531
ab78acc6
IC
13532 // FIXME: remove in 2.0.0
13533 pending: unspent.pending || false
13534 }
13535
13536 // FIXME: remove in 2.0.0
13537 this.unspentMap[txId + ':' + index] = unspent
13538
13539 return unspent
13540 }, this)
13541}
13542
13543Wallet.prototype.signWith = function (tx, addresses) {
13544 addresses.forEach(function (address, i) {
13545 var privKey = this.getPrivateKeyForAddress(address)
13546
13547 tx.sign(i, privKey)
13548 }, this)
13549
13550 return tx
13551}
13552
13553function estimatePaddedFee (tx, network) {
13554 var tmpTx = tx.clone()
13555 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold || 0)
13556
13557 return network.estimateFee(tmpTx)
ebd8d4e8
IC
13558}
13559
ab78acc6
IC
13560// FIXME: 1.0.0 shims, remove in 2.0.0
13561Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
13562Wallet.prototype.createTx = Wallet.prototype.createTransaction
13563
ebd8d4e8
IC
13564module.exports = Wallet
13565
ab78acc6
IC
13566}).call(this,require("buffer").Buffer)
13567},{"./address":54,"./bufferutils":57,"./hdnode":63,"./networks":66,"./script":68,"./transaction_builder":71,"assert":5,"buffer":7,"randombytes":52,"typeforce":53}]},{},[64])(64)
13568});</script>
d5dc92fd
IC
13569 <script>bitcoin.networks.shadow = {
13570 magicPrefix: '\x19ShadowCash Signed Message:\n',
13571 bip32: {
13572 public: 0xEE80286A,
13573 private: 0xEE8031E8
13574 },
13575 pubKeyHash: 0x3f,
13576 scriptHash: 0x7d,
13577 wif: 0xbf,
13578 dustThreshold: 0,
13579 feePerKb: 1000,
13580 estimateFee: function() { return "unused in this app" },
13581};
13582
13583bitcoin.networks.shadowtn = {
13584 magicPrefix: '\x19ShadowCash Signed Message:\n',
13585 bip32: {
13586 public: 0x76C0FDFB,
13587 private: 0x76C1077A
13588 },
13589 pubKeyHash: 0x7f,
13590 scriptHash: 0xc4,
13591 wif: 0xff,
13592 dustThreshold: 0,
13593 feePerKb: 1000,
13594 estimateFee: function() { return "unused in this app" },
13595};
5c434a8a
CM
13596
13597bitcoin.networks.clam = {
13598 bip32: {
13599 public: 0xa8c26d64,
13600 private: 0xa8c17826
13601 },
13602 pubKeyHash: 0x89,
13603 wif: 0x85,
13604};
5493efc3 13605
13606bitcoin.networks.dash = {
13607 bip32: {
13608 public: 0x0488b21e,
13609 private: 0x0488ade4
13610 },
68151a47 13611 pubKeyHash: 0x4c,
5493efc3 13612 scriptHash: 0x10,
13613 wif: 0xcc,
13614};
13615
07ac4350 13616bitcoin.networks.namecoin = {
13617 bip32: {
13618 public: 0x0488b21e,
13619 private: 0x0488ade4
13620 },
13621 pubKeyHash: 0x34,
13622 //scriptHash: 0x10,
13623 wif: 0x80,
13624};
13625
13626bitcoin.networks.peercoin = {
13627 bip32: {
13628 public: 0x0488b21e,
13629 private: 0x0488ade4
13630 },
13631 pubKeyHash: 0x37,
13632 //scriptHash: 0x10,
13633 wif: 0xb7,
13634};
13635
d5dc92fd 13636</script>
ab78acc6 13637 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
80c4dd2a
IC
13638
13639//// base.js
13640
13641/** @fileOverview Javascript cryptography implementation.
13642 *
13643 * Crush to remove comments, shorten variable names and
13644 * generally reduce transmission size.
13645 *
13646 * @author Emily Stark
13647 * @author Mike Hamburg
13648 * @author Dan Boneh
13649 */
13650
13651"use strict";
13652/*jslint indent: 2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
13653/*global document, window, escape, unescape, module, require, Uint32Array */
13654
13655/** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
13656var sjcl = {
13657 /** @namespace Symmetric ciphers. */
13658 cipher: {},
13659
13660 /** @namespace Hash functions. Right now only SHA256 is implemented. */
13661 hash: {},
13662
13663 /** @namespace Key exchange functions. Right now only SRP is implemented. */
13664 keyexchange: {},
13665
13666 /** @namespace Block cipher modes of operation. */
13667 mode: {},
13668
13669 /** @namespace Miscellaneous. HMAC and PBKDF2. */
13670 misc: {},
13671
13672 /**
13673 * @namespace Bit array encoders and decoders.
13674 *
13675 * @description
13676 * The members of this namespace are functions which translate between
13677 * SJCL's bitArrays and other objects (usually strings). Because it
13678 * isn't always clear which direction is encoding and which is decoding,
13679 * the method names are "fromBits" and "toBits".
13680 */
13681 codec: {},
13682
13683 /** @namespace Exceptions. */
13684 exception: {
13685 /** @constructor Ciphertext is corrupt. */
13686 corrupt: function(message) {
13687 this.toString = function() { return "CORRUPT: "+this.message; };
13688 this.message = message;
13689 },
13690
13691 /** @constructor Invalid parameter. */
13692 invalid: function(message) {
13693 this.toString = function() { return "INVALID: "+this.message; };
13694 this.message = message;
13695 },
13696
13697 /** @constructor Bug or missing feature in SJCL. @constructor */
13698 bug: function(message) {
13699 this.toString = function() { return "BUG: "+this.message; };
13700 this.message = message;
13701 },
13702
13703 /** @constructor Something isn't ready. */
13704 notReady: function(message) {
13705 this.toString = function() { return "NOT READY: "+this.message; };
13706 this.message = message;
ebd8d4e8 13707 }
80c4dd2a
IC
13708 }
13709};
13710
13711if(typeof module !== 'undefined' && module.exports){
13712 module.exports = sjcl;
13713}
13714if (typeof define === "function") {
13715 define([], function () {
13716 return sjcl;
13717 });
13718}
13719
13720
13721//// bitArray.js
13722
13723/** @fileOverview Arrays of bits, encoded as arrays of Numbers.
13724 *
13725 * @author Emily Stark
13726 * @author Mike Hamburg
13727 * @author Dan Boneh
13728 */
13729
13730/** @namespace Arrays of bits, encoded as arrays of Numbers.
13731 *
13732 * @description
13733 * <p>
13734 * These objects are the currency accepted by SJCL's crypto functions.
13735 * </p>
13736 *
13737 * <p>
13738 * Most of our crypto primitives operate on arrays of 4-byte words internally,
13739 * but many of them can take arguments that are not a multiple of 4 bytes.
13740 * This library encodes arrays of bits (whose size need not be a multiple of 8
13741 * bits) as arrays of 32-bit words. The bits are packed, big-endian, into an
13742 * array of words, 32 bits at a time. Since the words are double-precision
13743 * floating point numbers, they fit some extra data. We use this (in a private,
13744 * possibly-changing manner) to encode the number of bits actually present
13745 * in the last word of the array.
13746 * </p>
13747 *
13748 * <p>
13749 * Because bitwise ops clear this out-of-band data, these arrays can be passed
13750 * to ciphers like AES which want arrays of words.
13751 * </p>
13752 */
13753sjcl.bitArray = {
13754 /**
13755 * Array slices in units of bits.
13756 * @param {bitArray} a The array to slice.
13757 * @param {Number} bstart The offset to the start of the slice, in bits.
13758 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
13759 * slice until the end of the array.
13760 * @return {bitArray} The requested slice.
13761 */
13762 bitSlice: function (a, bstart, bend) {
13763 a = sjcl.bitArray._shiftRight(a.slice(bstart/32), 32 - (bstart & 31)).slice(1);
13764 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
13765 },
13766
13767 /**
13768 * Extract a number packed into a bit array.
13769 * @param {bitArray} a The array to slice.
13770 * @param {Number} bstart The offset to the start of the slice, in bits.
13771 * @param {Number} length The length of the number to extract.
13772 * @return {Number} The requested slice.
13773 */
13774 extract: function(a, bstart, blength) {
13775 // FIXME: this Math.floor is not necessary at all, but for some reason
13776 // seems to suppress a bug in the Chromium JIT.
13777 var x, sh = Math.floor((-bstart-blength) & 31);
13778 if ((bstart + blength - 1 ^ bstart) & -32) {
13779 // it crosses a boundary
13780 x = (a[bstart/32|0] << (32 - sh)) ^ (a[bstart/32+1|0] >>> sh);
13781 } else {
13782 // within a single word
13783 x = a[bstart/32|0] >>> sh;
ebd8d4e8 13784 }
80c4dd2a
IC
13785 return x & ((1<<blength) - 1);
13786 },
13787
13788 /**
13789 * Concatenate two bit arrays.
13790 * @param {bitArray} a1 The first array.
13791 * @param {bitArray} a2 The second array.
13792 * @return {bitArray} The concatenation of a1 and a2.
13793 */
13794 concat: function (a1, a2) {
13795 if (a1.length === 0 || a2.length === 0) {
13796 return a1.concat(a2);
13797 }
13798
13799 var last = a1[a1.length-1], shift = sjcl.bitArray.getPartial(last);
13800 if (shift === 32) {
13801 return a1.concat(a2);
13802 } else {
13803 return sjcl.bitArray._shiftRight(a2, shift, last|0, a1.slice(0,a1.length-1));
ebd8d4e8 13804 }
80c4dd2a
IC
13805 },
13806
13807 /**
13808 * Find the length of an array of bits.
13809 * @param {bitArray} a The array.
13810 * @return {Number} The length of a, in bits.
13811 */
13812 bitLength: function (a) {
13813 var l = a.length, x;
13814 if (l === 0) { return 0; }
13815 x = a[l - 1];
13816 return (l-1) * 32 + sjcl.bitArray.getPartial(x);
13817 },
13818
13819 /**
13820 * Truncate an array.
13821 * @param {bitArray} a The array.
13822 * @param {Number} len The length to truncate to, in bits.
13823 * @return {bitArray} A new array, truncated to len bits.
13824 */
13825 clamp: function (a, len) {
13826 if (a.length * 32 < len) { return a; }
13827 a = a.slice(0, Math.ceil(len / 32));
13828 var l = a.length;
13829 len = len & 31;
13830 if (l > 0 && len) {
13831 a[l-1] = sjcl.bitArray.partial(len, a[l-1] & 0x80000000 >> (len-1), 1);
13832 }
13833 return a;
13834 },
13835
13836 /**
13837 * Make a partial word for a bit array.
13838 * @param {Number} len The number of bits in the word.
13839 * @param {Number} x The bits.
13840 * @param {Number} [0] _end Pass 1 if x has already been shifted to the high side.
13841 * @return {Number} The partial word.
13842 */
13843 partial: function (len, x, _end) {
13844 if (len === 32) { return x; }
13845 return (_end ? x|0 : x << (32-len)) + len * 0x10000000000;
13846 },
13847
13848 /**
13849 * Get the number of bits used by a partial word.
13850 * @param {Number} x The partial word.
13851 * @return {Number} The number of bits used by the partial word.
13852 */
13853 getPartial: function (x) {
13854 return Math.round(x/0x10000000000) || 32;
13855 },
13856
13857 /**
13858 * Compare two arrays for equality in a predictable amount of time.
13859 * @param {bitArray} a The first array.
13860 * @param {bitArray} b The second array.
13861 * @return {boolean} true if a == b; false otherwise.
13862 */
13863 equal: function (a, b) {
13864 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
13865 return false;
ebd8d4e8 13866 }
80c4dd2a
IC
13867 var x = 0, i;
13868 for (i=0; i<a.length; i++) {
13869 x |= a[i]^b[i];
ebd8d4e8 13870 }
80c4dd2a
IC
13871 return (x === 0);
13872 },
13873
13874 /** Shift an array right.
13875 * @param {bitArray} a The array to shift.
13876 * @param {Number} shift The number of bits to shift.
13877 * @param {Number} [carry=0] A byte to carry in
13878 * @param {bitArray} [out=[]] An array to prepend to the output.
13879 * @private
13880 */
13881 _shiftRight: function (a, shift, carry, out) {
13882 var i, last2=0, shift2;
13883 if (out === undefined) { out = []; }
13884
13885 for (; shift >= 32; shift -= 32) {
13886 out.push(carry);
13887 carry = 0;
13888 }
13889 if (shift === 0) {
13890 return out.concat(a);
13891 }
13892
13893 for (i=0; i<a.length; i++) {
13894 out.push(carry | a[i]>>>shift);
13895 carry = a[i] << (32-shift);
13896 }
13897 last2 = a.length ? a[a.length-1] : 0;
13898 shift2 = sjcl.bitArray.getPartial(last2);
13899 out.push(sjcl.bitArray.partial(shift+shift2 & 31, (shift + shift2 > 32) ? carry : out.pop(),1));
13900 return out;
13901 },
13902
13903 /** xor a block of 4 words together.
13904 * @private
13905 */
13906 _xor4: function(x,y) {
13907 return [x[0]^y[0],x[1]^y[1],x[2]^y[2],x[3]^y[3]];
13908 },
13909
13910 /** byteswap a word array inplace.
13911 * (does not handle partial words)
13912 * @param {sjcl.bitArray} a word array
13913 * @return {sjcl.bitArray} byteswapped array
13914 */
13915 byteswapM: function(a) {
13916 var i, v, m = 0xff00;
13917 for (i = 0; i < a.length; ++i) {
13918 v = a[i];
13919 a[i] = (v >>> 24) | ((v >>> 8) & m) | ((v & m) << 8) | (v << 24);
ebd8d4e8 13920 }
80c4dd2a
IC
13921 return a;
13922 }
13923};
13924
13925
13926//// codecString.js
13927
13928/** @fileOverview Bit array codec implementations.
13929 *
13930 * @author Emily Stark
13931 * @author Mike Hamburg
13932 * @author Dan Boneh
13933 */
13934
13935/** @namespace UTF-8 strings */
13936sjcl.codec.utf8String = {
13937 /** Convert from a bitArray to a UTF-8 string. */
13938 fromBits: function (arr) {
13939 var out = "", bl = sjcl.bitArray.bitLength(arr), i, tmp;
13940 for (i=0; i<bl/8; i++) {
13941 if ((i&3) === 0) {
13942 tmp = arr[i/4];
13943 }
13944 out += String.fromCharCode(tmp >>> 24);
13945 tmp <<= 8;
ebd8d4e8 13946 }
80c4dd2a
IC
13947 return decodeURIComponent(escape(out));
13948 },
13949
13950 /** Convert from a UTF-8 string to a bitArray. */
13951 toBits: function (str) {
13952 str = unescape(encodeURIComponent(str));
13953 var out = [], i, tmp=0;
13954 for (i=0; i<str.length; i++) {
13955 tmp = tmp << 8 | str.charCodeAt(i);
13956 if ((i&3) === 3) {
13957 out.push(tmp);
13958 tmp = 0;
13959 }
ebd8d4e8 13960 }
80c4dd2a
IC
13961 if (i&3) {
13962 out.push(sjcl.bitArray.partial(8*(i&3), tmp));
ebd8d4e8 13963 }
80c4dd2a
IC
13964 return out;
13965 }
13966};
13967
13968
13969//// codecHex.js
13970
13971/** @fileOverview Bit array codec implementations.
13972 *
13973 * @author Emily Stark
13974 * @author Mike Hamburg
13975 * @author Dan Boneh
13976 */
13977
13978/** @namespace Hexadecimal */
13979sjcl.codec.hex = {
13980 /** Convert from a bitArray to a hex string. */
13981 fromBits: function (arr) {
13982 var out = "", i;
13983 for (i=0; i<arr.length; i++) {
13984 out += ((arr[i]|0)+0xF00000000000).toString(16).substr(4);
ebd8d4e8 13985 }
80c4dd2a
IC
13986 return out.substr(0, sjcl.bitArray.bitLength(arr)/4);//.replace(/(.{8})/g, "$1 ");
13987 },
13988 /** Convert from a hex string to a bitArray. */
13989 toBits: function (str) {
13990 var i, out=[], len;
13991 str = str.replace(/\s|0x/g, "");
13992 len = str.length;
13993 str = str + "00000000";
13994 for (i=0; i<str.length; i+=8) {
13995 out.push(parseInt(str.substr(i,8),16)^0);
ebd8d4e8 13996 }
80c4dd2a
IC
13997 return sjcl.bitArray.clamp(out, len*4);
13998 }
13999};
14000
14001
14002//// sha512.js
14003
14004/** @fileOverview Javascript SHA-512 implementation.
14005 *
14006 * This implementation was written for CryptoJS by Jeff Mott and adapted for
14007 * SJCL by Stefan Thomas.
14008 *
14009 * CryptoJS (c) 2009–2012 by Jeff Mott. All rights reserved.
14010 * Released with New BSD License
14011 *
14012 * @author Emily Stark
14013 * @author Mike Hamburg
14014 * @author Dan Boneh
14015 * @author Jeff Mott
14016 * @author Stefan Thomas
14017 */
14018
14019/**
14020 * Context for a SHA-512 operation in progress.
14021 * @constructor
14022 * @class Secure Hash Algorithm, 512 bits.
14023 */
14024sjcl.hash.sha512 = function (hash) {
14025 if (!this._key[0]) { this._precompute(); }
14026 if (hash) {
14027 this._h = hash._h.slice(0);
14028 this._buffer = hash._buffer.slice(0);
14029 this._length = hash._length;
14030 } else {
14031 this.reset();
14032 }
14033};
14034
14035/**
14036 * Hash a string or an array of words.
14037 * @static
14038 * @param {bitArray|String} data the data to hash.
14039 * @return {bitArray} The hash value, an array of 16 big-endian words.
14040 */
14041sjcl.hash.sha512.hash = function (data) {
14042 return (new sjcl.hash.sha512()).update(data).finalize();
14043};
14044
14045sjcl.hash.sha512.prototype = {
14046 /**
14047 * The hash's block size, in bits.
14048 * @constant
14049 */
14050 blockSize: 1024,
14051
14052 /**
14053 * Reset the hash state.
14054 * @return this
14055 */
14056 reset:function () {
14057 this._h = this._init.slice(0);
14058 this._buffer = [];
14059 this._length = 0;
14060 return this;
14061 },
14062
14063 /**
14064 * Input several words to the hash.
14065 * @param {bitArray|String} data the data to hash.
14066 * @return this
14067 */
14068 update: function (data) {
14069 if (typeof data === "string") {
14070 data = sjcl.codec.utf8String.toBits(data);
ebd8d4e8 14071 }
80c4dd2a
IC
14072 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
14073 ol = this._length,
14074 nl = this._length = ol + sjcl.bitArray.bitLength(data);
14075 for (i = 1024+ol & -1024; i <= nl; i+= 1024) {
14076 this._block(b.splice(0,32));
ebd8d4e8 14077 }
80c4dd2a
IC
14078 return this;
14079 },
14080
14081 /**
14082 * Complete hashing and output the hash value.
14083 * @return {bitArray} The hash value, an array of 16 big-endian words.
14084 */
14085 finalize:function () {
14086 var i, b = this._buffer, h = this._h;
14087
14088 // Round out and push the buffer
14089 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(1,1)]);
14090
14091 // Round out the buffer to a multiple of 32 words, less the 4 length words.
14092 for (i = b.length + 4; i & 31; i++) {
14093 b.push(0);
ebd8d4e8 14094 }
80c4dd2a
IC
14095
14096 // append the length
14097 b.push(0);
14098 b.push(0);
14099 b.push(Math.floor(this._length / 0x100000000));
14100 b.push(this._length | 0);
14101
14102 while (b.length) {
14103 this._block(b.splice(0,32));
ebd8d4e8 14104 }
80c4dd2a
IC
14105
14106 this.reset();
14107 return h;
14108 },
14109
14110 /**
14111 * The SHA-512 initialization vector, to be precomputed.
14112 * @private
14113 */
14114 _init:[],
14115
14116 /**
14117 * Least significant 24 bits of SHA512 initialization values.
14118 *
14119 * Javascript only has 53 bits of precision, so we compute the 40 most
14120 * significant bits and add the remaining 24 bits as constants.
14121 *
14122 * @private
14123 */
14124 _initr: [ 0xbcc908, 0xcaa73b, 0x94f82b, 0x1d36f1, 0xe682d1, 0x3e6c1f, 0x41bd6b, 0x7e2179 ],
14125
14126 /*
14127 _init:
14128 [0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,
14129 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179],
14130 */
14131
14132 /**
14133 * The SHA-512 hash key, to be precomputed.
14134 * @private
14135 */
14136 _key:[],
14137
14138 /**
14139 * Least significant 24 bits of SHA512 key values.
14140 * @private
14141 */
14142 _keyr:
14143 [0x28ae22, 0xef65cd, 0x4d3b2f, 0x89dbbc, 0x48b538, 0x05d019, 0x194f9b, 0x6d8118,
14144 0x030242, 0x706fbe, 0xe4b28c, 0xffb4e2, 0x7b896f, 0x1696b1, 0xc71235, 0x692694,
14145 0xf14ad2, 0x4f25e3, 0x8cd5b5, 0xac9c65, 0x2b0275, 0xa6e483, 0x41fbd4, 0x1153b5,
14146 0x66dfab, 0xb43210, 0xfb213f, 0xef0ee4, 0xa88fc2, 0x0aa725, 0x03826f, 0x0e6e70,
14147 0xd22ffc, 0x26c926, 0xc42aed, 0x95b3df, 0xaf63de, 0x77b2a8, 0xedaee6, 0x82353b,
14148 0xf10364, 0x423001, 0xf89791, 0x54be30, 0xef5218, 0x65a910, 0x71202a, 0xbbd1b8,
14149 0xd2d0c8, 0x41ab53, 0x8eeb99, 0x9b48a8, 0xc95a63, 0x418acb, 0x63e373, 0xb2b8a3,
14150 0xefb2fc, 0x172f60, 0xf0ab72, 0x6439ec, 0x631e28, 0x82bde9, 0xc67915, 0x72532b,
14151 0x26619c, 0xc0c207, 0xe0eb1e, 0x6ed178, 0x176fba, 0xc898a6, 0xf90dae, 0x1c471b,
14152 0x047d84, 0xc72493, 0xc9bebc, 0x100d4c, 0x3e42b6, 0x657e2a, 0xd6faec, 0x475817],
14153
14154 /*
14155 _key:
14156 [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
14157 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
14158 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
14159 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
14160 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
14161 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
14162 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
14163 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
14164 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
14165 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
14166 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
14167 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
14168 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
14169 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
14170 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
14171 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
14172 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
14173 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
14174 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
14175 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817],
14176 */
14177
14178 /**
14179 * Function to precompute _init and _key.
14180 * @private
14181 */
14182 _precompute: function () {
14183 // XXX: This code is for precomputing the SHA256 constants, change for
14184 // SHA512 and re-enable.
14185 var i = 0, prime = 2, factor;
14186
14187 function frac(x) { return (x-Math.floor(x)) * 0x100000000 | 0; }
14188 function frac2(x) { return (x-Math.floor(x)) * 0x10000000000 & 0xff; }
14189
14190 outer: for (; i<80; prime++) {
14191 for (factor=2; factor*factor <= prime; factor++) {
14192 if (prime % factor === 0) {
14193 // not a prime
14194 continue outer;
ebd8d4e8 14195 }
80c4dd2a
IC
14196 }
14197
14198 if (i<8) {
14199 this._init[i*2] = frac(Math.pow(prime, 1/2));
14200 this._init[i*2+1] = (frac2(Math.pow(prime, 1/2)) << 24) | this._initr[i];
14201 }
14202 this._key[i*2] = frac(Math.pow(prime, 1/3));
14203 this._key[i*2+1] = (frac2(Math.pow(prime, 1/3)) << 24) | this._keyr[i];
14204 i++;
ebd8d4e8 14205 }
80c4dd2a
IC
14206 },
14207
14208 /**
14209 * Perform one cycle of SHA-512.
14210 * @param {bitArray} words one block of words.
14211 * @private
14212 */
14213 _block:function (words) {
14214 var i, wrh, wrl,
14215 w = words.slice(0),
14216 h = this._h,
14217 k = this._key,
14218 h0h = h[ 0], h0l = h[ 1], h1h = h[ 2], h1l = h[ 3],
14219 h2h = h[ 4], h2l = h[ 5], h3h = h[ 6], h3l = h[ 7],
14220 h4h = h[ 8], h4l = h[ 9], h5h = h[10], h5l = h[11],
14221 h6h = h[12], h6l = h[13], h7h = h[14], h7l = h[15];
14222
14223 // Working variables
14224 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
14225 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
14226 eh = h4h, el = h4l, fh = h5h, fl = h5l,
14227 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
14228
14229 for (i=0; i<80; i++) {
14230 // load up the input word for this round
14231 if (i<16) {
14232 wrh = w[i * 2];
14233 wrl = w[i * 2 + 1];
14234 } else {
14235 // Gamma0
14236 var gamma0xh = w[(i-15) * 2];
14237 var gamma0xl = w[(i-15) * 2 + 1];
14238 var gamma0h =
14239 ((gamma0xl << 31) | (gamma0xh >>> 1)) ^
14240 ((gamma0xl << 24) | (gamma0xh >>> 8)) ^
14241 (gamma0xh >>> 7);
14242 var gamma0l =
14243 ((gamma0xh << 31) | (gamma0xl >>> 1)) ^
14244 ((gamma0xh << 24) | (gamma0xl >>> 8)) ^
14245 ((gamma0xh << 25) | (gamma0xl >>> 7));
14246
14247 // Gamma1
14248 var gamma1xh = w[(i-2) * 2];
14249 var gamma1xl = w[(i-2) * 2 + 1];
14250 var gamma1h =
14251 ((gamma1xl << 13) | (gamma1xh >>> 19)) ^
14252 ((gamma1xh << 3) | (gamma1xl >>> 29)) ^
14253 (gamma1xh >>> 6);
14254 var gamma1l =
14255 ((gamma1xh << 13) | (gamma1xl >>> 19)) ^
14256 ((gamma1xl << 3) | (gamma1xh >>> 29)) ^
14257 ((gamma1xh << 26) | (gamma1xl >>> 6));
14258
14259 // Shortcuts
14260 var wr7h = w[(i-7) * 2];
14261 var wr7l = w[(i-7) * 2 + 1];
14262
14263 var wr16h = w[(i-16) * 2];
14264 var wr16l = w[(i-16) * 2 + 1];
14265
14266 // W(round) = gamma0 + W(round - 7) + gamma1 + W(round - 16)
14267 wrl = gamma0l + wr7l;
14268 wrh = gamma0h + wr7h + ((wrl >>> 0) < (gamma0l >>> 0) ? 1 : 0);
14269 wrl += gamma1l;
14270 wrh += gamma1h + ((wrl >>> 0) < (gamma1l >>> 0) ? 1 : 0);
14271 wrl += wr16l;
14272 wrh += wr16h + ((wrl >>> 0) < (wr16l >>> 0) ? 1 : 0);
14273 }
14274
14275 w[i*2] = wrh |= 0;
14276 w[i*2 + 1] = wrl |= 0;
14277
14278 // Ch
14279 var chh = (eh & fh) ^ (~eh & gh);
14280 var chl = (el & fl) ^ (~el & gl);
14281
14282 // Maj
14283 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
14284 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
14285
14286 // Sigma0
14287 var sigma0h = ((al << 4) | (ah >>> 28)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
14288 var sigma0l = ((ah << 4) | (al >>> 28)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
14289
14290 // Sigma1
14291 var sigma1h = ((el << 18) | (eh >>> 14)) ^ ((el << 14) | (eh >>> 18)) ^ ((eh << 23) | (el >>> 9));
14292 var sigma1l = ((eh << 18) | (el >>> 14)) ^ ((eh << 14) | (el >>> 18)) ^ ((el << 23) | (eh >>> 9));
14293
14294 // K(round)
14295 var krh = k[i*2];
14296 var krl = k[i*2+1];
14297
14298 // t1 = h + sigma1 + ch + K(round) + W(round)
14299 var t1l = hl + sigma1l;
14300 var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
14301 t1l += chl;
14302 t1h += chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
14303 t1l += krl;
14304 t1h += krh + ((t1l >>> 0) < (krl >>> 0) ? 1 : 0);
14305 t1l = t1l + wrl|0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=1054972
14306 t1h += wrh + ((t1l >>> 0) < (wrl >>> 0) ? 1 : 0);
14307
14308 // t2 = sigma0 + maj
14309 var t2l = sigma0l + majl;
14310 var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
14311
14312 // Update working variables
14313 hh = gh;
14314 hl = gl;
14315 gh = fh;
14316 gl = fl;
14317 fh = eh;
14318 fl = el;
14319 el = (dl + t1l) | 0;
14320 eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
14321 dh = ch;
14322 dl = cl;
14323 ch = bh;
14324 cl = bl;
14325 bh = ah;
14326 bl = al;
14327 al = (t1l + t2l) | 0;
14328 ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
14329 }
14330
14331 // Intermediate hash
14332 h0l = h[1] = (h0l + al) | 0;
14333 h[0] = (h0h + ah + ((h0l >>> 0) < (al >>> 0) ? 1 : 0)) | 0;
14334 h1l = h[3] = (h1l + bl) | 0;
14335 h[2] = (h1h + bh + ((h1l >>> 0) < (bl >>> 0) ? 1 : 0)) | 0;
14336 h2l = h[5] = (h2l + cl) | 0;
14337 h[4] = (h2h + ch + ((h2l >>> 0) < (cl >>> 0) ? 1 : 0)) | 0;
14338 h3l = h[7] = (h3l + dl) | 0;
14339 h[6] = (h3h + dh + ((h3l >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
14340 h4l = h[9] = (h4l + el) | 0;
14341 h[8] = (h4h + eh + ((h4l >>> 0) < (el >>> 0) ? 1 : 0)) | 0;
14342 h5l = h[11] = (h5l + fl) | 0;
14343 h[10] = (h5h + fh + ((h5l >>> 0) < (fl >>> 0) ? 1 : 0)) | 0;
14344 h6l = h[13] = (h6l + gl) | 0;
14345 h[12] = (h6h + gh + ((h6l >>> 0) < (gl >>> 0) ? 1 : 0)) | 0;
14346 h7l = h[15] = (h7l + hl) | 0;
14347 h[14] = (h7h + hh + ((h7l >>> 0) < (hl >>> 0) ? 1 : 0)) | 0;
14348 }
14349};
14350
14351
14352//// hmac.js
14353
14354/** @fileOverview HMAC implementation.
14355 *
14356 * @author Emily Stark
14357 * @author Mike Hamburg
14358 * @author Dan Boneh
14359 */
14360
14361/** HMAC with the specified hash function.
14362 * @constructor
14363 * @param {bitArray} key the key for HMAC.
14364 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
14365 */
14366sjcl.misc.hmac = function (key, Hash) {
14367 this._hash = Hash = Hash || sjcl.hash.sha256;
14368 var exKey = [[],[]], i,
14369 bs = Hash.prototype.blockSize / 32;
14370 this._baseHash = [new Hash(), new Hash()];
14371
14372 if (key.length > bs) {
14373 key = Hash.hash(key);
14374 }
14375
14376 for (i=0; i<bs; i++) {
14377 exKey[0][i] = key[i]^0x36363636;
14378 exKey[1][i] = key[i]^0x5C5C5C5C;
14379 }
14380
14381 this._baseHash[0].update(exKey[0]);
14382 this._baseHash[1].update(exKey[1]);
14383 this._resultHash = new Hash(this._baseHash[0]);
14384};
14385
14386/** HMAC with the specified hash function. Also called encrypt since it's a prf.
14387 * @param {bitArray|String} data The data to mac.
14388 */
14389sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
14390 if (!this._updated) {
14391 this.update(data);
14392 return this.digest(data);
14393 } else {
14394 throw new sjcl.exception.invalid("encrypt on already updated hmac called!");
14395 }
14396};
14397
14398sjcl.misc.hmac.prototype.reset = function () {
14399 this._resultHash = new this._hash(this._baseHash[0]);
14400 this._updated = false;
14401};
14402
14403sjcl.misc.hmac.prototype.update = function (data) {
14404 this._updated = true;
14405 this._resultHash.update(data);
14406};
14407
14408sjcl.misc.hmac.prototype.digest = function () {
14409 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[1]).update(w).finalize();
14410
14411 this.reset();
14412
14413 return result;
14414};
14415
14416
14417//// pbkdf2.js
14418
14419
14420/** @fileOverview Password-based key-derivation function, version 2.0.
14421 *
14422 * @author Emily Stark
14423 * @author Mike Hamburg
14424 * @author Dan Boneh
14425 */
14426
14427/** Password-Based Key-Derivation Function, version 2.0.
14428 *
14429 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
14430 *
14431 * This is the method specified by RSA's PKCS #5 standard.
14432 *
14433 * @param {bitArray|String} password The password.
14434 * @param {bitArray|String} salt The salt. Should have lots of entropy.
14435 * @param {Number} [count=1000] The number of iterations. Higher numbers make the function slower but more secure.
14436 * @param {Number} [length] The length of the derived key. Defaults to the
14437 output size of the hash function.
14438 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
14439 * @return {bitArray} the derived key.
14440 */
14441sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
14442 count = count || 1000;
14443
14444 if (length < 0 || count < 0) {
14445 throw sjcl.exception.invalid("invalid params to pbkdf2");
14446 }
14447
14448 if (typeof password === "string") {
14449 password = sjcl.codec.utf8String.toBits(password);
14450 }
14451
14452 if (typeof salt === "string") {
14453 salt = sjcl.codec.utf8String.toBits(salt);
14454 }
14455
14456 Prff = Prff || sjcl.misc.hmac;
14457
14458 var prf = new Prff(password),
14459 u, ui, i, j, k, out = [], b = sjcl.bitArray;
14460
14461 for (k = 1; 32 * out.length < (length || 1); k++) {
14462 u = ui = prf.encrypt(b.concat(salt,[k]));
14463
14464 for (i=1; i<count; i++) {
14465 ui = prf.encrypt(ui);
14466 for (j=0; j<ui.length; j++) {
14467 u[j] ^= ui[j];
14468 }
ebd8d4e8 14469 }
80c4dd2a
IC
14470
14471 out = out.concat(u);
14472 }
14473
14474 if (length) { out = b.clamp(out, length); }
14475
14476 return out;
14477};
14478
14479
14480//// sha256.js
14481
14482/** @fileOverview Javascript SHA-256 implementation.
14483 *
14484 * An older version of this implementation is available in the public
14485 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
14486 * Stanford University 2008-2010 and BSD-licensed for liability
14487 * reasons.
14488 *
14489 * Special thanks to Aldo Cortesi for pointing out several bugs in
14490 * this code.
14491 *
14492 * @author Emily Stark
14493 * @author Mike Hamburg
14494 * @author Dan Boneh
14495 */
14496
14497/**
14498 * Context for a SHA-256 operation in progress.
14499 * @constructor
14500 * @class Secure Hash Algorithm, 256 bits.
14501 */
14502sjcl.hash.sha256 = function (hash) {
14503 if (!this._key[0]) { this._precompute(); }
14504 if (hash) {
14505 this._h = hash._h.slice(0);
14506 this._buffer = hash._buffer.slice(0);
14507 this._length = hash._length;
14508 } else {
14509 this.reset();
14510 }
14511};
14512
14513/**
14514 * Hash a string or an array of words.
14515 * @static
14516 * @param {bitArray|String} data the data to hash.
14517 * @return {bitArray} The hash value, an array of 16 big-endian words.
14518 */
14519sjcl.hash.sha256.hash = function (data) {
14520 return (new sjcl.hash.sha256()).update(data).finalize();
14521};
14522
14523sjcl.hash.sha256.prototype = {
14524 /**
14525 * The hash's block size, in bits.
14526 * @constant
14527 */
14528 blockSize: 512,
14529
14530 /**
14531 * Reset the hash state.
14532 * @return this
14533 */
14534 reset:function () {
14535 this._h = this._init.slice(0);
14536 this._buffer = [];
14537 this._length = 0;
14538 return this;
14539 },
14540
14541 /**
14542 * Input several words to the hash.
14543 * @param {bitArray|String} data the data to hash.
14544 * @return this
14545 */
14546 update: function (data) {
14547 if (typeof data === "string") {
14548 data = sjcl.codec.utf8String.toBits(data);
14549 }
14550 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
14551 ol = this._length,
14552 nl = this._length = ol + sjcl.bitArray.bitLength(data);
14553 for (i = 512+ol & -512; i <= nl; i+= 512) {
14554 this._block(b.splice(0,16));
ebd8d4e8 14555 }
3af2954a 14556 return this;
80c4dd2a
IC
14557 },
14558
14559 /**
14560 * Complete hashing and output the hash value.
14561 * @return {bitArray} The hash value, an array of 8 big-endian words.
14562 */
14563 finalize:function () {
14564 var i, b = this._buffer, h = this._h;
14565
14566 // Round out and push the buffer
14567 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(1,1)]);
14568
14569 // Round out the buffer to a multiple of 16 words, less the 2 length words.
14570 for (i = b.length + 2; i & 15; i++) {
14571 b.push(0);
14572 }
14573
14574 // append the length
14575 b.push(Math.floor(this._length / 0x100000000));
14576 b.push(this._length | 0);
14577
14578 while (b.length) {
14579 this._block(b.splice(0,16));
14580 }
14581
14582 this.reset();
14583 return h;
14584 },
14585
14586 /**
14587 * The SHA-256 initialization vector, to be precomputed.
14588 * @private
14589 */
14590 _init:[],
14591 /*
14592 _init:[0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19],
14593 */
14594
14595 /**
14596 * The SHA-256 hash key, to be precomputed.
14597 * @private
14598 */
14599 _key:[],
14600 /*
14601 _key:
14602 [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
14603 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
14604 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
14605 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
14606 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
14607 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
14608 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
14609 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2],
14610 */
14611
14612
14613 /**
14614 * Function to precompute _init and _key.
14615 * @private
14616 */
14617 _precompute: function () {
14618 var i = 0, prime = 2, factor;
14619
14620 function frac(x) { return (x-Math.floor(x)) * 0x100000000 | 0; }
14621
14622 outer: for (; i<64; prime++) {
14623 for (factor=2; factor*factor <= prime; factor++) {
14624 if (prime % factor === 0) {
14625 // not a prime
14626 continue outer;
ebd8d4e8 14627 }
80c4dd2a
IC
14628 }
14629
14630 if (i<8) {
14631 this._init[i] = frac(Math.pow(prime, 1/2));
14632 }
14633 this._key[i] = frac(Math.pow(prime, 1/3));
14634 i++;
ebd8d4e8 14635 }
80c4dd2a
IC
14636 },
14637
14638 /**
14639 * Perform one cycle of SHA-256.
14640 * @param {bitArray} words one block of words.
14641 * @private
14642 */
14643 _block:function (words) {
14644 var i, tmp, a, b,
14645 w = words.slice(0),
14646 h = this._h,
14647 k = this._key,
14648 h0 = h[0], h1 = h[1], h2 = h[2], h3 = h[3],
14649 h4 = h[4], h5 = h[5], h6 = h[6], h7 = h[7];
14650
14651 /* Rationale for placement of |0 :
14652 * If a value can overflow is original 32 bits by a factor of more than a few
14653 * million (2^23 ish), there is a possibility that it might overflow the
14654 * 53-bit mantissa and lose precision.
14655 *
14656 * To avoid this, we clamp back to 32 bits by |'ing with 0 on any value that
14657 * propagates around the loop, and on the hash state h[]. I don't believe
14658 * that the clamps on h4 and on h0 are strictly necessary, but it's close
14659 * (for h4 anyway), and better safe than sorry.
14660 *
14661 * The clamps on h[] are necessary for the output to be correct even in the
14662 * common case and for short inputs.
14663 */
14664 for (i=0; i<64; i++) {
14665 // load up the input word for this round
14666 if (i<16) {
14667 tmp = w[i];
14668 } else {
14669 a = w[(i+1 ) & 15];
14670 b = w[(i+14) & 15];
14671 tmp = w[i&15] = ((a>>>7 ^ a>>>18 ^ a>>>3 ^ a<<25 ^ a<<14) +
14672 (b>>>17 ^ b>>>19 ^ b>>>10 ^ b<<15 ^ b<<13) +
14673 w[i&15] + w[(i+9) & 15]) | 0;
14674 }
14675
14676 tmp = (tmp + h7 + (h4>>>6 ^ h4>>>11 ^ h4>>>25 ^ h4<<26 ^ h4<<21 ^ h4<<7) + (h6 ^ h4&(h5^h6)) + k[i]); // | 0;
14677
14678 // shift register
14679 h7 = h6; h6 = h5; h5 = h4;
14680 h4 = h3 + tmp | 0;
14681 h3 = h2; h2 = h1; h1 = h0;
14682
14683 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1>>>2 ^ h1>>>13 ^ h1>>>22 ^ h1<<30 ^ h1<<19 ^ h1<<10)) | 0;
14684 }
14685
14686 h[0] = h[0]+h0 | 0;
14687 h[1] = h[1]+h1 | 0;
14688 h[2] = h[2]+h2 | 0;
14689 h[3] = h[3]+h3 | 0;
14690 h[4] = h[4]+h4 | 0;
14691 h[5] = h[5]+h5 | 0;
14692 h[6] = h[6]+h6 | 0;
14693 h[7] = h[7]+h7 | 0;
14694 }
14695};
ea87f1d3
IC
14696</script>
14697 <script>// An extremely basic translation library
14698//
14699// Example usage:
14700//
14701// Set some html to be translated. Do this using the 'data-translate' attribute:
14702//
14703// <div data-translate>Test</div>
14704// <div data-translate-html><em>keep em tag</em></div>
14705// <input data-translate-placeholder placeholder="Example text">
14706//
14707// Obtain all the phrases to be translated via js debug console:
14708//
14709// Translate.phrasesAsJson();
14710//
14711// Use that template to translate the phrases into another language.
14712// Leave the key the same. Change the value to the new language.
14713//
14714// Create a js file to load the new phrases. In this example for Spanish,
14715// es.js will contain the following code:
14716//
14717// Translate.loadForeignPhrases("es", {
14718// "Test": "Test in Spanish",
14719// "<em>keep em tag</em>": "<em>keep em tag in Spanish</em>",
14720// "Example text": "Example text in Spanish"
14721// });
14722//
14723// In your UI put a listener for clicking on the Spanish button:
14724//
14725// mySpanishButton.addEventListener("click", function() {
14726// Translate.setLanguage("es");
14727// });
14728// myEnglishButton.addEventListener("click", function() {
14729// Translate.setLanguage("en");
14730// });
14731
14732Translate = new (function() {
14733
14734 var defaultLanguage = "en";
14735
14736 var allPhrases = {};
14737 allPhrases[defaultLanguage] = {};
14738
14739 // Node types
14740
14741 var text = {
14742 selector: "[data-translate]",
14743 getKey: function() {
14744 return this.textContent.trim().replace(/\s+/g, " ");
14745 },
14746 setPhrase: function(p) {
14747 this.textContent = p;
14748 },
14749 }
14750
14751 var html = {
14752 selector: "[data-translate-html]",
14753 getKey: function() {
14754 return this.innerHTML.trim().replace(/\s+/g, " ");
14755 },
14756 setPhrase: function(p) {
14757 this.innerHTML = p;
14758 },
14759 }
14760
14761 var placeholder = {
14762 selector: "[data-translate-placeholder]",
14763 getKey: function() {
14764 return this.getAttribute("placeholder").trim().replace(/\s+/g, " ");
14765 },
14766 setPhrase: function(p) {
14767 this.setAttribute("placeholder", p);
14768 },
14769 }
14770
14771 // Get elements to be translated
14772 var allEls = getEls(text)
14773 .concat(getEls(html))
14774 .concat(getEls(placeholder));
14775
14776 // Provides access to phrases from a non-default language.
14777 // See phrases_en.js for example usage.
14778 this.loadForeignPhrases = function(language, phrases) {
14779 allPhrases[language] = phrases;
14780 }
14781
14782 // Displays a different language, eg "en" or "fr"
14783 this.setLanguage = function(language) {
14784 for (var i=0; i<allEls.length; i++) {
14785 var el = allEls[i];
14786 var key = el.key;
14787 if (!(language in allPhrases)) {
14788 console.log(language + " not in allPhrases");
14789 return;
14790 }
14791 if (!(key in allPhrases[language])) {
14792 console.log(language + " does not contain phrase: " + key);
14793 return;
14794 }
14795 var phrase = allPhrases[language][key];
14796 el.setPhrase(phrase);
14797 }
14798 }
14799
14800 // Converts the phrases to a key-pair json file.
14801 // This is a good way to export phrases for use in translation tools.
14802 this.phrasesAsJson = function(language) {
14803 var keys = [];
14804 for (var i=0; i<allEls.length; i++) {
14805 var el = allEls[i];
14806 var key = el.key;
14807 keys.push(key);
14808 }
14809 keys.sort();
14810 var output = {};
14811 for (var i=0; i<keys.length; i++) {
14812 var key = keys[i];
14813 var translated = "";
14814 if (language in allPhrases && key in allPhrases[language]) {
14815 translated = allPhrases[language][key];
14816 }
14817 output[key] = translated;
14818 }
14819 return JSON.stringify(output, null, 2);
14820 }
14821
14822 function getEls(nodeType) {
14823 var nodes = document.querySelectorAll(nodeType.selector);
14824 var els = [];
14825 for (var i=0; i<nodes.length; i++) {
14826 var node = nodes[i];
14827 node.getKey = nodeType.getKey;
14828 node.setPhrase = nodeType.setPhrase;
14829 node.key = node.getKey();
14830 allPhrases[defaultLanguage][node.key] = node.key;
14831 els.push(node);
14832 }
14833 return els;
14834 }
14835
14836})();
14837</script>
14838 <script>Translate.loadForeignPhrases("en",
14839{
14840 "<code>m/44'/0'/0'/0</code> generates public addresses": "<code>m/44'/0'/0'/0</code> generates public addresses",
14841 "<code>m/44'/0'/0'/1</code> generates change addresses": "<code>m/44'/0'/0'/1</code> generates change addresses",
14842 "<code>m/44'/0'/0'</code> generates extended keys for import / export": "<code>m/44'/0'/0'</code> generates extended keys for import / export",
14843 "<code>m/44'/0'/1'</code> for the next account. Continue incrementing for more accounts (most use a single account).": "<code>m/44'/0'/1'</code> for the next account. Continue incrementing for more accounts (most use a single account).",
14844 "Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards": "Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards",
14845 "Account": "Account",
14846 "Address": "Address",
14847 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
14848 "BIP32 Derivation Path": "BIP32 Derivation Path",
14849 "BIP32 Extended Key": "BIP32 Extended Key",
14850 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
14851 "BIP32 Root Key": "BIP32 Root Key",
14852 "BIP39 Mnemonic": "BIP39 Mnemonic",
14853 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
14854 "BIP39 Seed": "BIP39 Seed",
14855 "Base 10": "Base 10",
14856 "Base 6": "Base 6",
14857 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
14858 "Binary": "Binary",
14859 "Bitcoin Core": "Bitcoin Core",
14860 "Bits Per Event": "Bits Per Event",
14861 "Block Explorers": "Block Explorers",
14862 "Can be used with": "Can be used with",
14863 "Card": "Card",
14864 "Coin": "Coin",
14865 "Dice": "Dice",
14866 "Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
14867 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
14868 "Entropy": "Entropy",
14869 "Entropy Type": "Entropy Type",
14870 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
14871 "Entropy values must be sourced from a <a href=\"https://en.wikipedia.org/wiki/Random_number_generation\" target=\"_blank\">strong source of randomness</a>.": "Entropy values must be sourced from a <a href=\"https://en.wikipedia.org/wiki/Random_number_generation\" target=\"_blank\">strong source of randomness</a>.",
14872 "Event Count": "Event Count",
14873 "External / Internal": "External / Internal",
14874 "Filtered Entropy": "Filtered Entropy",
14875 "For more info see the <a href=\"http://www.mycelium.com/\" target=\"_blank\">Mycelium Wallet homepage</a>": "For more info see the <a href=\"http://www.mycelium.com/\" target=\"_blank\">Mycelium Wallet homepage</a>",
14876 "For more info see the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\"_blank\">BIP39 spec</a>.": "For more info see the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\"_blank\">BIP39 spec</a>.",
14877 "For more info see the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\"_blank\">BIP44 spec</a>.": "For more info see the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\"_blank\">BIP44 spec</a>.",
14878 "For more info see the <a href=\"https://github.com/bitcoin/bitcoin/pull/8035\" target=\"_blank\">Bitcoin Core BIP32 implementation</a>": "For more info see the <a href=\"https://github.com/bitcoin/bitcoin/pull/8035\" target=\"_blank\">Bitcoin Core BIP32 implementation</a>",
14879 "For more info see the BIP32 spec": "For more info see the BIP32 spec",
14880 "From entropy length (3 words per 32 bits)": "From entropy length (3 words per 32 bits)",
14881 "Generate a random mnemonic, or enter your own below": "Generate a random mnemonic, or enter your own below",
14882 "Get the source code from the repository": "Get the source code from the repository",
14883 "Hex": "Hex",
14884 "Hierarchical Deterministic Wallets": "Hierarchical Deterministic Wallets",
14885 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.",
14886 "In that case you might choose to use your own source of entropy.": "In that case you might choose to use your own source of entropy.",
14887 "In your browser, select file save-as, and save this page as a file.": "In your browser, select file save-as, and save this page as a file.",
14888 "Libraries": "Libraries",
14889 "Mnemonic Language": "Mnemonic Language",
14890 "Mnemonic Length": "Mnemonic Length",
14891 "Mnemonic code for generating deterministic keys": "Mnemonic code for generating deterministic keys",
14892 "More info": "More info",
14893 "Multi-Account Hierarchy for Deterministic Wallets": "Multi-Account Hierarchy for Deterministic Wallets",
14894 "Mycelium Wallet": "Mycelium Wallet",
14895 "Note these addreses are derived from the BIP32 Extended Key": "Note these addreses are derived from the BIP32 Extended Key",
14896 "Offline Usage": "Offline Usage",
14897 "Only enter the <code>xpub</code> extended key into block explorer search fields, never the <code>xprv</code> key.": "Only enter the <code>xpub</code> extended key into block explorer search fields, never the <code>xprv</code> key.",
14898 "Path": "Path",
14899 "Private Key": "Private Key",
14900 "Private Keys": "Private Keys",
14901 "Public Key": "Public Key",
14902 "Purpose": "Purpose",
14903 "Raw Binary": "Raw Binary",
14904 "Read more": "Read more",
14905 "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\"_blank\">official BIP32 spec</a>": "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\"_blank\">official BIP32 spec</a>",
14906 "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec</a>": "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec</a>",
14907 "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\"_blank\">official BIP44 spec</a>": "Read more at the <a href=\"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\"_blank\">official BIP44 spec</a>",
14908 "See the demo at <a href=\"http://bip32.org/\" target=\"_blank\">bip32.org</a>": "See the demo at <a href=\"http://bip32.org/\" target=\"_blank\">bip32.org</a>",
14909 "Show": "Show",
14910 "Show more rows": "Show more rows",
14911 "Strength": "Strength",
14912 "Supply my own source of entropy": "Supply my own source of entropy",
14913 "The built in random generator can generally be trusted more than your own intuition about randomness.": "The built in random generator can generally be trusted more than your own intuition about randomness.",
14914 "The random mnemonic generator on this page uses a <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\"_blank\">cryptographically secure random number generator</a>.": "The random mnemonic generator on this page uses a <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\"_blank\">cryptographically secure random number generator</a>.",
14915 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
14916 "This project is 100% open-source code": "This project is 100% open-source code",
14917 "Toggle": "Toggle",
14918 "Total Bits": "Total Bits",
14919 "Use hardened addresses": "Use hardened addresses",
14920 "Use path <code>m/0'/0'</code> with hardened addresses.": "Use path <code>m/0'/0'</code> with hardened addresses.",
14921 "Use path <code>m/44'/0'/0'</code>.": "Use path <code>m/44'/0'/0'</code>.",
14922 "Use private keys at <a href=\"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\"_blank\">brainwallet.org</a>.": "Use private keys at <a href=\"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\"_blank\">brainwallet.org</a>.",
14923 "Valid entropy values include:": "Valid entropy values include:",
14924 "Warning": "Warning",
14925 "Word Count": "Word Count",
14926 "You are not a good source of entropy.": "You are not a good source of entropy.",
14927 "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).": "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).",
14928 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
14929 "words": "words"
14930}
14931);
dc55c6b0 14932</script>
ab78acc6 14933 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
3af2954a 14934WORDLISTS["english"] = [
ebd8d4e8
IC
14935"abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
14936"access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
14937"action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
14938"adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
14939"agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
14940"alien","all","alley","allow","almost","alone","alpha","already","also","alter",
14941"always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
14942"angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
14943"anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
14944"area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
14945"arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
14946"assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
14947"audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
14948"aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
14949"bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
14950"barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
14951"beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
14952"best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
14953"bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
14954"blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
14955"boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
14956"bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
14957"breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
14958"broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
14959"bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
14960"butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
14961"calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
14962"canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
14963"cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
14964"cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
14965"cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
14966"chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
14967"chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
14968"citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
14969"clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
14970"cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
14971"code","coffee","coil","coin","collect","color","column","combine","come","comfort",
14972"comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
14973"convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
14974"cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
14975"craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
14976"crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
14977"cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
14978"cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
14979"damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
14980"debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
14981"define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
14982"depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
14983"despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
14984"diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
14985"direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
14986"divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
14987"donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
14988"drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
14989"drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
14990"dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
14991"ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
14992"elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
14993"embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
14994"endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
14995"enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
14996"era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
14997"eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
14998"excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
14999"exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
15000"eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
15001"family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
15002"fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
15003"fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
15004"film","filter","final","find","fine","finger","finish","fire","firm","first",
15005"fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
15006"flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
15007"foam","focus","fog","foil","fold","follow","food","foot","force","forest",
15008"forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
15009"frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
15010"fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
15011"gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
15012"gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
15013"ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
15014"glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
15015"goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
15016"grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
15017"grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
15018"guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
15019"harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
15020"heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
15021"high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
15022"holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
15023"host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
15024"hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
15025"identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
15026"impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
15027"indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
15028"inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
15029"intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
15030"item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
15031"job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
15032"junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
15033"kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
15034"knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
15035"laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
15036"layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
15037"legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
15038"liar","liberty","library","license","life","lift","light","like","limb","limit",
15039"link","lion","liquid","list","little","live","lizard","load","loan","lobster",
15040"local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
15041"loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
15042"magic","magnet","maid","mail","main","major","make","mammal","man","manage",
15043"mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
15044"marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
15045"maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
15046"member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
15047"metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
15048"minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
15049"model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
15050"more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
15051"much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
15052"myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
15053"near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
15054"network","neutral","never","news","next","nice","night","noble","noise","nominee",
15055"noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
15056"nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
15057"obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
15058"oil","okay","old","olive","olympic","omit","once","one","onion","online",
15059"only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
15060"ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
15061"outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
15062"paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
15063"parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
15064"pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
15065"penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
15066"phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
15067"pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
15068"play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
15069"pole","police","pond","pony","pool","popular","portion","position","possible","post",
15070"potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
15071"present","pretty","prevent","price","pride","primary","print","priority","prison","private",
15072"prize","problem","process","produce","profit","program","project","promote","proof","property",
15073"prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
15074"punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
15075"pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
15076"raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
15077"ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
15078"ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
15079"reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
15080"relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
15081"repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
15082"result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
15083"ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
15084"ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
15085"romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
15086"rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
15087"safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
15088"satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
15089"scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
15090"scrub","sea","search","season","seat","second","secret","section","security","seed",
15091"seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
15092"session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
15093"sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
15094"short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
15095"siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
15096"sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
15097"skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
15098"slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
15099"snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
15100"soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
15101"sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
15102"speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
15103"spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
15104"spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
15105"stand","start","state","stay","steak","steel","stem","step","stereo","stick",
15106"still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
15107"strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
15108"success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
15109"sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
15110"suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
15111"swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
15112"tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
15113"teach","team","tell","ten","tenant","tennis","tent","term","test","text",
15114"thank","that","theme","then","theory","there","they","thing","this","thought",
15115"three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
15116"time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
15117"toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
15118"tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
15119"toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
15120"trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
15121"trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
15122"truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
15123"twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
15124"unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
15125"unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
15126"uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
15127"useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
15128"vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
15129"verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
15130"video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
15131"vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
15132"wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
15133"wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
15134"web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
15135"wheel","when","where","whip","whisper","wide","width","wife","wild","will",
15136"win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
15137"wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
15138"worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
15139"yellow","you","young","youth","zebra","zero","zone","zoo"]
0515eeec
IC
15140</script>
15141 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
15142WORDLISTS["japanese"] = [
15143"あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
15144"あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
15145"あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
15146"あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
15147"あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
15148"あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
15149"いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
15150"いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
15151"いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
15152"いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
15153"いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
15154"いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
15155"いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
15156"いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
15157"いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
15158"うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
15159"うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
15160"うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
15161"うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
15162"うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
15163"うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
15164"えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
15165"えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
15166"えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
15167"えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
15168"おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
15169"おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
15170"おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
15171"おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
15172"おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
15173"おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
15174"おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
15175"かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
15176"かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
15177"かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
15178"がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
15179"かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
15180"かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
15181"きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
15182"きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
15183"ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
15184"きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
15185"きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
15186"きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
15187"きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
15188"きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
15189"くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
15190"くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
15191"くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
15192"ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
15193"くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
15194"ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
15195"けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
15196"げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
15197"けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
15198"けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
15199"けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
15200"けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
15201"けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
15202"けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
15203"ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
15204"ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
15205"ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
15206"こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
15207"こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
15208"こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
15209"こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
15210"こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
15211"こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
15212"こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
15213"こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
15214"さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
15215"さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
15216"さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
15217"さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
15218"さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
15219"さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
15220"ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
15221"しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
15222"しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
15223"しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
15224"しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
15225"しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
15226"しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
15227"しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
15228"しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
15229"しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
15230"しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
15231"すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
15232"すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
15233"すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
15234"ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
15235"すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
15236"せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
15237"せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
15238"せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
15239"せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
15240"ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
15241"せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
15242"せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
15243"そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
15244"そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
15245"そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
15246"そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
15247"そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
15248"ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
15249"たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
15250"だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
15251"たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
15252"たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
15253"たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
15254"たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
15255"たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
15256"ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
15257"たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
15258"たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
15259"たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
15260"ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
15261"ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
15262"ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
15263"ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
15264"ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
15265"つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
15266"つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
15267"つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
15268"てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
15269"ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
15270"てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
15271"でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
15272"てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
15273"でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
15274"でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
15275"どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
15276"とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
15277"とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
15278"とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
15279"どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
15280"ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
15281"なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
15282"なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
15283"ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
15284"にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
15285"にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
15286"にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
15287"にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
15288"にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
15289"ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
15290"ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
15291"ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
15292"ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
15293"ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
15294"のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
15295"のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
15296"ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
15297"はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
15298"はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
15299"はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
15300"はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
15301"はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
15302"はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
15303"はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
15304"ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
15305"ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
15306"ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
15307"ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
15308"ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
15309"ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
15310"ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
15311"ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
15312"ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
15313"ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
15314"ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
15315"ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
15316"へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
15317"へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
15318"へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
15319"ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
15320"ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
15321"ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
15322"ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
15323"まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
15324"まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
15325"みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
15326"みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
15327"みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
15328"むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
15329"むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
15330"むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
15331"めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
15332"めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
15333"もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
15334"やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
15335"やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
15336"ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
15337"ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
15338"よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
15339"よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
15340"らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
15341"りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
15342"りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
15343"りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
15344"れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
15345"れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
15346"ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
15347"わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
15348</script>
15349 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
15350WORDLISTS["spanish"] = [
15351"ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
15352"abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
15353"aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
15354"acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
15355"afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
15356"agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
15357"alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
15358"aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
15359"altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
15360"amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
15361"ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
15362"anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
15363"apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
15364"apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
15365"arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
15366"arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
15367"asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
15368"astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
15369"atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
15370"ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
15371"aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
15372"baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
15373"banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
15374"batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
15375"beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
15376"bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
15377"bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
15378"bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
15379"bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
15380"bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
15381"caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
15382"caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
15383"calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
15384"canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
15385"captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
15386"carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
15387"causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
15388"ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
15389"chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
15390"choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
15391"cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
15392"clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
15393"cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
15394"cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
15395"comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
15396"copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
15397"cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
15398"cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
15399"cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
15400"cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
15401"curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
15402"decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
15403"dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
15404"detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
15405"dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
15406"dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
15407"don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
15408"duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
15409"ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
15410"eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
15411"elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
15412"encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
15413"enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
15414"erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
15415"espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
15416"eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
15417"excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
15418"fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
15419"faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
15420"fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
15421"fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
15422"fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
15423"fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
15424"fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
15425"forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
15426"fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
15427"fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
15428"gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
15429"ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
15430"género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
15431"giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
15432"gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
15433"grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
15434"grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
15435"gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
15436"harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
15437"hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
15438"hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
15439"horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
15440"humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
15441"ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
15442"imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
15443"inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
15444"ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
15445"jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
15446"juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
15447"juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
15448"lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
15449"lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
15450"latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
15451"legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
15452"leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
15453"lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
15454"líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
15455"llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
15456"lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
15457"luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
15458"maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
15459"mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
15460"manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
15461"marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
15462"matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
15463"mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
15464"mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
15465"miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
15466"minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
15467"moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
15468"monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
15469"morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
15470"mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
15471"muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
15472"nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
15473"naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
15474"neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
15475"nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
15476"novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
15477"nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
15478"observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
15479"octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
15480"oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
15481"olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
15482"ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
15483"orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
15484"orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
15485"óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
15486"país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
15487"panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
15488"pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
15489"paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
15490"pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
15491"peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
15492"pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
15493"persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
15494"pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
15495"pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
15496"pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
15497"pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
15498"policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
15499"posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
15500"premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
15501"proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
15502"prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
15503"pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
15504"queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
15505"rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
15506"rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
15507"rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
15508"reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
15509"reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
15510"remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
15511"resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
15512"rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
15513"riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
15514"rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
15515"ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
15516"rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
15517"rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
15518"salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
15519"sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
15520"sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
15521"seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
15522"sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
15523"severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
15524"silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
15525"sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
15526"sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
15527"sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
15528"sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
15529"surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
15530"talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
15531"tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
15532"tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
15533"tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
15534"tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
15535"testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
15536"tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
15537"tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
15538"todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
15539"torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
15540"toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
15541"trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
15542"trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
15543"truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
15544"turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
15545"uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
15546"utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
15547"válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
15548"vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
15549"veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
15550"verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
15551"vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
15552"viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
15553"vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
15554"vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
15555"zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
15556</script>
15557 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
15558WORDLISTS["chinese_simplified"] = [
15559"的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
15560"中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
15561"时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
15562"就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
15563"同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
15564"面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
15565"民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
15566"度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
15567"二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
15568"两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
15569"去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
15570"由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
15571"那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
15572"样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
15573"心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
15574"或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
15575"条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
15576"无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
15577"已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
15578"果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
15579"次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
15580"求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
15581"图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
15582"别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
15583"几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
15584"必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
15585"南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
15586"百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
15587"压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
15588"术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
15589"收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
15590"风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
15591"身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
15592"达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
15593"八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
15594"节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
15595"传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
15596"研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
15597"织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
15598"复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
15599"深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
15600"半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
15601"史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
15602"何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
15603"号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
15604"毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
15605"王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
15606"却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
15607"包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
15608"细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
15609"官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
15610"女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
15611"含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
15612"英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
15613"破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
15614"河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
15615"案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
15616"仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
15617"轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
15618"足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
15619"负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
15620"修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
15621"财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
15622"跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
15623"初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
15624"未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
15625"钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
15626"限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
15627"州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
15628"础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
15629"袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
15630"诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
15631"夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
15632"终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
15633"烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
15634"括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
15635"侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
15636"货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
15637"息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
15638"医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
15639"训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
15640"脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
15641"械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
15642"粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
15643"钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
15644"培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
15645"答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
15646"脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
15647"概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
15648"评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
15649"伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
15650"亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
15651"诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
15652"绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
15653"屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
15654"束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
15655"胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
15656"宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
15657"露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
15658"库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
15659"鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
15660"借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
15661"润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
15662"欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
15663"纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
15664"塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
15665"刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
15666"洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
15667"献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
15668"阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
15669"楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
15670"馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
15671"塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
15672"楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
15673"监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
15674"壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
15675"桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
15676"您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
15677"纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
15678"湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
15679"齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
15680"净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
15681"庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
15682"伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
15683"璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
15684"纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
15685"津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
15686"肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
15687"贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
15688"峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
15689"浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
15690"睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
15691"炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
15692"呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
15693"授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
15694"幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
15695"姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
15696"夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
15697"绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
15698"礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
15699"勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
15700"饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
15701"扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
15702"奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
15703"寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
15704"贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
15705"渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
15706"乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
15707"锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
15708"缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
15709"碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
15710"票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
15711"荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
15712"撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
15713"陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
15714"虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
15715"乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
15716"瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
15717"秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
15718"洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
15719"籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
15720"醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
15721"玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
15722"趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
15723"滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
15724"泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
15725"胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
15726"串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
15727"辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
15728"沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
15729"侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
15730"豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
15731"掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
15732"雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
15733"蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
15734"番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
15735"扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
15736"悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
15737"渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
15738"霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
15739"甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
15740"伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
15741"弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
15742"逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
15743"冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
15744"欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
15745"搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
15746"忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
15747"杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
15748"烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
15749"姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
15750"董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
15751"拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
15752"览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
15753"凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
15754"丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
15755"铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
15756"窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
15757"胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
15758"疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
15759"嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
15760"莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
15761"皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
15762"巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
15763"卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
15764</script>
15765 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
15766WORDLISTS["chinese_traditional"] = [
15767"的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
15768"中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
15769"時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
15770"就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
15771"同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
15772"面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
15773"民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
15774"度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
15775"二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
15776"兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
15777"去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
15778"由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
15779"那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
15780"樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
15781"心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
15782"或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
15783"條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
15784"無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
15785"已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
15786"果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
15787"次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
15788"求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
15789"圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
15790"別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
15791"幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
15792"必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
15793"南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
15794"百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
15795"壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
15796"術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
15797"收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
15798"風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
15799"身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
15800"達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
15801"八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
15802"節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
15803"傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
15804"研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
15805"織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
15806"复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
15807"深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
15808"半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
15809"史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
15810"何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
15811"號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
15812"毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
15813"王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
15814"卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
15815"包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
15816"細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
15817"官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
15818"女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
15819"含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
15820"英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
15821"破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
15822"河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
15823"案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
15824"僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
15825"輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
15826"足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
15827"負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
15828"修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
15829"財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
15830"跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
15831"初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
15832"未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
15833"錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
15834"限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
15835"州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
15836"礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
15837"袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
15838"訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
15839"夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
15840"終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
15841"烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
15842"括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
15843"侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
15844"貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
15845"息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
15846"醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
15847"訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
15848"脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
15849"械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
15850"粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
15851"鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
15852"培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
15853"答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
15854"腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
15855"概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
15856"評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
15857"傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
15858"亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
15859"詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
15860"綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
15861"屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
15862"束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
15863"胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
15864"宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
15865"露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
15866"庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
15867"鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
15868"借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
15869"潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
15870"歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
15871"納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
15872"塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
15873"刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
15874"洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
15875"獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
15876"陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
15877"樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
15878"館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
15879"塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
15880"楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
15881"監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
15882"壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
15883"橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
15884"您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
15885"紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
15886"灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
15887"齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
15888"淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
15889"莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
15890"夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
15891"璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
15892"縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
15893"津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
15894"肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
15895"貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
15896"峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
15897"浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
15898"睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
15899"炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
15900"呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
15901"授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
15902"幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
15903"姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
15904"夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
15905"繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
15906"禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
15907"勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
15908"飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
15909"掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
15910"奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
15911"寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
15912"貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
15913"漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
15914"乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
15915"銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
15916"缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
15917"碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
15918"票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
15919"荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
15920"撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
15921"陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
15922"蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
15923"乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
15924"瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
15925"秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
15926"洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
15927"籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
15928"醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
15929"玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
15930"趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
15931"灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
15932"泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
15933"脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
15934"串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
15935"輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
15936"沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
15937"僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
15938"豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
15939"掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
15940"霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
15941"蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
15942"番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
15943"扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
15944"悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
15945"渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
15946"黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
15947"甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
15948"偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
15949"弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
15950"逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
15951"冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
15952"欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
15953"搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
15954"憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
15955"杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
15956"烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
15957"姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
15958"董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
15959"拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
15960"覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
15961"兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
15962"叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
15963"鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
15964"窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
15965"胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
15966"瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
15967"嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
15968"蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
15969"皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
15970"巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
15971"卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
15972</script>
15973 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
15974WORDLISTS["french"] = [
15975"abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
15976"abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
15977"acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
15978"aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
15979"adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
15980"adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
15981"agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
15982"aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
15983"alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
15984"ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
15985"amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
15986"animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
15987"anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
15988"aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
15989"armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
15990"aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
15991"atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
15992"audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
15993"aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
15994"badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
15995"bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
15996"bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
15997"bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
15998"bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
15999"biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
16000"blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
16001"bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
16002"bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
16003"breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
16004"broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
16005"bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
16006"caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
16007"caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
16008"caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
16009"carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
16010"caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
16011"cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
16012"charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
16013"chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
16014"chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
16015"citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
16016"cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
16017"coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
16018"colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
16019"connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
16020"corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
16021"couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
16022"crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
16023"crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
16024"curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
16025"dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
16026"déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
16027"dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
16028"dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
16029"dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
16030"détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
16031"différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
16032"discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
16033"domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
16034"doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
16035"dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
16036"écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
16037"écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
16038"effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
16039"élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
16040"embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
16041"émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
16042"enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
16043"ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
16044"énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
16045"épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
16046"épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
16047"espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
16048"estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
16049"ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
16050"évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
16051"exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
16052"exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
16053"exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
16054"farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
16055"favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
16056"féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
16057"figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
16058"fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
16059"fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
16060"fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
16061"fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
16062"frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
16063"fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
16064"galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
16065"gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
16066"gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
16067"gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
16068"goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
16069"grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
16070"gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
16071"hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
16072"hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
16073"histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
16074"horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
16075"humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
16076"illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
16077"imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
16078"inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
16079"inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
16080"inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
16081"inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
16082"jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
16083"jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
16084"joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
16085"kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
16086"laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
16087"laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
16088"lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
16089"ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
16090"lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
16091"loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
16092"lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
16093"magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
16094"malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
16095"marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
16096"matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
16097"méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
16098"mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
16099"métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
16100"mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
16101"moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
16102"morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
16103"mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
16104"muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
16105"natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
16106"négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
16107"nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
16108"normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
16109"nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
16110"obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
16111"octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
16112"olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
16113"opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
16114"oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
16115"otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
16116"paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
16117"panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
16118"parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
16119"patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
16120"pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
16121"perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
16122"pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
16123"pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
16124"pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
16125"pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
16126"pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
16127"ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
16128"pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
16129"préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
16130"problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
16131"prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
16132"pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
16133"question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
16134"ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
16135"réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
16136"rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
16137"régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
16138"remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
16139"reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
16140"rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
16141"révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
16142"rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
16143"rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
16144"ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
16145"sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
16146"sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
16147"savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
16148"scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
16149"séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
16150"séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
16151"sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
16152"sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
16153"soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
16154"sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
16155"soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
16156"station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
16157"subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
16158"surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
16159"synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
16160"tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
16161"tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
16162"tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
16163"tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
16164"tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
16165"torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
16166"trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
16167"tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
16168"tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
16169"typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
16170"univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
16171"vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
16172"valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
16173"végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
16174"vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
16175"viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
16176"violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
16177"vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
16178"voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
16179"voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
16180</script>
16181 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
16182WORDLISTS["italian"] = [
16183"abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
16184"accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
16185"addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
16186"affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
16187"agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
16188"alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
16189"allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
16190"altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
16191"america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
16192"amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
16193"andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
16194"anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
16195"appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
16196"archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
16197"arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
16198"asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
16199"astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
16200"attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
16201"avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
16202"badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
16203"bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
16204"battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
16205"benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
16206"bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
16207"bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
16208"botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
16209"brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
16210"buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
16211"cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
16212"camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
16213"capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
16214"carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
16215"casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
16216"cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
16217"cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
16218"ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
16219"ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
16220"cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
16221"comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
16222"consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
16223"cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
16224"cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
16225"critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
16226"cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
16227"daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
16228"decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
16229"demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
16230"desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
16231"diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
16232"disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
16233"dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
16234"dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
16235"dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
16236"economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
16237"elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
16238"eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
16239"enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
16240"eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
16241"erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
16242"esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
16243"esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
16244"europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
16245"famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
16246"fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
16247"feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
16248"feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
16249"fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
16250"fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
16251"fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
16252"fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
16253"frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
16254"fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
16255"gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
16256"garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
16257"gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
16258"ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
16259"gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
16260"gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
16261"gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
16262"guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
16263"idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
16264"imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
16265"importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
16266"incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
16267"ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
16268"insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
16269"invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
16270"irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
16271"lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
16272"larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
16273"lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
16274"levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
16275"liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
16276"lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
16277"luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
16278"macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
16279"malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
16280"mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
16281"massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
16282"medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
16283"merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
16284"mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
16285"minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
16286"mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
16287"molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
16288"mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
16289"mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
16290"muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
16291"narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
16292"negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
16293"nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
16294"normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
16295"nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
16296"obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
16297"offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
16298"ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
16299"onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
16300"orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
16301"orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
16302"ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
16303"ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
16304"padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
16305"pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
16306"parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
16307"pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
16308"penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
16309"periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
16310"pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
16311"piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
16312"pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
16313"pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
16314"poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
16315"pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
16316"positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
16317"prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
16318"principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
16319"proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
16320"pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
16321"qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
16322"ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
16323"rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
16324"recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
16325"remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
16326"rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
16327"ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
16328"rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
16329"rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
16330"ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
16331"rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
16332"riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
16333"rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
16334"rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
16335"rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
16336"salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
16337"sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
16338"sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
16339"sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
16340"scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
16341"scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
16342"scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
16343"sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
16344"selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
16345"sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
16346"setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
16347"sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
16348"sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
16349"sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
16350"sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
16351"smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
16352"snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
16353"solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
16354"sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
16355"sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
16356"spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
16357"spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
16358"sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
16359"statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
16360"storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
16361"succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
16362"sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
16363"svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
16364"tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
16365"tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
16366"tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
16367"tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
16368"titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
16369"tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
16370"tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
16371"trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
16372"trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
16373"trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
16374"tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
16375"ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
16376"unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
16377"usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
16378"valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
16379"vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
16380"vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
16381"verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
16382"vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
16383"vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
16384"viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
16385"viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
16386"zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
16387"zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
dc55c6b0 16388</script>
ab78acc6 16389 <script>/*
3af2954a
IC
16390 * Copyright (c) 2013 Pavol Rusnak
16391 *
16392 * Permission is hereby granted, free of charge, to any person obtaining a copy of
16393 * this software and associated documentation files (the "Software"), to deal in
16394 * the Software without restriction, including without limitation the rights to
16395 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
16396 * of the Software, and to permit persons to whom the Software is furnished to do
16397 * so, subject to the following conditions:
16398 *
16399 * The above copyright notice and this permission notice shall be included in all
16400 * copies or substantial portions of the Software.
16401 *
16402 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16403 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16404 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16405 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
16406 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
16407 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16408 */
16409
16410/*
16411 * Javascript port from python by Ian Coleman
16412 *
80c4dd2a
IC
16413 * Requires code from sjcl
16414 * https://github.com/bitwiseshiftleft/sjcl
3af2954a
IC
16415 */
16416
16417var Mnemonic = function(language) {
16418
16419 var PBKDF2_ROUNDS = 2048;
16420 var RADIX = 2048;
16421
16422 var self = this;
16423 var wordlist = [];
16424
80c4dd2a
IC
16425 var hmacSHA512 = function(key) {
16426 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
16427 this.encrypt = function() {
16428 return hasher.encrypt.apply(hasher, arguments);
16429 };
16430 };
16431
3af2954a
IC
16432 function init() {
16433 wordlist = WORDLISTS[language];
16434 if (wordlist.length != RADIX) {
16435 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
16436 throw err;
16437 }
16438 }
16439
16440 self.generate = function(strength) {
16441 strength = strength || 128;
16442 var r = strength % 32;
16443 if (r > 0) {
16444 throw 'Strength should be divisible by 32, but it is not (' + r + ').';
16445 }
16446 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
16447 if (!hasStrongCrypto) {
16448 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
16449 }
16450 var buffer = new Uint8Array(strength / 8);
16451 var data = crypto.getRandomValues(buffer);
16452 return self.toMnemonic(data);
16453 }
16454
80c4dd2a
IC
16455 self.toMnemonic = function(byteArray) {
16456 if (byteArray.length % 4 > 0) {
16457 throw 'Data length in bits should be divisible by 32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*8 + ' bits).'
3af2954a
IC
16458 }
16459
16460 //h = hashlib.sha256(data).hexdigest()
80c4dd2a
IC
16461 var data = byteArrayToWordArray(byteArray);
16462 var hash = sjcl.hash.sha256.hash(data);
16463 var h = sjcl.codec.hex.fromBits(hash);
3af2954a
IC
16464
16465 // b is a binary string, eg '00111010101100...'
16466 //b = bin(int(binascii.hexlify(data), 16))[2:].zfill(len(data) * 8) + \
16467 // bin(int(h, 16))[2:].zfill(256)[:len(data) * 8 / 32]
16468 //
16469 // a = bin(int(binascii.hexlify(data), 16))[2:].zfill(len(data) * 8)
16470 // c = bin(int(h, 16))[2:].zfill(256)
16471 // d = c[:len(data) * 8 / 32]
80c4dd2a
IC
16472 var a = byteArrayToBinaryString(byteArray);
16473 var c = zfill(hexStringToBinaryString(h), 256);
16474 var d = c.substring(0, byteArray.length * 8 / 32);
3af2954a
IC
16475 // b = line1 + line2
16476 var b = a + d;
16477
16478 var result = [];
16479 var blen = b.length / 11;
16480 for (var i=0; i<blen; i++) {
16481 var idx = parseInt(b.substring(i * 11, (i + 1) * 11), 2);
16482 result.push(wordlist[idx]);
16483 }
0515eeec 16484 return self.joinWords(result);
3af2954a
IC
16485 }
16486
16487 self.check = function(mnemonic) {
0515eeec 16488 var mnemonic = self.splitWords(mnemonic);
18abe53b 16489 if (mnemonic.length == 0 || mnemonic.length % 3 > 0) {
3af2954a
IC
16490 return false
16491 }
16492 // idx = map(lambda x: bin(self.wordlist.index(x))[2:].zfill(11), mnemonic)
16493 var idx = [];
16494 for (var i=0; i<mnemonic.length; i++) {
16495 var word = mnemonic[i];
16496 var wordIndex = wordlist.indexOf(word);
16497 if (wordIndex == -1) {
16498 return false;
16499 }
16500 var binaryIndex = zfill(wordIndex.toString(2), 11);
16501 idx.push(binaryIndex);
16502 }
16503 var b = idx.join('');
16504 var l = b.length;
16505 //d = b[:l / 33 * 32]
16506 //h = b[-l / 33:]
16507 var d = b.substring(0, l / 33 * 32);
16508 var h = b.substring(l - l / 33, l);
16509 //nd = binascii.unhexlify(hex(int(d, 2))[2:].rstrip('L').zfill(l / 33 * 8))
80c4dd2a 16510 var nd = binaryStringToWordArray(d);
3af2954a 16511 //nh = bin(int(hashlib.sha256(nd).hexdigest(), 16))[2:].zfill(256)[:l / 33]
80c4dd2a
IC
16512 var ndHash = sjcl.hash.sha256.hash(nd);
16513 var ndHex = sjcl.codec.hex.fromBits(ndHash);
16514 var ndBstr = zfill(hexStringToBinaryString(ndHex), 256);
3af2954a
IC
16515 var nh = ndBstr.substring(0,l/33);
16516 return h == nh;
16517 }
16518
16519 self.toSeed = function(mnemonic, passphrase) {
16520 passphrase = passphrase || '';
0515eeec 16521 mnemonic = self.joinWords(self.splitWords(self.normalizeString(mnemonic))); // removes blanks
3af2954a
IC
16522 passphrase = self.normalizeString(passphrase)
16523 passphrase = "mnemonic" + passphrase;
80c4dd2a
IC
16524 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonic);
16525 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
16526 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS, 512, hmacSHA512);
16527 var hashHex = sjcl.codec.hex.fromBits(result);
16528 return hashHex;
3af2954a
IC
16529 }
16530
0515eeec
IC
16531 self.splitWords = function(mnemonic) {
16532 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
16533 }
16534
16535 self.joinWords = function(words) {
16536 // Set space correctly depending on the language
16537 // see https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#japanese
16538 var space = " ";
16539 if (language == "japanese") {
16540 space = "\u3000"; // ideographic space
16541 }
16542 return words.join(space);
16543 }
16544
3af2954a
IC
16545 self.normalizeString = function(str) {
16546 if (typeof str.normalize == "function") {
16547 return str.normalize("NFKD");
16548 }
16549 else {
16550 // TODO decide how to handle this in the future.
16551 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
16552 return str;
16553 }
16554 }
16555
80c4dd2a
IC
16556 function byteArrayToWordArray(data) {
16557 var a = [];
16558 for (var i=0; i<data.length/4; i++) {
16559 v = 0;
16560 v += data[i*4 + 0] << 8 * 3;
16561 v += data[i*4 + 1] << 8 * 2;
16562 v += data[i*4 + 2] << 8 * 1;
16563 v += data[i*4 + 3] << 8 * 0;
16564 a.push(v);
16565 }
16566 return a;
16567 }
16568
3af2954a
IC
16569 function byteArrayToBinaryString(data) {
16570 var bin = "";
16571 for (var i=0; i<data.length; i++) {
16572 bin += zfill(data[i].toString(2), 8);
16573 }
16574 return bin;
16575 }
16576
80c4dd2a
IC
16577 function hexStringToBinaryString(hexString) {
16578 binaryString = "";
16579 for (var i=0; i<hexString.length; i++) {
16580 binaryString += zfill(parseInt(hexString[i], 16).toString(2),4);
16581 }
16582 return binaryString;
16583 }
16584
16585 function binaryStringToWordArray(binary) {
16586 var aLen = binary.length / 32;
16587 var a = [];
16588 for (var i=0; i<aLen; i++) {
16589 var valueStr = binary.substring(0,32);
3af2954a 16590 var value = parseInt(valueStr, 2);
80c4dd2a
IC
16591 a.push(value);
16592 binary = binary.slice(32);
3af2954a 16593 }
80c4dd2a 16594 return a;
3af2954a
IC
16595 }
16596
16597 // Pad a numeric string on the left with zero digits until the given width
16598 // is reached.
16599 // Note this differs to the python implementation because it does not
16600 // handle numbers starting with a sign.
16601 function zfill(source, length) {
16602 source = source.toString();
16603 while (source.length < length) {
16604 source = '0' + source;
16605 }
16606 return source;
16607 }
16608
16609 init();
ebd8d4e8 16610
3af2954a 16611}
dc55c6b0 16612</script>
95f04905
IC
16613 <script>/*
16614 JavaScript BigInteger library version 0.9.1
16615 http://silentmatt.com/biginteger/
18abe53b 16616
95f04905
IC
16617 Copyright (c) 2009 Matthew Crumley <email@matthewcrumley.com>
16618 Copyright (c) 2010,2011 by John Tobey <John.Tobey@gmail.com>
16619 Licensed under the MIT license.
c6624d51 16620
95f04905
IC
16621 Support for arbitrary internal representation base was added by
16622 Vitaly Magerya.
16623*/
18abe53b 16624
95f04905
IC
16625/*
16626 File: biginteger.js
18abe53b 16627
95f04905 16628 Exports:
18abe53b 16629
95f04905
IC
16630 <BigInteger>
16631*/
16632(function(exports) {
16633"use strict";
16634/*
16635 Class: BigInteger
16636 An arbitrarily-large integer.
18abe53b 16637
95f04905
IC
16638 <BigInteger> objects should be considered immutable. None of the "built-in"
16639 methods modify *this* or their arguments. All properties should be
16640 considered private.
18abe53b 16641
95f04905
IC
16642 All the methods of <BigInteger> instances can be called "statically". The
16643 static versions are convenient if you don't already have a <BigInteger>
16644 object.
18abe53b 16645
95f04905 16646 As an example, these calls are equivalent.
18abe53b 16647
95f04905
IC
16648 > BigInteger(4).multiply(5); // returns BigInteger(20);
16649 > BigInteger.multiply(4, 5); // returns BigInteger(20);
18abe53b 16650
95f04905
IC
16651 > var a = 42;
16652 > var a = BigInteger.toJSValue("0b101010"); // Not completely useless...
16653*/
c6624d51 16654
95f04905 16655var CONSTRUCT = {}; // Unique token to call "private" version of constructor
c6624d51
IC
16656
16657/*
16658 Constructor: BigInteger()
16659 Convert a value to a <BigInteger>.
16660
16661 Although <BigInteger()> is the constructor for <BigInteger> objects, it is
16662 best not to call it as a constructor. If *n* is a <BigInteger> object, it is
16663 simply returned as-is. Otherwise, <BigInteger()> is equivalent to <parse>
16664 without a radix argument.
16665
16666 > var n0 = BigInteger(); // Same as <BigInteger.ZERO>
16667 > var n1 = BigInteger("123"); // Create a new <BigInteger> with value 123
16668 > var n2 = BigInteger(123); // Create a new <BigInteger> with value 123
16669 > var n3 = BigInteger(n2); // Return n2, unchanged
16670
16671 The constructor form only takes an array and a sign. *n* must be an
16672 array of numbers in little-endian order, where each digit is between 0
16673 and BigInteger.base. The second parameter sets the sign: -1 for
16674 negative, +1 for positive, or 0 for zero. The array is *not copied and
16675 may be modified*. If the array contains only zeros, the sign parameter
16676 is ignored and is forced to zero.
16677
16678 > new BigInteger([5], -1): create a new BigInteger with value -5
16679
16680 Parameters:
16681
16682 n - Value to convert to a <BigInteger>.
16683
16684 Returns:
16685
16686 A <BigInteger> value.
16687
16688 See Also:
16689
16690 <parse>, <BigInteger>
16691*/
16692function BigInteger(n, s, token) {
16693 if (token !== CONSTRUCT) {
16694 if (n instanceof BigInteger) {
16695 return n;
16696 }
16697 else if (typeof n === "undefined") {
16698 return ZERO;
16699 }
16700 return BigInteger.parse(n);
16701 }
16702
16703 n = n || []; // Provide the nullary constructor for subclasses.
16704 while (n.length && !n[n.length - 1]) {
16705 --n.length;
16706 }
16707 this._d = n;
16708 this._s = n.length ? (s || 1) : 0;
16709}
16710
16711BigInteger._construct = function(n, s) {
16712 return new BigInteger(n, s, CONSTRUCT);
16713};
16714
16715// Base-10 speedup hacks in parse, toString, exp10 and log functions
16716// require base to be a power of 10. 10^7 is the largest such power
16717// that won't cause a precision loss when digits are multiplied.
16718var BigInteger_base = 10000000;
16719var BigInteger_base_log10 = 7;
16720
16721BigInteger.base = BigInteger_base;
16722BigInteger.base_log10 = BigInteger_base_log10;
16723
16724var ZERO = new BigInteger([], 0, CONSTRUCT);
16725// Constant: ZERO
16726// <BigInteger> 0.
16727BigInteger.ZERO = ZERO;
16728
16729var ONE = new BigInteger([1], 1, CONSTRUCT);
16730// Constant: ONE
16731// <BigInteger> 1.
16732BigInteger.ONE = ONE;
16733
16734var M_ONE = new BigInteger(ONE._d, -1, CONSTRUCT);
16735// Constant: M_ONE
16736// <BigInteger> -1.
16737BigInteger.M_ONE = M_ONE;
16738
16739// Constant: _0
16740// Shortcut for <ZERO>.
16741BigInteger._0 = ZERO;
16742
16743// Constant: _1
16744// Shortcut for <ONE>.
16745BigInteger._1 = ONE;
16746
16747/*
16748 Constant: small
16749 Array of <BigIntegers> from 0 to 36.
16750
16751 These are used internally for parsing, but useful when you need a "small"
16752 <BigInteger>.
16753
16754 See Also:
16755
16756 <ZERO>, <ONE>, <_0>, <_1>
16757*/
16758BigInteger.small = [
16759 ZERO,
16760 ONE,
16761 /* Assuming BigInteger_base > 36 */
16762 new BigInteger( [2], 1, CONSTRUCT),
16763 new BigInteger( [3], 1, CONSTRUCT),
16764 new BigInteger( [4], 1, CONSTRUCT),
16765 new BigInteger( [5], 1, CONSTRUCT),
16766 new BigInteger( [6], 1, CONSTRUCT),
16767 new BigInteger( [7], 1, CONSTRUCT),
16768 new BigInteger( [8], 1, CONSTRUCT),
16769 new BigInteger( [9], 1, CONSTRUCT),
16770 new BigInteger([10], 1, CONSTRUCT),
16771 new BigInteger([11], 1, CONSTRUCT),
16772 new BigInteger([12], 1, CONSTRUCT),
16773 new BigInteger([13], 1, CONSTRUCT),
16774 new BigInteger([14], 1, CONSTRUCT),
16775 new BigInteger([15], 1, CONSTRUCT),
16776 new BigInteger([16], 1, CONSTRUCT),
16777 new BigInteger([17], 1, CONSTRUCT),
16778 new BigInteger([18], 1, CONSTRUCT),
16779 new BigInteger([19], 1, CONSTRUCT),
16780 new BigInteger([20], 1, CONSTRUCT),
16781 new BigInteger([21], 1, CONSTRUCT),
16782 new BigInteger([22], 1, CONSTRUCT),
16783 new BigInteger([23], 1, CONSTRUCT),
16784 new BigInteger([24], 1, CONSTRUCT),
16785 new BigInteger([25], 1, CONSTRUCT),
16786 new BigInteger([26], 1, CONSTRUCT),
16787 new BigInteger([27], 1, CONSTRUCT),
16788 new BigInteger([28], 1, CONSTRUCT),
16789 new BigInteger([29], 1, CONSTRUCT),
16790 new BigInteger([30], 1, CONSTRUCT),
16791 new BigInteger([31], 1, CONSTRUCT),
16792 new BigInteger([32], 1, CONSTRUCT),
16793 new BigInteger([33], 1, CONSTRUCT),
16794 new BigInteger([34], 1, CONSTRUCT),
16795 new BigInteger([35], 1, CONSTRUCT),
16796 new BigInteger([36], 1, CONSTRUCT)
16797];
16798
16799// Used for parsing/radix conversion
16800BigInteger.digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
16801
16802/*
16803 Method: toString
16804 Convert a <BigInteger> to a string.
16805
16806 When *base* is greater than 10, letters are upper case.
16807
16808 Parameters:
16809
16810 base - Optional base to represent the number in (default is base 10).
16811 Must be between 2 and 36 inclusive, or an Error will be thrown.
16812
16813 Returns:
16814
16815 The string representation of the <BigInteger>.
16816*/
16817BigInteger.prototype.toString = function(base) {
16818 base = +base || 10;
16819 if (base < 2 || base > 36) {
16820 throw new Error("illegal radix " + base + ".");
16821 }
16822 if (this._s === 0) {
16823 return "0";
16824 }
16825 if (base === 10) {
16826 var str = this._s < 0 ? "-" : "";
16827 str += this._d[this._d.length - 1].toString();
16828 for (var i = this._d.length - 2; i >= 0; i--) {
16829 var group = this._d[i].toString();
16830 while (group.length < BigInteger_base_log10) group = '0' + group;
16831 str += group;
16832 }
16833 return str;
16834 }
16835 else {
16836 var numerals = BigInteger.digits;
16837 base = BigInteger.small[base];
16838 var sign = this._s;
16839
16840 var n = this.abs();
16841 var digits = [];
16842 var digit;
16843
16844 while (n._s !== 0) {
16845 var divmod = n.divRem(base);
16846 n = divmod[0];
16847 digit = divmod[1];
16848 // TODO: This could be changed to unshift instead of reversing at the end.
16849 // Benchmark both to compare speeds.
16850 digits.push(numerals[digit.valueOf()]);
16851 }
16852 return (sign < 0 ? "-" : "") + digits.reverse().join("");
16853 }
16854};
16855
16856// Verify strings for parsing
16857BigInteger.radixRegex = [
16858 /^$/,
16859 /^$/,
16860 /^[01]*$/,
16861 /^[012]*$/,
16862 /^[0-3]*$/,
16863 /^[0-4]*$/,
16864 /^[0-5]*$/,
16865 /^[0-6]*$/,
16866 /^[0-7]*$/,
16867 /^[0-8]*$/,
16868 /^[0-9]*$/,
16869 /^[0-9aA]*$/,
16870 /^[0-9abAB]*$/,
16871 /^[0-9abcABC]*$/,
16872 /^[0-9a-dA-D]*$/,
16873 /^[0-9a-eA-E]*$/,
16874 /^[0-9a-fA-F]*$/,
16875 /^[0-9a-gA-G]*$/,
16876 /^[0-9a-hA-H]*$/,
16877 /^[0-9a-iA-I]*$/,
16878 /^[0-9a-jA-J]*$/,
16879 /^[0-9a-kA-K]*$/,
16880 /^[0-9a-lA-L]*$/,
16881 /^[0-9a-mA-M]*$/,
16882 /^[0-9a-nA-N]*$/,
16883 /^[0-9a-oA-O]*$/,
16884 /^[0-9a-pA-P]*$/,
16885 /^[0-9a-qA-Q]*$/,
16886 /^[0-9a-rA-R]*$/,
16887 /^[0-9a-sA-S]*$/,
16888 /^[0-9a-tA-T]*$/,
16889 /^[0-9a-uA-U]*$/,
16890 /^[0-9a-vA-V]*$/,
16891 /^[0-9a-wA-W]*$/,
16892 /^[0-9a-xA-X]*$/,
16893 /^[0-9a-yA-Y]*$/,
16894 /^[0-9a-zA-Z]*$/
16895];
16896
16897/*
16898 Function: parse
16899 Parse a string into a <BigInteger>.
16900
16901 *base* is optional but, if provided, must be from 2 to 36 inclusive. If
16902 *base* is not provided, it will be guessed based on the leading characters
16903 of *s* as follows:
16904
16905 - "0x" or "0X": *base* = 16
16906 - "0c" or "0C": *base* = 8
16907 - "0b" or "0B": *base* = 2
16908 - else: *base* = 10
16909
16910 If no base is provided, or *base* is 10, the number can be in exponential
16911 form. For example, these are all valid:
16912
16913 > BigInteger.parse("1e9"); // Same as "1000000000"
16914 > BigInteger.parse("1.234*10^3"); // Same as 1234
16915 > BigInteger.parse("56789 * 10 ** -2"); // Same as 567
16916
16917 If any characters fall outside the range defined by the radix, an exception
16918 will be thrown.
16919
16920 Parameters:
16921
16922 s - The string to parse.
16923 base - Optional radix (default is to guess based on *s*).
16924
16925 Returns:
16926
16927 a <BigInteger> instance.
16928*/
16929BigInteger.parse = function(s, base) {
16930 // Expands a number in exponential form to decimal form.
16931 // expandExponential("-13.441*10^5") === "1344100";
16932 // expandExponential("1.12300e-1") === "0.112300";
16933 // expandExponential(1000000000000000000000000000000) === "1000000000000000000000000000000";
16934 function expandExponential(str) {
16935 str = str.replace(/\s*[*xX]\s*10\s*(\^|\*\*)\s*/, "e");
16936
16937 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
16938 c = +c;
16939 var l = c < 0;
16940 var i = n.length + c;
16941 x = (l ? n : f).length;
16942 c = ((c = Math.abs(c)) >= x ? c - x + l : 0);
16943 var z = (new Array(c + 1)).join("0");
16944 var r = n + f;
16945 return (s || "") + (l ? r = z + r : r += z).substr(0, i += l ? z.length : 0) + (i < r.length ? "." + r.substr(i) : "");
16946 });
16947 }
16948
16949 s = s.toString();
16950 if (typeof base === "undefined" || +base === 10) {
16951 s = expandExponential(s);
16952 }
16953
16954 var prefixRE;
16955 if (typeof base === "undefined") {
16956 prefixRE = '0[xcb]';
16957 }
16958 else if (base == 16) {
16959 prefixRE = '0x';
16960 }
16961 else if (base == 8) {
16962 prefixRE = '0c';
16963 }
16964 else if (base == 2) {
16965 prefixRE = '0b';
16966 }
16967 else {
16968 prefixRE = '';
16969 }
16970 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([0-9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
16971 if (parts) {
16972 var sign = parts[1] || "+";
16973 var baseSection = parts[2] || "";
16974 var digits = parts[3] || "";
16975
16976 if (typeof base === "undefined") {
16977 // Guess base
16978 if (baseSection === "0x" || baseSection === "0X") { // Hex
16979 base = 16;
16980 }
16981 else if (baseSection === "0c" || baseSection === "0C") { // Octal
16982 base = 8;
16983 }
16984 else if (baseSection === "0b" || baseSection === "0B") { // Binary
16985 base = 2;
16986 }
16987 else {
16988 base = 10;
16989 }
16990 }
16991 else if (base < 2 || base > 36) {
16992 throw new Error("Illegal radix " + base + ".");
16993 }
16994
16995 base = +base;
16996
16997 // Check for digits outside the range
16998 if (!(BigInteger.radixRegex[base].test(digits))) {
16999 throw new Error("Bad digit for radix " + base);
17000 }
17001
17002 // Strip leading zeros, and convert to array
17003 digits = digits.replace(/^0+/, "").split("");
17004 if (digits.length === 0) {
17005 return ZERO;
17006 }
17007
17008 // Get the sign (we know it's not zero)
17009 sign = (sign === "-") ? -1 : 1;
17010
17011 // Optimize 10
17012 if (base == 10) {
17013 var d = [];
17014 while (digits.length >= BigInteger_base_log10) {
17015 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''), 10));
17016 }
17017 d.push(parseInt(digits.join(''), 10));
17018 return new BigInteger(d, sign, CONSTRUCT);
17019 }
17020
17021 // Do the conversion
17022 var d = ZERO;
17023 base = BigInteger.small[base];
17024 var small = BigInteger.small;
17025 for (var i = 0; i < digits.length; i++) {
17026 d = d.multiply(base).add(small[parseInt(digits[i], 36)]);
17027 }
17028 return new BigInteger(d._d, sign, CONSTRUCT);
17029 }
17030 else {
17031 throw new Error("Invalid BigInteger format: " + s);
17032 }
17033};
17034
17035/*
17036 Function: add
17037 Add two <BigIntegers>.
17038
17039 Parameters:
17040
17041 n - The number to add to *this*. Will be converted to a <BigInteger>.
17042
17043 Returns:
17044
17045 The numbers added together.
17046
17047 See Also:
17048
17049 <subtract>, <multiply>, <quotient>, <next>
17050*/
17051BigInteger.prototype.add = function(n) {
17052 if (this._s === 0) {
17053 return BigInteger(n);
17054 }
17055
17056 n = BigInteger(n);
17057 if (n._s === 0) {
17058 return this;
17059 }
17060 if (this._s !== n._s) {
17061 n = n.negate();
17062 return this.subtract(n);
17063 }
17064
17065 var a = this._d;
17066 var b = n._d;
17067 var al = a.length;
17068 var bl = b.length;
17069 var sum = new Array(Math.max(al, bl) + 1);
17070 var size = Math.min(al, bl);
17071 var carry = 0;
17072 var digit;
17073
17074 for (var i = 0; i < size; i++) {
17075 digit = a[i] + b[i] + carry;
17076 sum[i] = digit % BigInteger_base;
17077 carry = (digit / BigInteger_base) | 0;
17078 }
17079 if (bl > al) {
17080 a = b;
17081 al = bl;
17082 }
17083 for (i = size; carry && i < al; i++) {
17084 digit = a[i] + carry;
17085 sum[i] = digit % BigInteger_base;
17086 carry = (digit / BigInteger_base) | 0;
17087 }
17088 if (carry) {
17089 sum[i] = carry;
17090 }
17091
17092 for ( ; i < al; i++) {
17093 sum[i] = a[i];
17094 }
17095
17096 return new BigInteger(sum, this._s, CONSTRUCT);
17097};
17098
17099/*
17100 Function: negate
17101 Get the additive inverse of a <BigInteger>.
17102
17103 Returns:
17104
17105 A <BigInteger> with the same magnatude, but with the opposite sign.
17106
17107 See Also:
17108
17109 <abs>
17110*/
17111BigInteger.prototype.negate = function() {
17112 return new BigInteger(this._d, (-this._s) | 0, CONSTRUCT);
17113};
17114
17115/*
17116 Function: abs
17117 Get the absolute value of a <BigInteger>.
17118
17119 Returns:
17120
17121 A <BigInteger> with the same magnatude, but always positive (or zero).
17122
17123 See Also:
17124
17125 <negate>
17126*/
17127BigInteger.prototype.abs = function() {
17128 return (this._s < 0) ? this.negate() : this;
17129};
17130
17131/*
17132 Function: subtract
17133 Subtract two <BigIntegers>.
17134
17135 Parameters:
17136
17137 n - The number to subtract from *this*. Will be converted to a <BigInteger>.
17138
17139 Returns:
17140
17141 The *n* subtracted from *this*.
17142
17143 See Also:
17144
17145 <add>, <multiply>, <quotient>, <prev>
17146*/
17147BigInteger.prototype.subtract = function(n) {
17148 if (this._s === 0) {
17149 return BigInteger(n).negate();
17150 }
17151
17152 n = BigInteger(n);
17153 if (n._s === 0) {
17154 return this;
17155 }
17156 if (this._s !== n._s) {
17157 n = n.negate();
17158 return this.add(n);
17159 }
17160
17161 var m = this;
17162 // negative - negative => -|a| - -|b| => -|a| + |b| => |b| - |a|
17163 if (this._s < 0) {
17164 m = new BigInteger(n._d, 1, CONSTRUCT);
17165 n = new BigInteger(this._d, 1, CONSTRUCT);
17166 }
17167
17168 // Both are positive => a - b
17169 var sign = m.compareAbs(n);
17170 if (sign === 0) {
17171 return ZERO;
17172 }
17173 else if (sign < 0) {
17174 // swap m and n
17175 var t = n;
17176 n = m;
17177 m = t;
17178 }
17179
17180 // a > b
17181 var a = m._d;
17182 var b = n._d;
17183 var al = a.length;
17184 var bl = b.length;
17185 var diff = new Array(al); // al >= bl since a > b
17186 var borrow = 0;
17187 var i;
17188 var digit;
17189
17190 for (i = 0; i < bl; i++) {
17191 digit = a[i] - borrow - b[i];
17192 if (digit < 0) {
17193 digit += BigInteger_base;
17194 borrow = 1;
17195 }
17196 else {
17197 borrow = 0;
17198 }
17199 diff[i] = digit;
17200 }
17201 for (i = bl; i < al; i++) {
17202 digit = a[i] - borrow;
17203 if (digit < 0) {
17204 digit += BigInteger_base;
17205 }
17206 else {
17207 diff[i++] = digit;
17208 break;
17209 }
17210 diff[i] = digit;
17211 }
17212 for ( ; i < al; i++) {
17213 diff[i] = a[i];
17214 }
17215
17216 return new BigInteger(diff, sign, CONSTRUCT);
17217};
17218
17219(function() {
17220 function addOne(n, sign) {
17221 var a = n._d;
17222 var sum = a.slice();
17223 var carry = true;
17224 var i = 0;
17225
17226 while (true) {
17227 var digit = (a[i] || 0) + 1;
17228 sum[i] = digit % BigInteger_base;
17229 if (digit <= BigInteger_base - 1) {
17230 break;
17231 }
17232 ++i;
17233 }
17234
17235 return new BigInteger(sum, sign, CONSTRUCT);
17236 }
17237
17238 function subtractOne(n, sign) {
17239 var a = n._d;
17240 var sum = a.slice();
17241 var borrow = true;
17242 var i = 0;
17243
17244 while (true) {
17245 var digit = (a[i] || 0) - 1;
17246 if (digit < 0) {
17247 sum[i] = digit + BigInteger_base;
17248 }
17249 else {
17250 sum[i] = digit;
17251 break;
17252 }
17253 ++i;
17254 }
17255
17256 return new BigInteger(sum, sign, CONSTRUCT);
17257 }
17258
17259 /*
17260 Function: next
17261 Get the next <BigInteger> (add one).
17262
17263 Returns:
17264
17265 *this* + 1.
17266
17267 See Also:
17268
17269 <add>, <prev>
17270 */
17271 BigInteger.prototype.next = function() {
17272 switch (this._s) {
17273 case 0:
17274 return ONE;
17275 case -1:
17276 return subtractOne(this, -1);
17277 // case 1:
17278 default:
17279 return addOne(this, 1);
17280 }
17281 };
17282
17283 /*
17284 Function: prev
17285 Get the previous <BigInteger> (subtract one).
17286
17287 Returns:
17288
17289 *this* - 1.
17290
17291 See Also:
17292
17293 <next>, <subtract>
17294 */
17295 BigInteger.prototype.prev = function() {
17296 switch (this._s) {
17297 case 0:
17298 return M_ONE;
17299 case -1:
17300 return addOne(this, -1);
17301 // case 1:
17302 default:
17303 return subtractOne(this, 1);
17304 }
17305 };
17306})();
17307
17308/*
17309 Function: compareAbs
17310 Compare the absolute value of two <BigIntegers>.
17311
17312 Calling <compareAbs> is faster than calling <abs> twice, then <compare>.
17313
17314 Parameters:
17315
17316 n - The number to compare to *this*. Will be converted to a <BigInteger>.
17317
17318 Returns:
17319
17320 -1, 0, or +1 if *|this|* is less than, equal to, or greater than *|n|*.
17321
17322 See Also:
17323
17324 <compare>, <abs>
17325*/
17326BigInteger.prototype.compareAbs = function(n) {
17327 if (this === n) {
17328 return 0;
17329 }
17330
17331 if (!(n instanceof BigInteger)) {
17332 if (!isFinite(n)) {
17333 return(isNaN(n) ? n : -1);
17334 }
17335 n = BigInteger(n);
17336 }
17337
17338 if (this._s === 0) {
17339 return (n._s !== 0) ? -1 : 0;
17340 }
17341 if (n._s === 0) {
17342 return 1;
17343 }
17344
17345 var l = this._d.length;
17346 var nl = n._d.length;
17347 if (l < nl) {
17348 return -1;
17349 }
17350 else if (l > nl) {
17351 return 1;
17352 }
17353
17354 var a = this._d;
17355 var b = n._d;
17356 for (var i = l-1; i >= 0; i--) {
17357 if (a[i] !== b[i]) {
17358 return a[i] < b[i] ? -1 : 1;
17359 }
17360 }
17361
17362 return 0;
17363};
17364
17365/*
17366 Function: compare
17367 Compare two <BigIntegers>.
17368
17369 Parameters:
17370
17371 n - The number to compare to *this*. Will be converted to a <BigInteger>.
17372
17373 Returns:
17374
17375 -1, 0, or +1 if *this* is less than, equal to, or greater than *n*.
17376
17377 See Also:
17378
17379 <compareAbs>, <isPositive>, <isNegative>, <isUnit>
17380*/
17381BigInteger.prototype.compare = function(n) {
17382 if (this === n) {
17383 return 0;
17384 }
17385
17386 n = BigInteger(n);
17387
17388 if (this._s === 0) {
17389 return -n._s;
17390 }
17391
17392 if (this._s === n._s) { // both positive or both negative
17393 var cmp = this.compareAbs(n);
17394 return cmp * this._s;
17395 }
17396 else {
17397 return this._s;
17398 }
17399};
17400
17401/*
17402 Function: isUnit
17403 Return true iff *this* is either 1 or -1.
17404
17405 Returns:
17406
17407 true if *this* compares equal to <BigInteger.ONE> or <BigInteger.M_ONE>.
17408
17409 See Also:
17410
17411 <isZero>, <isNegative>, <isPositive>, <compareAbs>, <compare>,
17412 <BigInteger.ONE>, <BigInteger.M_ONE>
17413*/
17414BigInteger.prototype.isUnit = function() {
17415 return this === ONE ||
17416 this === M_ONE ||
17417 (this._d.length === 1 && this._d[0] === 1);
17418};
17419
17420/*
17421 Function: multiply
17422 Multiply two <BigIntegers>.
17423
17424 Parameters:
17425
17426 n - The number to multiply *this* by. Will be converted to a
17427 <BigInteger>.
17428
17429 Returns:
17430
17431 The numbers multiplied together.
17432
17433 See Also:
17434
17435 <add>, <subtract>, <quotient>, <square>
17436*/
17437BigInteger.prototype.multiply = function(n) {
17438 // TODO: Consider adding Karatsuba multiplication for large numbers
17439 if (this._s === 0) {
17440 return ZERO;
17441 }
17442
17443 n = BigInteger(n);
17444 if (n._s === 0) {
17445 return ZERO;
17446 }
17447 if (this.isUnit()) {
17448 if (this._s < 0) {
17449 return n.negate();
17450 }
17451 return n;
17452 }
17453 if (n.isUnit()) {
17454 if (n._s < 0) {
17455 return this.negate();
17456 }
17457 return this;
17458 }
17459 if (this === n) {
17460 return this.square();
17461 }
17462
17463 var r = (this._d.length >= n._d.length);
17464 var a = (r ? this : n)._d; // a will be longer than b
17465 var b = (r ? n : this)._d;
17466 var al = a.length;
17467 var bl = b.length;
17468
17469 var pl = al + bl;
17470 var partial = new Array(pl);
17471 var i;
17472 for (i = 0; i < pl; i++) {
17473 partial[i] = 0;
17474 }
17475
17476 for (i = 0; i < bl; i++) {
17477 var carry = 0;
17478 var bi = b[i];
17479 var jlimit = al + i;
17480 var digit;
17481 for (var j = i; j < jlimit; j++) {
17482 digit = partial[j] + bi * a[j - i] + carry;
17483 carry = (digit / BigInteger_base) | 0;
17484 partial[j] = (digit % BigInteger_base) | 0;
17485 }
17486 if (carry) {
17487 digit = partial[j] + carry;
17488 carry = (digit / BigInteger_base) | 0;
17489 partial[j] = digit % BigInteger_base;
17490 }
17491 }
17492 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
17493};
17494
17495// Multiply a BigInteger by a single-digit native number
17496// Assumes that this and n are >= 0
17497// This is not really intended to be used outside the library itself
17498BigInteger.prototype.multiplySingleDigit = function(n) {
17499 if (n === 0 || this._s === 0) {
17500 return ZERO;
17501 }
17502 if (n === 1) {
17503 return this;
17504 }
17505
17506 var digit;
17507 if (this._d.length === 1) {
17508 digit = this._d[0] * n;
17509 if (digit >= BigInteger_base) {
17510 return new BigInteger([(digit % BigInteger_base)|0,
17511 (digit / BigInteger_base)|0], 1, CONSTRUCT);
17512 }
17513 return new BigInteger([digit], 1, CONSTRUCT);
17514 }
17515
17516 if (n === 2) {
17517 return this.add(this);
17518 }
17519 if (this.isUnit()) {
17520 return new BigInteger([n], 1, CONSTRUCT);
17521 }
17522
17523 var a = this._d;
17524 var al = a.length;
17525
17526 var pl = al + 1;
17527 var partial = new Array(pl);
17528 for (var i = 0; i < pl; i++) {
17529 partial[i] = 0;
17530 }
17531
17532 var carry = 0;
17533 for (var j = 0; j < al; j++) {
17534 digit = n * a[j] + carry;
17535 carry = (digit / BigInteger_base) | 0;
17536 partial[j] = (digit % BigInteger_base) | 0;
17537 }
17538 if (carry) {
17539 partial[j] = carry;
17540 }
17541
17542 return new BigInteger(partial, 1, CONSTRUCT);
17543};
17544
17545/*
17546 Function: square
17547 Multiply a <BigInteger> by itself.
17548
17549 This is slightly faster than regular multiplication, since it removes the
17550 duplicated multiplcations.
17551
17552 Returns:
17553
17554 > this.multiply(this)
17555
17556 See Also:
17557 <multiply>
17558*/
17559BigInteger.prototype.square = function() {
17560 // Normally, squaring a 10-digit number would take 100 multiplications.
17561 // Of these 10 are unique diagonals, of the remaining 90 (100-10), 45 are repeated.
17562 // This procedure saves (N*(N-1))/2 multiplications, (e.g., 45 of 100 multiplies).
17563 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
17564
17565 if (this._s === 0) {
17566 return ZERO;
17567 }
17568 if (this.isUnit()) {
17569 return ONE;
17570 }
17571
17572 var digits = this._d;
17573 var length = digits.length;
17574 var imult1 = new Array(length + length + 1);
17575 var product, carry, k;
17576 var i;
17577
17578 // Calculate diagonal
17579 for (i = 0; i < length; i++) {
17580 k = i * 2;
17581 product = digits[i] * digits[i];
17582 carry = (product / BigInteger_base) | 0;
17583 imult1[k] = product % BigInteger_base;
17584 imult1[k + 1] = carry;
17585 }
17586
17587 // Calculate repeating part
17588 for (i = 0; i < length; i++) {
17589 carry = 0;
17590 k = i * 2 + 1;
17591 for (var j = i + 1; j < length; j++, k++) {
17592 product = digits[j] * digits[i] * 2 + imult1[k] + carry;
17593 carry = (product / BigInteger_base) | 0;
17594 imult1[k] = product % BigInteger_base;
17595 }
17596 k = length + i;
17597 var digit = carry + imult1[k];
17598 carry = (digit / BigInteger_base) | 0;
17599 imult1[k] = digit % BigInteger_base;
17600 imult1[k + 1] += carry;
17601 }
17602
17603 return new BigInteger(imult1, 1, CONSTRUCT);
17604};
17605
17606/*
17607 Function: quotient
17608 Divide two <BigIntegers> and truncate towards zero.
17609
17610 <quotient> throws an exception if *n* is zero.
17611
17612 Parameters:
17613
17614 n - The number to divide *this* by. Will be converted to a <BigInteger>.
17615
17616 Returns:
17617
17618 The *this* / *n*, truncated to an integer.
17619
17620 See Also:
17621
17622 <add>, <subtract>, <multiply>, <divRem>, <remainder>
17623*/
17624BigInteger.prototype.quotient = function(n) {
17625 return this.divRem(n)[0];
17626};
17627
17628/*
17629 Function: divide
17630 Deprecated synonym for <quotient>.
17631*/
17632BigInteger.prototype.divide = BigInteger.prototype.quotient;
17633
17634/*
17635 Function: remainder
17636 Calculate the remainder of two <BigIntegers>.
17637
17638 <remainder> throws an exception if *n* is zero.
17639
17640 Parameters:
17641
17642 n - The remainder after *this* is divided *this* by *n*. Will be
17643 converted to a <BigInteger>.
17644
17645 Returns:
17646
17647 *this* % *n*.
17648
17649 See Also:
17650
17651 <divRem>, <quotient>
17652*/
17653BigInteger.prototype.remainder = function(n) {
17654 return this.divRem(n)[1];
17655};
17656
17657/*
17658 Function: divRem
17659 Calculate the integer quotient and remainder of two <BigIntegers>.
17660
17661 <divRem> throws an exception if *n* is zero.
17662
17663 Parameters:
17664
17665 n - The number to divide *this* by. Will be converted to a <BigInteger>.
17666
17667 Returns:
17668
17669 A two-element array containing the quotient and the remainder.
17670
17671 > a.divRem(b)
17672
17673 is exactly equivalent to
17674
17675 > [a.quotient(b), a.remainder(b)]
17676
17677 except it is faster, because they are calculated at the same time.
17678
17679 See Also:
17680
17681 <quotient>, <remainder>
17682*/
17683BigInteger.prototype.divRem = function(n) {
17684 n = BigInteger(n);
17685 if (n._s === 0) {
17686 throw new Error("Divide by zero");
17687 }
17688 if (this._s === 0) {
17689 return [ZERO, ZERO];
17690 }
17691 if (n._d.length === 1) {
17692 return this.divRemSmall(n._s * n._d[0]);
17693 }
17694
17695 // Test for easy cases -- |n1| <= |n2|
17696 switch (this.compareAbs(n)) {
17697 case 0: // n1 == n2
17698 return [this._s === n._s ? ONE : M_ONE, ZERO];
17699 case -1: // |n1| < |n2|
17700 return [ZERO, this];
17701 }
17702
17703 var sign = this._s * n._s;
17704 var a = n.abs();
17705 var b_digits = this._d;
17706 var b_index = b_digits.length;
17707 var digits = n._d.length;
17708 var quot = [];
17709 var guess;
17710
17711 var part = new BigInteger([], 0, CONSTRUCT);
17712
17713 while (b_index) {
17714 part._d.unshift(b_digits[--b_index]);
17715 part = new BigInteger(part._d, 1, CONSTRUCT);
17716
17717 if (part.compareAbs(n) < 0) {
17718 quot.push(0);
17719 continue;
17720 }
17721 if (part._s === 0) {
17722 guess = 0;
17723 }
17724 else {
17725 var xlen = part._d.length, ylen = a._d.length;
17726 var highx = part._d[xlen-1]*BigInteger_base + part._d[xlen-2];
17727 var highy = a._d[ylen-1]*BigInteger_base + a._d[ylen-2];
17728 if (part._d.length > a._d.length) {
17729 // The length of part._d can either match a._d length,
17730 // or exceed it by one.
17731 highx = (highx+1)*BigInteger_base;
17732 }
17733 guess = Math.ceil(highx/highy);
17734 }
17735 do {
17736 var check = a.multiplySingleDigit(guess);
17737 if (check.compareAbs(part) <= 0) {
17738 break;
17739 }
17740 guess--;
17741 } while (guess);
17742
17743 quot.push(guess);
17744 if (!guess) {
17745 continue;
17746 }
17747 var diff = part.subtract(check);
17748 part._d = diff._d.slice();
17749 }
17750
17751 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
17752 new BigInteger(part._d, this._s, CONSTRUCT)];
17753};
17754
17755// Throws an exception if n is outside of (-BigInteger.base, -1] or
17756// [1, BigInteger.base). It's not necessary to call this, since the
17757// other division functions will call it if they are able to.
17758BigInteger.prototype.divRemSmall = function(n) {
17759 var r;
17760 n = +n;
17761 if (n === 0) {
17762 throw new Error("Divide by zero");
17763 }
17764
17765 var n_s = n < 0 ? -1 : 1;
17766 var sign = this._s * n_s;
17767 n = Math.abs(n);
17768
17769 if (n < 1 || n >= BigInteger_base) {
17770 throw new Error("Argument out of range");
17771 }
17772
17773 if (this._s === 0) {
17774 return [ZERO, ZERO];
17775 }
17776
17777 if (n === 1 || n === -1) {
17778 return [(sign === 1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
17779 }
17780
17781 // 2 <= n < BigInteger_base
17782
17783 // divide a single digit by a single digit
17784 if (this._d.length === 1) {
17785 var q = new BigInteger([(this._d[0] / n) | 0], 1, CONSTRUCT);
17786 r = new BigInteger([(this._d[0] % n) | 0], 1, CONSTRUCT);
17787 if (sign < 0) {
17788 q = q.negate();
17789 }
17790 if (this._s < 0) {
17791 r = r.negate();
17792 }
17793 return [q, r];
17794 }
17795
17796 var digits = this._d.slice();
17797 var quot = new Array(digits.length);
17798 var part = 0;
17799 var diff = 0;
17800 var i = 0;
17801 var guess;
17802
17803 while (digits.length) {
17804 part = part * BigInteger_base + digits[digits.length - 1];
17805 if (part < n) {
17806 quot[i++] = 0;
17807 digits.pop();
17808 diff = BigInteger_base * diff + part;
17809 continue;
17810 }
17811 if (part === 0) {
17812 guess = 0;
17813 }
17814 else {
17815 guess = (part / n) | 0;
17816 }
17817
17818 var check = n * guess;
17819 diff = part - check;
17820 quot[i++] = guess;
17821 if (!guess) {
17822 digits.pop();
17823 continue;
17824 }
17825
17826 digits.pop();
17827 part = diff;
17828 }
17829
17830 r = new BigInteger([diff], 1, CONSTRUCT);
17831 if (this._s < 0) {
17832 r = r.negate();
17833 }
17834 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
17835};
17836
17837/*
17838 Function: isEven
17839 Return true iff *this* is divisible by two.
17840
17841 Note that <BigInteger.ZERO> is even.
17842
17843 Returns:
17844
17845 true if *this* is even, false otherwise.
17846
17847 See Also:
17848
17849 <isOdd>
17850*/
17851BigInteger.prototype.isEven = function() {
17852 var digits = this._d;
17853 return this._s === 0 || digits.length === 0 || (digits[0] % 2) === 0;
17854};
17855
17856/*
17857 Function: isOdd
17858 Return true iff *this* is not divisible by two.
17859
17860 Returns:
17861
17862 true if *this* is odd, false otherwise.
17863
17864 See Also:
17865
17866 <isEven>
17867*/
17868BigInteger.prototype.isOdd = function() {
17869 return !this.isEven();
17870};
17871
17872/*
17873 Function: sign
17874 Get the sign of a <BigInteger>.
17875
17876 Returns:
17877
17878 * -1 if *this* < 0
17879 * 0 if *this* == 0
17880 * +1 if *this* > 0
17881
17882 See Also:
17883
17884 <isZero>, <isPositive>, <isNegative>, <compare>, <BigInteger.ZERO>
17885*/
17886BigInteger.prototype.sign = function() {
17887 return this._s;
17888};
17889
17890/*
17891 Function: isPositive
17892 Return true iff *this* > 0.
17893
17894 Returns:
17895
17896 true if *this*.compare(<BigInteger.ZERO>) == 1.
17897
17898 See Also:
17899
17900 <sign>, <isZero>, <isNegative>, <isUnit>, <compare>, <BigInteger.ZERO>
17901*/
17902BigInteger.prototype.isPositive = function() {
17903 return this._s > 0;
17904};
17905
17906/*
17907 Function: isNegative
17908 Return true iff *this* < 0.
17909
17910 Returns:
17911
17912 true if *this*.compare(<BigInteger.ZERO>) == -1.
17913
17914 See Also:
17915
17916 <sign>, <isPositive>, <isZero>, <isUnit>, <compare>, <BigInteger.ZERO>
17917*/
17918BigInteger.prototype.isNegative = function() {
17919 return this._s < 0;
17920};
17921
17922/*
17923 Function: isZero
17924 Return true iff *this* == 0.
17925
17926 Returns:
17927
17928 true if *this*.compare(<BigInteger.ZERO>) == 0.
17929
17930 See Also:
17931
17932 <sign>, <isPositive>, <isNegative>, <isUnit>, <BigInteger.ZERO>
17933*/
17934BigInteger.prototype.isZero = function() {
17935 return this._s === 0;
17936};
17937
17938/*
17939 Function: exp10
17940 Multiply a <BigInteger> by a power of 10.
17941
17942 This is equivalent to, but faster than
17943
17944 > if (n >= 0) {
17945 > return this.multiply(BigInteger("1e" + n));
17946 > }
17947 > else { // n <= 0
17948 > return this.quotient(BigInteger("1e" + -n));
17949 > }
17950
17951 Parameters:
17952
17953 n - The power of 10 to multiply *this* by. *n* is converted to a
17954 javascipt number and must be no greater than <BigInteger.MAX_EXP>
17955 (0x7FFFFFFF), or an exception will be thrown.
17956
17957 Returns:
17958
17959 *this* * (10 ** *n*), truncated to an integer if necessary.
17960
17961 See Also:
17962
17963 <pow>, <multiply>
17964*/
17965BigInteger.prototype.exp10 = function(n) {
17966 n = +n;
17967 if (n === 0) {
17968 return this;
17969 }
17970 if (Math.abs(n) > Number(MAX_EXP)) {
17971 throw new Error("exponent too large in BigInteger.exp10");
17972 }
17973 // Optimization for this == 0. This also keeps us from having to trim zeros in the positive n case
17974 if (this._s === 0) {
17975 return ZERO;
17976 }
17977 if (n > 0) {
17978 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
17979
17980 for (; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {
17981 k._d.unshift(0);
17982 }
17983 if (n == 0)
17984 return k;
17985 k._s = 1;
17986 k = k.multiplySingleDigit(Math.pow(10, n));
17987 return (this._s < 0 ? k.negate() : k);
17988 } else if (-n >= this._d.length*BigInteger_base_log10) {
17989 return ZERO;
17990 } else {
17991 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
17992
17993 for (n = -n; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {
17994 k._d.shift();
17995 }
17996 return (n == 0) ? k : k.divRemSmall(Math.pow(10, n))[0];
17997 }
17998};
17999
18000/*
18001 Function: pow
18002 Raise a <BigInteger> to a power.
18003
18004 In this implementation, 0**0 is 1.
18005
18006 Parameters:
18007
18008 n - The exponent to raise *this* by. *n* must be no greater than
18009 <BigInteger.MAX_EXP> (0x7FFFFFFF), or an exception will be thrown.
18010
18011 Returns:
18012
18013 *this* raised to the *nth* power.
18014
18015 See Also:
18016
18017 <modPow>
18018*/
18019BigInteger.prototype.pow = function(n) {
18020 if (this.isUnit()) {
18021 if (this._s > 0) {
18022 return this;
18023 }
18024 else {
18025 return BigInteger(n).isOdd() ? this : this.negate();
18026 }
18027 }
18028
18029 n = BigInteger(n);
18030 if (n._s === 0) {
18031 return ONE;
18032 }
18033 else if (n._s < 0) {
18034 if (this._s === 0) {
18035 throw new Error("Divide by zero");
18036 }
18037 else {
18038 return ZERO;
18039 }
18040 }
18041 if (this._s === 0) {
18042 return ZERO;
18043 }
18044 if (n.isUnit()) {
18045 return this;
18046 }
18047
18048 if (n.compareAbs(MAX_EXP) > 0) {
18049 throw new Error("exponent too large in BigInteger.pow");
18050 }
18051 var x = this;
18052 var aux = ONE;
18053 var two = BigInteger.small[2];
18054
18055 while (n.isPositive()) {
18056 if (n.isOdd()) {
18057 aux = aux.multiply(x);
18058 if (n.isUnit()) {
18059 return aux;
18060 }
18061 }
18062 x = x.square();
18063 n = n.quotient(two);
18064 }
18065
18066 return aux;
18067};
18068
18069/*
18070 Function: modPow
18071 Raise a <BigInteger> to a power (mod m).
18072
18073 Because it is reduced by a modulus, <modPow> is not limited by
18074 <BigInteger.MAX_EXP> like <pow>.
18075
18076 Parameters:
18077
18078 exponent - The exponent to raise *this* by. Must be positive.
18079 modulus - The modulus.
18080
18081 Returns:
18082
18083 *this* ^ *exponent* (mod *modulus*).
18084
18085 See Also:
18086
18087 <pow>, <mod>
18088*/
18089BigInteger.prototype.modPow = function(exponent, modulus) {
18090 var result = ONE;
18091 var base = this;
18092
18093 while (exponent.isPositive()) {
18094 if (exponent.isOdd()) {
18095 result = result.multiply(base).remainder(modulus);
18096 }
18097
18098 exponent = exponent.quotient(BigInteger.small[2]);
18099 if (exponent.isPositive()) {
18100 base = base.square().remainder(modulus);
18101 }
18102 }
18103
18104 return result;
18105};
18106
18107/*
18108 Function: log
18109 Get the natural logarithm of a <BigInteger> as a native JavaScript number.
18110
18111 This is equivalent to
18112
18113 > Math.log(this.toJSValue())
18114
18115 but handles values outside of the native number range.
18116
18117 Returns:
18118
18119 log( *this* )
18120
18121 See Also:
18122
18123 <toJSValue>
18124*/
18125BigInteger.prototype.log = function() {
18126 switch (this._s) {
18127 case 0: return -Infinity;
18128 case -1: return NaN;
18129 default: // Fall through.
18130 }
18131
18132 var l = this._d.length;
18133
18134 if (l*BigInteger_base_log10 < 30) {
18135 return Math.log(this.valueOf());
18136 }
18137
18138 var N = Math.ceil(30/BigInteger_base_log10);
18139 var firstNdigits = this._d.slice(l - N);
18140 return Math.log((new BigInteger(firstNdigits, 1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
18141};
18142
18143/*
18144 Function: valueOf
18145 Convert a <BigInteger> to a native JavaScript integer.
18146
18147 This is called automatically by JavaScipt to convert a <BigInteger> to a
18148 native value.
18149
18150 Returns:
18151
18152 > parseInt(this.toString(), 10)
18153
18154 See Also:
18155
18156 <toString>, <toJSValue>
18157*/
18158BigInteger.prototype.valueOf = function() {
18159 return parseInt(this.toString(), 10);
18160};
18161
18162/*
18163 Function: toJSValue
18164 Convert a <BigInteger> to a native JavaScript integer.
18165
18166 This is the same as valueOf, but more explicitly named.
18167
18168 Returns:
18169
18170 > parseInt(this.toString(), 10)
18171
18172 See Also:
18173
18174 <toString>, <valueOf>
18175*/
18176BigInteger.prototype.toJSValue = function() {
18177 return parseInt(this.toString(), 10);
18178};
18179
18180var MAX_EXP = BigInteger(0x7FFFFFFF);
18181// Constant: MAX_EXP
18182// The largest exponent allowed in <pow> and <exp10> (0x7FFFFFFF or 2147483647).
18183BigInteger.MAX_EXP = MAX_EXP;
18184
18185(function() {
18186 function makeUnary(fn) {
18187 return function(a) {
18188 return fn.call(BigInteger(a));
18189 };
18190 }
18191
18192 function makeBinary(fn) {
18193 return function(a, b) {
18194 return fn.call(BigInteger(a), BigInteger(b));
18195 };
18196 }
18197
18198 function makeTrinary(fn) {
18199 return function(a, b, c) {
18200 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
18201 };
18202 }
18203
18204 (function() {
18205 var i, fn;
18206 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
18207 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
18208 var trinary = ["modPow"];
18209
18210 for (i = 0; i < unary.length; i++) {
18211 fn = unary[i];
18212 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
18213 }
18214
18215 for (i = 0; i < binary.length; i++) {
18216 fn = binary[i];
18217 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
18218 }
18219
18220 for (i = 0; i < trinary.length; i++) {
18221 fn = trinary[i];
18222 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
18223 }
18224
18225 BigInteger.exp10 = function(x, n) {
18226 return BigInteger(x).exp10(n);
18227 };
18228 })();
18229})();
18230
18231exports.BigInteger = BigInteger;
18232})(typeof exports !== 'undefined' ? exports : this);
95f04905
IC
18233</script>
18234 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.zxcvbn = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
18235var adjacency_graphs;adjacency_graphs={qwerty:{"!":["`~",null,null,"2@","qQ",null],'"':[";:","[{","]}",null,null,"/?"],"#":["2@",null,null,"4$","eE","wW"],$:["3#",null,null,"5%","rR","eE"],"%":["4$",null,null,"6^","tT","rR"],"&":["6^",null,null,"8*","uU","yY"],"'":[";:","[{","]}",null,null,"/?"],"(":["8*",null,null,"0)","oO","iI"],")":["9(",null,null,"-_","pP","oO"],"*":["7&",null,null,"9(","iI","uU"],"+":["-_",null,null,null,"]}","[{"],",":["mM","kK","lL",".>",null,null],"-":["0)",null,null,"=+","[{","pP"],".":[",<","lL",";:","/?",null,null],"/":[".>",";:","'\"",null,null,null],0:["9(",null,null,"-_","pP","oO"],1:["`~",null,null,"2@","qQ",null],2:["1!",null,null,"3#","wW","qQ"],3:["2@",null,null,"4$","eE","wW"],4:["3#",null,null,"5%","rR","eE"],5:["4$",null,null,"6^","tT","rR"],6:["5%",null,null,"7&","yY","tT"],7:["6^",null,null,"8*","uU","yY"],8:["7&",null,null,"9(","iI","uU"],9:["8*",null,null,"0)","oO","iI"],":":["lL","pP","[{","'\"","/?",".>"],";":["lL","pP","[{","'\"","/?",".>"],"<":["mM","kK","lL",".>",null,null],"=":["-_",null,null,null,"]}","[{"],">":[",<","lL",";:","/?",null,null],"?":[".>",";:","'\"",null,null,null],"@":["1!",null,null,"3#","wW","qQ"],A:[null,"qQ","wW","sS","zZ",null],B:["vV","gG","hH","nN",null,null],C:["xX","dD","fF","vV",null,null],D:["sS","eE","rR","fF","cC","xX"],E:["wW","3#","4$","rR","dD","sS"],F:["dD","rR","tT","gG","vV","cC"],G:["fF","tT","yY","hH","bB","vV"],H:["gG","yY","uU","jJ","nN","bB"],I:["uU","8*","9(","oO","kK","jJ"],J:["hH","uU","iI","kK","mM","nN"],K:["jJ","iI","oO","lL",",<","mM"],L:["kK","oO","pP",";:",".>",",<"],M:["nN","jJ","kK",",<",null,null],N:["bB","hH","jJ","mM",null,null],O:["iI","9(","0)","pP","lL","kK"],P:["oO","0)","-_","[{",";:","lL"],Q:[null,"1!","2@","wW","aA",null],R:["eE","4$","5%","tT","fF","dD"],S:["aA","wW","eE","dD","xX","zZ"],T:["rR","5%","6^","yY","gG","fF"],U:["yY","7&","8*","iI","jJ","hH"],V:["cC","fF","gG","bB",null,null],W:["qQ","2@","3#","eE","sS","aA"],X:["zZ","sS","dD","cC",null,null],Y:["tT","6^","7&","uU","hH","gG"],Z:[null,"aA","sS","xX",null,null],"[":["pP","-_","=+","]}","'\"",";:"],"\\":["]}",null,null,null,null,null],"]":["[{","=+",null,"\\|",null,"'\""],"^":["5%",null,null,"7&","yY","tT"],_:["0)",null,null,"=+","[{","pP"],"`":[null,null,null,"1!",null,null],a:[null,"qQ","wW","sS","zZ",null],b:["vV","gG","hH","nN",null,null],c:["xX","dD","fF","vV",null,null],d:["sS","eE","rR","fF","cC","xX"],e:["wW","3#","4$","rR","dD","sS"],f:["dD","rR","tT","gG","vV","cC"],g:["fF","tT","yY","hH","bB","vV"],h:["gG","yY","uU","jJ","nN","bB"],i:["uU","8*","9(","oO","kK","jJ"],j:["hH","uU","iI","kK","mM","nN"],k:["jJ","iI","oO","lL",",<","mM"],l:["kK","oO","pP",";:",".>",",<"],m:["nN","jJ","kK",",<",null,null],n:["bB","hH","jJ","mM",null,null],o:["iI","9(","0)","pP","lL","kK"],p:["oO","0)","-_","[{",";:","lL"],q:[null,"1!","2@","wW","aA",null],r:["eE","4$","5%","tT","fF","dD"],s:["aA","wW","eE","dD","xX","zZ"],t:["rR","5%","6^","yY","gG","fF"],u:["yY","7&","8*","iI","jJ","hH"],v:["cC","fF","gG","bB",null,null],w:["qQ","2@","3#","eE","sS","aA"],x:["zZ","sS","dD","cC",null,null],y:["tT","6^","7&","uU","hH","gG"],z:[null,"aA","sS","xX",null,null],"{":["pP","-_","=+","]}","'\"",";:"],"|":["]}",null,null,null,null,null],"}":["[{","=+",null,"\\|",null,"'\""],"~":[null,null,null,"1!",null,null]},dvorak:{"!":["`~",null,null,"2@","'\"",null],'"':[null,"1!","2@",",<","aA",null],"#":["2@",null,null,"4$",".>",",<"],$:["3#",null,null,"5%","pP",".>"],"%":["4$",null,null,"6^","yY","pP"],"&":["6^",null,null,"8*","gG","fF"],"'":[null,"1!","2@",",<","aA",null],"(":["8*",null,null,"0)","rR","cC"],")":["9(",null,null,"[{","lL","rR"],"*":["7&",null,null,"9(","cC","gG"],"+":["/?","]}",null,"\\|",null,"-_"],",":["'\"","2@","3#",".>","oO","aA"],"-":["sS","/?","=+",null,null,"zZ"],".":[",<","3#","4$","pP","eE","oO"],"/":["lL","[{","]}","=+","-_","sS"],0:["9(",null,null,"[{","lL","rR"],1:["`~",null,null,"2@","'\"",null],2:["1!",null,null,"3#",",<","'\""],3:["2@",null,null,"4$",".>",",<"],4:["3#",null,null,"5%","pP",".>"],5:["4$",null,null,"6^","yY","pP"],6:["5%",null,null,"7&","fF","yY"],7:["6^",null,null,"8*","gG","fF"],8:["7&",null,null,"9(","cC","gG"],9:["8*",null,null,"0)","rR","cC"],":":[null,"aA","oO","qQ",null,null],";":[null,"aA","oO","qQ",null,null],"<":["'\"","2@","3#",".>","oO","aA"],"=":["/?","]}",null,"\\|",null,"-_"],">":[",<","3#","4$","pP","eE","oO"],"?":["lL","[{","]}","=+","-_","sS"],"@":["1!",null,null,"3#",",<","'\""],A:[null,"'\"",",<","oO",";:",null],B:["xX","dD","hH","mM",null,null],C:["gG","8*","9(","rR","tT","hH"],D:["iI","fF","gG","hH","bB","xX"],E:["oO",".>","pP","uU","jJ","qQ"],F:["yY","6^","7&","gG","dD","iI"],G:["fF","7&","8*","cC","hH","dD"],H:["dD","gG","cC","tT","mM","bB"],I:["uU","yY","fF","dD","xX","kK"],J:["qQ","eE","uU","kK",null,null],K:["jJ","uU","iI","xX",null,null],L:["rR","0)","[{","/?","sS","nN"],M:["bB","hH","tT","wW",null,null],N:["tT","rR","lL","sS","vV","wW"],O:["aA",",<",".>","eE","qQ",";:"],P:[".>","4$","5%","yY","uU","eE"],Q:[";:","oO","eE","jJ",null,null],R:["cC","9(","0)","lL","nN","tT"],S:["nN","lL","/?","-_","zZ","vV"],T:["hH","cC","rR","nN","wW","mM"],U:["eE","pP","yY","iI","kK","jJ"],V:["wW","nN","sS","zZ",null,null],W:["mM","tT","nN","vV",null,null],X:["kK","iI","dD","bB",null,null],Y:["pP","5%","6^","fF","iI","uU"],Z:["vV","sS","-_",null,null,null],"[":["0)",null,null,"]}","/?","lL"],"\\":["=+",null,null,null,null,null],"]":["[{",null,null,null,"=+","/?"],"^":["5%",null,null,"7&","fF","yY"],_:["sS","/?","=+",null,null,"zZ"],"`":[null,null,null,"1!",null,null],a:[null,"'\"",",<","oO",";:",null],b:["xX","dD","hH","mM",null,null],c:["gG","8*","9(","rR","tT","hH"],d:["iI","fF","gG","hH","bB","xX"],e:["oO",".>","pP","uU","jJ","qQ"],f:["yY","6^","7&","gG","dD","iI"],g:["fF","7&","8*","cC","hH","dD"],h:["dD","gG","cC","tT","mM","bB"],i:["uU","yY","fF","dD","xX","kK"],j:["qQ","eE","uU","kK",null,null],k:["jJ","uU","iI","xX",null,null],l:["rR","0)","[{","/?","sS","nN"],m:["bB","hH","tT","wW",null,null],n:["tT","rR","lL","sS","vV","wW"],o:["aA",",<",".>","eE","qQ",";:"],p:[".>","4$","5%","yY","uU","eE"],q:[";:","oO","eE","jJ",null,null],r:["cC","9(","0)","lL","nN","tT"],s:["nN","lL","/?","-_","zZ","vV"],t:["hH","cC","rR","nN","wW","mM"],u:["eE","pP","yY","iI","kK","jJ"],v:["wW","nN","sS","zZ",null,null],w:["mM","tT","nN","vV",null,null],x:["kK","iI","dD","bB",null,null],y:["pP","5%","6^","fF","iI","uU"],z:["vV","sS","-_",null,null,null],"{":["0)",null,null,"]}","/?","lL"],"|":["=+",null,null,null,null,null],"}":["[{",null,null,null,"=+","/?"],"~":[null,null,null,"1!",null,null]},keypad:{"*":["/",null,null,null,"-","+","9","8"],"+":["9","*","-",null,null,null,null,"6"],"-":["*",null,null,null,null,null,"+","9"],".":["0","2","3",null,null,null,null,null],"/":[null,null,null,null,"*","9","8","7"],0:[null,"1","2","3",".",null,null,null],1:[null,null,"4","5","2","0",null,null],2:["1","4","5","6","3",".","0",null],3:["2","5","6",null,null,null,".","0"],4:[null,null,"7","8","5","2","1",null],5:["4","7","8","9","6","3","2","1"],6:["5","8","9","+",null,null,"3","2"],7:[null,null,null,"/","8","5","4",null],8:["7",null,"/","*","9","6","5","4"],9:["8","/","*","-","+",null,"6","5"]},mac_keypad:{"*":["/",null,null,null,null,null,"-","9"],"+":["6","9","-",null,null,null,null,"3"],"-":["9","/","*",null,null,null,"+","6"],".":["0","2","3",null,null,null,null,null],"/":["=",null,null,null,"*","-","9","8"],0:[null,"1","2","3",".",null,null,null],1:[null,null,"4","5","2","0",null,null],2:["1","4","5","6","3",".","0",null],3:["2","5","6","+",null,null,".","0"],4:[null,null,"7","8","5","2","1",null],5:["4","7","8","9","6","3","2","1"],6:["5","8","9","-","+",null,"3","2"],7:[null,null,null,"=","8","5","4",null],8:["7",null,"=","/","9","6","5","4"],9:["8","=","/","*","-","+","6","5"],"=":[null,null,null,null,"/","9","8","7"]}},module.exports=adjacency_graphs;
18236
18237},{}],2:[function(require,module,exports){
18238var feedback,scoring;scoring=require("./scoring"),feedback={default_feedback:{warning:"",suggestions:["Use a few words, avoid common phrases","No need for symbols, digits, or uppercase letters"]},get_feedback:function(e,s){var a,t,r,n,o,i;if(0===s.length)return this.default_feedback;if(e>2)return{warning:"",suggestions:[]};for(n=s[0],i=s.slice(1),t=0,r=i.length;t<r;t++)o=i[t],o.token.length>n.token.length&&(n=o);return feedback=this.get_match_feedback(n,1===s.length),a="Add another word or two. Uncommon words are better.",null!=feedback?(feedback.suggestions.unshift(a),null==feedback.warning&&(feedback.warning="")):feedback={warning:"",suggestions:[a]},feedback},get_match_feedback:function(e,s){var a,t;switch(e.pattern){case"dictionary":return this.get_dictionary_match_feedback(e,s);case"spatial":return a=e.graph.toUpperCase(),t=1===e.turns?"Straight rows of keys are easy to guess":"Short keyboard patterns are easy to guess",{warning:t,suggestions:["Use a longer keyboard pattern with more turns"]};case"repeat":return t=1===e.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',{warning:t,suggestions:["Avoid repeated words and characters"]};case"sequence":return{warning:"Sequences like abc or 6543 are easy to guess",suggestions:["Avoid sequences"]};case"regex":if("recent_year"===e.regex_name)return{warning:"Recent years are easy to guess",suggestions:["Avoid recent years","Avoid years that are associated with you"]};break;case"date":return{warning:"Dates are often easy to guess",suggestions:["Avoid dates and years that are associated with you"]}}},get_dictionary_match_feedback:function(e,s){var a,t,r,n,o;return n="passwords"===e.dictionary_name?!s||e.l33t||e.reversed?e.guesses_log10<=4?"This is similar to a commonly used password":void 0:e.rank<=10?"This is a top-10 common password":e.rank<=100?"This is a top-100 common password":"This is a very common password":"english"===e.dictionary_name?s?"A word by itself is easy to guess":void 0:"surnames"===(a=e.dictionary_name)||"male_names"===a||"female_names"===a?s?"Names and surnames by themselves are easy to guess":"Common names and surnames are easy to guess":"",r=[],o=e.token,o.match(scoring.START_UPPER)?r.push("Capitalization doesn't help very much"):o.match(scoring.ALL_UPPER)&&o.toLowerCase()!==o&&r.push("All-uppercase is almost as easy to guess as all-lowercase"),e.reversed&&e.token.length>=4&&r.push("Reversed words aren't much harder to guess"),e.l33t&&r.push("Predictable substitutions like '@' instead of 'a' don't help very much"),t={warning:n,suggestions:r}}},module.exports=feedback;
18239
18240},{"./scoring":6}],3:[function(require,module,exports){
18241var frequency_lists;frequency_lists={passwords:"123456,password,12345678,qwerty,123456789,12345,1234,111111,1234567,dragon,123123,baseball,abc123,football,monkey,letmein,shadow,master,696969,mustang,666666,qwertyuiop,123321,1234567890,pussy,superman,654321,1qaz2wsx,7777777,fuckyou,qazwsx,jordan,123qwe,000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,112233,zxcvbn,freedom,princess,maggie,pass,ginger,11111111,131313,fuck,love,cheese,159753,summer,chelsea,dallas,biteme,matrix,yankees,6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,12344321,blowjob,8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,123abc,slipknot,qazxsw,123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,1q2w3e4r5t,sydney,gators,dexter,red123,123456q,12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,5150,fucking,apollo,1qazxsw2,2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,01012011,girls,bigboy,102030,animal,police,online,11223344,voyager,lifehack,12qwaszx,fish,sniper,315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,010203,lizard,a123456,123456789a,ruslan,eagle,1232323q,scarface,qwerty12,147852,a12345,buddha,porno,420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,123789,infinity,assman,bulldogs,fantasy,sucker,1234554321,horney,domino,budlight,disney,ironman,usuckballz1,softball,brutus,redrum,bigred,mnbvcxz,fktrcfylh,karina,marines,digger,kawasaki,cougar,fireman,oksana,monday,cunt,justice,nigger,super,wildcats,tinker,logitech,dancer,swordfis,avalon,everton,alexandr,motorola,patriots,hentai,madonna,pussy1,ducati,colorado,connor,juventus,galore,smooth,freeuser,warcraft,boogie,titanic,wolverin,elizabet,arizona,valentin,saints,asdfg,accord,test123,password123,christ,yfnfif,stinky,slut,spiderma,naughty,chopper,hello123,ncc1701d,extreme,skyline,poop,zombie,pearljam,123qweasd,froggy,awesome,vision,pirate,fylhtq,dreamer,bullet,predator,empire,123123a,kirill,charlie1,panthers,penis,skipper,nemesis,rasdzv3,peekaboo,rolltide,cardinal,psycho,danger,mookie,happy1,wanker,chevelle,manutd,goblue,9379992,hobbes,vegeta,fyfcnfcbz,852456,picard,159951,windows,loverboy,victory,vfrcbv,bambam,serega,123654789,turkey,tweety,galina,hiphop,rooster,changeme,berlin,taurus,suckme,polina,electric,avatar,134679,maksim,raptor,alpha1,hendrix,newport,bigcock,brazil,spring,a1b2c3,madmax,alpha,britney,sublime,darkside,bigman,wolfpack,classic,hercules,ronaldo,letmein1,1q2w3e,741852963,spiderman,blizzard,123456789q,cheyenne,cjkysirj,tiger1,wombat,bubba1,pandora,zxc123,holiday,wildcat,devils,horse,alabama,147852369,caesar,12312,buddy1,bondage,pussycat,pickle,shaggy,catch22,leather,chronic,a1b2c3d4,admin,qqq111,qaz123,airplane,kodiak,freepass,billybob,sunset,katana,phpbb,chocolat,snowman,angel1,stingray,firebird,wolves,zeppelin,detroit,pontiac,gundam,panzer,vagina,outlaw,redhead,tarheels,greenday,nastya,01011980,hardon,engineer,dragon1,hellfire,serenity,cobra,fireball,lickme,darkstar,1029384756,01011,mustang1,flash,124578,strike,beauty,pavilion,01012000,bobafett,dbrnjhbz,bigmac,bowling,chris1,ytrewq,natali,pyramid,rulez,welcome1,dodgers,apache,swimming,whynot,teens,trooper,fuckit,defender,precious,135790,packard,weasel,popeye,lucifer,cancer,icecream,142536,raven,swordfish,presario,viktor,rockstar,blonde,james1,wutang,spike,pimp,atlanta,airforce,thailand,casino,lennon,mouse,741852,hacker,bluebird,hawkeye,456123,theone,catfish,sailor,goldfish,nfnmzyf,tattoo,pervert,barbie,maxima,nipples,machine,trucks,wrangler,rocks,tornado,lights,cadillac,bubble,pegasus,madman,longhorn,browns,target,666999,eatme,qazwsx123,microsoft,dilbert,christia,baller,lesbian,shooter,xfiles,seattle,qazqaz,cthutq,amateur,prelude,corona,freaky,malibu,123qweasdzxc,assassin,246810,atlantis,integra,pussies,iloveu,lonewolf,dragons,monkey1,unicorn,software,bobcat,stealth,peewee,openup,753951,srinivas,zaqwsx,valentina,shotgun,trigger,veronika,bruins,coyote,babydoll,joker,dollar,lestat,rocky1,hottie,random,butterfly,wordpass,smiley,sweety,snake,chipper,woody,samurai,devildog,gizmo,maddie,soso123aljg,mistress,freedom1,flipper,express,hjvfirf,moose,cessna,piglet,polaris,teacher,montreal,cookies,wolfgang,scully,fatboy,wicked,balls,tickle,bunny,dfvgbh,foobar,transam,pepsi,fetish,oicu812,basketba,toshiba,hotstuff,sunday,booty,gambit,31415926,impala,stephani,jessica1,hooker,lancer,knicks,shamrock,fuckyou2,stinger,314159,redneck,deftones,squirt,siemens,blaster,trucker,subaru,renegade,ibanez,manson,swinger,reaper,blondie,mylove,galaxy,blahblah,enterpri,travel,1234abcd,babylon5,indiana,skeeter,master1,sugar,ficken,smoke,bigone,sweetpea,fucked,trfnthbyf,marino,escort,smitty,bigfoot,babes,larisa,trumpet,spartan,valera,babylon,asdfghj,yankees1,bigboobs,stormy,mister,hamlet,aardvark,butterfl,marathon,paladin,cavalier,manchester,skater,indigo,hornet,buckeyes,01011990,indians,karate,hesoyam,toronto,diamonds,chiefs,buckeye,1qaz2wsx3edc,highland,hotsex,charger,redman,passwor,maiden,drpepper,storm,pornstar,garden,12345678910,pencil,sherlock,timber,thuglife,insane,pizza,jungle,jesus1,aragorn,1a2b3c,hamster,david1,triumph,techno,lollol,pioneer,catdog,321654,fktrctq,morpheus,141627,pascal,shadow1,hobbit,wetpussy,erotic,consumer,blabla,justme,stones,chrissy,spartak,goforit,burger,pitbull,adgjmptw,italia,barcelona,hunting,colors,kissme,virgin,overlord,pebbles,sundance,emerald,doggy,racecar,irina,element,1478963,zipper,alpine,basket,goddess,poison,nipple,sakura,chichi,huskers,13579,pussys,q12345,ultimate,ncc1701e,blackie,nicola,rommel,matthew1,caserta,omega,geronimo,sammy1,trojan,123qwe123,philips,nugget,tarzan,chicks,aleksandr,bassman,trixie,portugal,anakin,dodger,bomber,superfly,madness,q1w2e3r4t5y6,loser,123asd,fatcat,ybrbnf,soldier,warlock,wrinkle1,desire,sexual,babe,seminole,alejandr,951753,11235813,westham,andrei,concrete,access14,weed,letmein2,ladybug,naked,christop,trombone,tintin,bluesky,rhbcnbyf,qazxswedc,onelove,cdtnkfyf,whore,vfvjxrf,titans,stallion,truck,hansolo,blue22,smiles,beagle,panama,kingkong,flatron,inferno,mongoose,connect,poiuyt,snatch,qawsed,juice,blessed,rocker,snakes,turbo,bluemoon,sex4me,finger,jamaica,a1234567,mulder,beetle,fuckyou1,passat,immortal,plastic,123454321,anthony1,whiskey,dietcoke,suck,spunky,magic1,monitor,cactus,exigen,planet,ripper,teen,spyder,apple1,nolimit,hollywoo,sluts,sticky,trunks,1234321,14789632,pickles,sailing,bonehead,ghbdtnbr,delta,charlott,rubber,911911,112358,molly1,yomama,hongkong,jumper,william1,ilovesex,faster,unreal,cumming,memphis,1123581321,nylons,legion,sebastia,shalom,pentium,geheim,werewolf,funtime,ferret,orion,curious,555666,niners,cantona,sprite,philly,pirates,abgrtyu,lollipop,eternity,boeing,super123,sweets,cooldude,tottenha,green1,jackoff,stocking,7895123,moomoo,martini,biscuit,drizzt,colt45,fossil,makaveli,snapper,satan666,maniac,salmon,patriot,verbatim,nasty,shasta,asdzxc,shaved,blackcat,raistlin,qwerty12345,punkrock,cjkywt,01012010,4128,waterloo,crimson,twister,oxford,musicman,seinfeld,biggie,condor,ravens,megadeth,wolfman,cosmos,sharks,banshee,keeper,foxtrot,gn56gn56,skywalke,velvet,black1,sesame,dogs,squirrel,privet,sunrise,wolverine,sucks,legolas,grendel,ghost,cats,carrot,frosty,lvbnhbq,blades,stardust,frog,qazwsxed,121314,coolio,brownie,groovy,twilight,daytona,vanhalen,pikachu,peanuts,licker,hershey,jericho,intrepid,ninja,1234567a,zaq123,lobster,goblin,punisher,strider,shogun,kansas,amadeus,seven7,jason1,neptune,showtime,muscle,oldman,ekaterina,rfrfirf,getsome,showme,111222333,obiwan,skittles,danni,tanker,maestro,tarheel,anubis,hannibal,anal,newlife,gothic,shark,fighter,blue123,blues,123456z,princes,slick,chaos,thunder1,sabine,1q2w3e4r5t6y,python,test1,mirage,devil,clover,tequila,chelsea1,surfing,delete,potato,chubby,panasonic,sandiego,portland,baggins,fusion,sooners,blackdog,buttons,californ,moscow,playtime,mature,1a2b3c4d,dagger,dima,stimpy,asdf123,gangster,warriors,iverson,chargers,byteme,swallow,liquid,lucky7,dingdong,nymets,cracker,mushroom,456852,crusader,bigguy,miami,dkflbvbh,bugger,nimrod,tazman,stranger,newpass,doodle,powder,gotcha,guardian,dublin,slapshot,septembe,147896325,pepsi1,milano,grizzly,woody1,knights,photos,2468,nookie,charly,rammstein,brasil,123321123,scruffy,munchkin,poopie,123098,kittycat,latino,walnut,1701,thegame,viper1,1passwor,kolobok,picasso,robert1,barcelon,bananas,trance,auburn,coltrane,eatshit,goodluck,starcraft,wheels,parrot,postal,blade,wisdom,pink,gorilla,katerina,pass123,andrew1,shaney14,dumbass,osiris,fuck_inside,oakland,discover,ranger1,spanking,lonestar,bingo,meridian,ping,heather1,dookie,stonecol,megaman,192837465,rjntyjr,ledzep,lowrider,25802580,richard1,firefly,griffey,racerx,paradox,ghjcnj,gangsta,zaq1xsw2,tacobell,weezer,sirius,halflife,buffett,shiloh,123698745,vertigo,sergei,aliens,sobaka,keyboard,kangaroo,sinner,soccer1,0.0.000,bonjour,socrates,chucky,hotboy,sprint,0007,sarah1,scarlet,celica,shazam,formula1,sommer,trebor,qwerasdf,jeep,mailcreated5240,bollox,asshole1,fuckface,honda1,rebels,vacation,lexmark,penguins,12369874,ragnarok,formula,258456,tempest,vfhecz,tacoma,qwertz,colombia,flames,rockon,duck,prodigy,wookie,dodgeram,mustangs,123qaz,sithlord,smoker,server,bang,incubus,scoobydo,oblivion,molson,kitkat,titleist,rescue,zxcv1234,carpet,1122,bigballs,tardis,jimbob,xanadu,blueeyes,shaman,mersedes,pooper,pussy69,golfing,hearts,mallard,12312312,kenwood,patrick1,dogg,cowboys1,oracle,123zxc,nuttertools,102938,topper,1122334455,shemale,sleepy,gremlin,yourmom,123987,gateway1,printer,monkeys,peterpan,mikey,kingston,cooler,analsex,jimbo,pa55word,asterix,freckles,birdman,frank1,defiant,aussie,stud,blondes,tatyana,445566,aspirine,mariners,jackal,deadhead,katrin,anime,rootbeer,frogger,polo,scooter1,hallo,noodles,thomas1,parola,shaolin,celine,11112222,plymouth,creampie,justdoit,ohyeah,fatass,assfuck,amazon,1234567q,kisses,magnus,camel,nopass,bosco,987456,6751520,harley1,putter,champs,massive,spidey,lightnin,camelot,letsgo,gizmodo,aezakmi,bones,caliente,12121,goodtime,thankyou,raiders1,brucelee,redalert,aquarius,456654,catherin,smokin,pooh,mypass,astros,roller,porkchop,sapphire,qwert123,kevin1,a1s2d3f4,beckham,atomic,rusty1,vanilla,qazwsxedcrfv,hunter1,kaktus,cxfcnmt,blacky,753159,elvis1,aggies,blackjac,bangkok,scream,123321q,iforgot,power1,kasper,abc12,buster1,slappy,shitty,veritas,chevrole,amber1,01012001,vader,amsterdam,jammer,primus,spectrum,eduard,granny,horny1,sasha1,clancy,usa123,satan,diamond1,hitler,avenger,1221,spankme,123456qwerty,simba,smudge,scrappy,labrador,john316,syracuse,front242,falcons,husker,candyman,commando,gator,pacman,delta1,pancho,krishna,fatman,clitoris,pineappl,lesbians,8j4ye3uz,barkley,vulcan,punkin,boner,celtics,monopoly,flyboy,romashka,hamburg,123456aa,lick,gangbang,223344,area51,spartans,aaa111,tricky,snuggles,drago,homerun,vectra,homer1,hermes,topcat,cuddles,infiniti,1234567890q,cosworth,goose,phoenix1,killer1,ivanov,bossman,qawsedrf,peugeot,exigent,doberman,durango,brandon1,plumber,telefon,horndog,laguna,rbhbkk,dawg,webmaster,breeze,beast,porsche9,beefcake,leopard,redbull,oscar1,topdog,godsmack,theking,pics,omega1,speaker,viktoria,fuckers,bowler,starbuck,gjkbyf,valhalla,anarchy,blacks,herbie,kingpin,starfish,nokia,loveit,achilles,906090,labtec,ncc1701a,fitness,jordan1,brando,arsenal1,bull,kicker,napass,desert,sailboat,bohica,tractor,hidden,muppet,jackson1,jimmy1,terminator,phillies,pa55w0rd,terror,farside,swingers,legacy,frontier,butthole,doughboy,jrcfyf,tuesday,sabbath,daniel1,nebraska,homers,qwertyuio,azamat,fallen,agent007,striker,camels,iguana,looker,pinkfloy,moloko,qwerty123456,dannyboy,luckydog,789654,pistol,whocares,charmed,skiing,select,franky,puppy,daniil,vladik,vette,vfrcbvrf,ihateyou,nevada,moneys,vkontakte,mandingo,puppies,666777,mystic,zidane,kotenok,dilligaf,budman,bunghole,zvezda,123457,triton,golfball,technics,trojans,panda,laptop,rookie,01011991,15426378,aberdeen,gustav,jethro,enterprise,igor,stripper,filter,hurrican,rfnthbyf,lespaul,gizmo1,butch,132435,dthjybrf,1366613,excalibu,963852,nofear,momoney,possum,cutter,oilers,moocow,cupcake,gbpltw,batman1,splash,svetik,super1,soleil,bogdan,melissa1,vipers,babyboy,tdutybq,lancelot,ccbill,keystone,passwort,flamingo,firefox,dogman,vortex,rebel,noodle,raven1,zaphod,killme,pokemon1,coolman,danila,designer,skinny,kamikaze,deadman,gopher,doobie,warhammer,deeznuts,freaks,engage,chevy1,steve1,apollo13,poncho,hammers,azsxdc,dracula,000007,sassy,bitch1,boots,deskjet,12332,macdaddy,mighty,rangers1,manchest,sterlin,casey1,meatball,mailman,sinatra,cthulhu,summer1,bubbas,cartoon,bicycle,eatpussy,truelove,sentinel,tolkien,breast,capone,lickit,summit,123456k,peter1,daisy1,kitty1,123456789z,crazy1,jamesbon,texas1,sexygirl,362436,sonic,billyboy,redhot,microsof,microlab,daddy1,rockets,iloveyo,fernand,gordon24,danie,cutlass,polska,star69,titties,pantyhos,01011985,thekid,aikido,gofish,mayday,1234qwe,coke,anfield,sony,lansing,smut,scotch,sexx,catman,73501505,hustler,saun,dfkthbz,passwor1,jenny1,azsxdcfv,cheers,irish1,gabrie,tinman,orioles,1225,charlton,fortuna,01011970,airbus,rustam,xtreme,bigmoney,zxcasd,retard,grumpy,huskies,boxing,4runner,kelly1,ultima,warlord,fordf150,oranges,rotten,asdfjkl,superstar,denali,sultan,bikini,saratoga,thor,figaro,sixers,wildfire,vladislav,128500,sparta,mayhem,greenbay,chewie,music1,number1,cancun,fabie,mellon,poiuytrewq,cloud9,crunch,bigtime,chicken1,piccolo,bigbird,321654987,billy1,mojo,01011981,maradona,sandro,chester1,bizkit,rjirfrgbde,789123,rightnow,jasmine1,hyperion,treasure,meatloaf,armani,rovers,jarhead,01011986,cruise,coconut,dragoon,utopia,davids,cosmo,rfhbyf,reebok,1066,charli,giorgi,sticks,sayang,pass1234,exodus,anaconda,zaqxsw,illini,woofwoof,emily1,sandy1,packer,poontang,govols,jedi,tomato,beaner,cooter,creamy,lionking,happy123,albatros,poodle,kenworth,dinosaur,greens,goku,happyday,eeyore,tsunami,cabbage,holyshit,turkey50,memorex,chaser,bogart,orgasm,tommy1,volley,whisper,knopka,ericsson,walleye,321123,pepper1,katie1,chickens,tyler1,corrado,twisted,100000,zorro,clemson,zxcasdqwe,tootsie,milana,zenith,fktrcfylhf,shania,frisco,polniypizdec0211,crazybab,junebug,fugazi,rereirf,vfvekz,1001,sausage,vfczyz,koshka,clapton,justin1,anhyeuem,condom,fubar,hardrock,skywalker,tundra,cocks,gringo,150781,canon,vitalik,aspire,stocks,samsung1,applepie,abc12345,arjay,gandalf1,boob,pillow,sparkle,gmoney,rockhard,lucky13,samiam,everest,hellyeah,bigsexy,skorpion,rfrnec,hedgehog,australi,candle,slacker,dicks,voyeur,jazzman,america1,bobby1,br0d3r,wolfie,vfksirf,1qa2ws3ed,13243546,fright,yosemite,temp,karolina,fart,barsik,surf,cheetah,baddog,deniska,starship,bootie,milena,hithere,kume,greatone,dildo,50cent,0.0.0.000,albion,amanda1,midget,lion,maxell,football1,cyclone,freeporn,nikola,bonsai,kenshin,slider,balloon,roadkill,killbill,222333,jerkoff,78945612,dinamo,tekken,rambler,goliath,cinnamon,malaka,backdoor,fiesta,packers1,rastaman,fletch,sojdlg123aljg,stefano,artemis,calico,nyjets,damnit,robotech,duchess,rctybz,hooter,keywest,18436572,hal9000,mechanic,pingpong,operator,presto,sword,rasputin,spank,bristol,faggot,shado,963852741,amsterda,321456,wibble,carrera,alibaba,majestic,ramses,duster,route66,trident,clipper,steeler,wrestlin,divine,kipper,gotohell,kingfish,snake1,passwords,buttman,pompey,viagra,zxcvbnm1,spurs,332211,slutty,lineage2,oleg,macross,pooter,brian1,qwert1,charles1,slave,jokers,yzerman,swimmer,ne1469,nwo4life,solnce,seamus,lolipop,pupsik,moose1,ivanova,secret1,matador,love69,420247,ktyjxrf,subway,cinder,vermont,pussie,chico,florian,magick,guiness,allsop,ghetto,flash1,a123456789,typhoon,dfkthf,depeche,skydive,dammit,seeker,fuckthis,crysis,kcj9wx5n,umbrella,r2d2c3po,123123q,snoopdog,critter,theboss,ding,162534,splinter,kinky,cyclops,jayhawk,456321,caramel,qwer123,underdog,caveman,onlyme,grapes,feather,hotshot,fuckher,renault,george1,sex123,pippen,000001,789987,floppy,cunts,megapass,1000,pornos,usmc,kickass,great1,quattro,135246,wassup,helloo,p0015123,nicole1,chivas,shannon1,bullseye,java,fishes,blackhaw,jamesbond,tunafish,juggalo,dkflbckfd,123789456,dallas1,translator,122333,beanie,alucard,gfhjkm123,supersta,magicman,ashley1,cohiba,xbox360,caligula,12131415,facial,7753191,dfktynbyf,cobra1,cigars,fang,klingon,bob123,safari,looser,10203,deepthroat,malina,200000,tazmania,gonzo,goalie,jacob1,monaco,cruiser,misfit,vh5150,tommyboy,marino13,yousuck,sharky,vfhufhbnf,horizon,absolut,brighton,123456r,death1,kungfu,maxx,forfun,mamapapa,enter1,budweise,banker,getmoney,kostya,qazwsx12,bigbear,vector,fallout,nudist,gunners,royals,chainsaw,scania,trader,blueboy,walrus,eastside,kahuna,qwerty1234,love123,steph,01011989,cypress,champ,undertaker,ybrjkfq,europa,snowboar,sabres,moneyman,chrisbln,minime,nipper,groucho,whitey,viewsonic,penthous,wolf359,fabric,flounder,coolguy,whitesox,passme,smegma,skidoo,thanatos,fucku2,snapple,dalejr,mondeo,thesims,mybaby,panasoni,sinbad,thecat,topher,frodo,sneakers,q123456,z1x2c3,alfa,chicago1,taylor1,ghjcnjnfr,cat123,olivier,cyber,titanium,0420,madison1,jabroni,dang,hambone,intruder,holly1,gargoyle,sadie1,static,poseidon,studly,newcastl,sexxxx,poppy,johannes,danzig,beastie,musica,buckshot,sunnyday,adonis,bluedog,bonkers,2128506,chrono,compute,spawn,01011988,turbo1,smelly,wapbbs,goldstar,ferrari1,778899,quantum,pisces,boomboom,gunnar,1024,test1234,florida1,nike,superman1,multiplelo,custom,motherlode,1qwerty,westwood,usnavy,apple123,daewoo,korn,stereo,sasuke,sunflowe,watcher,dharma,555777,mouse1,assholes,babyblue,123qwerty,marius,walmart,snoop,starfire,tigger1,paintbal,knickers,aaliyah,lokomotiv,theend,winston1,sapper,rover,erotica,scanner,racer,zeus,sexy69,doogie,bayern,joshua1,newbie,scott1,losers,droopy,outkast,martin1,dodge1,wasser,ufkbyf,rjycnfynby,thirteen,12345z,112211,hotred,deejay,hotpussy,192837,jessic,philippe,scout,panther1,cubbies,havefun,magpie,fghtkm,avalanch,newyork1,pudding,leonid,harry1,cbr600,audia4,bimmer,fucku,01011984,idontknow,vfvfgfgf,1357,aleksey,builder,01011987,zerocool,godfather,mylife,donuts,allmine,redfish,777888,sascha,nitram,bounce,333666,smokes,1x2zkg8w,rodman,stunner,zxasqw12,hoosier,hairy,beretta,insert,123456s,rtyuehe,francesc,tights,cheese1,micron,quartz,hockey1,gegcbr,searay,jewels,bogey,paintball,celeron,padres,bing,syncmaster,ziggy,simon1,beaches,prissy,diehard,orange1,mittens,aleksandra,queens,02071986,biggles,thongs,southpark,artur,twinkle,gretzky,rabota,cambiami,monalisa,gollum,chuckles,spike1,gladiator,whisky,spongebob,sexy1,03082006,mazafaka,meathead,4121,ou8122,barefoot,12345678q,cfitymrf,bigass,a1s2d3,kosmos,blessing,titty,clevelan,terrapin,ginger1,johnboy,maggot,clarinet,deeznutz,336699,stumpy,stoney,footbal,traveler,volvo,bucket,snapon,pianoman,hawkeyes,futbol,casanova,tango,goodboy,scuba,honey1,sexyman,warthog,mustard,abc1234,nickel,10203040,meowmeow,1012,boricua,prophet,sauron,12qwas,reefer,andromeda,crystal1,joker1,90210,goofy,loco,lovesex,triangle,whatsup,mellow,bengals,monster1,maste,01011910,lover1,love1,123aaa,sunshin,smeghead,hokies,sting,welder,rambo,cerberus,bunny1,rockford,monke,1q2w3e4r5,goldwing,gabriell,buzzard,crjhgbjy,james007,rainman,groove,tiberius,purdue,nokia6300,hayabusa,shou,jagger,diver,zigzag,poochie,usarmy,phish,redwood,redwing,12345679,salamander,silver1,abcd123,sputnik,boobie,ripple,eternal,12qw34er,thegreat,allstar,slinky,gesperrt,mishka,whiskers,pinhead,overkill,sweet1,rhfcjnrf,montgom240,sersolution,jamie1,starman,proxy,swords,nikolay,bacardi,rasta,badgirl,rebecca1,wildman,penny1,spaceman,1007,10101,logan1,hacked,bulldog1,helmet,windsor,buffy1,runescape,trapper,123451,banane,dbrnjh,ripken,12345qwe,frisky,shun,fester,oasis,lightning,ib6ub9,cicero,kool,pony,thedog,784512,01011992,megatron,illusion,edward1,napster,11223,squash,roadking,woohoo,19411945,hoosiers,01091989,tracker,bagira,midway,leavemealone,br549,14725836,235689,menace,rachel1,feng,laser,stoned,realmadrid,787898,balloons,tinkerbell,5551212,maria1,pobeda,heineken,sonics,moonlight,optimus,comet,orchid,02071982,jaybird,kashmir,12345678a,chuang,chunky,peach,mortgage,rulezzz,saleen,chuckie,zippy,fishing1,gsxr750,doghouse,maxim,reader,shai,buddah,benfica,chou,salomon,meister,eraser,blackbir,bigmike,starter,pissing,angus,deluxe,eagles1,hardcock,135792468,mian,seahawks,godfathe,bookworm,gregor,intel,talisman,blackjack,babyface,hawaiian,dogfood,zhong,01011975,sancho,ludmila,medusa,mortimer,123456654321,roadrunn,just4me,stalin,01011993,handyman,alphabet,pizzas,calgary,clouds,password2,cgfhnfr,f**k,cubswin,gong,lexus,max123,xxx123,digital1,gfhjkm1,7779311,missy1,michae,beautifu,gator1,1005,pacers,buddie,chinook,heckfy,dutchess,sally1,breasts,beowulf,darkman,jenn,tiffany1,zhei,quan,qazwsx1,satana,shang,idontkno,smiths,puddin,nasty1,teddybea,valkyrie,passwd,chao,boxster,killers,yoda,cheater,inuyasha,beast1,wareagle,foryou,dragonball,mermaid,bhbirf,teddy1,dolphin1,misty1,delphi,gromit,sponge,qazzaq,fytxrf,gameover,diao,sergi,beamer,beemer,kittykat,rancid,manowar,adam12,diggler,assword,austin1,wishbone,gonavy,sparky1,fisting,thedude,sinister,1213,venera,novell,salsero,jayden,fuckoff1,linda1,vedder,02021987,1pussy,redline,lust,jktymrf,02011985,dfcbkbq,dragon12,chrome,gamecube,titten,cong,bella1,leng,02081988,eureka,bitchass,147369,banner,lakota,123321a,mustafa,preacher,hotbox,02041986,z1x2c3v4,playstation,01011977,claymore,electra,checkers,zheng,qing,armagedon,02051986,wrestle,svoboda,bulls,nimbus,alenka,madina,newpass6,onetime,aa123456,bartman,02091987,silverad,electron,12345t,devil666,oliver1,skylar,rhtdtlrj,gobucks,johann,12011987,milkman,02101985,camper,thunderb,bigbutt,jammin,davide,cheeks,goaway,lighter,claudi,thumbs,pissoff,ghostrider,cocaine,teng,squall,lotus,hootie,blackout,doitnow,subzero,02031986,marine1,02021988,pothead,123456qw,skate,1369,peng,antoni,neng,miao,bcfields,1492,marika,794613,musashi,tulips,nong,piao,chai,ruan,southpar,02061985,nude,mandarin,654123,ninjas,cannabis,jetski,xerxes,zhuang,kleopatra,dickie,bilbo,pinky,morgan1,1020,1017,dieter,baseball1,tottenham,quest,yfnfkmz,dirtbike,1234567890a,mango,jackson5,ipswich,iamgod,02011987,tdutybz,modena,qiao,slippery,qweasd123,bluefish,samtron,toon,111333,iscool,02091986,petrov,fuzzy,zhou,1357924680,mollydog,deng,02021986,1236987,pheonix,zhun,ghblehjr,othello,starcraf,000111,sanfran,a11111,cameltoe,badman,vasilisa,jiang,1qaz2ws,luan,sveta,12qw12,akira,chuai,369963,cheech,beatle,pickup,paloma,01011983,caravan,elizaveta,gawker,banzai,pussey,mullet,seng,bingo1,bearcat,flexible,farscape,borussia,zhuai,templar,guitar1,toolman,yfcntymrf,chloe1,xiang,slave1,guai,nuggets,02081984,mantis,slim,scorpio1,fyutkbyf,thedoors,02081987,02061986,123qq123,zappa,fergie,7ugd5hip2j,huai,asdfzxcv,sunflower,pussyman,deadpool,bigtit,01011982,love12,lassie,skyler,gatorade,carpedie,jockey,mancity,spectre,02021984,cameron1,artemka,reng,02031984,iomega,jing,moritz,spice,rhino,spinner,heater,zhai,hover,talon,grease,qiong,corleone,ltybcrf,tian,cowboy1,hippie,chimera,ting,alex123,02021985,mickey1,corsair,sonoma,aaron1,xxxpass,bacchus,webmaste,chuo,xyz123,chrysler,spurs1,artem,shei,cosmic,01020304,deutsch,gabriel1,123455,oceans,987456321,binladen,latinas,a12345678,speedo,buttercu,02081989,21031988,merlot,millwall,ceng,kotaku,jiong,dragonba,2580,stonecold,snuffy,01011999,02011986,hellos,blaze,maggie1,slapper,istanbul,bonjovi,babylove,mazda,bullfrog,phoeni,meng,porsche1,nomore,02061989,bobdylan,capslock,orion1,zaraza,teddybear,ntktajy,myname,rong,wraith,mets,niao,02041984,smokie,chevrolet,dialog,gfhjkmgfhjkm,dotcom,vadim,monarch,athlon,mikey1,hamish,pian,liang,coolness,chui,thoma,ramones,ciccio,chippy,eddie1,house1,ning,marker,cougars,jackpot,barbados,reds,pdtplf,knockers,cobalt,amateurs,dipshit,napoli,kilroy,pulsar,jayhawks,daemon,alexey,weng,shuang,9293709b13,shiner,eldorado,soulmate,mclaren,golfer1,andromed,duan,50spanks,sexyboy,dogshit,02021983,shuo,kakashka,syzygy,111111a,yeahbaby,qiang,netscape,fulham,120676,gooner,zhui,rainbow6,laurent,dog123,halifax,freeway,carlitos,147963,eastwood,microphone,monkey12,1123,persik,coldbeer,geng,nuan,danny1,fgtkmcby,entropy,gadget,just4fun,sophi,baggio,carlito,1234567891,02021989,02041983,specialk,piramida,suan,bigblue,salasana,hopeful,mephisto,bailey1,hack,annie1,generic,violetta,spencer1,arcadia,02051983,hondas,9562876,trainer,jones1,smashing,liao,159632,iceberg,rebel1,snooker,temp123,zang,matteo,fastball,q2w3e4r5,bamboo,fuckyo,shutup,astro,buddyboy,nikitos,redbird,maxxxx,shitface,02031987,kuai,kissmyass,sahara,radiohea,1234asdf,wildcard,maxwell1,patric,plasma,heynow,bruno1,shao,bigfish,misfits,sassy1,sheng,02011988,02081986,testpass,nanook,cygnus,licking,slavik,pringles,xing,1022,ninja1,submit,dundee,tiburon,pinkfloyd,yummy,shuai,guang,chopin,obelix,insomnia,stroker,1a2s3d4f,1223,playboy1,lazarus,jorda,spider1,homerj,sleeper,02041982,darklord,cang,02041988,02041987,tripod,magician,jelly,telephon,15975,vsjasnel12,pasword,iverson3,pavlov,homeboy,gamecock,amigo,brodie,budapest,yjdsqgfhjkm,reckless,02011980,pang,tiger123,2469,mason1,orient,01011979,zong,cdtnbr,maksimka,1011,bushido,taxman,giorgio,sphinx,kazantip,02101984,concorde,verizon,lovebug,georg,sam123,seadoo,qazwsxedc123,jiao,jezebel,pharmacy,abnormal,jellybea,maxime,puffy,islander,bunnies,jiggaman,drakon,010180,pluto,zhjckfd,12365,classics,crusher,mordor,hooligan,strawberry,02081985,scrabble,hawaii50,1224,wg8e3wjf,cthtuf,premium,arrow,123456qwe,mazda626,ramrod,tootie,rhjrjlbk,ghost1,1211,bounty,niang,02071984,goat,killer12,sweetnes,porno1,masamune,426hemi,corolla,mariposa,hjccbz,doomsday,bummer,blue12,zhao,bird33,excalibur,samsun,kirsty,buttfuck,kfhbcf,zhuo,marcello,ozzy,02021982,dynamite,655321,master12,123465,lollypop,stepan,1qa2ws,spiker,goirish,callum,michael2,moonbeam,attila,henry1,lindros,andrea1,sporty,lantern,12365478,nextel,violin,volcom,998877,water1,imation,inspiron,dynamo,citadel,placebo,clowns,tiao,02061988,tripper,dabears,haggis,merlin1,02031985,anthrax,amerika,iloveme,vsegda,burrito,bombers,snowboard,forsaken,katarina,a1a2a3,woofer,tigger2,fullmoon,tiger2,spock,hannah1,snoopy1,sexxxy,sausages,stanislav,cobain,robotics,exotic,green123,mobydick,senators,pumpkins,fergus,asddsa,147741,258852,windsurf,reddevil,vfitymrf,nevermind,nang,woodland,4417,mick,shui,q1q2q3,wingman,69696,superb,zuan,ganesh,pecker,zephyr,anastasiya,icu812,larry1,02081982,broker,zalupa,mihail,vfibyf,dogger,7007,paddle,varvara,schalke,1z2x3c,presiden,yankees2,tuning,poopy,02051982,concord,vanguard,stiffy,rjhjktdf,felix1,wrench,firewall,boxer,bubba69,popper,02011984,temppass,gobears,cuan,tipper,fuckme1,kamila,thong,puss,bigcat,drummer1,02031982,sowhat,digimon,tigers1,rang,jingle,bian,uranus,soprano,mandy1,dusty1,fandango,aloha,pumpkin1,postman,02061980,dogcat,bombay,pussy123,onetwo,highheel,pippo,julie1,laura1,pepito,beng,smokey1,stylus,stratus,reload,duckie,karen1,jimbo1,225588,369258,krusty,snappy,asdf12,electro,111qqq,kuang,fishin,clit,abstr,christma,qqqqq1,1234560,carnage,guyver,boxers,kittens,zeng,1000000,qwerty11,toaster,cramps,yugioh,02061987,icehouse,zxcvbnm123,pineapple,namaste,harrypotter,mygirl,falcon1,earnhard,fender1,spikes,nutmeg,01081989,dogboy,02091983,369852,softail,mypassword,prowler,bigboss,1112,harvest,heng,jubilee,killjoy,basset,keng,zaqxswcde,redsox1,biao,titan,misfit99,robot,wifey,kidrock,02101987,gameboy,enrico,1z2x3c4v,broncos1,arrows,havana,banger,cookie1,chriss,123qw,platypus,cindy1,lumber,pinball,foxy,london1,1023,05051987,02041985,password12,superma,longbow,radiohead,nigga,12051988,spongebo,qwert12345,abrakadabra,dodgers1,02101989,chillin,niceguy,pistons,hookup,santafe,bigben,jets,1013,vikings1,mankind,viktoriya,beardog,hammer1,02071980,reddwarf,magelan,longjohn,jennife,gilles,carmex2,02071987,stasik,bumper,doofus,slamdunk,pixies,garion,steffi,alessandro,beerman,niceass,warrior1,honolulu,134679852,visa,johndeer,mother1,windmill,boozer,oatmeal,aptiva,busty,delight,tasty,slick1,bergkamp,badgers,guitars,puffin,02091981,nikki1,irishman,miller1,zildjian,123000,airwolf,magnet,anai,install,02041981,02061983,astra,romans,megan1,mudvayne,freebird,muscles,dogbert,02091980,02091984,snowflak,01011900,mang,joseph1,nygiants,playstat,junior1,vjcrdf,qwer12,webhompas,giraffe,pelican,jefferso,comanche,bruiser,monkeybo,kjkszpj,123456l,micro,albany,02051987,angel123,epsilon,aladin,death666,hounddog,josephin,altima,chilly,02071988,78945,ultra,02041979,gasman,thisisit,pavel,idunno,kimmie,05051985,paulie,ballin,medion,moondog,manolo,pallmall,climber,fishbone,genesis1,153624,toffee,tbone,clippers,krypton,jerry1,picturs,compass,111111q,02051988,1121,02081977,sairam,getout,333777,cobras,22041987,bigblock,severin,booster,norwich,whiteout,ctrhtn,123456m,02061984,hewlett,shocker,fuckinside,02031981,chase1,white1,versace,123456789s,basebal,iloveyou2,bluebell,08031986,anthon,stubby,foreve,undertak,werder,saiyan,mama123,medic,chipmunk,mike123,mazdarx7,qwe123qwe,bowwow,kjrjvjnbd,celeb,choochoo,demo,lovelife,02051984,colnago,lithium,02051989,15051981,zzzxxx,welcom,anastasi,fidelio,franc,26061987,roadster,stone55,drifter,hookem,hellboy,1234qw,cbr900rr,sinned,good123654,storm1,gypsy,zebra,zachary1,toejam,buceta,02021979,testing1,redfox,lineage,mike1,highbury,koroleva,nathan1,washingt,02061982,02091985,vintage,redbaron,dalshe,mykids,11051987,macbeth,julien,james123,krasotka,111000,10011986,987123,pipeline,tatarin,sensei,codered,komodo,frogman,7894561230,nascar24,juicy,01031988,redrose,mydick,pigeon,tkbpfdtnf,smirnoff,1215,spam,winner1,flyfish,moskva,81fukkc,21031987,olesya,starligh,summer99,13041988,fishhead,freesex,super12,06061986,azazel,scoobydoo,02021981,cabron,yogibear,sheba1,konstantin,tranny,chilli,terminat,ghbywtccf,slowhand,soccer12,cricket1,fuckhead,1002,seagull,achtung,blam,bigbob,bdsm,nostromo,survivor,cnfybckfd,lemonade,boomer1,rainbow1,rober,irinka,cocksuck,peaches1,itsme,sugar1,zodiac,upyours,dinara,135791,sunny1,chiara,johnson1,02041989,solitude,habibi,sushi,markiz,smoke1,rockies,catwoman,johnny1,qwerty7,bearcats,username,01011978,wanderer,ohshit,02101986,sigma,stephen1,paradigm,02011989,flanker,sanity,jsbach,spotty,bologna,fantasia,chevys,borabora,cocker,74108520,123ewq,12021988,01061990,gtnhjdbx,02071981,01011960,sundevil,3000gt,mustang6,gagging,maggi,armstron,yfnfkb,13041987,revolver,02021976,trouble1,madcat,jeremy1,jackass1,volkswag,30051985,corndog,pool6123,marines1,03041991,pizza1,piggy,sissy,02031979,sunfire,angelus,undead,24061986,14061991,wildbill,shinobi,45m2do5bs,123qwer,21011989,cleopatr,lasvega,hornets,amorcit,11081989,coventry,nirvana1,destin,sidekick,20061988,02081983,gbhfvblf,sneaky,bmw325,22021989,nfytxrf,sekret,kalina,zanzibar,hotone,qazws,wasabi,heidi1,highlander,blues1,hitachi,paolo,23041987,slayer1,simba1,02011981,tinkerbe,kieran,01121986,172839,boiler,1125,bluesman,waffle,asdfgh01,threesom,conan,1102,reflex,18011987,nautilus,everlast,fatty,vader1,01071986,cyborg,ghbdtn123,birddog,rubble,02071983,suckers,02021973,skyhawk,12qw12qw,dakota1,joebob,nokia6233,woodie,longdong,lamer,troll,ghjcnjgfhjkm,420000,boating,nitro,armada,messiah,1031,penguin1,02091989,americ,02071989,redeye,asdqwe123,07071987,monty1,goten,spikey,sonata,635241,tokiohotel,sonyericsson,citroen,compaq1,1812,umpire,belmont,jonny,pantera1,nudes,palmtree,14111986,fenway,bighead,razor,gryphon,andyod22,aaaaa1,taco,10031988,enterme,malachi,dogface,reptile,01041985,dindom,handball,marseille,candy1,19101987,torino,tigge,matthias,viewsoni,13031987,stinker,evangelion,24011985,123456123,rampage,sandrine,02081980,thecrow,astral,28041987,sprinter,private1,seabee,shibby,02101988,25081988,fearless,junkie,01091987,aramis,antelope,draven,fuck1,mazda6,eggman,02021990,barselona,buddy123,19061987,fyfnjkbq,nancy1,12121990,10071987,sluggo,kille,hotties,irishka,zxcasdqwe123,shamus,fairlane,honeybee,soccer10,13061986,fantomas,17051988,10051987,20111986,gladiato,karachi,gambler,gordo,01011995,biatch,matthe,25800852,papito,excite,buffalo1,bobdole,cheshire,player1,28021992,thewho,10101986,pinky1,mentor,tomahawk,brown1,03041986,bismillah,bigpoppa,ijrjkfl,01121988,runaway,08121986,skibum,studman,helper,squeak,holycow,manfred,harlem,glock,gideon,987321,14021985,yellow1,wizard1,margarit,success1,medved,sf49ers,lambda,pasadena,johngalt,quasar,1776,02031980,coldplay,amand,playa,bigpimp,04041991,capricorn,elefant,sweetness,bruce1,luca,dominik,10011990,biker,09051945,datsun,elcamino,trinitro,malice,audi,voyager1,02101983,joe123,carpente,spartan1,mario1,glamour,diaper,12121985,22011988,winter1,asimov,callisto,nikolai,pebble,02101981,vendetta,david123,boytoy,11061985,02031989,iloveyou1,stupid1,cayman,casper1,zippo,yamahar1,wildwood,foxylady,calibra,02041980,27061988,dungeon,leedsutd,30041986,11051990,bestbuy,antares,dominion,24680,01061986,skillet,enforcer,derparol,01041988,196969,29071983,f00tball,purple1,mingus,25031987,21031990,remingto,giggles,klaste,3x7pxr,01011994,coolcat,29051989,megane,20031987,02051980,04041988,synergy,0000007,macman,iforget,adgjmp,vjqgfhjkm,28011987,rfvfcenhf,16051989,25121987,16051987,rogue,mamamia,08051990,20091991,1210,carnival,bolitas,paris1,dmitriy,dimas,05051989,papillon,knuckles,29011985,hola,tophat,28021990,100500,cutiepie,devo,415263,ducks,ghjuhfvvf,asdqwe,22021986,freefall,parol,02011983,zarina,buste,vitamin,warez,bigones,17061988,baritone,jamess,twiggy,mischief,bitchy,hetfield,1003,dontknow,grinch,sasha_007,18061990,12031985,12031987,calimero,224466,letmei,15011987,acmilan,alexandre,02031977,08081988,whiteboy,21051991,barney1,02071978,money123,18091985,bigdawg,02031988,cygnusx1,zoloto,31011987,firefigh,blowfish,screamer,lfybbk,20051988,chelse,11121986,01031989,harddick,sexylady,30031988,02041974,auditt,pizdec,kojak,kfgjxrf,20091988,123456ru,wp2003wp,1204,15051990,slugger,kordell1,03031986,swinging,01011974,02071979,rockie,dimples,1234123,1dragon,trucking,rusty2,roger1,marijuana,kerouac,02051978,08031985,paco,thecure,keepout,kernel,noname123,13121985,francisc,bozo,02011982,22071986,02101979,obsidian,12345qw,spud,tabasco,02051985,jaguars,dfktynby,kokomo,popova,notused,sevens,4200,magneto,02051976,roswell,15101986,21101986,lakeside,bigbang,aspen,little1,14021986,loki,suckmydick,strawber,carlos1,nokian73,dirty1,joshu,25091987,16121987,02041975,advent,17011987,slimshady,whistler,10101990,stryker,22031984,15021985,01031985,blueball,26031988,ksusha,bahamut,robocop,w_pass,chris123,impreza,prozac,bookie,bricks,13021990,alice1,cassandr,11111q,john123,4ever,korova,02051973,142857,25041988,paramedi,eclipse1,salope,07091990,1124,darkangel,23021986,999666,nomad,02051981,smackdow,01021990,yoyoma,argentin,moonligh,57chevy,bootys,hardone,capricor,galant,spanker,dkflbr,24111989,magpies,krolik,21051988,cevthrb,cheddar,22041988,bigbooty,scuba1,qwedsa,duffman,bukkake,acura,johncena,sexxy,p@ssw0rd,258369,cherries,12345s,asgard,leopold,fuck123,mopar,lalakers,dogpound,matrix1,crusty,spanner,kestrel,fenris,universa,peachy,assasin,lemmein,eggplant,hejsan,canucks,wendy1,doggy1,aikman,tupac,turnip,godlike,fussball,golden1,19283746,april1,django,petrova,captain1,vincent1,ratman,taekwondo,chocha,serpent,perfect1,capetown,vampir,amore,gymnast,timeout,nbvjatq,blue32,ksenia,k.lvbkf,nazgul,budweiser,clutch,mariya,sylveste,02051972,beaker,cartman1,q11111,sexxx,forever1,loser1,marseill,magellan,vehpbr,sexgod,jktxrf,hallo123,132456,liverpool1,southpaw,seneca,camden,357159,camero,tenchi,johndoe,145236,roofer,741963,vlad,02041978,fktyrf,zxcv123,wingnut,wolfpac,notebook,pufunga7782,brandy1,biteme1,goodgirl,redhat,02031978,challeng,millenium,hoops,maveric,noname,angus1,gaell,onion,olympus,sabrina1,ricard,sixpack,gratis,gagged,camaross,hotgirls,flasher,02051977,bubba123,goldfing,moonshin,gerrard,volkov,sonyfuck,mandrake,258963,tracer,lakers1,asians,susan1,money12,helmut,boater,diablo2,1234zxcv,dogwood,bubbles1,happy2,randy1,aries,beach1,marcius2,navigator,goodie,hellokitty,fkbyjxrf,earthlink,lookout,jumbo,opendoor,stanley1,marie1,12345m,07071977,ashle,wormix,murzik,02081976,lakewood,bluejays,loveya,commande,gateway2,peppe,01011976,7896321,goth,oreo,slammer,rasmus,faith1,knight1,stone1,redskin,ironmaiden,gotmilk,destiny1,dejavu,1master,midnite,timosha,espresso,delfin,toriamos,oberon,ceasar,markie,1a2s3d,ghhh47hj7649,vjkjrj,daddyo,dougie,disco,auggie,lekker,therock1,ou8123,start1,noway,p4ssw0rd,shadow12,333444,saigon,2fast4u,capecod,23skidoo,qazxcv,beater,bremen,aaasss,roadrunner,peace1,12345qwer,02071975,platon,bordeaux,vbkfirf,135798642,test12,supernov,beatles1,qwert40,optimist,vanessa1,prince1,ilovegod,nightwish,natasha1,alchemy,bimbo,blue99,patches1,gsxr1000,richar,hattrick,hott,solaris,proton,nevets,enternow,beavis1,amigos,159357a,ambers,lenochka,147896,suckdick,shag,intercourse,blue1234,spiral,02061977,tosser,ilove,02031975,cowgirl,canuck,q2w3e4,munch,spoons,waterboy,123567,evgeniy,savior,zasada,redcar,mamacita,terefon,globus,doggies,htubcnhfwbz,1008,cuervo,suslik,azertyui,limewire,houston1,stratfor,steaua,coors,tennis1,12345qwerty,stigmata,derf,klondike,patrici,marijuan,hardball,odyssey,nineinch,boston1,pass1,beezer,sandr,charon,power123,a1234,vauxhall,875421,awesome1,reggae,boulder,funstuff,iriska,krokodil,rfntymrf,sterva,champ1,bball,peeper,m123456,toolbox,cabernet,sheepdog,magic32,pigpen,02041977,holein1,lhfrjy,banan,dabomb,natalie1,jennaj,montana1,joecool,funky,steven1,ringo,junio,sammy123,qqqwww,baltimor,footjob,geezer,357951,mash4077,cashmone,pancake,monic,grandam,bongo,yessir,gocubs,nastia,vancouve,barley,dragon69,watford,ilikepie,02071976,laddie,123456789m,hairball,toonarmy,pimpdadd,cvthnm,hunte,davinci,lback,sophie1,firenze,q1234567,admin1,bonanza,elway7,daman,strap,azert,wxcvbn,afrika,theforce,123456t,idefix,wolfen,houdini,scheisse,default,beech,maserati,02061976,sigmachi,dylan1,bigdicks,eskimo,mizzou,02101976,riccardo,egghead,111777,kronos,ghbrjk,chaos1,jomama,rfhnjirf,rodeo,dolemite,cafc91,nittany,pathfind,mikael,password9,vqsablpzla,purpl,gabber,modelsne,myxworld,hellsing,punker,rocknrol,fishon,fuck69,02041976,lolol,twinkie,tripleh,cirrus,redbone,killer123,biggun,allegro,gthcbr,smith1,wanking,bootsy,barry1,mohawk,koolaid,5329,futurama,samoht,klizma,996633,lobo,honeys,peanut1,556677,zxasqw,joemama,javelin,samm,223322,sandra1,flicks,montag,nataly,3006,tasha1,1235789,dogbone,poker1,p0o9i8u7,goodday,smoothie,toocool,max333,metroid,archange,vagabond,billabon,22061941,tyson1,02031973,darkange,skateboard,evolutio,morrowind,wizards,frodo1,rockin,cumslut,plastics,zaqwsxcde,5201314,doit,outback,bumble,dominiqu,persona,nevermore,alinka,02021971,forgetit,sexo,all4one,c2h5oh,petunia,sheeba,kenny1,elisabet,aolsucks,woodstoc,pumper,02011975,fabio,granada,scrapper,123459,minimoni,q123456789,breaker,1004,02091976,ncc74656,slimshad,friendster,austin31,wiseguy,donner,dilbert1,132465,blackbird,buffet,jellybean,barfly,behappy,01011971,carebear,fireblad,02051975,boxcar,cheeky,kiteboy,hello12,panda1,elvisp,opennow,doktor,alex12,02101977,pornking,flamengo,02091975,snowbird,lonesome,robin1,11111a,weed420,baracuda,bleach,12345abc,nokia1,metall,singapor,mariner,herewego,dingo,tycoon,cubs,blunts,proview,123456789d,kamasutra,lagnaf,vipergts,navyseal,starwar,masterbate,wildone,peterbil,cucumber,butkus,123qwert,climax,deniro,gotribe,cement,scooby1,summer69,harrier,shodan,newyear,02091977,starwars1,romeo1,sedona,harald,doubled,sasha123,bigguns,salami,awnyce,kiwi,homemade,pimping,azzer,bradley1,warhamme,linkin,dudeman,qwe321,pinnacle,maxdog,flipflop,lfitymrf,fucker1,acidburn,esquire,sperma,fellatio,jeepster,thedon,sexybitch,pookey,spliff,widget,vfntvfnbrf,trinity1,mutant,samuel1,meliss,gohome,1q2q3q,mercede,comein,grin,cartoons,paragon,henrik,rainyday,pacino,senna,bigdog1,alleycat,12345qaz,narnia,mustang2,tanya1,gianni,apollo11,wetter,clovis,escalade,rainbows,freddy1,smart1,daisydog,s123456,cocksucker,pushkin,lefty,sambo,fyutkjxtr,hiziad,boyz,whiplash,orchard,newark,adrenalin,1598753,bootsie,chelle,trustme,chewy,golfgti,tuscl,ambrosia,5wr2i7h8,penetration,shonuf,jughead,payday,stickman,gotham,kolokol,johnny5,kolbasa,stang,puppydog,charisma,gators1,mone,jakarta,draco,nightmar,01011973,inlove,laetitia,02091973,tarpon,nautica,meadow,0192837465,luckyone,14881488,chessie,goldeney,tarakan,69camaro,bungle,wordup,interne,fuckme2,515000,dragonfl,sprout,02081974,gerbil,bandit1,02071971,melanie1,phialpha,camber,kathy1,adriano,gonzo1,10293847,bigjohn,bismarck,7777777a,scamper,12348765,rabbits,222777,bynthytn,dima123,alexander1,mallorca,dragster,favorite6,beethove,burner,cooper1,fosters,hello2,normandy,777999,sebring,1michael,lauren1,blake1,killa,02091971,nounours,trumpet1,thumper1,playball,xantia,rugby1,rocknroll,guillaum,angela1,strelok,prosper,buttercup,masterp,dbnfkbr,cambridg,venom,treefrog,lumina,1234566,supra,sexybabe,freee,shen,frogs,driller,pavement,grace1,dicky,checker,smackdown,pandas,cannibal,asdffdsa,blue42,zyjxrf,nthvbyfnjh,melrose,neon,jabber,gamma,369258147,aprilia,atticus,benessere,catcher,skipper1,azertyuiop,sixty9,thierry,treetop,jello,melons,123456789qwe,tantra,buzzer,catnip,bouncer,computer1,sexyone,ananas,young1,olenka,sexman,mooses,kittys,sephiroth,contra,hallowee,skylark,sparkles,777333,1qazxsw23edc,lucas1,q1w2e3r,gofast,hannes,amethyst,ploppy,flower2,hotass,amatory,volleyba,dixie1,bettyboo,ticklish,02061974,frenchy,phish1,murphy1,trustno,02061972,leinad,mynameis,spooge,jupiter1,hyundai,frosch,junkmail,abacab,marbles,32167,casio,sunshine1,wayne1,longhair,caster,snicker,02101973,gannibal,skinhead,hansol,gatsby,segblue2,montecar,plato,gumby,kaboom,matty,bosco1,888999,jazzy,panter,jesus123,charlie2,giulia,candyass,sex69,travis1,farmboy,special1,02041973,letsdoit,password01,allison1,abcdefg1,notredam,ilikeit,789654123,liberty1,rugger,uptown,alcatraz,123456w,airman,007bond,navajo,kenobi,terrier,stayout,grisha,frankie1,fluff,1qazzaq1,1234561,virginie,1234568,tango1,werdna,octopus,fitter,dfcbkbcf,blacklab,115599,montrose,allen1,supernova,frederik,ilovepussy,justice1,radeon,playboy2,blubber,sliver,swoosh,motocros,lockdown,pearls,thebear,istheman,pinetree,biit,1234rewq,rustydog,tampabay,titts,babycake,jehovah,vampire1,streaming,collie,camil,fidelity,calvin1,stitch,gatit,restart,puppy1,budgie,grunt,capitals,hiking,dreamcas,zorro1,321678,riffraff,makaka,playmate,napalm,rollin,amstel,zxcvb123,samanth,rumble,fuckme69,jimmys,951357,pizzaman,1234567899,tralala,delpiero,alexi,yamato,itisme,1million,vfndtq,kahlua,londo,wonderboy,carrots,tazz,ratboy,rfgecnf,02081973,nico,fujitsu,tujhrf,sergbest,blobby,02051970,sonic1,1357911,smirnov,video1,panhead,bucky,02031974,44332211,duffer,cashmoney,left4dead,bagpuss,salman,01011972,titfuck,66613666,england1,malish,dresden,lemans,darina,zapper,123456as,123456qqq,met2002,02041972,redstar,blue23,1234509876,pajero,booyah,please1,tetsuo,semper,finder,hanuman,sunlight,123456n,02061971,treble,cupoi,password99,dimitri,3ip76k2,popcorn1,lol12345,stellar,nympho,shark1,keith1,saskia,bigtruck,revoluti,rambo1,asd222,feelgood,phat,gogators,bismark,cola,puck,furball,burnout,slonik,bowtie,mommy1,icecube,fabienn,mouser,papamama,rolex,giants1,blue11,trooper1,momdad,iklo,morten,rhubarb,gareth,123456d,blitz,canada1,r2d2,brest,tigercat,usmarine,lilbit,benny1,azrael,lebowski,12345r,madagaskar,begemot,loverman,dragonballz,italiano,mazda3,naughty1,onions,diver1,cyrano,capcom,asdfg123,forlife,fisherman,weare138,requiem,mufasa,alpha123,piercing,hellas,abracadabra,duckman,caracas,macintos,02011971,jordan2,crescent,fduecn,hogtied,eatmenow,ramjet,18121812,kicksass,whatthe,discus,rfhfvtkmrf,rufus1,sqdwfe,mantle,vegitto,trek,dan123,paladin1,rudeboy,liliya,lunchbox,riversid,acapulco,libero,dnsadm,maison,toomuch,boobear,hemlock,sextoy,pugsley,misiek,athome,migue,altoids,marcin,123450,rhfcfdbwf,jeter2,rhinos,rjhjkm,mercury1,ronaldinho,shampoo,makayla,kamilla,masterbating,tennesse,holger,john1,matchbox,hores,poptart,parlament,goodyear,asdfgh1,02081970,hardwood,alain,erection,hfytnrb,highlife,implants,benjami,dipper,jeeper,bendover,supersonic,babybear,laserjet,gotenks,bama,natedogg,aol123,pokemo,rabbit1,raduga,sopranos,cashflow,menthol,pharao,hacking,334455,ghjcnbnenrf,lizzy,muffin1,pooky,penis1,flyer,gramma,dipset,becca,ireland1,diana1,donjuan,pong,ziggy1,alterego,simple1,cbr900,logger,111555,claudia1,cantona7,matisse,ljxtymrf,victori,harle,mamas,encore,mangos,iceman1,diamon,alexxx,tiamat,5000,desktop,mafia,smurf,princesa,shojou,blueberr,welkom,maximka,123890,123q123,tammy1,bobmarley,clips,demon666,ismail,termite,laser1,missie,altair,donna1,bauhaus,trinitron,mogwai,flyers88,juniper,nokia5800,boroda,jingles,qwerasdfzxcv,shakur,777666,legos,mallrats,1qazxsw,goldeneye,tamerlan,julia1,backbone,spleen,49ers,shady,darkone,medic1,justi,giggle,cloudy,aisan,douche,parkour,bluejay,huskers1,redwine,1qw23er4,satchmo,1231234,nineball,stewart1,ballsack,probes,kappa,amiga,flipper1,dortmund,963258,trigun,1237895,homepage,blinky,screwy,gizzmo,belkin,chemist,coolhand,chachi,braves1,thebest,greedisgood,pro100,banana1,101091m,123456g,wonderfu,barefeet,8inches,1111qqqq,kcchiefs,qweasdzxc123,metal1,jennifer1,xian,asdasd123,pollux,cheerleaers,fruity,mustang5,turbos,shopper,photon,espana,hillbill,oyster,macaroni,gigabyte,jesper,motown,tuxedo,buster12,triplex,cyclones,estrell,mortis,holla,456987,fiddle,sapphic,jurassic,thebeast,ghjcnjq,baura,spock1,metallica1,karaoke,nemrac58,love1234,02031970,flvbybcnhfnjh,frisbee,diva,ajax,feathers,flower1,soccer11,allday,mierda,pearl1,amature,marauder,333555,redheads,womans,egorka,godbless,159263,nimitz,aaaa1111,sashka,madcow,socce,greywolf,baboon,pimpdaddy,123456789r,reloaded,lancia,rfhfylfi,dicker,placid,grimace,22446688,olemiss,whores,culinary,wannabe,maxi,1234567aa,amelie,riley1,trample,phantom1,baberuth,bramble,asdfqwer,vides,4you,abc123456,taichi,aztnm,smother,outsider,hakr,blackhawk,bigblack,girlie,spook,valeriya,gianluca,freedo,1q2q3q4q,handbag,lavalamp,cumm,pertinant,whatup,nokia123,redlight,patrik,111aaa,poppy1,dfytxrf,aviator,sweeps,kristin1,cypher,elway,yinyang,access1,poophead,tucson,noles1,monterey,waterfal,dank,dougal,918273,suede,minnesot,legman,bukowski,ganja,mammoth,riverrat,asswipe,daredevi,lian,arizona1,kamikadze,alex1234,smile1,angel2,55bgates,bellagio,0001,wanrltw,stiletto,lipton,arsena,biohazard,bbking,chappy,tetris,as123456,darthvad,lilwayne,nopassword,7412369,123456789987654321,natchez,glitter,14785236,mytime,rubicon,moto,pyon,wazzup,tbird,shane1,nightowl,getoff,beckham7,trueblue,hotgirl,nevermin,deathnote,13131,taffy,bigal,copenhag,apricot,gallaries,dtkjcbgtl,totoro,onlyone,civicsi,jesse1,baby123,sierra1,festus,abacus,sickboy,fishtank,fungus,charle,golfpro,teensex,mario66,seaside,aleksei,rosewood,blackberry,1020304050,bedlam,schumi,deerhunt,contour,darkelf,surveyor,deltas,pitchers,741258963,dipstick,funny1,lizzard,112233445566,jupiter2,softtail,titman,greenman,z1x2c3v4b5,smartass,12345677,notnow,myworld,nascar1,chewbacc,nosferatu,downhill,dallas22,kuan,blazers,whales,soldat,craving,powerman,yfcntyf,hotrats,cfvceyu,qweasdzx,princess1,feline,qqwwee,chitown,1234qaz,mastermind,114477,dingbat,care1839,standby,kismet,atreides,dogmeat,icarus,monkeyboy,alex1,mouses,nicetits,sealteam,chopper1,crispy,winter99,rrpass1,myporn,myspace1,corazo,topolino,ass123,lawman,muffy,orgy,1love,passord,hooyah,ekmzyf,pretzel,amonra,nestle,01011950,jimbeam,happyman,z12345,stonewal,helios,manunited,harcore,dick1,gaymen,2hot4u,light1,qwerty13,kakashi,pjkjnj,alcatel,taylo,allah,buddydog,ltkmaby,mongo,blonds,start123,audia6,123456v,civilwar,bellaco,turtles,mustan,deadspin,aaa123,fynjirf,lucky123,tortoise,amor,summe,waterski,zulu,drag0n,dtxyjcnm,gizmos,strife,interacial,pusyy,goose1,bear1,equinox,matri,jaguar1,tobydog,sammys,nachos,traktor,bryan1,morgoth,444555,dasani,miami1,mashka,xxxxxx1,ownage,nightwin,hotlips,passmast,cool123,skolko,eldiablo,manu,1357908642,screwyou,badabing,foreplay,hydro,kubrick,seductive,demon1,comeon,galileo,aladdin,metoo,happines,902100,mizuno,caddy,bizzare,girls1,redone,ohmygod,sable,bonovox,girlies,hamper,opus,gizmodo1,aaabbb,pizzahut,999888,rocky2,anton1,kikimora,peavey,ocelot,a1a2a3a4,2wsx3edc,jackie1,solace,sprocket,galary,chuck1,volvo1,shurik,poop123,locutus,virago,wdtnjxtr,tequier,bisexual,doodles,makeitso,fishy,789632145,nothing1,fishcake,sentry,libertad,oaktree,fivestar,adidas1,vegitta,mississi,spiffy,carme,neutron,vantage,agassi,boners,123456789v,hilltop,taipan,barrage,kenneth1,fister,martian,willem,lfybkf,bluestar,moonman,ntktdbpjh,paperino,bikers,daffy,benji,quake,dragonfly,suckcock,danilka,lapochka,belinea,calypso,asshol,camero1,abraxas,mike1234,womam,q1q2q3q4q5,youknow,maxpower,pic's,audi80,sonora,raymond1,tickler,tadpole,belair,crazyman,finalfantasy,999000,jonatha,paisley,kissmyas,morgana,monste,mantra,spunk,magic123,jonesy,mark1,alessand,741258,baddest,ghbdtnrfrltkf,zxccxz,tictac,augustin,racers,7grout,foxfire,99762000,openit,nathanie,1z2x3c4v5b,seadog,gangbanged,lovehate,hondacbr,harpoon,mamochka,fisherma,bismilla,locust,wally1,spiderman1,saffron,utjhubq,123456987,20spanks,safeway,pisser,bdfyjd,kristen1,bigdick1,magenta,vfhujif,anfisa,friday13,qaz123wsx,0987654321q,tyrant,guan,meggie,kontol,nurlan,ayanami,rocket1,yaroslav,websol76,mutley,hugoboss,websolutions,elpaso,gagarin,badboys,sephirot,918273645,newuser,qian,edcrfv,booger1,852258,lockout,timoxa94,mazda323,firedog,sokolova,skydiver,jesus777,1234567890z,soulfly,canary,malinka,guillerm,hookers,dogfart,surfer1,osprey,india123,rhjkbr,stoppedby,nokia5530,123456789o,blue1,werter,divers,3000,123456f,alpina,cali,whoknows,godspeed,986532,foreskin,fuzzy1,heyyou,didier,slapnuts,fresno,rosebud1,sandman1,bears1,blade1,honeybun,queen1,baronn,pakista,philipp,9111961,topsecret,sniper1,214365,slipper,letsfuck,pippen33,godawgs,mousey,qw123456,scrotum,loveis,lighthou,bp2002,nancy123,jeffrey1,susieq,buddy2,ralphie,trout1,willi,antonov,sluttey,rehbwf,marty1,darian,losangeles,letme1n,12345d,pusssy,godiva,ender,golfnut,leonidas,a1b2c3d4e5,puffer,general1,wizzard,lehjxrf,racer1,bigbucks,cool12,buddys,zinger,esprit,vbienrf,josep,tickling,froggie,987654321a,895623,daddys,crumbs,gucci,mikkel,opiate,tracy1,christophe,came11,777555,petrovich,humbug,dirtydog,allstate,horatio,wachtwoord,creepers,squirts,rotary,bigd,georgia1,fujifilm,2sweet,dasha,yorkie,slimjim,wiccan,kenzie,system1,skunk,b12345,getit,pommes,daredevil,sugars,bucker,piston,lionheart,1bitch,515051,catfight,recon,icecold,fantom,vodafone,kontakt,boris1,vfcnth,canine,01011961,valleywa,faraon,chickenwing101,qq123456,livewire,livelife,roosters,jeepers,ilya1234,coochie,pavlik,dewalt,dfhdfhf,architec,blackops,1qaz2wsx3edc4rfv,rhfcjnf,wsxedc,teaser,sebora,25252,rhino1,ankara,swifty,decimal,redleg,shanno,nermal,candies,smirnova,dragon01,photo1,ranetki,a1s2d3f4g5,axio,wertzu,maurizio,6uldv8,zxcvasdf,punkass,flowe,graywolf,peddler,3rjs1la7qe,mpegs,seawolf,ladyboy,pianos,piggies,vixen,alexus,orpheus,gdtrfb,z123456,macgyver,hugetits,ralph1,flathead,maurici,mailru,goofball,nissan1,nikon,stopit,odin,big1,smooch,reboot,famil,bullit,anthony7,gerhard,methos,124038,morena,eagle2,jessica2,zebras,getlost,gfynthf,123581321,sarajevo,indon,comets,tatjana,rfgbnjirf,joystick,batman12,123456c,sabre,beerme,victory1,kitties,1475369,badboy1,booboo1,comcast,slava,squid,saxophon,lionhear,qaywsx,bustle,nastena,roadway,loader,hillside,starlight,24681012,niggers,access99,bazooka,molly123,blackice,bandi,cocacol,nfhfrfy,timur,muschi,horse1,quant4307s,squerting,oscars,mygirls,flashman,tangerin,goofy1,p0o9i8,housewifes,newness,monkey69,escorpio,password11,hippo,warcraft3,qazxsw123,qpalzm,ribbit,ghbdtndctv,bogota,star123,258000,lincoln1,bigjim,lacoste,firestorm,legenda,indain,ludacris,milamber,1009,evangeli,letmesee,a111111,hooters1,bigred1,shaker,husky,a4tech,cnfkrth,argyle,rjhjdf,nataha,0o9i8u7y,gibson1,sooners1,glendale,archery,hoochie,stooge,aaaaaa1,scorpions,school1,vegas1,rapier,mike23,bassoon,groupd2013,macaco,baker1,labia,freewill,santiag,silverado,butch1,vflfufcrfh,monica1,rugrat,cornhole,aerosmit,bionicle,gfgfvfvf,daniel12,virgo,fmale,favorite2,detroit1,pokey,shredder,baggies,wednesda,cosmo1,mimosa,sparhawk,firehawk,romario,911turbo,funtimes,fhntvrf,nexus6,159753456,timothy1,bajingan,terry1,frenchie,raiden,1mustang,babemagnet,74123698,nadejda,truffles,rapture,douglas1,lamborghini,motocross,rjcvjc,748596,skeeter1,dante1,angel666,telecom,carsten,pietro,bmw318,astro1,carpediem,samir,orang,helium,scirocco,fuzzball,rushmore,rebelz,hotspur,lacrimosa,chevys10,madonna1,domenico,yfnfirf,jachin,shelby1,bloke,dawgs,dunhill,atlanta1,service1,mikado,devilman,angelit,reznor,euphoria,lesbain,checkmat,browndog,phreak,blaze1,crash1,farida,mutter,luckyme,horsemen,vgirl,jediknig,asdas,cesare,allnight,rockey,starlite,truck1,passfan,close-up,samue,cazzo,wrinkles,homely,eatme1,sexpot,snapshot,dima1995,asthma,thetruth,ducky,blender,priyanka,gaucho,dutchman,sizzle,kakarot,651550,passcode,justinbieber,666333,elodie,sanjay,110442,alex01,lotus1,2300mj,lakshmi,zoomer,quake3,12349876,teapot,12345687,ramada,pennywis,striper,pilot1,chingon,optima,nudity,ethan1,euclid,beeline,loyola,biguns,zaq12345,bravo1,disney1,buffa,assmunch,vivid,6661313,wellingt,aqwzsx,madala11,9874123,sigmar,pictere,tiptop,bettyboop,dinero,tahiti,gregory1,bionic,speed1,fubar1,lexus1,denis1,hawthorn,saxman,suntzu,bernhard,dominika,camaro1,hunter12,balboa,bmw2002,seville,diablo1,vfhbyjxrf,1234abc,carling,lockerroom,punani,darth,baron1,vaness,1password,libido,picher,232425,karamba,futyn007,daydream,11001001,dragon123,friends1,bopper,rocky123,chooch,asslover,shimmer,riddler,openme,tugboat,sexy123,midori,gulnara,christo,swatch,laker,offroad,puddles,hackers,mannheim,manager1,horseman,roman1,dancer1,komputer,pictuers,nokia5130,ejaculation,lioness,123456y,evilone,nastenka,pushok,javie,lilman,3141592,mjolnir,toulouse,pussy2,bigworm,smoke420,fullback,extensa,dreamcast,belize,delboy,willie1,casablanca,csyjxtr,ricky1,bonghit,salvator,basher,pussylover,rosie1,963258741,vivitron,cobra427,meonly,armageddon,myfriend,zardoz,qwedsazxc,kraken,fzappa,starfox,333999,illmatic,capoeira,weenie,ramzes,freedom2,toasty,pupkin,shinigami,fhvfutljy,nocturne,churchil,thumbnils,tailgate,neworder,sexymama,goarmy,cerebus,michelle1,vbifyz,surfsup,earthlin,dabulls,basketbal,aligator,mojojojo,saibaba,welcome2,wifes,wdtnjr,12345w,slasher,papabear,terran,footman,hocke,153759,texans,tom123,sfgiants,billabong,aassdd,monolith,xxx777,l3tm31n,ticktock,newone,hellno,japanees,contortionist,admin123,scout1,alabama1,divx1,rochard,privat,radar1,bigdad,fhctybq,tortuga,citrus,avanti,fantasy1,woodstock,s12345,fireman1,embalmer,woodwork,bonzai,konyor,newstart,jigga,panorama,goats,smithy,rugrats,hotmama,daedalus,nonstop,fruitbat,lisenok,quaker,violator,12345123,my3sons,cajun,fraggle,gayboy,oldfart,vulva,knickerless,orgasms,undertow,binky,litle,kfcnjxrf,masturbation,bunnie,alexis1,planner,transexual,sparty,leeloo,monies,fozzie,stinger1,landrove,anakonda,scoobie,yamaha1,henti,star12,rfhlbyfk,beyonce,catfood,cjytxrf,zealots,strat,fordtruc,archangel,silvi,sativa,boogers,miles1,bigjoe,tulip,petite,greentea,shitter,jonboy,voltron,morticia,evanescence,3edc4rfv,longshot,windows1,serge,aabbcc,starbucks,sinful,drywall,prelude1,www123,camel1,homebrew,marlins,123412,letmeinn,domini,swampy,plokij,fordf350,webcam,michele1,bolivi,27731828,wingzero,qawsedrftg,shinji,sverige,jasper1,piper1,cummer,iiyama,gocats,amour,alfarome,jumanji,mike69,fantasti,1monkey,w00t88,shawn1,lorien,1a2s3d4f5g,koleso,murph,natascha,sunkist,kennwort,emine,grinder,m12345,q1q2q3q4,cheeba,money2,qazwsxedc1,diamante,prosto,pdiddy,stinky1,gabby1,luckys,franci,pornographic,moochie,gfhjdjp,samdog,empire1,comicbookdb,emili,motdepasse,iphone,braveheart,reeses,nebula,sanjose,bubba2,kickflip,arcangel,superbow,porsche911,xyzzy,nigger1,dagobert,devil1,alatam,monkey2,barbara1,12345v,vfpfafrf,alessio,babemagn,aceman,arrakis,kavkaz,987789,jasons,berserk,sublime1,rogue1,myspace,buckwhea,csyekz,pussy4me,vette1,boots1,boingo,arnaud,budlite,redstorm,paramore,becky1,imtheman,chango,marley1,milkyway,666555,giveme,mahalo,lux2000,lucian,paddy,praxis,shimano,bigpenis,creeper,newproject2004,rammstei,j3qq4h7h2v,hfljcnm,lambchop,anthony2,bugman,gfhjkm12,dreamer1,stooges,cybersex,diamant,cowboyup,maximus1,sentra,615243,goethe,manhatta,fastcar,selmer,1213141516,yfnfitymrf,denni,chewey,yankee1,elektra,123456789p,trousers,fishface,topspin,orwell,vorona,sodapop,motherfu,ibilltes,forall,kookie,ronald1,balrog,maximilian,mypasswo,sonny1,zzxxcc,tkfkdg,magoo,mdogg,heeled,gitara,lesbos,marajade,tippy,morozova,enter123,lesbean,pounded,asd456,fialka,scarab,sharpie,spanky1,gstring,sachin,12345asd,princeto,hellohel,ursitesux,billows,1234kekc,kombat,cashew,duracell,kseniya,sevenof9,kostik,arthur1,corvet07,rdfhnbhf,songoku,tiberian,needforspeed,1qwert,dropkick,kevin123,panache,libra,a123456a,kjiflm,vfhnsirf,cntgfy,iamcool,narut,buffer,sk8ordie,urlaub,fireblade,blanked,marishka,gemini1,altec,gorillaz,chief1,revival47,ironman1,space1,ramstein,doorknob,devilmaycry,nemesis1,sosiska,pennstat,monday1,pioner,shevchenko,detectiv,evildead,blessed1,aggie,coffees,tical,scotts,bullwink,marsel,krypto,adrock,rjitxrf,asmodeus,rapunzel,theboys,hotdogs,deepthro,maxpayne,veronic,fyyeirf,otter,cheste,abbey1,thanos,bedrock,bartok,google1,xxxzzz,rodent,montecarlo,hernande,mikayla,123456789l,bravehea,12locked,ltymub,pegasus1,ameteur,saltydog,faisal,milfnew,momsuck,everques,ytngfhjkz,m0nkey,businessbabe,cooki,custard,123456ab,lbvjxrf,outlaws,753357,qwerty78,udacha,insider,chees,fuckmehard,shotokan,katya,seahorse,vtldtlm,turtle1,mike12,beebop,heathe,everton1,darknes,barnie,rbcekz,alisher,toohot,theduke,555222,reddog1,breezy,bulldawg,monkeyman,baylee,losangel,mastermi,apollo1,aurelie,zxcvb12345,cayenne,bastet,wsxzaq,geibcnbr,yello,fucmy69,redwall,ladybird,bitchs,cccccc1,rktjgfnhf,ghjdthrf,quest1,oedipus,linus,impalass,fartman,12345k,fokker,159753a,optiplex,bbbbbb1,realtor,slipkno,santacru,rowdy,jelena,smeller,3984240,ddddd1,sexyme,janet1,3698741,eatme69,cazzone,today1,poobear,ignatius,master123,newpass1,heather2,snoopdogg,blondinka,pass12,honeydew,fuckthat,890098890,lovem,goldrush,gecko,biker1,llama,pendejo,avalanche,fremont,snowman1,gandolf,chowder,1a2b3c4d5e,flyguy,magadan,1fuck,pingvin,nokia5230,ab1234,lothar,lasers,bignuts,renee1,royboy,skynet,12340987,1122334,dragrace,lovely1,22334455,booter,12345612,corvett,123456qq,capital1,videoes,funtik,wyvern,flange,sammydog,hulkster,13245768,not4you,vorlon,omegared,l58jkdjp!,filippo,123mudar,samadams,petrus,chris12,charlie123,123456789123,icetea,sunderla,adrian1,123qweas,kazanova,aslan,monkey123,fktyeirf,goodsex,123ab,lbtest,banaan,bluenose,837519,asd12345,waffenss,whateve,1a2a3a4a,trailers,vfhbirf,bhbcrf,klaatu,turk182,monsoon,beachbum,sunbeam,succes,clyde1,viking1,rawhide,bubblegum,princ,mackenzi,hershey1,222555,dima55,niggaz,manatee,aquila,anechka,pamel,bugsbunn,lovel,sestra,newport1,althor,hornyman,wakeup,zzz111,phishy,cerber,torrent,thething,solnishko,babel,buckeye1,peanu,ethernet,uncencored,baraka,665544,chris2,rb26dett,willy1,choppers,texaco,biggirl,123456b,anna2614,sukebe,caralho,callofduty,rt6ytere,jesus7,angel12,1money,timelord,allblack,pavlova,romanov,tequiero,yitbos,lookup,bulls23,snowflake,dickweed,barks,lever,irisha,firestar,fred1234,ghjnjnbg,danman,gatito,betty1,milhouse,kbctyjr,masterbaiting,delsol,papit,doggys,123698741,bdfyjdf,invictus,bloods,kayla1,yourmama,apple2,angelok,bigboy1,pontiac1,verygood,yeshua,twins2,porn4me,141516,rasta69,james2,bosshog,candys,adventur,stripe,djkjlz,dokken,austin316,skins,hogwarts,vbhevbh,navigato,desperado,xxx666,cneltyn,vasiliy,hazmat,daytek,eightbal,fred1,four20,74227422,fabia,aerosmith,manue,wingchun,boohoo,hombre,sanity72,goatboy,fuckm,partizan,avrora,utahjazz,submarin,pussyeat,heinlein,control1,costaric,smarty,chuan,triplets,snowy,snafu,teacher1,vangogh,vandal,evergree,cochise,qwerty99,pyramid1,saab900,sniffer,qaz741,lebron23,mark123,wolvie,blackbelt,yoshi,feeder,janeway,nutella,fuking,asscock,deepak,poppie,bigshow,housewife,grils,tonto,cynthia1,temptress,irakli,belle1,russell1,manders,frank123,seabass,gforce,songbird,zippy1,naught,brenda1,chewy1,hotshit,topaz,43046721,girfriend,marinka,jakester,thatsme,planeta,falstaff,patrizia,reborn,riptide,cherry1,shuan,nogard,chino,oasis1,qwaszx12,goodlife,davis1,1911a1,harrys,shitfuck,12345678900,russian7,007700,bulls1,porshe,danil,dolphi,river1,sabaka,gobigred,deborah1,volkswagen,miamo,alkaline,muffdive,1letmein,fkbyrf,goodguy,hallo1,nirvan,ozzie,cannonda,cvbhyjdf,marmite,germany1,joeblow,radio1,love11,raindrop,159852,jacko,newday,fathead,elvis123,caspe,citibank,sports1,deuce,boxter,fakepass,golfman,snowdog,birthday4,nonmembe,niklas,parsifal,krasota,theshit,1235813,maganda,nikita1,omicron,cassie1,columbo,buick,sigma1,thistle,bassin,rickster,apteka,sienna,skulls,miamor,coolgirl,gravis,1qazxc,virgini,hunter2,akasha,batma,motorcyc,bambino,tenerife,fordf250,zhuan,iloveporn,markiza,hotbabes,becool,fynjybyf,wapapapa,forme,mamont,pizda,dragonz,sharon1,scrooge,mrbill,pfloyd,leeroy,natedog,ishmael,777111,tecumseh,carajo,nfy.irf,0000000000o,blackcock,fedorov,antigone,feanor,novikova,bobert,peregrin,spartan117,pumkin,rayman,manuals,tooltime,555333,bonethug,marina1,bonnie1,tonyhawk,laracroft,mahalkita,18273645,terriers,gamer,hoser,littlema,molotok,glennwei,lemon1,caboose,tater,12345654321,brians,fritz1,mistral,jigsaw,fuckshit,hornyguy,southside,edthom,antonio1,bobmarle,pitures,ilikesex,crafty,nexus,boarder,fulcrum,astonvil,yanks1,yngwie,account1,zooropa,hotlegs,sammi,gumbo,rover1,perkele,maurolarastefy,lampard,357753,barracud,dmband,abcxyz,pathfinder,335577,yuliya,micky,jayman,asdfg12345,1596321,halcyon,rerfhtre,feniks,zaxscd,gotyoass,jaycee,samson1,jamesb,vibrate,grandpri,camino,colossus,davidb,mamo4ka,nicky1,homer123,pinguin,watermelon,shadow01,lasttime,glider,823762,helen1,pyramids,tulane,osama,rostov,john12,scoote,bhbyrf,gohan,galeries,joyful,bigpussy,tonka,mowgli,astalavista,zzz123,leafs,dalejr8,unicorn1,777000,primal,bigmama,okmijn,killzone,qaz12345,snookie,zxcvvcxz,davidc,epson,rockman,ceaser,beanbag,katten,3151020,duckhunt,segreto,matros,ragnar,699669,sexsexse,123123z,fuckyeah,bigbutts,gbcmrf,element1,marketin,saratov,elbereth,blaster1,yamahar6,grime,masha,juneau,1230123,pappy,lindsay1,mooner,seattle1,katzen,lucent,polly1,lagwagon,pixie,misiaczek,666666a,smokedog,lakers24,eyeball,ironhors,ametuer,volkodav,vepsrf,kimmy,gumby1,poi098,ovation,1q2w3,drinker,penetrating,summertime,1dallas,prima,modles,takamine,hardwork,macintosh,tahoe,passthie,chiks,sundown,flowers1,boromir,music123,phaedrus,albert1,joung,malakas,gulliver,parker1,balder,sonne,jessie1,domainlock2005,express1,vfkbyf,youandme,raketa,koala,dhjnvytyjub,nhfrnjh,testibil,ybrbnjc,987654321q,axeman,pintail,pokemon123,dogggg,shandy,thesaint,11122233,x72jhhu3z,theclash,raptors,zappa1,djdjxrf,hell666,friday1,vivaldi,pluto1,lance1,guesswho,jeadmi,corgan,skillz,skippy1,mango1,gymnastic,satori,362514,theedge,cxfcnkbdfz,sparkey,deicide,bagels,lololol,lemmings,r4e3w2q1,silve,staind,schnuffi,dazzle,basebal1,leroy1,bilbo1,luckie,qwerty2,goodfell,hermione,peaceout,davidoff,yesterda,killah,flippy,chrisb,zelda1,headless,muttley,fuckof,tittys,catdaddy,photog,beeker,reaver,ram1500,yorktown,bolero,tryagain,arman,chicco,learjet,alexei,jenna1,go2hell,12s3t4p55,momsanaladventure,mustang9,protoss,rooter,ginola,dingo1,mojave,erica1,1qazse4,marvin1,redwolf,sunbird,dangerou,maciek,girsl,hawks1,packard1,excellen,dashka,soleda,toonces,acetate,nacked,jbond007,alligator,debbie1,wellhung,monkeyma,supers,rigger,larsson,vaseline,rjnzhf,maripos,123456asd,cbr600rr,doggydog,cronic,jason123,trekker,flipmode,druid,sonyvaio,dodges,mayfair,mystuff,fun4me,samanta,sofiya,magics,1ranger,arcane,sixtynin,222444,omerta,luscious,gbyudby,bobcats,envision,chance1,seaweed,holdem,tomate,mensch,slicer,acura1,goochi,qweewq,punter,repoman,tomboy,never1,cortina,gomets,147896321,369852147,dogma,bhjxrf,loglatin,eragon,strato,gazelle,growler,885522,klaudia,payton34,fuckem,butchie,scorpi,lugano,123456789k,nichola,chipper1,spide,uhbujhbq,rsalinas,vfylfhby,longhorns,bugatti,everquest,!qaz2wsx,blackass,999111,snakeman,p455w0rd,fanatic,family1,pfqxbr,777vlad,mysecret,marat,phoenix2,october1,genghis,panties1,cooker,citron,ace123,1234569,gramps,blackcoc,kodiak1,hickory,ivanhoe,blackboy,escher,sincity,beaks,meandyou,spaniel,canon1,timmy1,lancaste,polaroid,edinburg,fuckedup,hotman,cueball,golfclub,gopack,bookcase,worldcup,dkflbvbhjdbx,twostep,17171717aa,letsplay,zolushka,stella1,pfkegf,kingtut,67camaro,barracuda,wiggles,gjhjkm,prancer,patata,kjifhf,theman1,romanova,sexyass,copper1,dobber,sokolov,pomidor,algernon,cadman,amoremio,william2,silly1,bobbys,hercule,hd764nw5d7e1vb1,defcon,deutschland,robinhood,alfalfa,machoman,lesbens,pandora1,easypay,tomservo,nadezhda,goonies,saab9000,jordyn,f15eagle,dbrecz,12qwerty,greatsex,thrawn,blunted,baywatch,doggystyle,loloxx,chevy2,january1,kodak,bushel,78963214,ub6ib9,zz8807zpl,briefs,hawker,224488,first1,bonzo,brent1,erasure,69213124,sidewind,soccer13,622521,mentos,kolibri,onepiece,united1,ponyboy,keksa12,wayer,mypussy,andrej,mischa,mille,bruno123,garter,bigpun,talgat,familia,jazzy1,mustang8,newjob,747400,bobber,blackbel,hatteras,ginge,asdfjkl;,camelot1,blue44,rebbyt34,ebony1,vegas123,myboys,aleksander,ijrjkflrf,lopata,pilsner,lotus123,m0nk3y,andreev,freiheit,balls1,drjynfrnt,mazda1,waterpolo,shibumi,852963,123bbb,cezer121,blondie1,volkova,rattler,kleenex,ben123,sanane,happydog,satellit,qazplm,qazwsxedcrfvtgb,meowmix,badguy,facefuck,spice1,blondy,major1,25000,anna123,654321a,sober1,deathrow,patterso,china1,naruto1,hawkeye1,waldo1,butchy,crayon,5tgb6yhn,klopik,crocodil,mothra,imhorny,pookie1,splatter,slippy,lizard1,router,buratino,yahweh,123698,dragon11,123qwe456,peepers,trucker1,ganjaman,1hxboqg2,cheyanne,storys,sebastie,zztop,maddison,4rfv3edc,darthvader,jeffro,iloveit,victor1,hotty,delphin,lifeisgood,gooseman,shifty,insertions,dude123,abrupt,123masha,boogaloo,chronos,stamford,pimpster,kthjxrf,getmein,amidala,flubber,fettish,grapeape,dantes,oralsex,jack1,foxcg33,winchest,francis1,getin,archon,cliffy,blueman,1basebal,sport1,emmitt22,porn123,bignasty,morga,123hfjdk147,ferrar,juanito,fabiol,caseydog,steveo,peternorth,paroll,kimchi,bootleg,gaijin,secre,acacia,eatme2,amarillo,monkey11,rfhfgep,tylers,a1a2a3a4a5,sweetass,blower,rodina,babushka,camilo,cimbom,tiffan,vfnbkmlf,ohbaby,gotigers,lindsey1,dragon13,romulus,qazxsw12,zxcvbn1,dropdead,hitman47,snuggle,eleven11,bloopers,357mag,avangard,bmw320,ginscoot,dshade,masterkey,voodoo1,rootedit,caramba,leahcim,hannover,8phrowz622,tim123,cassius,000000a,angelito,zzzzz1,badkarma,star1,malaga,glenwood,footlove,golf1,summer12,helpme1,fastcars,titan1,police1,polinka,k.jdm,marusya,augusto,shiraz,pantyhose,donald1,blaise,arabella,brigada,c3por2d2,peter01,marco1,hellow,dillweed,uzumymw,geraldin,loveyou2,toyota1,088011,gophers,indy500,slainte,5hsu75kpot,teejay,renat,racoon,sabrin,angie1,shiznit,harpua,sexyred,latex,tucker1,alexandru,wahoo,teamwork,deepblue,goodison,rundmc,r2d2c3p0,puppys,samba,ayrton,boobed,999777,topsecre,blowme1,123321z,loudog,random1,pantie,drevil,mandolin,121212q,hottub,brother1,failsafe,spade1,matvey,open1234,carmen1,priscill,schatzi,kajak,gooddog,trojans1,gordon1,kayak,calamity,argent,ufhvjybz,seviyi,penfold,assface,dildos,hawkwind,crowbar,yanks,ruffles,rastus,luv2epus,open123,aquafina,dawns,jared1,teufel,12345c,vwgolf,pepsi123,amores,passwerd,01478520,boliva,smutty,headshot,password3,davidd,zydfhm,gbgbcmrf,pornpass,insertion,ceckbr,test2,car123,checkit,dbnfkbq,niggas,nyyankee,muskrat,nbuhtyjr,gunner1,ocean1,fabienne,chrissy1,wendys,loveme89,batgirl,cerveza,igorek,steel1,ragman,boris123,novifarm,sexy12,qwerty777,mike01,giveitup,123456abc,fuckall,crevice,hackerz,gspot,eight8,assassins,texass,swallows,123458,baldur,moonshine,labatt,modem,sydney1,voland,dbnfkz,hotchick,jacker,princessa,dawgs1,holiday1,booper,reliant,miranda1,jamaica1,andre1,badnaamhere,barnaby,tiger7,david12,margaux,corsica,085tzzqi,universi,thewall,nevermor,martin6,qwerty77,cipher,apples1,0102030405,seraphim,black123,imzadi,gandon,ducati99,1shadow,dkflbvbhjdyf,44magnum,bigbad,feedme,samantha1,ultraman,redneck1,jackdog,usmc0311,fresh1,monique1,tigre,alphaman,cool1,greyhoun,indycar,crunchy,55chevy,carefree,willow1,063dyjuy,xrated,assclown,federica,hilfiger,trivia,bronco1,mamita,100200300,simcity,lexingky,akatsuki,retsam,johndeere,abudfv,raster,elgato,businka,satanas,mattingl,redwing1,shamil,patate,mannn,moonstar,evil666,b123456,bowl300,tanechka,34523452,carthage,babygir,santino,bondarenko,jesuss,chico1,numlock,shyguy,sound1,kirby1,needit,mostwanted,427900,funky1,steve123,passions,anduril,kermit1,prospero,lusty,barakuda,dream1,broodwar,porky,christy1,mahal,yyyyyy1,allan1,1sexy,flintsto,capri,cumeater,heretic,robert2,hippos,blindax,marykay,collecti,kasumi,1qaz!qaz,112233q,123258,chemistr,coolboy,0o9i8u,kabuki,righton,tigress,nessie,sergej,andrew12,yfafyz,ytrhjvfyn,angel7,victo,mobbdeep,lemming,transfor,1725782,myhouse,aeynbr,muskie,leno4ka,westham1,cvbhyjd,daffodil,pussylicker,pamela1,stuffer,warehous,tinker1,2w3e4r,pluton,louise1,polarbea,253634,prime1,anatoliy,januar,wysiwyg,cobraya,ralphy,whaler,xterra,cableguy,112233a,porn69,jamesd,aqualung,jimmy123,lumpy,luckyman,kingsize,golfing1,alpha7,leeds1,marigold,lol1234,teabag,alex11,10sne1,saopaulo,shanny,roland1,basser,3216732167,carol1,year2005,morozov,saturn1,joseluis,bushed,redrock,memnoch,lalaland,indiana1,lovegod,gulnaz,buffalos,loveyou1,anteater,pattaya,jaydee,redshift,bartek,summerti,coffee1,ricochet,incest,schastie,rakkaus,h2opolo,suikoden,perro,dance1,loveme1,whoopass,vladvlad,boober,flyers1,alessia,gfcgjhn,pipers,papaya,gunsling,coolone,blackie1,gonads,gfhjkzytn,foxhound,qwert12,gangrel,ghjvtntq,bluedevi,mywife,summer01,hangman,licorice,patter,vfr750,thorsten,515253,ninguna,dakine,strange1,mexic,vergeten,12345432,8phrowz624,stampede,floyd1,sailfish,raziel,ananda,giacomo,freeme,crfprf,74185296,allstars,master01,solrac,gfnhbjn,bayliner,bmw525,3465xxx,catter,single1,michael3,pentium4,nitrox,mapet123456,halibut,killroy,xxxxx1,phillip1,poopsie,arsenalfc,buffys,kosova,all4me,32165498,arslan,opensesame,brutis,charles2,pochta,nadegda,backspac,mustang0,invis,gogeta,654321q,adam25,niceday,truckin,gfdkbr,biceps,sceptre,bigdave,lauras,user345,sandys,shabba,ratdog,cristiano,natha,march13,gumball,getsdown,wasdwasd,redhead1,dddddd1,longlegs,13572468,starsky,ducksoup,bunnys,omsairam,whoami,fred123,danmark,flapper,swanky,lakings,yfhenj,asterios,rainier,searcher,dapper,ltdjxrf,horsey,seahawk,shroom,tkfkdgo,aquaman,tashkent,number9,messi10,1asshole,milenium,illumina,vegita,jodeci,buster01,bareback,goldfinger,fire1,33rjhjds,sabian,thinkpad,smooth1,sully,bonghits,sushi1,magnavox,colombi,voiture,limpone,oldone,aruba,rooster1,zhenya,nomar5,touchdow,limpbizkit,rhfcfdxbr,baphomet,afrodita,bball1,madiso,ladles,lovefeet,matthew2,theworld,thunderbird,dolly1,123rrr,forklift,alfons,berkut,speedy1,saphire,oilman,creatine,pussylov,bastard1,456258,wicked1,filimon,skyline1,fucing,yfnfkbz,hot123,abdulla,nippon,nolimits,billiard,booty1,buttplug,westlife,coolbean,aloha1,lopas,asasin,1212121,october2,whodat,good4u,d12345,kostas,ilya1992,regal,pioneer1,volodya,focus1,bastos,nbvjif,fenix,anita1,vadimka,nickle,jesusc,123321456,teste,christ1,essendon,evgenii,celticfc,adam1,forumwp,lovesme,26exkp,chillout,burly,thelast1,marcus1,metalgear,test11,ronaldo7,socrate,world1,franki,mommie,vicecity,postov1000,charlie3,oldschool,333221,legoland,antoshka,counterstrike,buggy,mustang3,123454,qwertzui,toons,chesty,bigtoe,tigger12,limpopo,rerehepf,diddle,nokia3250,solidsnake,conan1,rockroll,963369,titanic1,qwezxc,cloggy,prashant,katharin,maxfli,takashi,cumonme,michael9,mymother,pennstate,khalid,48151623,fightclub,showboat,mateusz,elrond,teenie,arrow1,mammamia,dustydog,dominator,erasmus,zxcvb1,1a2a3a,bones1,dennis1,galaxie,pleaseme,whatever1,junkyard,galadriel,charlies,2wsxzaq1,crimson1,behemoth,teres,master11,fairway,shady1,pass99,1batman,joshua12,baraban,apelsin,mousepad,melon,twodogs,123321qwe,metalica,ryjgrf,pipiska,rerfhfxf,lugnut,cretin,iloveu2,powerade,aaaaaaa1,omanko,kovalenko,isabe,chobits,151nxjmt,shadow11,zcxfcnkbdf,gy3yt2rgls,vfhbyrf,159753123,bladerunner,goodone,wonton,doodie,333666999,fuckyou123,kitty123,chisox,orlando1,skateboa,red12345,destroye,snoogans,satan1,juancarlo,goheels,jetson,scottt,fuckup,aleksa,gfhfljrc,passfind,oscar123,derrick1,hateme,viper123,pieman,audi100,tuffy,andover,shooter1,10000,makarov,grant1,nighthaw,13576479,browneye,batigol,nfvfhf,chocolate1,7hrdnw23,petter,bantam,morlii,jediknight,brenden,argonaut,goodstuf,wisconsi,315920,abigail1,dirtbag,splurge,k123456,lucky777,valdepen,gsxr600,322223,ghjnjrjk,zaq1xsw2cde3,schwanz,walter1,letmein22,nomads,124356,codeblue,nokian70,fucke,footbal1,agyvorc,aztecs,passw0r,smuggles,femmes,ballgag,krasnodar,tamuna,schule,sixtynine,empires,erfolg,dvader,ladygaga,elite1,venezuel,nitrous,kochamcie,olivia1,trustn01,arioch,sting1,131415,tristar,555000,maroon,135799,marsik,555556,fomoco,natalka,cwoui,tartan,davecole,nosferat,hotsauce,dmitry,horus,dimasik,skazka,boss302,bluebear,vesper,ultras,tarantul,asd123asd,azteca,theflash,8ball,1footbal,titlover,lucas123,number6,sampson1,789852,party1,dragon99,adonai,carwash,metropol,psychnau,vthctltc,hounds,firework,blink18,145632,wildcat1,satchel,rice80,ghtktcnm,sailor1,cubano,anderso,rocks1,mike11,famili,dfghjc,besiktas,roygbiv,nikko,bethan,minotaur,rakesh,orange12,hfleuf,jackel,myangel,favorite7,1478520,asssss,agnieszka,haley1,raisin,htubyf,1buster,cfiekz,derevo,1a2a3a4a5a,baltika,raffles,scruffy1,clitlick,louis1,buddha1,fy.nrf,walker1,makoto,shadow2,redbeard,vfvfvskfhfve,mycock,sandydog,lineman,network1,favorite8,longdick,mustangg,mavericks,indica,1killer,cisco1,angelofwar,blue69,brianna1,bubbaa,slayer666,level42,baldrick,brutus1,lowdown,haribo,lovesexy,500000,thissuck,picker,stephy,1fuckme,characte,telecast,1bigdog,repytwjdf,thematrix,hammerhe,chucha,ganesha,gunsmoke,georgi,sheltie,1harley,knulla,sallas,westie,dragon7,conker,crappie,margosha,lisboa,3e2w1q,shrike,grifter,ghjcnjghjcnj,asdfg1,mnbvcxz1,myszka,posture,boggie,rocketman,flhtyfkby,twiztid,vostok,pi314159,force1,televizor,gtkmvtym,samhain,imcool,jadzia,dreamers,strannik,k2trix,steelhea,nikitin,commodor,brian123,chocobo,whopper,ibilljpf,megafon,ararat,thomas12,ghbrjkbcn,q1234567890,hibernia,kings1,jim123,redfive,68camaro,iawgk2,xavier1,1234567u,d123456,ndirish,airborn,halfmoon,fluffy1,ranchero,sneaker,soccer2,passion1,cowman,birthday1,johnn,razzle,glock17,wsxqaz,nubian,lucky2,jelly1,henderso,eric1,123123e,boscoe01,fuck0ff,simpson1,sassie,rjyjgkz,nascar3,watashi,loredana,janus,wilso,conman,david2,mothe,iloveher,snikers,davidj,fkmnthyfnbdf,mettss,ratfink,123456h,lostsoul,sweet16,brabus,wobble,petra1,fuckfest,otters,sable1,svetka,spartacu,bigstick,milashka,1lover,pasport,champagn,papichul,hrvatska,hondacivic,kevins,tacit,moneybag,gohogs,rasta1,246813579,ytyfdbcnm,gubber,darkmoon,vitaliy,233223,playboys,tristan1,joyce1,oriflame,mugwump,access2,autocad,thematri,qweqwe123,lolwut,ibill01,multisyn,1233211,pelikan,rob123,chacal,1234432,griffon,pooch,dagestan,geisha,satriani,anjali,rocketma,gixxer,pendrago,vincen,hellokit,killyou,ruger,doodah,bumblebe,badlands,galactic,emachines,foghorn,jackso,jerem,avgust,frontera,123369,daisymae,hornyboy,welcome123,tigger01,diabl,angel13,interex,iwantsex,rockydog,kukolka,sawdust,online1,3234412,bigpapa,jewboy,3263827,dave123,riches,333222,tony1,toggle,farter,124816,tities,balle,brasilia,southsid,micke,ghbdtn12,patit,ctdfcnjgjkm,olds442,zzzzzz1,nelso,gremlins,gypsy1,carter1,slut69,farcry,7415963,michael8,birdie1,charl,123456789abc,100001,aztec,sinjin,bigpimpi,closeup,atlas1,nvidia,doggone,classic1,manana,malcolm1,rfkbyf,hotbabe,rajesh,dimebag,ganjubas,rodion,jagr68,seren,syrinx,funnyman,karapuz,123456789n,bloomin,admin18533362,biggdogg,ocarina,poopy1,hellome,internet1,booties,blowjobs,matt1,donkey1,swede,1jennife,evgeniya,lfhbyf,coach1,444777,green12,patryk,pinewood,justin12,271828,89600506779,notredame,tuborg,lemond,sk8ter,million1,wowser,pablo1,st0n3,jeeves,funhouse,hiroshi,gobucs,angeleye,bereza,winter12,catalin,qazedc,andros,ramazan,vampyre,sweethea,imperium,murat,jamest,flossy,sandeep,morgen,salamandra,bigdogg,stroller,njdevils,nutsack,vittorio,%%passwo,playful,rjyatnrf,tookie,ubnfhf,michi,777444,shadow13,devils1,radiance,toshiba1,beluga,amormi,dandfa,trust1,killemall,smallville,polgara,billyb,landscap,steves,exploite,zamboni,damage11,dzxtckfd,trader12,pokey1,kobe08,damager,egorov,dragon88,ckfdbr,lisa69,blade2,audis4,nelson1,nibbles,23176djivanfros,mutabor,artofwar,matvei,metal666,hrfzlz,schwinn,poohbea,seven77,thinker,123456789qwerty,sobriety,jakers,karamelka,vbkfyf,volodin,iddqd,dale03,roberto1,lizaveta,qqqqqq1,cathy1,08154711,davidm,quixote,bluenote,tazdevil,katrina1,bigfoot1,bublik,marma,olechka,fatpussy,marduk,arina,nonrev67,qqqq1111,camill,wtpfhm,truffle,fairview,mashina,voltaire,qazxswedcvfr,dickface,grassy,lapdance,bosstone,crazy8,yackwin,mobil,danielit,mounta1n,player69,bluegill,mewtwo,reverb,cnthdf,pablito,a123321,elena1,warcraft1,orland,ilovemyself,rfntyjr,joyride,schoo,dthjxrf,thetachi,goodtimes,blacksun,humpty,chewbacca,guyute,123xyz,lexicon,blue45,qwe789,galatasaray,centrino,hendrix1,deimos,saturn5,craig1,vlad1996,sarah123,tupelo,ljrnjh,hotwife,bingos,1231231,nicholas1,flamer,pusher,1233210,heart1,hun999,jiggy,giddyup,oktober,123456zxc,budda,galahad,glamur,samwise,oneton,bugsbunny,dominic1,scooby2,freetime,internat,159753852,sc00ter,wantit,mazinger,inflames,laracrof,greedo,014789,godofwar,repytwjd,water123,fishnet,venus1,wallace1,tenpin,paula1,1475963,mania,novikov,qwertyasdfgh,goldmine,homies,777888999,8balls,holeinon,paper1,samael,013579,mansur,nikit,ak1234,blueline,polska1,hotcock,laredo,windstar,vbkbwbz,raider1,newworld,lfybkrf,catfish1,shorty1,piranha,treacle,royale,2234562,smurfs,minion,cadence,flapjack,123456p,sydne,135531,robinhoo,nasdaq,decatur,cyberonline,newage,gemstone,jabba,touchme,hooch,pigdog,indahous,fonzie,zebra1,juggle,patrick2,nihongo,hitomi,oldnavy,qwerfdsa,ukraina,shakti,allure,kingrich,diane1,canad,piramide,hottie1,clarion,college1,5641110,connect1,therion,clubber,velcro,dave1,astra1,13579-,astroboy,skittle,isgreat,photoes,cvzefh1gkc,001100,2cool4u,7555545,ginger12,2wsxcde3,camaro69,invader,domenow,asd1234,colgate,qwertasdfg,jack123,pass01,maxman,bronte,whkzyc,peter123,bogie,yecgaa,abc321,1qay2wsx,enfield,camaroz2,trashman,bonefish,system32,azsxdcfvgb,peterose,iwantyou,dick69,temp1234,blastoff,capa200,connie1,blazin,12233445,sexybaby,123456j,brentfor,pheasant,hommer,jerryg,thunders,august1,lager,kapusta,boobs1,nokia5300,rocco1,xytfu7,stars1,tugger,123sas,blingbling,1bubba,0wnsyo0,1george,baile,richard2,habana,1diamond,sensatio,1golfer,maverick1,1chris,clinton1,michael7,dragons1,sunrise1,pissant,fatim,mopar1,levani,rostik,pizzapie,987412365,oceans11,748159263,cum4me,palmetto,4r3e2w1q,paige1,muncher,arsehole,kratos,gaffer,banderas,billys,prakash,crabby,bungie,silver12,caddis,spawn1,xboxlive,sylvania,littlebi,524645,futura,valdemar,isacs155,prettygirl,big123,555444,slimer,chicke,newstyle,skypilot,sailormoon,fatluvr69,jetaime,sitruc,jesuschrist,sameer,bear12,hellion,yendor,country1,etnies,conejo,jedimast,darkknight,toobad,yxcvbn,snooks,porn4life,calvary,alfaromeo,ghostman,yannick,fnkfynblf,vatoloco,homebase,5550666,barret,1111111111zz,odysseus,edwardss,favre4,jerrys,crybaby,xsw21qaz,firestor,spanks,indians1,squish,kingair,babycakes,haters,sarahs,212223,teddyb,xfactor,cumload,rhapsody,death123,three3,raccoon,thomas2,slayer66,1q2q3q4q5q,thebes,mysterio,thirdeye,orkiox.,nodoubt,bugsy,schweiz,dima1996,angels1,darkwing,jeronimo,moonpie,ronaldo9,peaches2,mack10,manish,denise1,fellowes,carioca,taylor12,epaulson,makemoney,oc247ngucz,kochanie,3edcvfr4,vulture,1qw23e,1234567z,munchie,picard1,xthtgfirf,sportste,psycho1,tahoe1,creativ,perils,slurred,hermit,scoob,diesel1,cards1,wipeout,weeble,integra1,out3xf,powerpc,chrism,kalle,ariadne,kailua,phatty,dexter1,fordman,bungalow,paul123,compa,train1,thejoker,jys6wz,pussyeater,eatmee,sludge,dominus,denisa,tagheuer,yxcvbnm,bill1,ghfdlf,300zx,nikita123,carcass,semaj,ramone,muenchen,animal1,greeny,annemari,dbrf134,jeepcj7,mollys,garten,sashok,ironmaid,coyotes,astoria,george12,westcoast,primetim,123456o,panchito,rafae,japan1,framer,auralo,tooshort,egorova,qwerty22,callme,medicina,warhawk,w1w2w3w4,cristia,merli,alex22,kawaii,chatte,wargames,utvols,muaddib,trinket,andreas1,jjjjj1,cleric,scooters,cuntlick,gggggg1,slipknot1,235711,handcuff,stussy,guess1,leiceste,ppppp1,passe,lovegun,chevyman,hugecock,driver1,buttsex,psychnaut1,cyber1,black2,alpha12,melbourn,man123,metalman,yjdsqujl,blondi,bungee,freak1,stomper,caitlin1,nikitina,flyaway,prikol,begood,desperad,aurelius,john1234,whosyourdaddy,slimed123,bretagne,den123,hotwheel,king123,roodypoo,izzicam,save13tx,warpten,nokia3310,samolet,ready1,coopers,scott123,bonito,1aaaaa,yomomma,dawg1,rache,itworks,asecret,fencer,451236,polka,olivetti,sysadmin,zepplin,sanjuan,479373,lickem,hondacrx,pulamea,future1,naked1,sexyguy,w4g8at,lollol1,declan,runner1,rumple,daddy123,4snz9g,grandprix,calcio,whatthefuck,nagrom,asslick,pennst,negrit,squiggy,1223334444,police22,giovann,toronto1,tweet,yardbird,seagate,truckers,554455,scimitar,pescator,slydog,gaysex,dogfish,fuck777,12332112,qazxswed,morkovka,daniela1,imback,horny69,789123456,123456789w,jimmy2,bagger,ilove69,nikolaus,atdhfkm,rebirth,1111aaaa,pervasive,gjgeufq,dte4uw,gfhnbpfy,skeletor,whitney1,walkman,delorean,disco1,555888,as1234,ishikawa,fuck12,reaper1,dmitrii,bigshot,morrisse,purgen,qwer4321,itachi,willys,123123qwe,kisska,roma123,trafford,sk84life,326159487,pedros,idiom,plover,bebop,159875321,jailbird,arrowhea,qwaszx123,zaxscdvf,catlover,bakers,13579246,bones69,vermont1,helloyou,simeon,chevyz71,funguy,stargaze,parolparol,steph1,bubby,apathy,poppet,laxman,kelly123,goodnews,741236,boner1,gaetano,astonvilla,virtua,luckyboy,rocheste,hello2u,elohim,trigger1,cstrike,pepsicola,miroslav,96385274,fistfuck,cheval,magyar,svetlanka,lbfyjxrf,mamedov,123123123q,ronaldo1,scotty1,1nicole,pittbull,fredd,bbbbb1,dagwood,gfhkfvtyn,ghblehrb,logan5,1jordan,sexbomb,omega2,montauk,258741,dtythf,gibbon,winamp,thebomb,millerli,852654,gemin,baldy,halflife2,dragon22,mulberry,morrigan,hotel6,zorglub,surfin,951159,excell,arhangel,emachine,moses1,968574,reklama,bulldog2,cuties,barca,twingo,saber,elite11,redtruck,casablan,ashish,moneyy,pepper12,cnhtktw,rjcnbr,arschloch,phenix,cachorro,sunita,madoka,joselui,adams1,mymoney,hemicuda,fyutkjr,jake12,chicas,eeeee1,sonnyboy,smarties,birdy,kitten1,cnfcbr,island1,kurosaki,taekwond,konfetka,bennett1,omega3,jackson2,fresca,minako,octavian,kban667,feyenoord,muaythai,jakedog,fktrcfylhjdyf,1357911q,phuket,sexslave,fktrcfylhjdbx,asdfjk,89015173454,qwerty00,kindbud,eltoro,sex6969,nyknicks,12344321q,caballo,evenflow,hoddle,love22,metro1,mahalko,lawdog,tightass,manitou,buckie,whiskey1,anton123,335533,password4,primo,ramair,timbo,brayden,stewie,pedro1,yorkshir,ganster,hellothe,tippy1,direwolf,genesi,rodrig,enkeli,vaz21099,sorcerer,winky,oneshot,boggle,serebro,badger1,japanes,comicbook,kamehame,alcat,denis123,echo45,sexboy,gr8ful,hondo,voetbal,blue33,2112rush,geneviev,danni1,moosey,polkmn,matthew7,ironhead,hot2trot,ashley12,sweeper,imogen,blue21,retep,stealth1,guitarra,bernard1,tatian,frankfur,vfnhbwf,slacking,haha123,963741,asdasdas,katenok,airforce1,123456789qaz,shotgun1,12qwasz,reggie1,sharo,976431,pacifica,dhip6a,neptun,kardon,spooky1,beaut,555555a,toosweet,tiedup,11121314,startac,lover69,rediska,pirata,vfhrbp,1234qwerty,energize,hansolo1,playbo,larry123,oemdlg,cnjvfnjkju,a123123,alexan,gohawks,antonius,fcbayern,mambo,yummy1,kremlin,ellen1,tremere,vfiekz,bellevue,charlie9,izabella,malishka,fermat,rotterda,dawggy,becket,chasey,kramer1,21125150,lolit,cabrio,schlong,arisha,verity,3some,favorit,maricon,travelle,hotpants,red1234,garrett1,home123,knarf,seven777,figment,asdewq,canseco,good2go,warhol,thomas01,pionee,al9agd,panacea,chevy454,brazzers,oriole,azerty123,finalfan,patricio,northsta,rebelde,bulldo,stallone,boogie1,7uftyx,cfhfnjd,compusa,cornholi,config,deere,hoopster,sepultura,grasshop,babygurl,lesbo,diceman,proverbs,reddragon,nurbek,tigerwoo,superdup,buzzsaw,kakaroto,golgo13,edwar,123qaz123,butter1,sssss1,texas2,respekt,ou812ic,123456qaz,55555a,doctor1,mcgwire,maria123,aol999,cinders,aa1234,joness,ghbrjkmyj,makemone,sammyboy,567765,380zliki,theraven,testme,mylene,elvira26,indiglo,tiramisu,shannara,baby1,123666,gfhreh,papercut,johnmish,orange8,bogey1,mustang7,bagpipes,dimarik,vsijyjr,4637324,ravage,cogito,seven11,natashka,warzone,hr3ytm,4free,bigdee,000006,243462536,bigboi,123333,trouts,sandy123,szevasz,monica2,guderian,newlife1,ratchet,r12345,razorbac,12345i,piazza31,oddjob,beauty1,fffff1,anklet,nodrog,pepit,olivi,puravida,robert12,transam1,portman,bubbadog,steelers1,wilson1,eightball,mexico1,superboy,4rfv5tgb,mzepab,samurai1,fuckslut,colleen1,girdle,vfrcbvec,q1w2e3r4t,soldier1,19844891,alyssa1,a12345a,fidelis,skelter,nolove,mickeymouse,frehley,password69,watermel,aliska,soccer15,12345e,ladybug1,abulafia,adagio,tigerlil,takehana,hecate,bootneck,junfan,arigato,wonkette,bobby123,trustnoone,phantasm,132465798,brianjo,w12345,t34vfrc1991,deadeye,1robert,1daddy,adida,check1,grimlock,muffi,airwalk,prizrak,onclick,longbeac,ernie1,eadgbe,moore1,geniu,shadow123,bugaga,jonathan1,cjrjkjdf,orlova,buldog,talon1,westport,aenima,541233432442,barsuk,chicago2,kellys,hellbent,toughguy,iskander,skoal,whatisit,jake123,scooter2,fgjrfkbgcbc,ghandi,love13,adelphia,vjhrjdrf,adrenali,niunia,jemoeder,rainbo,all4u8,anime1,freedom7,seraph,789321,tommys,antman,firetruc,neogeo,natas,bmwm3,froggy1,paul1,mamit,bayview,gateways,kusanagi,ihateu,frederi,rock1,centurion,grizli,biggin,fish1,stalker1,3girls,ilovepor,klootzak,lollo,redsox04,kirill123,jake1,pampers,vasya,hammers1,teacup,towing,celtic1,ishtar,yingyang,4904s677075,dahc1,patriot1,patrick9,redbirds,doremi,rebecc,yoohoo,makarova,epiphone,rfgbnfy,milesd,blister,chelseafc,katana1,blackrose,1james,primrose,shock5,hard1,scooby12,c6h12o6,dustoff,boing,chisel,kamil,1william,defiant1,tyvugq,mp8o6d,aaa340,nafets,sonnet,flyhigh,242526,crewcom,love23,strike1,stairway,katusha,salamand,cupcake1,password0,007james,sunnie,multisync,harley01,tequila1,fred12,driver8,q8zo8wzq,hunter01,mozzer,temporar,eatmeraw,mrbrownxx,kailey,sycamore,flogger,tincup,rahasia,ganymede,bandera,slinger,1111122222,vander,woodys,1cowboy,khaled,jamies,london12,babyboo,tzpvaw,diogenes,budice,mavrick,135797531,cheeta,macros,squonk,blackber,topfuel,apache1,falcon16,darkjedi,cheeze,vfhvtkfl,sparco,change1,gfhfif,freestyl,kukuruza,loveme2,12345f,kozlov,sherpa,marbella,44445555,bocephus,1winner,alvar,hollydog,gonefish,iwantin,barman,godislove,amanda18,rfpfynbg,eugen,abcdef1,redhawk,thelema,spoonman,baller1,harry123,475869,tigerman,cdtnjxrf,marillio,scribble,elnino,carguy,hardhead,l2g7k3,troopers,selen,dragon76,antigua,ewtosi,ulysse,astana,paroli,cristo,carmex,marjan,bassfish,letitbe,kasparov,jay123,19933991,blue13,eyecandy,scribe,mylord,ukflbjkec,ellie1,beaver1,destro,neuken,halfpint,ameli,lilly1,satanic,xngwoj,12345trewq,asdf1,bulldogg,asakura,jesucrist,flipside,packers4,biggy,kadett,biteme69,bobdog,silverfo,saint1,bobbo,packman,knowledg,foolio,fussbal,12345g,kozerog,westcoas,minidisc,nbvcxw,martini1,alastair,rasengan,superbee,memento,porker,lena123,florenc,kakadu,bmw123,getalife,bigsky,monkee,people1,schlampe,red321,memyself,0147896325,12345678900987654321,soccer14,realdeal,gfgjxrf,bella123,juggs,doritos,celtics1,peterbilt,ghbdtnbrb,gnusmas,xcountry,ghbdtn1,batman99,deusex,gtnhjdf,blablabl,juster,marimba,love2,rerjkrf,alhambra,micros,siemens1,assmaste,moonie,dashadasha,atybrc,eeeeee1,wildrose,blue55,davidl,xrp23q,skyblue,leo123,ggggg1,bestfriend,franny,1234rmvb,fun123,rules1,sebastien,chester2,hakeem,winston2,fartripper,atlant,07831505,iluvsex,q1a2z3,larrys,009900,ghjkju,capitan,rider1,qazxsw21,belochka,andy123,hellya,chicca,maximal,juergen,password1234,howard1,quetzal,daniel123,qpwoeiruty,123555,bharat,ferrari3,numbnuts,savant,ladydog,phipsi,lovepussy,etoile,power2,mitten,britneys,chilidog,08522580,2fchbg,kinky1,bluerose,loulo,ricardo1,doqvq3,kswbdu,013cpfza,timoha,ghbdtnghbdtn,3stooges,gearhead,browns1,g00ber,super7,greenbud,kitty2,pootie,toolshed,gamers,coffe,ibill123,freelove,anasazi,sister1,jigger,natash,stacy1,weronika,luzern,soccer7,hoopla,dmoney,valerie1,canes,razdvatri,washere,greenwoo,rfhjkbyf,anselm,pkxe62,maribe,daniel2,maxim1,faceoff,carbine,xtkjdtr,buddy12,stratos,jumpman,buttocks,aqswdefr,pepsis,sonechka,steeler1,lanman,nietzsch,ballz,biscuit1,wrxsti,goodfood,juventu,federic,mattman,vika123,strelec,jledfyxbr,sideshow,4life,fredderf,bigwilly,12347890,12345671,sharik,bmw325i,fylhtqrf,dannon4,marky,mrhappy,drdoom,maddog1,pompier,cerbera,goobers,howler,jenny69,evely,letitrid,cthuttdyf,felip,shizzle,golf12,t123456,yamah,bluearmy,squishy,roxan,10inches,dollface,babygirl1,blacksta,kaneda,lexingto,canadien,222888,kukushka,sistema,224422,shadow69,ppspankp,mellons,barbie1,free4all,alfa156,lostone,2w3e4r5t,painkiller,robbie1,binger,8dihc6,jaspe,rellik,quark,sogood,hoopstar,number2,snowy1,dad2ownu,cresta,qwe123asd,hjvfyjdf,gibsonsg,qbg26i,dockers,grunge,duckling,lfiekz,cuntsoup,kasia1,1tigger,woaini,reksio,tmoney,firefighter,neuron,audia3,woogie,powerboo,powermac,fatcock,12345666,upnfmc,lustful,porn1,gotlove,amylee,kbytqrf,11924704,25251325,sarasota,sexme,ozzie1,berliner,nigga1,guatemal,seagulls,iloveyou!,chicken2,qwerty21,010203040506,1pillow,libby1,vodoley,backlash,piglets,teiubesc,019283,vonnegut,perico,thunde,buckey,gtxtymrf,manunite,iiiii1,lost4815162342,madonn,270873_,britney1,kevlar,piano1,boondock,colt1911,salamat,doma77ns,anuradha,cnhjqrf,rottweil,newmoon,topgun1,mauser,fightclu,birthday21,reviewpa,herons,aassddff,lakers32,melissa2,vredina,jiujitsu,mgoblue,shakey,moss84,12345zxcvb,funsex,benji1,garci,113322,chipie,windex,nokia5310,pwxd5x,bluemax,cosita,chalupa,trotsky,new123,g3ujwg,newguy,canabis,gnaget,happydays,felixx,1patrick,cumface,sparkie,kozlova,123234,newports,broncos7,golf18,recycle,hahah,harrypot,cachondo,open4me,miria,guessit,pepsione,knocker,usmc1775,countach,playe,wiking,landrover,cracksevi,drumline,a7777777,smile123,manzana,panty,liberta,pimp69,dolfan,quality1,schnee,superson,elaine22,webhompass,mrbrownx,deepsea,4wheel,mamasita,rockport,rollie,myhome,jordan12,kfvgjxrf,hockey12,seagrave,ford1,chelsea2,samsara,marissa1,lamesa,mobil1,piotrek,tommygun,yyyyy1,wesley1,billy123,homersim,julies,amanda12,shaka,maldini,suzenet,springst,iiiiii1,yakuza,111111aa,westwind,helpdesk,annamari,bringit,hopefull,hhhhhhh1,saywhat,mazdarx8,bulova,jennife1,baikal,gfhjkmxbr,victoria1,gizmo123,alex99,defjam,2girls,sandrock,positivo,shingo,syncmast,opensesa,silicone,fuckina,senna1,karlos,duffbeer,montagne,gehrig,thetick,pepino,hamburge,paramedic,scamp,smokeweed,fabregas,phantoms,venom121293,2583458,badone,porno69,manwhore,vfvf123,notagain,vbktyf,rfnthbyrf,wildblue,kelly001,dragon66,camell,curtis1,frolova,1212123,dothedew,tyler123,reddrago,planetx,promethe,gigolo,1001001,thisone,eugeni,blackshe,cruzazul,incognito,puller,joonas,quick1,spirit1,gazza,zealot,gordito,hotrod1,mitch1,pollito,hellcat,mythos,duluth,383pdjvl,easy123,hermos,binkie,its420,lovecraf,darien,romina,doraemon,19877891,syclone,hadoken,transpor,ichiro,intell,gargamel,dragon2,wavpzt,557744,rjw7x4,jennys,kickit,rjynfrn,likeit,555111,corvus,nec3520,133113,mookie1,bochum,samsung2,locoman0,154ugeiu,vfvfbgfgf,135792,[start],tenni,20001,vestax,hufmqw,neveragain,wizkid,kjgfnf,nokia6303,tristen,saltanat,louie1,gandalf2,sinfonia,alpha3,tolstoy,ford150,f00bar,1hello,alici,lol12,riker1,hellou,333888,1hunter,qw1234,vibrator,mets86,43211234,gonzale,cookies1,sissy1,john11,bubber,blue01,cup2006,gtkmvtyb,nazareth,heybaby,suresh,teddie,mozilla,rodeo1,madhouse,gamera,123123321,naresh,dominos,foxtrot1,taras,powerup,kipling,jasonb,fidget,galena,meatman,alpacino,bookmark,farting,humper,titsnass,gorgon,castaway,dianka,anutka,gecko1,fucklove,connery,wings1,erika1,peoria,moneymaker,ichabod,heaven1,paperboy,phaser,breakers,nurse1,westbrom,alex13,brendan1,123asd123,almera,grubber,clarkie,thisisme,welkom01,51051051051,crypto,freenet,pflybwf,black12,testme2,changeit,autobahn,attica,chaoss,denver1,tercel,gnasher23,master2,vasilii,sherman1,gomer,bigbuck,derek1,qwerzxcv,jumble,dragon23,art131313,numark,beasty,cxfcnmttcnm,updown,starion,glist,sxhq65,ranger99,monkey7,shifter,wolves1,4r5t6y,phone1,favorite5,skytommy,abracada,1martin,102030405060,gatech,giulio,blacktop,cheer1,africa1,grizzly1,inkjet,shemales,durango1,booner,11223344q,supergirl,vanyarespekt,dickless,srilanka,weaponx,6string,nashvill,spicey,boxer1,fabien,2sexy2ho,bowhunt,jerrylee,acrobat,tawnee,ulisse,nolimit8,l8g3bkde,pershing,gordo1,allover,gobrowns,123432,123444,321456987,spoon1,hhhhh1,sailing1,gardenia,teache,sexmachine,tratata,pirate1,niceone,jimbos,314159265,qsdfgh,bobbyy,ccccc1,carla1,vjkjltw,savana,biotech,frigid,123456789g,dragon10,yesiam,alpha06,oakwood,tooter,winsto,radioman,vavilon,asnaeb,google123,nariman,kellyb,dthyjcnm,password6,parol1,golf72,skate1,lthtdj,1234567890s,kennet,rossia,lindas,nataliya,perfecto,eminem1,kitana,aragorn1,rexona,arsenalf,planot,coope,testing123,timex,blackbox,bullhead,barbarian,dreamon,polaris1,cfvjktn,frdfhbev,gametime,slipknot666,nomad1,hfgcjlbz,happy69,fiddler,brazil1,joeboy,indianali,113355,obelisk,telemark,ghostrid,preston1,anonim,wellcome,verizon1,sayangku,censor,timeport,dummies,adult1,nbnfybr,donger,thales,iamgay,sexy1234,deadlift,pidaras,doroga,123qwe321,portuga,asdfgh12,happys,cadr14nu,pi3141,maksik,dribble,cortland,darken,stepanova,bommel,tropic,sochi2014,bluegras,shahid,merhaba,nacho,2580456,orange44,kongen,3cudjz,78girl,my3kids,marcopol,deadmeat,gabbie,saruman,jeepman,freddie1,katie123,master99,ronal,ballbag,centauri,killer7,xqgann,pinecone,jdeere,geirby,aceshigh,55832811,pepsimax,rayden,razor1,tallyho,ewelina,coldfire,florid,glotest,999333,sevenup,bluefin,limaperu,apostol,bobbins,charmed1,michelin,sundin,centaur,alphaone,christof,trial1,lions1,45645,just4you,starflee,vicki1,cougar1,green2,jellyfis,batman69,games1,hihje863,crazyzil,w0rm1,oklick,dogbite,yssup,sunstar,paprika,postov10,124578963,x24ik3,kanada,buckster,iloveamy,bear123,smiler,nx74205,ohiostat,spacey,bigbill,doudo,nikolaeva,hcleeb,sex666,mindy1,buster11,deacons,boness,njkcnsq,candy2,cracker1,turkey1,qwertyu1,gogreen,tazzzz,edgewise,ranger01,qwerty6,blazer1,arian,letmeinnow,cigar1,jjjjjj1,grigio,frien,tenchu,f9lmwd,imissyou,filipp,heathers,coolie,salem1,woodduck,scubadiv,123kat,raffaele,nikolaev,dapzu455,skooter,9inches,lthgfhjkm,gr8one,ffffff1,zujlrf,amanda69,gldmeo,m5wkqf,rfrltkf,televisi,bonjou,paleale,stuff1,cumalot,fuckmenow,climb7,mark1234,t26gn4,oneeye,george2,utyyflbq,hunting1,tracy71,ready2go,hotguy,accessno,charger1,rudedog,kmfdm,goober1,sweetie1,wtpmjgda,dimensio,ollie1,pickles1,hellraiser,mustdie,123zzz,99887766,stepanov,verdun,tokenbad,anatol,bartende,cidkid86,onkelz,timmie,mooseman,patch1,12345678c,marta1,dummy1,bethany1,myfamily,history1,178500,lsutiger,phydeaux,moren,dbrnjhjdbx,gnbxrf,uniden,drummers,abpbrf,godboy,daisy123,hogan1,ratpack,irland,tangerine,greddy,flore,sqrunch,billyjoe,q55555,clemson1,98745632,marios,ishot,angelin,access12,naruto12,lolly,scxakv,austin12,sallad,cool99,rockit,mongo1,mark22,ghbynth,ariadna,senha,docto,tyler2,mobius,hammarby,192168,anna12,claire1,pxx3eftp,secreto,greeneye,stjabn,baguvix,satana666,rhbcnbyjxrf,dallastx,garfiel,michaelj,1summer,montan,1234ab,filbert,squids,fastback,lyudmila,chucho,eagleone,kimberle,ar3yuk3,jake01,nokids,soccer22,1066ad,ballon,cheeto,review69,madeira,taylor2,sunny123,chubbs,lakeland,striker1,porche,qwertyu8,digiview,go1234,ferari,lovetits,aditya,minnow,green3,matman,cellphon,fortytwo,minni,pucara,69a20a,roman123,fuente,12e3e456,paul12,jacky,demian,littleman,jadakiss,vlad1997,franca,282860,midian,nunzio,xaccess2,colibri,jessica0,revilo,654456,harvey1,wolf1,macarena,corey1,husky1,arsen,milleniu,852147,crowes,redcat,combat123654,hugger,psalms,quixtar,ilovemom,toyot,ballss,ilovekim,serdar,james23,avenger1,serendip,malamute,nalgas,teflon,shagger,letmein6,vyjujnjxbt,assa1234,student1,dixiedog,gznybwf13,fuckass,aq1sw2de3,robroy,hosehead,sosa21,123345,ias100,teddy123,poppin,dgl70460,zanoza,farhan,quicksilver,1701d,tajmahal,depechemode,paulchen,angler,tommy2,recoil,megamanx,scarecro,nicole2,152535,rfvtgb,skunky,fatty1,saturno,wormwood,milwauke,udbwsk,sexlover,stefa,7bgiqk,gfnhbr,omar10,bratan,lbyfvj,slyfox,forest1,jambo,william3,tempus,solitari,lucydog,murzilka,qweasdzxc1,vehpbkrf,12312345,fixit,woobie,andre123,123456789x,lifter,zinaida,soccer17,andone,foxbat,torsten,apple12,teleport,123456i,leglover,bigcocks,vologda,dodger1,martyn,d6o8pm,naciona,eagleeye,maria6,rimshot,bentley1,octagon,barbos,masaki,gremio,siemen,s1107d,mujeres,bigtits1,cherr,saints1,mrpink,simran,ghzybr,ferrari2,secret12,tornado1,kocham,picolo,deneme,onelove1,rolan,fenster,1fuckyou,cabbie,pegaso,nastyboy,password5,aidana,mine2306,mike13,wetone,tigger69,ytreza,bondage1,myass,golova,tolik,happyboy,poilkj,nimda2k,rammer,rubies,hardcore1,jetset,hoops1,jlaudio,misskitt,1charlie,google12,theone1,phred,porsch,aalborg,luft4,charlie5,password7,gnosis,djgabbab,1daniel,vinny,borris,cumulus,member1,trogdor,darthmau,andrew2,ktjybl,relisys,kriste,rasta220,chgobndg,weener,qwerty66,fritter,followme,freeman1,ballen,blood1,peache,mariso,trevor1,biotch,gtfullam,chamonix,friendste,alligato,misha1,1soccer,18821221,venkat,superd,molotov,bongos,mpower,acun3t1x,dfcmrf,h4x3d,rfhfufylf,tigran,booyaa,plastic1,monstr,rfnhby,lookatme,anabolic,tiesto,simon123,soulman,canes1,skyking,tomcat1,madona,bassline,dasha123,tarheel1,dutch1,xsw23edc,qwerty123456789,imperator,slaveboy,bateau,paypal,house123,pentax,wolf666,drgonzo,perros,digger1,juninho,hellomoto,bladerun,zzzzzzz1,keebler,take8422,fffffff1,ginuwine,israe,caesar1,crack1,precious1,garand,magda1,zigazaga,321ewq,johnpaul,mama1234,iceman69,sanjeev,treeman,elric,rebell,1thunder,cochon,deamon,zoltan,straycat,uhbyuj,luvfur,mugsy,primer,wonder1,teetime,candycan,pfchfytw,fromage,gitler,salvatio,piggy1,23049307,zafira,chicky,sergeev,katze,bangers,andriy,jailbait,vaz2107,ghbhjlf,dbjktnnf,aqswde,zaratustra,asroma,1pepper,alyss,kkkkk1,ryan1,radish,cozumel,waterpol,pentium1,rosebowl,farmall,steinway,dbrekz,baranov,jkmuf,another1,chinacat,qqqqqqq1,hadrian,devilmaycry4,ratbag,teddy2,love21,pullings,packrat,robyn1,boobo,qw12er34,tribe1,rosey,celestia,nikkie,fortune12,olga123,danthema,gameon,vfrfhjys,dilshod,henry14,jenova,redblue,chimaera,pennywise,sokrates,danimal,qqaazz,fuaqz4,killer2,198200,tbone1,kolyan,wabbit,lewis1,maxtor,egoist,asdfas,spyglass,omegas,jack12,nikitka,esperanz,doozer,matematika,wwwww1,ssssss1,poiu0987,suchka,courtney1,gungho,alpha2,fktyjxrf,summer06,bud420,devildriver,heavyd,saracen,foucault,choclate,rjdfktyrj,goblue1,monaro,jmoney,dcpugh,efbcapa201,qqh92r,pepsicol,bbb747,ch5nmk,honeyb,beszoptad,tweeter,intheass,iseedeadpeople,123dan,89231243658s,farside1,findme,smiley1,55556666,sartre,ytcnjh,kacper,costarica,134679258,mikeys,nolimit9,vova123,withyou,5rxypn,love143,freebie,rescue1,203040,michael6,12monkey,redgreen,steff,itstime,naveen,good12345,acidrain,1dawg,miramar,playas,daddio,orion2,852741,studmuff,kobe24,senha123,stephe,mehmet,allalone,scarface1,helloworld,smith123,blueyes,vitali,memphis1,mybitch,colin1,159874,1dick,podaria,d6wnro,brahms,f3gh65,dfcbkmtd,xxxman,corran,ugejvp,qcfmtz,marusia,totem,arachnid,matrix2,antonell,fgntrf,zemfira,christos,surfing1,naruto123,plato1,56qhxs,madzia,vanille,043aaa,asq321,mutton,ohiostate,golde,cdznjckfd,rhfcysq,green5,elephan,superdog,jacqueli,bollock,lolitas,nick12,1orange,maplelea,july23,argento,waldorf,wolfer,pokemon12,zxcvbnmm,flicka,drexel,outlawz,harrie,atrain,juice2,falcons1,charlie6,19391945,tower1,dragon21,hotdamn,dirtyboy,love4ever,1ginger,thunder2,virgo1,alien1,bubblegu,4wwvte,123456789qqq,realtime,studio54,passss,vasilek,awsome,giorgia,bigbass,2002tii,sunghile,mosdef,simbas,count0,uwrl7c,summer05,lhepmz,ranger21,sugarbea,principe,5550123,tatanka,9638v,cheerios,majere,nomercy,jamesbond007,bh90210,7550055,jobber,karaganda,pongo,trickle,defamer,6chid8,1q2a3z,tuscan,nick123,.adgjm,loveyo,hobbes1,note1234,shootme,171819,loveporn,9788960,monty123,fabrice,macduff,monkey13,shadowfa,tweeker,hanna1,madball,telnet,loveu2,qwedcxzas,thatsit,vfhcbr,ptfe3xxp,gblfhfcs,ddddddd1,hakkinen,liverune,deathsta,misty123,suka123,recon1,inferno1,232629,polecat,sanibel,grouch,hitech,hamradio,rkfdbfnehf,vandam,nadin,fastlane,shlong,iddqdidkfa,ledzeppelin,sexyfeet,098123,stacey1,negras,roofing,lucifer1,ikarus,tgbyhn,melnik,barbaria,montego,twisted1,bigal1,jiggle,darkwolf,acerview,silvio,treetops,bishop1,iwanna,pornsite,happyme,gfccdjhl,114411,veritech,batterse,casey123,yhntgb,mailto,milli,guster,q12345678,coronet,sleuth,fuckmeha,armadill,kroshka,geordie,lastochka,pynchon,killall,tommy123,sasha1996,godslove,hikaru,clticic,cornbrea,vfkmdbyf,passmaster,123123123a,souris,nailer,diabolo,skipjack,martin12,hinata,mof6681,brookie,dogfight,johnso,karpov,326598,rfvbrflpt,travesti,caballer,galaxy1,wotan,antoha,art123,xakep1234,ricflair,pervert1,p00kie,ambulanc,santosh,berserker,larry33,bitch123,a987654321,dogstar,angel22,cjcbcrf,redhouse,toodles,gold123,hotspot,kennedy1,glock21,chosen1,schneide,mainman,taffy1,3ki42x,4zqauf,ranger2,4meonly,year2000,121212a,kfylsi,netzwerk,diese,picasso1,rerecz,225522,dastan,swimmer1,brooke1,blackbea,oneway,ruslana,dont4get,phidelt,chrisp,gjyxbr,xwing,kickme,shimmy,kimmy1,4815162342lost,qwerty5,fcporto,jazzbo,mierd,252627,basses,sr20det,00133,florin,howdy1,kryten,goshen,koufax,cichlid,imhotep,andyman,wrest666,saveme,dutchy,anonymou,semprini,siempre,mocha1,forest11,wildroid,aspen1,sesam,kfgekz,cbhbec,a55555,sigmanu,slash1,giggs11,vatech,marias,candy123,jericho1,kingme,123a123,drakula,cdjkjxm,mercur,oneman,hoseman,plumper,ilovehim,lancers,sergey1,takeshi,goodtogo,cranberr,ghjcnj123,harvick,qazxs,1972chev,horsesho,freedom3,letmein7,saitek,anguss,vfvfgfgfz,300000,elektro,toonporn,999111999q,mamuka,q9umoz,edelweis,subwoofer,bayside,disturbe,volition,lucky3,12345678z,3mpz4r,march1,atlantida,strekoza,seagrams,090909t,yy5rbfsc,jack1234,sammy12,sampras,mark12,eintrach,chaucer,lllll1,nochance,whitepower,197000,lbvekz,passer,torana,12345as,pallas,koolio,12qw34,nokia8800,findout,1thomas,mmmmm1,654987,mihaela,chinaman,superduper,donnas,ringo1,jeroen,gfdkjdf,professo,cdtnrf,tranmere,tanstaaf,himera,ukflbfnjh,667788,alex32,joschi,w123456,okidoki,flatline,papercli,super8,doris1,2good4u,4z34l0ts,pedigree,freeride,gsxr1100,wulfgar,benjie,ferdinan,king1,charlie7,djdxbr,fhntvbq,ripcurl,2wsx1qaz,kingsx,desade,sn00py,loveboat,rottie,evgesha,4money,dolittle,adgjmpt,buzzers,brett1,makita,123123qweqwe,rusalka,sluts1,123456e,jameson1,bigbaby,1z2z3z,ckjybr,love4u,fucker69,erhfbyf,jeanluc,farhad,fishfood,merkin,giant1,golf69,rfnfcnhjaf,camera1,stromb,smoothy,774411,nylon,juice1,rfn.irf,newyor,123456789t,marmot,star11,jennyff,jester1,hisashi,kumquat,alex777,helicopt,merkur,dehpye,cummin,zsmj2v,kristjan,april12,englan,honeypot,badgirls,uzumaki,keines,p12345,guita,quake1,duncan1,juicer,milkbone,hurtme,123456789b,qq123456789,schwein,p3wqaw,54132442,qwertyytrewq,andreeva,ruffryde,punkie,abfkrf,kristinka,anna1987,ooooo1,335533aa,umberto,amber123,456123789,456789123,beelch,manta,peeker,1112131415,3141592654,gipper,wrinkle5,katies,asd123456,james11,78n3s5af,michael0,daboss,jimmyb,hotdog1,david69,852123,blazed,sickan,eljefe,2n6wvq,gobills,rfhfcm,squeaker,cabowabo,luebri,karups,test01,melkor,angel777,smallvil,modano,olorin,4rkpkt,leslie1,koffie,shadows1,littleon,amiga1,topeka,summer20,asterix1,pitstop,aloysius,k12345,magazin,joker69,panocha,pass1word,1233214,ironpony,368ejhih,88keys,pizza123,sonali,57np39,quake2,1234567890qw,1020304,sword1,fynjif,abcde123,dfktyjr,rockys,grendel1,harley12,kokakola,super2,azathoth,lisa123,shelley1,girlss,ibragim,seven1,jeff24,1bigdick,dragan,autobot,t4nvp7,omega123,900000,hecnfv,889988,nitro1,doggie1,fatjoe,811pahc,tommyt,savage1,pallino,smitty1,jg3h4hfn,jamielee,1qazwsx,zx123456,machine1,asdfgh123,guinnes,789520,sharkman,jochen,legend1,sonic2,extreme1,dima12,photoman,123459876,nokian95,775533,vaz2109,april10,becks,repmvf,pooker,qwer12345,themaster,nabeel,monkey10,gogetit,hockey99,bbbbbbb1,zinedine,dolphin2,anelka,1superma,winter01,muggsy,horny2,669966,kuleshov,jesusis,calavera,bullet1,87t5hdf,sleepers,winkie,vespa,lightsab,carine,magister,1spider,shitbird,salavat,becca1,wc18c2,shirak,galactus,zaskar,barkley1,reshma,dogbreat,fullsail,asasa,boeder,12345ta,zxcvbnm12,lepton,elfquest,tony123,vkaxcs,savatage,sevilia1,badkitty,munkey,pebbles1,diciembr,qapmoc,gabriel2,1qa2ws3e,cbcmrb,welldone,nfyufh,kaizen,jack11,manisha,grommit,g12345,maverik,chessman,heythere,mixail,jjjjjjj1,sylvia1,fairmont,harve,skully,global1,youwish,pikachu1,badcat,zombie1,49527843,ultra1,redrider,offsprin,lovebird,153426,stymie,aq1sw2,sorrento,0000001,r3ady41t,webster1,95175,adam123,coonass,159487,slut1,gerasim,monkey99,slutwife,159963,1pass1page,hobiecat,bigtymer,all4you,maggie2,olamide,comcast1,infinit,bailee,vasileva,.ktxrf,asdfghjkl1,12345678912,setter,fuckyou7,nnagqx,lifesuck,draken,austi,feb2000,cable1,1234qwerasdf,hax0red,zxcv12,vlad7788,nosaj,lenovo,underpar,huskies1,lovegirl,feynman,suerte,babaloo,alskdjfhg,oldsmobi,bomber1,redrover,pupuce,methodman,phenom,cutegirl,countyli,gretsch,godisgood,bysunsu,hardhat,mironova,123qwe456rty,rusty123,salut,187211,555666777,11111z,mahesh,rjntyjxtr,br00klyn,dunce1,timebomb,bovine,makelove,littlee,shaven,rizwan,patrick7,42042042,bobbijo,rustem,buttmunc,dongle,tiger69,bluecat,blackhol,shirin,peaces,cherub,cubase,longwood,lotus7,gwju3g,bruin,pzaiu8,green11,uyxnyd,seventee,dragon5,tinkerbel,bluess,bomba,fedorova,joshua2,bodyshop,peluche,gbpacker,shelly1,d1i2m3a4,ghtpbltyn,talons,sergeevna,misato,chrisc,sexmeup,brend,olddog,davros,hazelnut,bridget1,hzze929b,readme,brethart,wild1,ghbdtnbr1,nortel,kinger,royal1,bucky1,allah1,drakkar,emyeuanh,gallaghe,hardtime,jocker,tanman,flavio,abcdef123,leviatha,squid1,skeet,sexse,123456x,mom4u4mm,lilred,djljktq,ocean11,cadaver,baxter1,808state,fighton,primavera,1andrew,moogle,limabean,goddess1,vitalya,blue56,258025,bullride,cicci,1234567d,connor1,gsxr11,oliveoil,leonard1,legsex,gavrik,rjnjgtc,mexicano,2bad4u,goodfellas,ornw6d,mancheste,hawkmoon,zlzfrh,schorsch,g9zns4,bashful,rossi46,stephie,rfhfntkm,sellout,123fuck,stewar1,solnze,00007,thor5200,compaq12,didit,bigdeal,hjlbyf,zebulon,wpf8eu,kamran,emanuele,197500,carvin,ozlq6qwm,3syqo15hil,pennys,epvjb6,asdfghjkl123,198000,nfbcbz,jazzer,asfnhg66,zoloft,albundy,aeiou,getlaid,planet1,gjkbyjxrf,alex2000,brianb,moveon,maggie11,eieio,vcradq,shaggy1,novartis,cocoloco,dunamis,554uzpad,sundrop,1qwertyu,alfie,feliks,briand,123www,red456,addams,fhntv1998,goodhead,theway,javaman,angel01,stratoca,lonsdale,15987532,bigpimpin,skater1,issue43,muffie,yasmina,slowride,crm114,sanity729,himmel,carolcox,bustanut,parabola,masterlo,computador,crackhea,dynastar,rockbott,doggysty,wantsome,bigten,gaelle,juicy1,alaska1,etower,sixnine,suntan,froggies,nokia7610,hunter11,njnets,alicante,buttons1,diosesamo,elizabeth1,chiron,trustnoo,amatuers,tinytim,mechta,sammy2,cthulu,trs8f7,poonam,m6cjy69u35,cookie12,blue25,jordans,santa1,kalinka,mikey123,lebedeva,12345689,kissss,queenbee,vjybnjh,ghostdog,cuckold,bearshare,rjcntyrj,alinochka,ghjcnjrdfibyj,aggie1,teens1,3qvqod,dauren,tonino,hpk2qc,iqzzt580,bears85,nascar88,theboy,njqcw4,masyanya,pn5jvw,intranet,lollone,shadow99,00096462,techie,cvtifhbrb,redeemed,gocanes,62717315,topman,intj3a,cobrajet,antivirus,whyme,berserke,ikilz083,airedale,brandon2,hopkig,johanna1,danil8098,gojira,arthu,vision1,pendragon,milen,chrissie,vampiro,mudder,chris22,blowme69,omega7,surfers,goterps,italy1,baseba11,diego1,gnatsum,birdies,semenov,joker123,zenit2011,wojtek,cab4ma99,watchmen,damia,forgotte,fdm7ed,strummer,freelanc,cingular,orange77,mcdonalds,vjhjpjdf,kariya,tombston,starlet,hawaii1,dantheman,megabyte,nbvjirf,anjing,ybrjkftdbx,hotmom,kazbek,pacific1,sashimi,asd12,coorslig,yvtte545,kitte,elysium,klimenko,cobblers,kamehameha,only4me,redriver,triforce,sidorov,vittoria,fredi,dank420,m1234567,fallout2,989244342a,crazy123,crapola,servus,volvos,1scooter,griffin1,autopass,ownzyou,deviant,george01,2kgwai,boeing74,simhrq,hermosa,hardcor,griffy,rolex1,hackme,cuddles1,master3,bujhtr,aaron123,popolo,blader,1sexyred,gerry1,cronos,ffvdj474,yeehaw,bob1234,carlos2,mike77,buckwheat,ramesh,acls2h,monster2,montess,11qq22ww,lazer,zx123456789,chimpy,masterch,sargon,lochness,archana,1234qwert,hbxfhl,sarahb,altoid,zxcvbn12,dakot,caterham,dolomite,chazz,r29hqq,longone,pericles,grand1,sherbert,eagle3,pudge,irontree,synapse,boome,nogood,summer2,pooki,gangsta1,mahalkit,elenka,lbhtrnjh,dukedog,19922991,hopkins1,evgenia,domino1,x123456,manny1,tabbycat,drake1,jerico,drahcir,kelly2,708090a,facesit,11c645df,mac123,boodog,kalani,hiphop1,critters,hellothere,tbirds,valerka,551scasi,love777,paloalto,mrbrown,duke3d,killa1,arcturus,spider12,dizzy1,smudger,goddog,75395,spammy,1357997531,78678,datalife,zxcvbn123,1122112211,london22,23dp4x,rxmtkp,biggirls,ownsu,lzbs2twz,sharps,geryfe,237081a,golakers,nemesi,sasha1995,pretty1,mittens1,d1lakiss,speedrac,gfhjkmm,sabbat,hellrais,159753258,qwertyuiop123,playgirl,crippler,salma,strat1,celest,hello5,omega5,cheese12,ndeyl5,edward12,soccer3,cheerio,davido,vfrcbr,gjhjctyjr,boscoe,inessa,shithole,ibill,qwepoi,201jedlz,asdlkj,davidk,spawn2,ariel1,michael4,jamie123,romantik,micro1,pittsbur,canibus,katja,muhtar,thomas123,studboy,masahiro,rebrov,patrick8,hotboys,sarge1,1hammer,nnnnn1,eistee,datalore,jackdani,sasha2010,mwq6qlzo,cmfnpu,klausi,cnhjbntkm,andrzej,ilovejen,lindaa,hunter123,vvvvv1,novembe,hamster1,x35v8l,lacey1,1silver,iluvporn,valter,herson,alexsandr,cojones,backhoe,womens,777angel,beatit,klingon1,ta8g4w,luisito,benedikt,maxwel,inspecto,zaq12ws,wladimir,bobbyd,peterj,asdfg12,hellspawn,bitch69,nick1234,golfer23,sony123,jello1,killie,chubby1,kodaira52,yanochka,buckfast,morris1,roaddogg,snakeeye,sex1234,mike22,mmouse,fucker11,dantist,brittan,vfrfhjdf,doc123,plokijuh,emerald1,batman01,serafim,elementa,soccer9,footlong,cthuttdbx,hapkido,eagle123,getsmart,getiton,batman2,masons,mastiff,098890,cfvfhf,james7,azalea,sherif,saun24865709,123red,cnhtrjpf,martina1,pupper,michael5,alan12,shakir,devin1,ha8fyp,palom,mamulya,trippy,deerhunter,happyone,monkey77,3mta3,123456789f,crownvic,teodor,natusik,0137485,vovchik,strutter,triumph1,cvetok,moremone,sonnen,screwbal,akira1,sexnow,pernille,independ,poopies,samapi,kbcbxrf,master22,swetlana,urchin,viper2,magica,slurpee,postit,gilgames,kissarmy,clubpenguin,limpbizk,timber1,celin,lilkim,fuckhard,lonely1,mom123,goodwood,extasy,sdsadee23,foxglove,malibog,clark1,casey2,shell1,odense,balefire,dcunited,cubbie,pierr,solei,161718,bowling1,areyukesc,batboy,r123456,1pionee,marmelad,maynard1,cn42qj,cfvehfq,heathrow,qazxcvbn,connecti,secret123,newfie,xzsawq21,tubitzen,nikusha,enigma1,yfcnz123,1austin,michaelc,splunge,wanger,phantom2,jason2,pain4me,primetime21,babes1,liberte,sugarray,undergro,zonker,labatts,djhjyf,watch1,eagle5,madison2,cntgfirf,sasha2,masterca,fiction7,slick50,bruins1,sagitari,12481632,peniss,insuranc,2b8riedt,12346789,mrclean,ssptx452,tissot,q1w2e3r4t5y6u7,avatar1,comet1,spacer,vbrjkf,pass11,wanker1,14vbqk9p,noshit,money4me,sayana,fish1234,seaways,pipper,romeo123,karens,wardog,ab123456,gorilla1,andrey123,lifesucks,jamesr,4wcqjn,bearman,glock22,matt11,dflbvrf,barbi,maine1,dima1997,sunnyboy,6bjvpe,bangkok1,666666q,rafiki,letmein0,0raziel0,dalla,london99,wildthin,patrycja,skydog,qcactw,tmjxn151,yqlgr667,jimmyd,stripclub,deadwood,863abgsg,horses1,qn632o,scatman,sonia1,subrosa,woland,kolya,charlie4,moleman,j12345,summer11,angel11,blasen,sandal,mynewpas,retlaw,cambria,mustang4,nohack04,kimber45,fatdog,maiden1,bigload,necron,dupont24,ghost123,turbo2,.ktymrf,radagast,balzac,vsevolod,pankaj,argentum,2bigtits,mamabear,bumblebee,mercury7,maddie1,chomper,jq24nc,snooky,pussylic,1lovers,taltos,warchild,diablo66,jojo12,sumerki,aventura,gagger,annelies,drumset,cumshots,azimut,123580,clambake,bmw540,birthday54,psswrd,paganini,wildwest,filibert,teaseme,1test,scampi,thunder5,antosha,purple12,supersex,hhhhhh1,brujah,111222333a,13579a,bvgthfnjh,4506802a,killians,choco,qqqwwweee,raygun,1grand,koetsu13,sharp1,mimi92139,fastfood,idontcare,bluered,chochoz,4z3al0ts,target1,sheffiel,labrat,stalingrad,147123,cubfan,corvett1,holden1,snapper1,4071505,amadeo,pollo,desperados,lovestory,marcopolo,mumbles,familyguy,kimchee,marcio,support1,tekila,shygirl1,trekkie,submissi,ilaria,salam,loveu,wildstar,master69,sales1,netware,homer2,arseniy,gerrity1,raspberr,atreyu,stick1,aldric,tennis12,matahari,alohomora,dicanio,michae1,michaeld,666111,luvbug,boyscout,esmerald,mjordan,admiral1,steamboa,616913,ybhdfyf,557711,555999,sunray,apokalipsis,theroc,bmw330,buzzy,chicos,lenusik,shadowma,eagles05,444222,peartree,qqq123,sandmann,spring1,430799,phatass,andi03,binky1,arsch,bamba,kenny123,fabolous,loser123,poop12,maman,phobos,tecate,myxworld4,metros,cocorico,nokia6120,johnny69,hater,spanked,313233,markos,love2011,mozart1,viktoriy,reccos,331234,hornyone,vitesse,1um83z,55555q,proline,v12345,skaven,alizee,bimini,fenerbahce,543216,zaqqaz,poi123,stabilo,brownie1,1qwerty1,dinesh,baggins1,1234567t,davidkin,friend1,lietuva,octopuss,spooks,12345qq,myshit,buttface,paradoxx,pop123,golfin,sweet69,rfghbp,sambuca,kayak1,bogus1,girlz,dallas12,millers,123456zx,operatio,pravda,eternal1,chase123,moroni,proust,blueduck,harris1,redbarch,996699,1010101,mouche,millenni,1123456,score1,1234565,1234576,eae21157,dave12,pussyy,gfif1991,1598741,hoppy,darrian,snoogins,fartface,ichbins,vfkbyrf,rusrap,2741001,fyfrjylf,aprils,favre,thisis,bannana,serval,wiggum,satsuma,matt123,ivan123,gulmira,123zxc123,oscar2,acces,annie2,dragon0,emiliano,allthat,pajaro,amandine,rawiswar,sinead,tassie,karma1,piggys,nokias,orions,origami,type40,mondo,ferrets,monker,biteme2,gauntlet,arkham,ascona,ingram01,klem1,quicksil,bingo123,blue66,plazma,onfire,shortie,spjfet,123963,thered,fire777,lobito,vball,1chicken,moosehea,elefante,babe23,jesus12,parallax,elfstone,number5,shrooms,freya,hacker1,roxette,snoops,number7,fellini,dtlmvf,chigger,mission1,mitsubis,kannan,whitedog,james01,ghjgecr,rfnfgekmnf,everythi,getnaked,prettybo,sylvan,chiller,carrera4,cowbo,biochem,azbuka,qwertyuiop1,midnight1,informat,audio1,alfred1,0range,sucker1,scott2,russland,1eagle,torben,djkrjlfd,rocky6,maddy1,bonobo,portos,chrissi,xjznq5,dexte,vdlxuc,teardrop,pktmxr,iamtheone,danijela,eyphed,suzuki1,etvww4,redtail,ranger11,mowerman,asshole2,coolkid,adriana1,bootcamp,longcut,evets,npyxr5,bighurt,bassman1,stryder,giblet,nastja,blackadd,topflite,wizar,cumnow,technolo,bassboat,bullitt,kugm7b,maksimus,wankers,mine12,sunfish,pimpin1,shearer9,user1,vjzgjxnf,tycobb,80070633pc,stanly,vitaly,shirley1,cinzia,carolyn1,angeliqu,teamo,qdarcv,aa123321,ragdoll,bonit,ladyluck,wiggly,vitara,jetbalance,12345600,ozzman,dima12345,mybuddy,shilo,satan66,erebus,warrio,090808qwe,stupi,bigdan,paul1234,chiapet,brooks1,philly1,dually,gowest,farmer1,1qa2ws3ed4rf,alberto1,beachboy,barne,aa12345,aliyah,radman,benson1,dfkthbq,highball,bonou2,i81u812,workit,darter,redhook,csfbr5yy,buttlove,episode1,ewyuza,porthos,lalal,abcd12,papero,toosexy,keeper1,silver7,jujitsu,corset,pilot123,simonsay,pinggolf,katerinka,kender,drunk1,fylhjvtlf,rashmi,nighthawk,maggy,juggernaut,larryb,cabibble,fyabcf,247365,gangstar,jaybee,verycool,123456789qw,forbidde,prufrock,12345zxc,malaika,blackbur,docker,filipe,koshechka,gemma1,djamaal,dfcbkmtdf,gangst,9988aa,ducks1,pthrfkj,puertorico,muppets,griffins,whippet,sauber,timofey,larinso,123456789zxc,quicken,qsefth,liteon,headcase,bigdadd,zxc321,maniak,jamesc,bassmast,bigdogs,1girls,123xxx,trajan,lerochka,noggin,mtndew,04975756,domin,wer123,fumanchu,lambada,thankgod,june22,kayaking,patchy,summer10,timepass,poiu1234,kondor,kakka,lament,zidane10,686xqxfg,l8v53x,caveman1,nfvthkfy,holymoly,pepita,alex1996,mifune,fighter1,asslicker,jack22,abc123abc,zaxxon,midnigh,winni,psalm23,punky,monkey22,password13,mymusic,justyna,annushka,lucky5,briann,495rus19,withlove,almaz,supergir,miata,bingbong,bradpitt,kamasutr,yfgjktjy,vanman,pegleg,amsterdam1,123a321,letmein9,shivan,korona,bmw520,annette1,scotsman,gandal,welcome12,sc00by,qpwoei,fred69,m1sf1t,hamburg1,1access,dfkmrbhbz,excalibe,boobies1,fuckhole,karamel,starfuck,star99,breakfas,georgiy,ywvxpz,smasher,fatcat1,allanon,12345n,coondog,whacko,avalon1,scythe,saab93,timon,khorne,atlast,nemisis,brady12,blenheim,52678677,mick7278,9skw5g,fleetwoo,ruger1,kissass,pussy7,scruff,12345l,bigfun,vpmfsz,yxkck878,evgeny,55667788,lickher,foothill,alesis,poppies,77777778,californi,mannie,bartjek,qhxbij,thehulk,xirt2k,angelo4ek,rfkmrekznjh,tinhorse,1david,sparky12,night1,luojianhua,bobble,nederland,rosemari,travi,minou,ciscokid,beehive,565hlgqo,alpine1,samsung123,trainman,xpress,logistic,vw198m2n,hanter,zaqwsx123,qwasz,mariachi,paska,kmg365,kaulitz,sasha12,north1,polarbear,mighty1,makeksa11,123456781,one4all,gladston,notoriou,polniypizdec110211,gosia,grandad,xholes,timofei,invalidp,speaker1,zaharov,maggiema,loislane,gonoles,br5499,discgolf,kaskad,snooper,newman1,belial,demigod,vicky1,pridurok,alex1990,tardis1,cruzer,hornie,sacramen,babycat,burunduk,mark69,oakland1,me1234,gmctruck,extacy,sexdog,putang,poppen,billyd,1qaz2w,loveable,gimlet,azwebitalia,ragtop,198500,qweas,mirela,rock123,11bravo,sprewell,tigrenok,jaredleto,vfhbif,blue2,rimjob,catwalk,sigsauer,loqse,doromich,jack01,lasombra,jonny5,newpassword,profesor,garcia1,123as123,croucher,demeter,4_life,rfhfvtkm,superman2,rogues,assword1,russia1,jeff1,mydream,z123456789,rascal1,darre,kimberl,pickle1,ztmfcq,ponchik,lovesporn,hikari,gsgba368,pornoman,chbjun,choppy,diggity,nightwolf,viktori,camar,vfhecmrf,alisa1,minstrel,wishmaster,mulder1,aleks,gogirl,gracelan,8womys,highwind,solstice,dbrnjhjdyf,nightman,pimmel,beertje,ms6nud,wwfwcw,fx3tuo,poopface,asshat,dirtyd,jiminy,luv2fuck,ptybnxtvgbjy,dragnet,pornogra,10inch,scarlet1,guido1,raintree,v123456,1aaaaaaa,maxim1935,hotwater,gadzooks,playaz,harri,brando1,defcon1,ivanna,123654a,arsenal2,candela,nt5d27,jaime1,duke1,burton1,allstar1,dragos,newpoint,albacore,1236987z,verygoodbot,1wildcat,fishy1,ptktysq,chris11,puschel,itdxtyrj,7kbe9d,serpico,jazzie,1zzzzz,kindbuds,wenef45313,1compute,tatung,sardor,gfyfcjybr,test99,toucan,meteora,lysander,asscrack,jowgnx,hevnm4,suckthis,masha123,karinka,marit,oqglh565,dragon00,vvvbbb,cheburashka,vfrfrf,downlow,unforgiven,p3e85tr,kim123,sillyboy,gold1,golfvr6,quicksan,irochka,froglegs,shortsto,caleb1,tishka,bigtitts,smurfy,bosto,dropzone,nocode,jazzbass,digdug,green7,saltlake,therat,dmitriev,lunita,deaddog,summer0,1212qq,bobbyg,mty3rh,isaac1,gusher,helloman,sugarbear,corvair,extrem,teatime,tujazopi,titanik,efyreg,jo9k2jw2,counchac,tivoli,utjvtnhbz,bebit,jacob6,clayton1,incubus1,flash123,squirter,dima2010,cock1,rawks,komatsu,forty2,98741236,cajun1,madelein,mudhoney,magomed,q111111,qaswed,consense,12345b,bakayaro,silencer,zoinks,bigdic,werwolf,pinkpuss,96321478,alfie1,ali123,sarit,minette,musics,chato,iaapptfcor,cobaka,strumpf,datnigga,sonic123,yfnecbr,vjzctvmz,pasta1,tribbles,crasher,htlbcrf,1tiger,shock123,bearshar,syphon,a654321,cubbies1,jlhanes,eyespy,fucktheworld,carrie1,bmw325is,suzuk,mander,dorina,mithril,hondo1,vfhnbyb,sachem,newton1,12345x,7777755102q,230857z,xxxsex,scubapro,hayastan,spankit,delasoul,searock6,fallout3,nilrem,24681357,pashka,voluntee,pharoh,willo,india1,badboy69,roflmao,gunslinger,lovergir,mama12,melange,640xwfkv,chaton,darkknig,bigman1,aabbccdd,harleyd,birdhouse,giggsy,hiawatha,tiberium,joker7,hello1234,sloopy,tm371855,greendog,solar1,bignose,djohn11,espanol,oswego,iridium,kavitha,pavell,mirjam,cyjdsvujljv,alpha5,deluge,hamme,luntik,turismo,stasya,kjkbnf,caeser,schnecke,tweety1,tralfaz,lambrett,prodigy1,trstno1,pimpshit,werty1,karman,bigboob,pastel,blackmen,matthew8,moomin,q1w2e,gilly,primaver,jimmyg,house2,elviss,15975321,1jessica,monaliza,salt55,vfylfhbyrf,harley11,tickleme,murder1,nurgle,kickass1,theresa1,fordtruck,pargolf,managua,inkognito,sherry1,gotit,friedric,metro2033,slk230,freeport,cigarett,492529,vfhctkm,thebeach,twocats,bakugan,yzerman1,charlieb,motoko,skiman,1234567w,pussy3,love77,asenna,buffie,260zntpc,kinkos,access20,mallard1,fuckyou69,monami,rrrrr1,bigdog69,mikola,1boomer,godzila,ginger2,dima2000,skorpion39,dima1234,hawkdog79,warrior2,ltleirf,supra1,jerusale,monkey01,333z333,666888,kelsey1,w8gkz2x1,fdfnfh,msnxbi,qwe123rty,mach1,monkey3,123456789qq,c123456,nezabudka,barclays,nisse,dasha1,12345678987654321,dima1993,oldspice,frank2,rabbitt,prettyboy,ov3ajy,iamthema,kawasak,banjo1,gtivr6,collants,gondor,hibees,cowboys2,codfish,buster2,purzel,rubyred,kayaker,bikerboy,qguvyt,masher,sseexx,kenshiro,moonglow,semenova,rosari,eduard1,deltaforce,grouper,bongo1,tempgod,1taylor,goldsink,qazxsw1,1jesus,m69fg2w,maximili,marysia,husker1,kokanee,sideout,googl,south1,plumber1,trillian,00001,1357900,farkle,1xxxxx,pascha,emanuela,bagheera,hound1,mylov,newjersey,swampfox,sakic19,torey,geforce,wu4etd,conrail,pigman,martin2,ber02,nascar2,angel69,barty,kitsune,cornet,yes90125,goomba,daking,anthea,sivart,weather1,ndaswf,scoubidou,masterchief,rectum,3364068,oranges1,copter,1samanth,eddies,mimoza,ahfywbz,celtic88,86mets,applemac,amanda11,taliesin,1angel,imhere,london11,bandit12,killer666,beer1,06225930,psylocke,james69,schumach,24pnz6kc,endymion,wookie1,poiu123,birdland,smoochie,lastone,rclaki,olive1,pirat,thunder7,chris69,rocko,151617,djg4bb4b,lapper,ajcuivd289,colole57,shadow7,dallas21,ajtdmw,executiv,dickies,omegaman,jason12,newhaven,aaaaaas,pmdmscts,s456123789,beatri,applesauce,levelone,strapon,benladen,creaven,ttttt1,saab95,f123456,pitbul,54321a,sex12345,robert3,atilla,mevefalkcakk,1johnny,veedub,lilleke,nitsuj,5t6y7u8i,teddys,bluefox,nascar20,vwjetta,buffy123,playstation3,loverr,qweasd12,lover2,telekom,benjamin1,alemania,neutrino,rockz,valjean,testicle,trinity3,realty,firestarter,794613852,ardvark,guadalup,philmont,arnold1,holas,zw6syj,birthday299,dover1,sexxy1,gojets,741236985,cance,blue77,xzibit,qwerty88,komarova,qweszxc,footer,rainger,silverst,ghjcnb,catmando,tatooine,31217221027711,amalgam,69dude,qwerty321,roscoe1,74185,cubby,alfa147,perry1,darock,katmandu,darknight,knicks1,freestuff,45454,kidman,4tlved,axlrose,cutie1,quantum1,joseph10,ichigo,pentium3,rfhectkm,rowdy1,woodsink,justforfun,sveta123,pornografia,mrbean,bigpig,tujheirf,delta9,portsmou,hotbod,kartal,10111213,fkbyf001,pavel1,pistons1,necromancer,verga,c7lrwu,doober,thegame1,hatesyou,sexisfun,1melissa,tuczno18,bowhunte,gobama,scorch,campeon,bruce2,fudge1,herpderp,bacon1,redsky,blackeye,19966991,19992000,ripken8,masturba,34524815,primax,paulina1,vp6y38,427cobra,4dwvjj,dracon,fkg7h4f3v6,longview,arakis,panama1,honda2,lkjhgfdsaz,razors,steels,fqkw5m,dionysus,mariajos,soroka,enriqu,nissa,barolo,king1234,hshfd4n279,holland1,flyer1,tbones,343104ky,modems,tk421,ybrbnrf,pikapp,sureshot,wooddoor,florida2,mrbungle,vecmrf,catsdogs,axolotl,nowayout,francoi,chris21,toenail,hartland,asdjkl,nikkii,onlyyou,buckskin,fnord,flutie,holen1,rincewind,lefty1,ducky1,199000,fvthbrf,redskin1,ryno23,lostlove,19mtpgam19,abercrom,benhur,jordan11,roflcopter,ranma,phillesh,avondale,igromania,p4ssword,jenny123,tttttt1,spycams,cardigan,2112yyz,sleepy1,paris123,mopars,lakers34,hustler1,james99,matrix3,popimp,12pack,eggbert,medvedev,testit,performa,logitec,marija,sexybeast,supermanboy,iwantit,rjktcj,jeffer,svarog,halo123,whdbtp,nokia3230,heyjoe,marilyn1,speeder,ibxnsm,prostock,bennyboy,charmin,codydog,parol999,ford9402,jimmer,crayola,159357258,alex77,joey1,cayuga,phish420,poligon,specops,tarasova,caramelo,draconis,dimon,cyzkhw,june29,getbent,1guitar,jimjam,dictiona,shammy,flotsam,0okm9ijn,crapper,technic,fwsadn,rhfdxtyrj,zaq11qaz,anfield1,159753q,curious1,hip-hop,1iiiii,gfhjkm2,cocteau,liveevil,friskie,crackhead,b1afra,elektrik,lancer1,b0ll0cks,jasond,z1234567,tempest1,alakazam,asdfasd,duffy1,oneday,dinkle,qazedctgb,kasimir,happy7,salama,hondaciv,nadezda,andretti,cannondale,sparticu,znbvjd,blueice,money01,finster,eldar,moosie,pappa,delta123,neruda,bmw330ci,jeanpaul,malibu1,alevtina,sobeit,travolta,fullmetal,enamorad,mausi,boston12,greggy,smurf1,ratrace,ichiban,ilovepus,davidg,wolf69,villa1,cocopuff,football12,starfury,zxc12345,forfree,fairfiel,dreams1,tayson,mike2,dogday,hej123,oldtimer,sanpedro,clicker,mollycat,roadstar,golfe,lvbnhbq1,topdevice,a1b2c,sevastopol,calli,milosc,fire911,pink123,team3x,nolimit5,snickers1,annies,09877890,jewel1,steve69,justin11,autechre,killerbe,browncow,slava1,christer,fantomen,redcloud,elenberg,beautiful1,passw0rd1,nazira,advantag,cockring,chaka,rjpzdrf,99941,az123456,biohazar,energie,bubble1,bmw323,tellme,printer1,glavine,1starwar,coolbeans,april17,carly1,quagmire,admin2,djkujuhfl,pontoon,texmex,carlos12,thermo,vaz2106,nougat,bob666,1hockey,1john,cricke,qwerty10,twinz,totalwar,underwoo,tijger,lildevil,123q321,germania,freddd,1scott,beefy,5t4r3e2w1q,fishbait,nobby,hogger,dnstuff,jimmyc,redknapp,flame1,tinfloor,balla,nfnfhby,yukon1,vixens,batata,danny123,1zxcvbnm,gaetan,homewood,greats,tester1,green99,1fucker,sc0tland,starss,glori,arnhem,goatman,1234asd,supertra,bill123,elguapo,sexylegs,jackryan,usmc69,innow,roaddog,alukard,winter11,crawler,gogiants,rvd420,alessandr,homegrow,gobbler,esteba,valeriy,happy12,1joshua,hawking,sicnarf,waynes,iamhappy,bayadera,august2,sashas,gotti,dragonfire,pencil1,halogen,borisov,bassingw,15975346,zachar,sweetp,soccer99,sky123,flipyou,spots3,xakepy,cyclops1,dragon77,rattolo58,motorhea,piligrim,helloween,dmb2010,supermen,shad0w,eatcum,sandokan,pinga,ufkfrnbrf,roksana,amista,pusser,sony1234,azerty1,1qasw2,ghbdt,q1w2e3r4t5y6u7i8,ktutylf,brehznev,zaebali,shitass,creosote,gjrtvjy,14938685,naughtyboy,pedro123,21crack,maurice1,joesakic,nicolas1,matthew9,lbyfhf,elocin,hfcgbplzq,pepper123,tiktak,mycroft,ryan11,firefly1,arriva,cyecvevhbr,loreal,peedee,jessica8,lisa01,anamari,pionex,ipanema,airbag,frfltvbz,123456789aa,epwr49,casper12,sweethear,sanandreas,wuschel,cocodog,france1,119911,redroses,erevan,xtvgbjy,bigfella,geneve,volvo850,evermore,amy123,moxie,celebs,geeman,underwor,haslo1,joy123,hallow,chelsea0,12435687,abarth,12332145,tazman1,roshan,yummie,genius1,chrisd,ilovelife,seventy7,qaz1wsx2,rocket88,gaurav,bobbyboy,tauchen,roberts1,locksmit,masterof,www111,d9ungl,volvos40,asdasd1,golfers,jillian1,7xm5rq,arwpls4u,gbhcf2,elloco,football2,muerte,bob101,sabbath1,strider1,killer66,notyou,lawnboy,de7mdf,johnnyb,voodoo2,sashaa,homedepo,bravos,nihao123,braindea,weedhead,rajeev,artem1,camille1,rockss,bobbyb,aniston,frnhbcf,oakridge,biscayne,cxfcnm,dressage,jesus3,kellyann,king69,juillet,holliste,h00ters,ripoff,123645,1999ar,eric12,123777,tommi,dick12,bilder,chris99,rulezz,getpaid,chicubs,ender1,byajhvfnbrf,milkshak,sk8board,freakshow,antonella,monolit,shelb,hannah01,masters1,pitbull1,1matthew,luvpussy,agbdlcid,panther2,alphas,euskadi,8318131,ronnie1,7558795,sweetgirl,cookie59,sequoia,5552555,ktyxbr,4500455,money7,severus,shinobu,dbityrf,phisig,rogue2,fractal,redfred,sebastian1,nelli,b00mer,cyberman,zqjphsyf6ctifgu,oldsmobile,redeemer,pimpi,lovehurts,1slayer,black13,rtynfdh,airmax,g00gle,1panther,artemon,nopasswo,fuck1234,luke1,trinit,666000,ziadma,oscardog,davex,hazel1,isgood,demond,james5,construc,555551,january2,m1911a1,flameboy,merda,nathan12,nicklaus,dukester,hello99,scorpio7,leviathan,dfcbktr,pourquoi,vfrcbv123,shlomo,rfcgth,rocky3,ignatz,ajhneyf,roger123,squeek,4815162342a,biskit,mossimo,soccer21,gridlock,lunker,popstar,ghhh47hj764,chutney,nitehawk,vortec,gamma1,codeman,dragula,kappasig,rainbow2,milehigh,blueballs,ou8124me,rulesyou,collingw,mystere,aster,astrovan,firetruck,fische,crawfish,hornydog,morebeer,tigerpaw,radost,144000,1chance,1234567890qwe,gracie1,myopia,oxnard,seminoles,evgeni,edvard,partytim,domani,tuffy1,jaimatadi,blackmag,kzueirf,peternor,mathew1,maggie12,henrys,k1234567,fasted,pozitiv,cfdtkbq,jessica7,goleafs,bandito,girl78,sharingan,skyhigh,bigrob,zorros,poopers,oldschoo,pentium2,gripper,norcal,kimba,artiller,moneymak,00197400,272829,shadow1212,thebull,handbags,all4u2c,bigman2,civics,godisgoo,section8,bandaid,suzanne1,zorba,159123,racecars,i62gbq,rambo123,ironroad,johnson2,knobby,twinboys,sausage1,kelly69,enter2,rhjirf,yessss,james12,anguilla,boutit,iggypop,vovochka,06060,budwiser,romuald,meditate,good1,sandrin,herkules,lakers8,honeybea,11111111a,miche,rangers9,lobster1,seiko,belova,midcon,mackdadd,bigdaddy1,daddie,sepultur,freddy12,damon1,stormy1,hockey2,bailey12,hedimaptfcor,dcowboys,sadiedog,thuggin,horny123,josie1,nikki2,beaver69,peewee1,mateus,viktorija,barrys,cubswin1,matt1234,timoxa,rileydog,sicilia,luckycat,candybar,julian1,abc456,pussylip,phase1,acadia,catty,246800,evertonf,bojangle,qzwxec,nikolaj,fabrizi,kagome,noncapa0,marle,popol,hahaha1,cossie,carla10,diggers,spankey,sangeeta,cucciolo,breezer,starwar1,cornholio,rastafari,spring99,yyyyyyy1,webstar,72d5tn,sasha1234,inhouse,gobuffs,civic1,redstone,234523,minnie1,rivaldo,angel5,sti2000,xenocide,11qq11,1phoenix,herman1,holly123,tallguy,sharks1,madri,superbad,ronin,jalal123,hardbody,1234567r,assman1,vivahate,buddylee,38972091,bonds25,40028922,qrhmis,wp2005,ceejay,pepper01,51842543,redrum1,renton,varadero,tvxtjk7r,vetteman,djhvbrc,curly1,fruitcak,jessicas,maduro,popmart,acuari,dirkpitt,buick1,bergerac,golfcart,pdtpljxrf,hooch1,dudelove,d9ebk7,123452000,afdjhbn,greener,123455432,parachut,mookie12,123456780,jeepcj5,potatoe,sanya,qwerty2010,waqw3p,gotika,freaky1,chihuahu,buccanee,ecstacy,crazyboy,slickric,blue88,fktdnbyf,2004rj,delta4,333222111,calient,ptbdhw,1bailey,blitz1,sheila1,master23,hoagie,pyf8ah,orbita,daveyboy,prono1,delta2,heman,1horny,tyrik123,ostrov,md2020,herve,rockfish,el546218,rfhbyjxrf,chessmaster,redmoon,lenny1,215487,tomat,guppy,amekpass,amoeba,my3girls,nottingh,kavita,natalia1,puccini,fabiana,8letters,romeos,netgear,casper2,taters,gowings,iforgot1,pokesmot,pollit,lawrun,petey1,rosebuds,007jr,gthtcnhjqrf,k9dls02a,neener,azertyu,duke11,manyak,tiger01,petros,supermar,mangas,twisty,spotter,takagi,dlanod,qcmfd454,tusymo,zz123456,chach,navyblue,gilbert1,2kash6zq,avemaria,1hxboqg2s,viviane,lhbjkjubz2957704,nowwowtg,1a2b3c4,m0rn3,kqigb7,superpuper,juehtw,gethigh,theclown,makeme,pradeep,sergik,deion21,nurik,devo2706,nbvibt,roman222,kalima,nevaeh,martin7,anathema,florian1,tamwsn3sja,dinmamma,133159,123654q,slicks,pnp0c08,yojimbo,skipp,kiran,pussyfuck,teengirl,apples12,myballs,angeli,1234a,125678,opelastra,blind1,armagedd,fish123,pitufo,chelseaf,thedevil,nugget1,cunt69,beetle1,carter15,apolon,collant,password00,fishboy,djkrjdf,deftone,celti,three11,cyrus1,lefthand,skoal1,ferndale,aries1,fred01,roberta1,chucks,cornbread,lloyd1,icecrea,cisco123,newjerse,vfhrbpf,passio,volcom1,rikimaru,yeah11,djembe,facile,a1l2e3x4,batman7,nurbol,lorenzo1,monica69,blowjob1,998899,spank1,233391,n123456,1bear,bellsout,999998,celtic67,sabre1,putas,y9enkj,alfabeta,heatwave,honey123,hard4u,insane1,xthysq,magnum1,lightsaber,123qweqwe,fisher1,pixie1,precios,benfic,thegirls,bootsman,4321rewq,nabokov,hightime,djghjc,1chelsea,junglist,august16,t3fkvkmj,1232123,lsdlsd12,chuckie1,pescado,granit,toogood,cathouse,natedawg,bmw530,123kid,hajime,198400,engine1,wessonnn,kingdom1,novembre,1rocks,kingfisher,qwerty89,jordan22,zasranec,megat,sucess,installutil,fetish01,yanshi1982,1313666,1314520,clemence,wargod,time1,newzealand,snaker,13324124,cfrehf,hepcat,mazahaka,bigjay,denisov,eastwest,1yellow,mistydog,cheetos,1596357,ginger11,mavrik,bubby1,bhbyf,pyramide,giusepp,luthien,honda250,andrewjackie,kentavr,lampoon,zaq123wsx,sonicx,davidh,1ccccc,gorodok,windsong,programm,blunt420,vlad1995,zxcvfdsa,tarasov,mrskin,sachas,mercedes1,koteczek,rawdog,honeybear,stuart1,kaktys,richard7,55555n,azalia,hockey10,scouter,francy,1xxxxxx,julie456,tequilla,penis123,schmoe,tigerwoods,1ferrari,popov,snowdrop,matthieu,smolensk,cornflak,jordan01,love2000,23wesdxc,kswiss,anna2000,geniusnet,baby2000,33ds5x,waverly,onlyone4,networkingpe,raven123,blesse,gocards,wow123,pjflkork,juicey,poorboy,freeee,billybo,shaheen,zxcvbnm.,berlit,truth1,gepard,ludovic,gunther1,bobby2,bob12345,sunmoon,septembr,bigmac1,bcnjhbz,seaking,all4u,12qw34er56ty,bassie,nokia5228,7355608,sylwia,charvel,billgate,davion,chablis,catsmeow,kjiflrf,amylynn,rfvbkkf,mizredhe,handjob,jasper12,erbol,solara,bagpipe,biffer,notime,erlan,8543852,sugaree,oshkosh,fedora,bangbus,5lyedn,longball,teresa1,bootyman,aleksand,qazwsxedc12,nujbhc,tifosi,zpxvwy,lights1,slowpoke,tiger12,kstate,password10,alex69,collins1,9632147,doglover,baseball2,security1,grunts,orange2,godloves,213qwe879,julieb,1qazxsw23edcvfr4,noidea,8uiazp,betsy1,junior2,parol123,123456zz,piehonkii,kanker,bunky,hingis,reese1,qaz123456,sidewinder,tonedup,footsie,blackpoo,jalapeno,mummy1,always1,josh1,rockyboy,plucky,chicag,nadroj,blarney,blood123,wheaties,packer1,ravens1,mrjones,gfhjkm007,anna2010,awatar,guitar12,hashish,scale1,tomwaits,amrita,fantasma,rfpfym,pass2,tigris,bigair,slicker,sylvi,shilpa,cindylou,archie1,bitches1,poppys,ontime,horney1,camaroz28,alladin,bujhm,cq2kph,alina1,wvj5np,1211123a,tetons,scorelan,concordi,morgan2,awacs,shanty,tomcat14,andrew123,bear69,vitae,fred99,chingy,octane,belgario,fatdaddy,rhodan,password23,sexxes,boomtown,joshua01,war3demo,my2kids,buck1,hot4you,monamour,12345aa,yumiko,parool,carlton1,neverland,rose12,right1,sociald,grouse,brandon0,cat222,alex00,civicex,bintang,malkav,arschloc,dodgeviper,qwerty666,goduke,dante123,boss1,ontheroc,corpsman,love14,uiegu451,hardtail,irondoor,ghjrehfnehf,36460341,konijn,h2slca,kondom25,123456ss,cfytxrf,btnjey,nando,freemail,comander,natas666,siouxsie,hummer1,biomed,dimsum,yankees0,diablo666,lesbian1,pot420,jasonm,glock23,jennyb,itsmine,lena2010,whattheh,beandip,abaddon,kishore,signup,apogee,biteme12,suzieq,vgfun4,iseeyou,rifleman,qwerta,4pussy,hawkman,guest1,june17,dicksuck,bootay,cash12,bassale,ktybyuhfl,leetch,nescafe,7ovtgimc,clapton1,auror,boonie,tracker1,john69,bellas,cabinboy,yonkers,silky1,ladyffesta,drache,kamil1,davidp,bad123,snoopy12,sanche,werthvfy,achille,nefertiti,gerald1,slage33,warszawa,macsan26,mason123,kotopes,welcome8,nascar99,kiril,77778888,hairy1,monito,comicsans,81726354,killabee,arclight,yuo67,feelme,86753099,nnssnn,monday12,88351132,88889999,websters,subito,asdf12345,vaz2108,zvbxrpl,159753456852,rezeda,multimed,noaccess,henrique,tascam,captiva,zadrot,hateyou,sophie12,123123456,snoop1,charlie8,birmingh,hardline,libert,azsxdcf,89172735872,rjpthju,bondar,philips1,olegnaruto,myword,yakman,stardog,banana12,1234567890w,farout,annick,duke01,rfj422,billard,glock19,shaolin1,master10,cinderel,deltaone,manning1,biggreen,sidney1,patty1,goforit1,766rglqy,sevendus,aristotl,armagedo,blumen,gfhfyjz,kazakov,lekbyxxx,accord1,idiota,soccer16,texas123,victoire,ololo,chris01,bobbbb,299792458,eeeeeee1,confiden,07070,clarks,techno1,kayley,stang1,wwwwww1,uuuuu1,neverdie,jasonr,cavscout,481516234,mylove1,shaitan,1qazxcvb,barbaros,123456782000,123wer,thissucks,7seven,227722,faerie,hayduke,dbacks,snorkel,zmxncbv,tiger99,unknown1,melmac,polo1234,sssssss1,1fire,369147,bandung,bluejean,nivram,stanle,ctcnhf,soccer20,blingbli,dirtball,alex2112,183461,skylin,boobman,geronto,brittany1,yyz2112,gizmo69,ktrcec,dakota12,chiken,sexy11,vg08k714,bernadet,1bulldog,beachs,hollyb,maryjoy,margo1,danielle1,chakra,alexand,hullcity,matrix12,sarenna,pablos,antler,supercar,chomsky,german1,airjordan,545ettvy,camaron,flight1,netvideo,tootall,valheru,481516,1234as,skimmer,redcross,inuyash,uthvfy,1012nw,edoardo,bjhgfi,golf11,9379992a,lagarto,socball,boopie,krazy,.adgjmptw,gaydar,kovalev,geddylee,firstone,turbodog,loveee,135711,badbo,trapdoor,opopop11,danny2,max2000,526452,kerry1,leapfrog,daisy2,134kzbip,1andrea,playa1,peekab00,heskey,pirrello,gsewfmck,dimon4ik,puppie,chelios,554433,hypnodanny,fantik,yhwnqc,ghbdtngjrf,anchorag,buffett1,fanta,sappho,024680,vialli,chiva,lucylu,hashem,exbntkm,thema,23jordan,jake11,wildside,smartie,emerica,2wj2k9oj,ventrue,timoth,lamers,baerchen,suspende,boobis,denman85,1adam12,otello,king12,dzakuni,qsawbbs,isgay,porno123,jam123,daytona1,tazzie,bunny123,amaterasu,jeffre,crocus,mastercard,bitchedup,chicago7,aynrand,intel1,tamila,alianza,mulch,merlin12,rose123,alcapone,mircea,loveher,joseph12,chelsea6,dorothy1,wolfgar,unlimite,arturik,qwerty3,paddy1,piramid,linda123,cooool,millie1,warlock1,forgotit,tort02,ilikeyou,avensis,loveislife,dumbass1,clint1,2110se,drlove,olesia,kalinina,sergey123,123423,alicia1,markova,tri5a3,media1,willia1,xxxxxxx1,beercan,smk7366,jesusislord,motherfuck,smacker,birthday5,jbaby,harley2,hyper1,a9387670a,honey2,corvet,gjmptw,rjhjkmbien,apollon,madhuri,3a5irt,cessna17,saluki,digweed,tamia1,yja3vo,cfvlehfr,1111111q,martyna,stimpy1,anjana,yankeemp,jupiler,idkfa,1blue,fromv,afric,3xbobobo,liverp00l,nikon1,amadeus1,acer123,napoleo,david7,vbhjckfdf,mojo69,percy1,pirates1,grunt1,alenushka,finbar,zsxdcf,mandy123,1fred,timewarp,747bbb,druids,julia123,123321qq,spacebar,dreads,fcbarcelona,angela12,anima,christopher1,stargazer,123123s,hockey11,brewski,marlbor,blinker,motorhead,damngood,werthrf,letmein3,moremoney,killer99,anneke,eatit,pilatus,andrew01,fiona1,maitai,blucher,zxgdqn,e5pftu,nagual,panic1,andron,openwide,alphabeta,alison1,chelsea8,fende,mmm666,1shot2,a19l1980,123456@,1black,m1chael,vagner,realgood,maxxx,vekmnbr,stifler,2509mmh,tarkan,sherzod,1234567b,gunners1,artem2010,shooby,sammie1,p123456,piggie,abcde12345,nokia6230,moldir,piter,1qaz3edc,frequenc,acuransx,1star,nikeair,alex21,dapimp,ranjan,ilovegirls,anastasiy,berbatov,manso,21436587,leafs1,106666,angelochek,ingodwetrust,123456aaa,deano,korsar,pipetka,thunder9,minka,himura,installdevic,1qqqqq,digitalprodu,suckmeoff,plonker,headers,vlasov,ktr1996,windsor1,mishanya,garfield1,korvin,littlebit,azaz09,vandamme,scripto,s4114d,passward,britt1,r1chard,ferrari5,running1,7xswzaq,falcon2,pepper76,trademan,ea53g5,graham1,volvos80,reanimator,micasa,1234554321q,kairat,escorpion,sanek94,karolina1,kolovrat,karen2,1qaz@wsx,racing1,splooge,sarah2,deadman1,creed1,nooner,minicoop,oceane,room112,charme,12345ab,summer00,wetcunt,drewman,nastyman,redfire,appels,merlin69,dolfin,bornfree,diskette,ohwell,12345678qwe,jasont,madcap,cobra2,dolemit1,whatthehell,juanit,voldemar,rocke,bianc,elendil,vtufgjkbc,hotwheels,spanis,sukram,pokerface,k1ller,freakout,dontae,realmadri,drumss,gorams,258789,snakey,jasonn,whitewolf,befree,johnny99,pooka,theghost,kennys,vfvektxrf,toby1,jumpman23,deadlock,barbwire,stellina,alexa1,dalamar,mustanggt,northwes,tesoro,chameleo,sigtau,satoshi,george11,hotcum,cornell1,golfer12,geek01d,trololo,kellym,megapolis,pepsi2,hea666,monkfish,blue52,sarajane,bowler1,skeets,ddgirls,hfccbz,bailey01,isabella1,dreday,moose123,baobab,crushme,000009,veryhot,roadie,meanone,mike18,henriett,dohcvtec,moulin,gulnur,adastra,angel9,western1,natura,sweetpe,dtnfkm,marsbar,daisys,frogger1,virus1,redwood1,streetball,fridolin,d78unhxq,midas,michelob,cantik,sk2000,kikker,macanudo,rambone,fizzle,20000,peanuts1,cowpie,stone32,astaroth,dakota01,redso,mustard1,sexylove,giantess,teaparty,bobbin,beerbong,monet1,charles3,anniedog,anna1988,cameleon,longbeach,tamere,qpful542,mesquite,waldemar,12345zx,iamhere,lowboy,canard,granp,daisymay,love33,moosejaw,nivek,ninjaman,shrike01,aaa777,88002000600,vodolei,bambush,falcor,harley69,alphaomega,severine,grappler,bosox,twogirls,gatorman,vettes,buttmunch,chyna,excelsio,crayfish,birillo,megumi,lsia9dnb9y,littlebo,stevek,hiroyuki,firehous,master5,briley2,gangste,chrisk,camaleon,bulle,troyboy,froinlaven,mybutt,sandhya,rapala,jagged,crazycat,lucky12,jetman,wavmanuk,1heather,beegee,negril,mario123,funtime1,conehead,abigai,mhorgan,patagoni,travel1,backspace,frenchfr,mudcat,dashenka,baseball3,rustys,741852kk,dickme,baller23,griffey1,suckmycock,fuhrfzgc,jenny2,spuds,berlin1,justfun,icewind,bumerang,pavlusha,minecraft123,shasta1,ranger12,123400,twisters,buthead,miked,finance1,dignity7,hello9,lvjdp383,jgthfnjh,dalmatio,paparoach,miller31,2bornot2b,fathe,monterre,theblues,satans,schaap,jasmine2,sibelius,manon,heslo,jcnhjd,shane123,natasha2,pierrot,bluecar,iloveass,harriso,red12,london20,job314,beholder,reddawg,fuckyou!,pussylick,bologna1,austintx,ole4ka,blotto,onering,jearly,balbes,lightbul,bighorn,crossfir,lee123,prapor,1ashley,gfhjkm22,wwe123,09090,sexsite,marina123,jagua,witch1,schmoo,parkview,dragon3,chilango,ultimo,abramova,nautique,2bornot2,duende,1arthur,nightwing,surfboar,quant4307,15s9pu03,karina1,shitball,walleye1,wildman1,whytesha,1morgan,my2girls,polic,baranova,berezuckiy,kkkkkk1,forzima,fornow,qwerty02,gokart,suckit69,davidlee,whatnow,edgard,tits1,bayshore,36987412,ghbphfr,daddyy,explore1,zoidberg,5qnzjx,morgane,danilov,blacksex,mickey12,balsam,83y6pv,sarahc,slaye,all4u2,slayer69,nadia1,rlzwp503,4cranker,kaylie,numberon,teremok,wolf12,deeppurple,goodbeer,aaa555,66669999,whatif,harmony1,ue8fpw,3tmnej,254xtpss,dusty197,wcksdypk,zerkalo,dfnheirf,motorol,digita,whoareyou,darksoul,manics,rounders,killer11,d2000lb,cegthgfhjkm,catdog1,beograd,pepsico,julius1,123654987,softbal,killer23,weasel1,lifeson,q123456q,444555666,bunches,andy1,darby1,service01,bear11,jordan123,amega,duncan21,yensid,lerxst,rassvet,bronco2,fortis,pornlove,paiste,198900,asdflkjh,1236547890,futur,eugene1,winnipeg261,fk8bhydb,seanjohn,brimston,matthe1,bitchedu,crisco,302731,roxydog,woodlawn,volgograd,ace1210,boy4u2ownnyc,laura123,pronger,parker12,z123456z,andrew13,longlife,sarang,drogba,gobruins,soccer4,holida,espace,almira,murmansk,green22,safina,wm00022,1chevy,schlumpf,doroth,ulises,golf99,hellyes,detlef,mydog,erkina,bastardo,mashenka,sucram,wehttam,generic1,195000,spaceboy,lopas123,scammer,skynyrd,daddy2,titani,ficker,cr250r,kbnthfnehf,takedown,sticky1,davidruiz,desant,nremtp,painter1,bogies,agamemno,kansas1,smallfry,archi,2b4dnvsx,1player,saddie,peapod,6458zn7a,qvw6n2,gfxqx686,twice2,sh4d0w3d,mayfly,375125,phitau,yqmbevgk,89211375759,kumar1,pfhfpf,toyboy,way2go,7pvn4t,pass69,chipster,spoony,buddycat,diamond3,rincewin,hobie,david01,billbo,hxp4life,matild,pokemon2,dimochka,clown1,148888,jenmt3,cuxldv,cqnwhy,cde34rfv,simone1,verynice,toobig,pasha123,mike00,maria2,lolpop,firewire,dragon9,martesana,a1234567890,birthday3,providen,kiska,pitbulls,556655,misawa,damned69,martin11,goldorak,gunship,glory1,winxclub,sixgun,splodge,agent1,splitter,dome69,ifghjb,eliza1,snaiper,wutang36,phoenix7,666425,arshavin,paulaner,namron,m69fg1w,qwert1234,terrys,zesyrmvu,joeman,scoots,dwml9f,625vrobg,sally123,gostoso,symow8,pelota,c43qpul5rz,majinbuu,lithium1,bigstuff,horndog1,kipelov,kringle,1beavis,loshara,octobe,jmzacf,12342000,qw12qw,runescape1,chargers1,krokus,piknik,jessy,778811,gjvbljh,474jdvff,pleaser,misskitty,breaker1,7f4df451,dayan,twinky,yakumo,chippers,matia,tanith,len2ski1,manni,nichol1,f00b4r,nokia3110,standart,123456789i,shami,steffie,larrywn,chucker,john99,chamois,jjjkkk,penmouse,ktnj2010,gooners,hemmelig,rodney1,merlin01,bearcat1,1yyyyy,159753z,1fffff,1ddddd,thomas11,gjkbyrf,ivanka,f1f2f3,petrovna,phunky,conair,brian2,creative1,klipsch,vbitymrf,freek,breitlin,cecili,westwing,gohabsgo,tippmann,1steve,quattro6,fatbob,sp00ky,rastas,1123581,redsea,rfnmrf,jerky1,1aaaaaa,spk666,simba123,qwert54321,123abcd,beavis69,fyfyfc,starr1,1236547,peanutbutter,sintra,12345abcde,1357246,abcde1,climbon,755dfx,mermaids,monte1,serkan,geilesau,777win,jasonc,parkside,imagine1,rockhead,producti,playhard,principa,spammer,gagher,escada,tsv1860,dbyjuhfl,cruiser1,kennyg,montgome,2481632,pompano,cum123,angel6,sooty,bear01,april6,bodyhamm,pugsly,getrich,mikes,pelusa,fosgate,jasonp,rostislav,kimberly1,128mo,dallas11,gooner1,manuel1,cocacola1,imesh,5782790,password8,daboys,1jones,intheend,e3w2q1,whisper1,madone,pjcgujrat,1p2o3i,jamesp,felicida,nemrac,phikap,firecat,jrcfyjxrf,matt12,bigfan,doedel,005500,jasonx,1234567k,badfish,goosey,utjuhfabz,wilco,artem123,igor123,spike123,jor23dan,dga9la,v2jmsz,morgan12,avery1,dogstyle,natasa,221195ws,twopac,oktober7,karthik,poop1,mightymo,davidr,zermatt,jehova,aezakmi1,dimwit,monkey5,serega123,qwerty111,blabl,casey22,boy123,1clutch,asdfjkl1,hariom,bruce10,jeep95,1smith,sm9934,karishma,bazzzz,aristo,669e53e1,nesterov,kill666,fihdfv,1abc2,anna1,silver11,mojoman,telefono,goeagles,sd3lpgdr,rfhfynby,melinda1,llcoolj,idteul,bigchief,rocky13,timberwo,ballers,gatekeep,kashif,hardass,anastasija,max777,vfuyjkbz,riesling,agent99,kappas,dalglish,tincan,orange3,turtoise,abkbvjy,mike24,hugedick,alabala,geolog,aziza,devilboy,habanero,waheguru,funboy,freedom5,natwest,seashore,impaler,qwaszx1,pastas,bmw535,tecktonik,mika00,jobsearc,pinche,puntang,aw96b6,1corvett,skorpio,foundati,zzr1100,gembird,vfnhjcrby,soccer18,vaz2110,peterp,archer1,cross1,samedi,dima1992,hunter99,lipper,hotbody,zhjckfdf,ducati1,trailer1,04325956,cheryl1,benetton,kononenko,sloneczko,rfgtkmrf,nashua,balalaika,ampere,eliston,dorsai,digge,flyrod,oxymoron,minolta,ironmike,majortom,karimov,fortun,putaria,an83546921an13,blade123,franchis,mxaigtg5,dynxyu,devlt4,brasi,terces,wqmfuh,nqdgxz,dale88,minchia,seeyou,housepen,1apple,1buddy,mariusz,bighouse,tango2,flimflam,nicola1,qwertyasd,tomek1,shumaher,kartoshka,bassss,canaries,redman1,123456789as,preciosa,allblacks,navidad,tommaso,beaudog,forrest1,green23,ryjgjxrf,go4it,ironman2,badnews,butterba,1grizzly,isaeva,rembrand,toront,1richard,bigjon,yfltymrf,1kitty,4ng62t,littlejo,wolfdog,ctvtyjd,spain1,megryan,tatertot,raven69,4809594q,tapout,stuntman,a131313,lagers,hotstuf,lfdbl11,stanley2,advokat,boloto,7894561,dooker,adxel187,cleodog,4play,0p9o8i,masterb,bimota,charlee,toystory,6820055,6666667,crevette,6031769,corsa,bingoo,dima1990,tennis11,samuri,avocado,melissa6,unicor,habari,metart,needsex,cockman,hernan,3891576,3334444,amigo1,gobuffs2,mike21,allianz,2835493,179355,midgard,joey123,oneluv,ellis1,towncar,shonuff,scouse,tool69,thomas19,chorizo,jblaze,lisa1,dima1999,sophia1,anna1989,vfvekbxrf,krasavica,redlegs,jason25,tbontb,katrine,eumesmo,vfhufhbnrf,1654321,asdfghj1,motdepas,booga,doogle,1453145,byron1,158272,kardinal,tanne,fallen1,abcd12345,ufyljy,n12345,kucing,burberry,bodger,1234578,februar,1234512,nekkid,prober,harrison1,idlewild,rfnz90,foiegras,pussy21,bigstud,denzel,tiffany2,bigwill,1234567890zzz,hello69,compute1,viper9,hellspaw,trythis,gococks,dogballs,delfi,lupine,millenia,newdelhi,charlest,basspro,1mike,joeblack,975310,1rosebud,batman11,misterio,fucknut,charlie0,august11,juancho,ilonka,jigei743ks,adam1234,889900,goonie,alicat,ggggggg1,1zzzzzzz,sexywife,northstar,chris23,888111,containe,trojan1,jason5,graikos,1ggggg,1eeeee,tigers01,indigo1,hotmale,jacob123,mishima,richard3,cjxb2014,coco123,meagain,thaman,wallst,edgewood,bundas,1power,matilda1,maradon,hookedup,jemima,r3vi3wpass,2004-10-,mudman,taz123,xswzaq,emerson1,anna21,warlord1,toering,pelle,tgwdvu,masterb8,wallstre,moppel,priora,ghjcnjrdfif,yoland,12332100,1j9e7f6f,jazzzz,yesman,brianm,42qwerty42,12345698,darkmanx,nirmal,john31,bb123456,neuspeed,billgates,moguls,fj1200,hbhlair,shaun1,ghbdfn,305pwzlr,nbu3cd,susanb,pimpdad,mangust6403,joedog,dawidek,gigante,708090,703751,700007,ikalcr,tbivbn,697769,marvi,iyaayas,karen123,jimmyboy,dozer1,e6z8jh,bigtime1,getdown,kevin12,brookly,zjduc3,nolan1,cobber,yr8wdxcq,liebe,m1garand,blah123,616879,action1,600000,sumitomo,albcaz,asian1,557799,dave69,556699,sasa123,streaker,michel1,karate1,buddy7,daulet,koks888,roadtrip,wapiti,oldguy,illini1,1234qq,mrspock,kwiatek,buterfly,august31,jibxhq,jackin,taxicab,tristram,talisker,446655,444666,chrisa,freespace,vfhbfyyf,chevell,444333,notyours,442244,christian1,seemore,sniper12,marlin1,joker666,multik,devilish,crf450,cdfoli,eastern1,asshead,duhast,voyager2,cyberia,1wizard,cybernet,iloveme1,veterok,karandash,392781,looksee,diddy,diabolic,foofight,missey,herbert1,bmw318i,premier1,zsfmpv,eric1234,dun6sm,fuck11,345543,spudman,lurker,bitem,lizzy1,ironsink,minami,339311,s7fhs127,sterne,332233,plankton,galax,azuywe,changepa,august25,mouse123,sikici,killer69,xswqaz,quovadis,gnomik,033028pw,777777a,barrakuda,spawn666,goodgod,slurp,morbius,yelnats,cujo31,norman1,fastone,earwig,aureli,wordlife,bnfkbz,yasmi,austin123,timberla,missy2,legalize,netcom,liljon,takeit,georgin,987654321z,warbird,vitalina,all4u3,mmmmmm1,bichon,ellobo,wahoos,fcazmj,aksarben,lodoss,satnam,vasili,197800,maarten,sam138989,0u812,ankita,walte,prince12,anvils,bestia,hoschi,198300,univer,jack10,ktyecbr,gr00vy,hokie,wolfman1,fuckwit,geyser,emmanue,ybrjkftd,qwerty33,karat,dblock,avocat,bobbym,womersle,1please,nostra,dayana,billyray,alternat,iloveu1,qwerty69,rammstein1,mystikal,winne,drawde,executor,craxxxs,ghjcnjnf,999888777,welshman,access123,963214785,951753852,babe69,fvcnthlfv,****me,666999666,testing2,199200,nintendo64,oscarr,guido8,zhanna,gumshoe,jbird,159357456,pasca,123452345,satan6,mithrand,fhbirf,aa1111aa,viggen,ficktjuv,radial9,davids1,rainbow7,futuro,hipho,platin,poppy123,rhenjq,fulle,rosit,chicano,scrumpy,lumpy1,seifer,uvmrysez,autumn1,xenon,susie1,7u8i9o0p,gamer1,sirene,muffy1,monkeys1,kalinin,olcrackmaster,hotmove,uconn,gshock,merson,lthtdyz,pizzaboy,peggy1,pistache,pinto1,fishka,ladydi,pandor,baileys,hungwell,redboy,rookie1,amanda01,passwrd,clean1,matty1,tarkus,jabba1,bobster,beer30,solomon1,moneymon,sesamo,fred11,sunnysid,jasmine5,thebears,putamadre,workhard,flashbac,counter1,liefde,magnat,corky1,green6,abramov,lordik,univers,shortys,david3,vip123,gnarly,1234567s,billy2,honkey,deathstar,grimmy,govinda,direktor,12345678s,linus1,shoppin,rekbrjdf,santeria,prett,berty75,mohican,daftpunk,uekmyfhf,chupa,strats,ironbird,giants56,salisbur,koldun,summer04,pondscum,jimmyj,miata1,george3,redshoes,weezie,bartman1,0p9o8i7u,s1lver,dorkus,125478,omega9,sexisgood,mancow,patric1,jetta1,074401,ghjuhtcc,gfhjk,bibble,terry2,123213,medicin,rebel2,hen3ry,4freedom,aldrin,lovesyou,browny,renwod,winnie1,belladon,1house,tyghbn,blessme,rfhfrfnbwf,haylee,deepdive,booya,phantasy,gansta,cock69,4mnveh,gazza1,redapple,structur,anakin1,manolito,steve01,poolman,chloe123,vlad1998,qazwsxe,pushit,random123,ontherocks,o236nq,brain1,dimedrol,agape,rovnogod,1balls,knigh,alliso,love01,wolf01,flintstone,beernuts,tuffguy,isengard,highfive,alex23,casper99,rubina,getreal,chinita,italian1,airsoft,qwerty23,muffdiver,willi1,grace123,orioles1,redbull1,chino1,ziggy123,breadman,estefan,ljcneg,gotoit,logan123,wideglid,mancity1,treess,qwe123456,kazumi,qweasdqwe,oddworld,naveed,protos,towson,a801016,godislov,at_asp,bambam1,soccer5,dark123,67vette,carlos123,hoser1,scouser,wesdxc,pelus,dragon25,pflhjn,abdula,1freedom,policema,tarkin,eduardo1,mackdad,gfhjkm11,lfplhfgthvf,adilet,zzzzxxxx,childre,samarkand,cegthgegth,shama,fresher,silvestr,greaser,allout,plmokn,sexdrive,nintendo1,fantasy7,oleander,fe126fd,crumpet,pingzing,dionis,hipster,yfcnz,requin,calliope,jerome1,housecat,abc123456789,doghot,snake123,augus,brillig,chronic1,gfhjkbot,expediti,noisette,master7,caliban,whitetai,favorite3,lisamari,educatio,ghjhjr,saber1,zcegth,1958proman,vtkrbq,milkdud,imajica,thehip,bailey10,hockey19,dkflbdjcnjr,j123456,bernar,aeiouy,gamlet,deltachi,endzone,conni,bcgfybz,brandi1,auckland2010,7653ajl1,mardigra,testuser,bunko18,camaro67,36936,greenie,454dfmcq,6xe8j2z4,mrgreen,ranger5,headhunt,banshee1,moonunit,zyltrc,hello3,pussyboy,stoopid,tigger11,yellow12,drums1,blue02,kils123,junkman,banyan,jimmyjam,tbbucs,sportster,badass1,joshie,braves10,lajolla,1amanda,antani,78787,antero,19216801,chich,rhett32,sarahm,beloit,sucker69,corkey,nicosnn,rccola,caracol,daffyduc,bunny2,mantas,monkies,hedonist,cacapipi,ashton1,sid123,19899891,patche,greekgod,cbr1000,leader1,19977991,ettore,chongo,113311,picass,cfif123,rhtfnbd,frances1,andy12,minnette,bigboy12,green69,alices,babcia,partyboy,javabean,freehand,qawsed123,xxx111,harold1,passwo,jonny1,kappa1,w2dlww3v5p,1merlin,222999,tomjones,jakeman,franken,markhegarty,john01,carole1,daveman,caseys,apeman,mookey,moon123,claret,titans1,residentevil,campari,curitiba,dovetail,aerostar,jackdaniels,basenji,zaq12w,glencoe,biglove,goober12,ncc170,far7766,monkey21,eclipse9,1234567v,vanechka,aristote,grumble,belgorod,abhishek,neworleans,pazzword,dummie,sashadog,diablo11,mst3000,koala1,maureen1,jake99,isaiah1,funkster,gillian1,ekaterina20,chibears,astra123,4me2no,winte,skippe,necro,windows9,vinograd,demolay,vika2010,quiksilver,19371ayj,dollar1,shecky,qzwxecrv,butterfly1,merrill1,scoreland,1crazy,megastar,mandragora,track1,dedhed,jacob2,newhope,qawsedrftgyh,shack1,samvel,gatita,shyster,clara1,telstar,office1,crickett,truls,nirmala,joselito,chrisl,lesnik,aaaabbbb,austin01,leto2010,bubbie,aaa12345,widder,234432,salinger,mrsmith,qazsedcft,newshoes,skunks,yt1300,bmw316,arbeit,smoove,123321qweewq,123qazwsx,22221111,seesaw,0987654321a,peach1,1029384756q,sereda,gerrard8,shit123,batcave,energy1,peterb,mytruck,peter12,alesya,tomato1,spirou,laputaxx,magoo1,omgkremidia,knight12,norton1,vladislava,shaddy,austin11,jlbyjxrf,kbdthgekm,punheta,fetish69,exploiter,roger2,manstein,gtnhjd,32615948worms,dogbreath,ujkjdjkjvrf,vodka1,ripcord,fatrat,kotek1,tiziana,larrybir,thunder3,nbvfnb,9kyq6fge,remembe,likemike,gavin1,shinigam,yfcnfcmz,13245678,jabbar,vampyr,ane4ka,lollipo,ashwin,scuderia,limpdick,deagle,3247562,vishenka,fdhjhf,alex02,volvov70,mandys,bioshock,caraca,tombraider,matrix69,jeff123,13579135,parazit,black3,noway1,diablos,hitmen,garden1,aminor,decembe,august12,b00ger,006900,452073t,schach,hitman1,mariner1,vbnmrf,paint1,742617000027,bitchboy,pfqxjyjr,5681392,marryher,sinnet,malik1,muffin12,aninha,piolin,lady12,traffic1,cbvjyf,6345789,june21,ivan2010,ryan123,honda99,gunny,coorslight,asd321,hunter69,7224763,sonofgod,dolphins1,1dolphin,pavlenko,woodwind,lovelov,pinkpant,gblfhfcbyf,hotel1,justinbiebe,vinter,jeff1234,mydogs,1pizza,boats1,parrothe,shawshan,brooklyn1,cbrown,1rocky,hemi426,dragon64,redwings1,porsches,ghostly,hubbahub,buttnut,b929ezzh,sorokina,flashg,fritos,b7mguk,metatron,treehous,vorpal,8902792,marcu,free123,labamba,chiefs1,zxc123zxc,keli_14,hotti,1steeler,money4,rakker,foxwoods,free1,ahjkjd,sidorova,snowwhit,neptune1,mrlover,trader1,nudelamb,baloo,power7,deltasig,bills1,trevo,7gorwell,nokia6630,nokia5320,madhatte,1cowboys,manga1,namtab,sanjar,fanny1,birdman1,adv12775,carlo1,dude1998,babyhuey,nicole11,madmike,ubvyfpbz,qawsedr,lifetec,skyhook,stalker123,toolong,robertso,ripazha,zippy123,1111111a,manol,dirtyman,analslut,jason3,dutches,minhasenha,cerise,fenrir,jayjay1,flatbush,franka,bhbyjxrf,26429vadim,lawntrax,198700,fritzy,nikhil,ripper1,harami,truckman,nemvxyheqdd5oqxyxyzi,gkfytnf,bugaboo,cableman,hairpie,xplorer,movado,hotsex69,mordred,ohyeah1,patrick3,frolov,katieh,4311111q,mochaj,presari,bigdo,753951852,freedom4,kapitan,tomas1,135795,sweet123,pokers,shagme,tane4ka,sentinal,ufgyndmv,jonnyb,skate123,123456798,123456788,very1,gerrit,damocles,dollarbi,caroline1,lloyds,pizdets,flatland,92702689,dave13,meoff,ajnjuhfabz,achmed,madison9,744744z,amonte,avrillavigne,elaine1,norma1,asseater,everlong,buddy23,cmgang1,trash1,mitsu,flyman,ulugbek,june27,magistr,fittan,sebora64,dingos,sleipnir,caterpil,cindys,212121qaz,partys,dialer,gjytltkmybr,qweqaz,janvier,rocawear,lostboy,aileron,sweety1,everest1,pornman,boombox,potter1,blackdic,44448888,eric123,112233aa,2502557i,novass,nanotech,yourname,x12345,indian1,15975300,1234567l,carla51,chicago0,coleta,cxzdsaewq,qqwweerr,marwan,deltic,hollys,qwerasd,pon32029,rainmake,nathan0,matveeva,legioner,kevink,riven,tombraid,blitzen,a54321,jackyl,chinese1,shalimar,oleg1995,beaches1,tommylee,eknock,berli,monkey23,badbob,pugwash,likewhoa,jesus2,yujyd360,belmar,shadow22,utfp5e,angelo1,minimax,pooder,cocoa1,moresex,tortue,lesbia,panthe,snoopy2,drumnbass,alway,gmcz71,6jhwmqku,leppard,dinsdale,blair1,boriqua,money111,virtuagirl,267605,rattlesn,1sunshin,monica12,veritas1,newmexic,millertime,turandot,rfvxfnrf,jaydog,kakawka,bowhunter,booboo12,deerpark,erreway,taylorma,rfkbybyf,wooglin,weegee,rexdog,iamhorny,cazzo1,vhou812,bacardi1,dctktyyfz,godpasi,peanut12,bertha1,fuckyoubitch,ghosty,altavista,jertoot,smokeit,ghjcnbvtyz,fhnehxbr,rolsen,qazxcdews,maddmaxx,redrocke,qazokm,spencer2,thekiller,asdf11,123sex,tupac1,p1234567,dbrown,1biteme,tgo4466,316769,sunghi,shakespe,frosty1,gucci1,arcana,bandit01,lyubov,poochy,dartmout,magpies1,sunnyd,mouseman,summer07,chester7,shalini,danbury,pigboy,dave99,deniss,harryb,ashley11,pppppp1,01081988m,balloon1,tkachenko,bucks1,master77,pussyca,tricky1,zzxxccvv,zoulou,doomer,mukesh,iluv69,supermax,todays,thefox,don123,dontask,diplom,piglett,shiney,fahbrf,qaz12wsx,temitope,reggin,project1,buffy2,inside1,lbpfqyth,vanilla1,lovecock,u4slpwra,fylh.irf,123211,7ertu3ds,necroman,chalky,artist1,simpso,4x7wjr,chaos666,lazyacres,harley99,ch33s3,marusa,eagle7,dilligas,computadora,lucky69,denwer,nissan350z,unforgiv,oddball,schalke0,aztec1,borisova,branden1,parkave,marie123,germa,lafayett,878kckxy,405060,cheeseca,bigwave,fred22,andreea,poulet,mercutio,psycholo,andrew88,o4izdmxu,sanctuar,newhome,milion,suckmydi,rjvgm.nth,warior,goodgame,1qwertyuiop,6339cndh,scorpio2,macker,southbay,crabcake,toadie,paperclip,fatkid,maddo,cliff1,rastafar,maries,twins1,geujdrf,anjela,wc4fun,dolina,mpetroff,rollout,zydeco,shadow3,pumpki,steeda,volvo240,terras,blowjo,blue2000,incognit,badmojo,gambit1,zhukov,station1,aaronb,graci,duke123,clipper1,qazxsw2,ledzeppe,kukareku,sexkitte,cinco,007008,lakers12,a1234b,acmilan1,afhfjy,starrr,slutty3,phoneman,kostyan,bonzo1,sintesi07,ersatz,cloud1,nephilim,nascar03,rey619,kairos,123456789e,hardon1,boeing1,juliya,hfccdtn,vgfun8,polizei,456838,keithb,minouche,ariston,savag,213141,clarkken,microwav,london2,santacla,campeo,qr5mx7,464811,mynuts,bombo,1mickey,lucky8,danger1,ironside,carter12,wyatt1,borntorun,iloveyou123,jose1,pancake1,tadmichaels,monsta,jugger,hunnie,triste,heat7777,ilovejesus,queeny,luckycharm,lieben,gordolee85,jtkirk,forever21,jetlag,skylane,taucher,neworlea,holera,000005,anhnhoem,melissa7,mumdad,massimiliano,dima1994,nigel1,madison3,slicky,shokolad,serenit,jmh1978,soccer123,chris3,drwho,rfpzdrf,1qasw23ed,free4me,wonka,sasquatc,sanan,maytag,verochka,bankone,molly12,monopoli,xfqybr,lamborgini,gondolin,candycane,needsome,jb007,scottie1,brigit,0147258369,kalamazo,lololyo123,bill1234,ilovejes,lol123123,popkorn,april13,567rntvm,downunde,charle1,angelbab,guildwars,homeworld,qazxcvbnm,superma1,dupa123,kryptoni,happyy,artyom,stormie,cool11,calvin69,saphir,konovalov,jansport,october8,liebling,druuna,susans,megans,tujhjdf,wmegrfux,jumbo1,ljb4dt7n,012345678910,kolesnik,speculum,at4gftlw,kurgan,93pn75,cahek0980,dallas01,godswill,fhifdby,chelsea4,jump23,barsoom,catinhat,urlacher,angel99,vidadi1,678910,lickme69,topaz1,westend,loveone,c12345,gold12,alex1959,mamon,barney12,1maggie,alex12345,lp2568cskt,s1234567,gjikbdctyf,anthony0,browns99,chips1,sunking,widespre,lalala1,tdutif,fucklife,master00,alino4ka,stakan,blonde1,phoebus,tenore,bvgthbz,brunos,suzjv8,uvdwgt,revenant,1banana,veroniqu,sexfun,sp1der,4g3izhox,isakov,shiva1,scooba,bluefire,wizard12,dimitris,funbags,perseus,hoodoo,keving,malboro,157953,a32tv8ls,latics,animate,mossad,yejntb,karting,qmpq39zr,busdrive,jtuac3my,jkne9y,sr20dett,4gxrzemq,keylargo,741147,rfktylfhm,toast1,skins1,xcalibur,gattone,seether,kameron,glock9mm,julio1,delenn,gameday,tommyd,str8edge,bulls123,66699,carlsberg,woodbird,adnama,45auto,codyman,truck2,1w2w3w4w,pvjegu,method1,luetdi,41d8cd98f00b,bankai,5432112345,94rwpe,reneee,chrisx,melvins,775577,sam2000,scrappy1,rachid,grizzley,margare,morgan01,winstons,gevorg,gonzal,crawdad,gfhfdjp,babilon,noneya,pussy11,barbell,easyride,c00li0,777771,311music,karla1,golions,19866891,peejay,leadfoot,hfvbkm,kr9z40sy,cobra123,isotwe,grizz,sallys,****you,aaa123a,dembel,foxs14,hillcres,webman,mudshark,alfredo1,weeded,lester1,hovepark,ratface,000777fffa,huskie,wildthing,elbarto,waikiki,masami,call911,goose2,regin,dovajb,agricola,cjytxrj,andy11,penny123,family01,a121212,1braves,upupa68,happy100,824655,cjlove,firsttim,kalel,redhair,dfhtymt,sliders,bananna,loverbo,fifa2008,crouton,chevy350,panties2,kolya1,alyona,hagrid,spagetti,q2w3e4r,867530,narkoman,nhfdvfnjkju123,1ccccccc,napolean,0072563,allay,w8sted,wigwam,jamesk,state1,parovoz,beach69,kevinb,rossella,logitech1,celula,gnocca,canucks1,loginova,marlboro1,aaaa1,kalleanka,mester,mishutka,milenko,alibek,jersey1,peterc,1mouse,nedved,blackone,ghfplybr,682regkh,beejay,newburgh,ruffian,clarets,noreaga,xenophon,hummerh2,tenshi,smeagol,soloyo,vfhnby,ereiamjh,ewq321,goomie,sportin,cellphone,sonnie,jetblack,saudan,gblfhfc,matheus,uhfvjnf,alicja,jayman1,devon1,hexagon,bailey2,vtufajy,yankees7,salty1,908070,killemal,gammas,eurocard,sydney12,tuesday1,antietam,wayfarer,beast666,19952009sa,aq12ws,eveli,hockey21,haloreach,dontcare,xxxx1,andrea11,karlmarx,jelszo,tylerb,protools,timberwolf,ruffneck,pololo,1bbbbb,waleed,sasami,twinss,fairlady,illuminati,alex007,sucks1,homerjay,scooter7,tarbaby,barmaley,amistad,vanes,randers,tigers12,dreamer2,goleafsg,googie,bernie1,as12345,godeep,james3,phanto,gwbush,cumlover,2196dc,studioworks,995511,golf56,titova,kaleka,itali,socks1,kurwamac,daisuke,hevonen,woody123,daisie,wouter,henry123,gostosa,guppie,porpoise,iamsexy,276115,paula123,1020315,38gjgeuftd,rjrfrjkf,knotty,idiot1,sasha12345,matrix13,securit,radical1,ag764ks,jsmith,coolguy1,secretar,juanas,sasha1988,itout,00000001,tiger11,1butthea,putain,cavalo,basia1,kobebryant,1232323,12345asdfg,sunsh1ne,cyfqgth,tomkat,dorota,dashit,pelmen,5t6y7u,whipit,smokeone,helloall,bonjour1,snowshoe,nilknarf,x1x2x3,lammas,1234599,lol123456,atombomb,ironchef,noclue,alekseev,gwbush1,silver2,12345678m,yesican,fahjlbnf,chapstic,alex95,open1,tiger200,lisichka,pogiako,cbr929,searchin,tanya123,alex1973,phil413,alex1991,dominati,geckos,freddi,silenthill,egroeg,vorobey,antoxa,dark666,shkola,apple22,rebellio,shamanking,7f8srt,cumsucker,partagas,bill99,22223333,arnster55,fucknuts,proxima,silversi,goblues,parcells,vfrcbvjdf,piloto,avocet,emily2,1597530,miniskir,himitsu,pepper2,juiceman,venom1,bogdana,jujube,quatro,botafogo,mama2010,junior12,derrickh,asdfrewq,miller2,chitarra,silverfox,napol,prestigio,devil123,mm111qm,ara123,max33484,sex2000,primo1,sephan,anyuta,alena2010,viborg,verysexy,hibiscus,terps,josefin,oxcart,spooker,speciali,raffaello,partyon,vfhvtkflrf,strela,a123456z,worksuck,glasss,lomonosov,dusty123,dukeblue,1winter,sergeeva,lala123,john22,cmc09,sobolev,bettylou,dannyb,gjkrjdybr,hagakure,iecnhbr,awsedr,pmdmsctsk,costco,alekseeva,fktrcttd,bazuka,flyingv,garuda,buffy16,gutierre,beer12,stomatolog,ernies,palmeiras,golf123,love269,n.kmgfy,gjkysqgbpltw,youare,joeboo,baksik,lifeguar,111a111,nascar8,mindgame,dude1,neopets,frdfkfyu,june24,phoenix8,penelopa,merlin99,mercenar,badluck,mishel,bookert,deadsexy,power9,chinchil,1234567m,alex10,skunk1,rfhkcjy,sammycat,wright1,randy2,marakesh,temppassword,elmer251,mooki,patrick0,bonoedge,1tits,chiar,kylie1,graffix,milkman1,cornel,mrkitty,nicole12,ticketmaster,beatles4,number20,ffff1,terps1,superfre,yfdbufnjh,jake1234,flblfc,1111qq,zanuda,jmol01,wpoolejr,polopol,nicolett,omega13,cannonba,123456789.,sandy69,ribeye,bo243ns,marilena,bogdan123,milla,redskins1,19733791,alias1,movie1,ducat,marzena,shadowru,56565,coolman1,pornlover,teepee,spiff,nafanya,gateway3,fuckyou0,hasher,34778,booboo69,staticx,hang10,qq12345,garnier,bosco123,1234567qw,carson1,samso,1xrg4kcq,cbr929rr,allan123,motorbik,andrew22,pussy101,miroslava,cytujdbr,camp0017,cobweb,snusmumrik,salmon1,cindy2,aliya,serendipity,co437at,tincouch,timmy123,hunter22,st1100,vvvvvv1,blanka,krondor,sweeti,nenit,kuzmich,gustavo1,bmw320i,alex2010,trees1,kyliem,essayons,april26,kumari,sprin,fajita,appletre,fghbjhb,1green,katieb,steven2,corrado1,satelite,1michell,123456789c,cfkfvfylhf,acurarsx,slut543,inhere,bob2000,pouncer,k123456789,fishie,aliso,audia8,bluetick,soccer69,jordan99,fromhell,mammoth1,fighting54,mike25,pepper11,extra1,worldwid,chaise,vfr800,sordfish,almat,nofate,listopad,hellgate,dctvghbdf,jeremia,qantas,lokiju,honker,sprint1,maral,triniti,compaq3,sixsix6,married1,loveman,juggalo1,repvtyrj,zxcasdqw,123445,whore1,123678,monkey6,west123,warcraf,pwnage,mystery1,creamyou,ant123,rehjgfnrf,corona1,coleman1,steve121,alderaan,barnaul,celeste1,junebug1,bombshel,gretzky9,tankist,targa,cachou,vaz2101,playgolf,boneyard,strateg,romawka,iforgotit,pullup,garbage1,irock,archmage,shaft1,oceano,sadies,alvin1,135135ab,psalm69,lmfao,ranger02,zaharova,33334444,perkman,realman,salguod,cmoney,astonmartin,glock1,greyfox,viper99,helpm,blackdick,46775575,family5,shazbot,dewey1,qwertyas,shivani,black22,mailman1,greenday1,57392632,red007,stanky,sanchez1,tysons,daruma,altosax,krayzie,85852008,1forever,98798798,irock.,123456654,142536789,ford22,brick1,michela,preciou,crazy4u,01telemike01,nolife,concac,safety1,annie123,brunswic,destini,123456qwer,madison0,snowball1,137946,1133557799,jarule,scout2,songohan,thedead,00009999,murphy01,spycam,hirsute,aurinko,associat,1miller,baklan,hermes1,2183rm,martie,kangoo,shweta,yvonne1,westsid,jackpot1,rotciv,maratik,fabrika,claude1,nursultan,noentry,ytnhjufnm,electra1,ghjcnjnfr1,puneet,smokey01,integrit,bugeye,trouble2,14071789,paul01,omgwtf,dmh415,ekilpool,yourmom1,moimeme,sparky11,boludo,ruslan123,kissme1,demetrio,appelsin,asshole3,raiders2,bunns,fynjybj,billygoa,p030710p$e4o,macdonal,248ujnfk,acorns,schmidt1,sparrow1,vinbylrj,weasle,jerom,ycwvrxxh,skywalk,gerlinde,solidus,postal1,poochie1,1charles,rhianna,terorist,rehnrf,omgwtfbbq,assfucke,deadend,zidan,jimboy,vengence,maroon5,7452tr,dalejr88,sombra,anatole,elodi,amazonas,147789,q12345q,gawker1,juanma,kassidy,greek1,bruces,bilbob,mike44,0o9i8u7y6t,kaligula,agentx,familie,anders1,pimpjuice,0128um,birthday10,lawncare,hownow,grandorgue,juggerna,scarfac,kensai,swatteam,123four,motorbike,repytxbr,other1,celicagt,pleomax,gen0303,godisgreat,icepick,lucifer666,heavy1,tea4two,forsure,02020,shortdog,webhead,chris13,palenque,3techsrl,knights1,orenburg,prong,nomarg,wutang1,80637852730,laika,iamfree,12345670,pillow1,12343412,bigears,peterg,stunna,rocky5,12123434,damir,feuerwehr,7418529630,danone,yanina,valenci,andy69,111222q,silvia1,1jjjjj,loveforever,passwo1,stratocaster,8928190a,motorolla,lateralu,ujujkm,chubba,ujkjdf,signon,123456789zx,serdce,stevo,wifey200,ololo123,popeye1,1pass,central1,melena,luxor,nemezida,poker123,ilovemusic,qaz1234,noodles1,lakeshow,amarill,ginseng,billiam,trento,321cba,fatback,soccer33,master13,marie2,newcar,bigtop,dark1,camron,nosgoth,155555,biglou,redbud,jordan7,159789,diversio,actros,dazed,drizzit,hjcnjd,wiktoria,justic,gooses,luzifer,darren1,chynna,tanuki,11335577,icculus,boobss,biggi,firstson,ceisi123,gatewa,hrothgar,jarhead1,happyjoy,felipe1,bebop1,medman,athena1,boneman,keiths,djljgfl,dicklick,russ120,mylady,zxcdsa,rock12,bluesea,kayaks,provista,luckies,smile4me,bootycal,enduro,123123f,heartbre,ern3sto,apple13,bigpappa,fy.njxrf,bigtom,cool69,perrito,quiet1,puszek,cious,cruella,temp1,david26,alemap,aa123123,teddies,tricolor,smokey12,kikiriki,mickey01,robert01,super5,ranman,stevenso,deliciou,money777,degauss,mozar,susanne1,asdasd12,shitbag,mommy123,wrestle1,imfree,fuckyou12,barbaris,florent,ujhijr,f8yruxoj,tefjps,anemone,toltec,2gether,left4dead2,ximen,gfkmvf,dunca,emilys,diana123,16473a,mark01,bigbro,annarbor,nikita2000,11aa11,tigres,llllll1,loser2,fbi11213,jupite,qwaszxqw,macabre,123ert,rev2000,mooooo,klapaucius,bagel1,chiquit,iyaoyas,bear101,irocz28,vfktymrfz,smokey2,love99,rfhnbyf,dracul,keith123,slicko,peacock1,orgasmic,thesnake,solder,wetass,doofer,david5,rhfcyjlfh,swanny,tammys,turkiye,tubaman,estefani,firehose,funnyguy,servo,grace17,pippa1,arbiter,jimmy69,nfymrf,asdf67nm,rjcnzy,demon123,thicknes,sexysex,kristall,michail,encarta,banderos,minty,marchenko,de1987ma,mo5kva,aircav,naomi1,bonni,tatoo,cronaldo,49ers1,mama1963,1truck,telecaster,punksnotdead,erotik,1eagles,1fender,luv269,acdeehan,tanner1,freema,1q3e5t7u,linksys,tiger6,megaman1,neophyte,australia1,mydaddy,1jeffrey,fgdfgdfg,gfgekz,1986irachka,keyman,m0b1l3,dfcz123,mikeyg,playstation2,abc125,slacker1,110491g,lordsoth,bhavani,ssecca,dctvghbdtn,niblick,hondacar,baby01,worldcom,4034407,51094didi,3657549,3630000,3578951,sweetpussy,majick,supercoo,robert11,abacabb,panda123,gfhjkm13,ford4x4,zippo1,lapin,1726354,lovesong,dude11,moebius,paravoz,1357642,matkhau,solnyshko,daniel4,multiplelog,starik,martusia,iamtheman,greentre,jetblue,motorrad,vfrcbvev,redoak,dogma1,gnorman,komlos,tonka1,1010220,666satan,losenord,lateralus,absinthe,command1,jigga1,iiiiiii1,pants1,jungfrau,926337,ufhhbgjnnth,yamakasi,888555,sunny7,gemini69,alone1,zxcvbnmz,cabezon,skyblues,zxc1234,456123a,zero00,caseih,azzurra,legolas1,menudo,murcielago,785612,779977,benidorm,viperman,dima1985,piglet1,hemligt,hotfeet,7elephants,hardup,gamess,a000000,267ksyjf,kaitlynn,sharkie,sisyphus,yellow22,667766,redvette,666420,mets69,ac2zxdty,hxxrvwcy,cdavis,alan1,noddy,579300,druss,eatshit1,555123,appleseed,simpleplan,kazak,526282,fynfyfyfhbde,birthday6,dragon6,1pookie,bluedevils,omg123,hj8z6e,x5dxwp,455445,batman23,termin,chrisbrown,animals1,lucky9,443322,kzktxrf,takayuki,fermer,assembler,zomu9q,sissyboy,sergant,felina,nokia6230i,eminem12,croco,hunt4red,festina,darknigh,cptnz062,ndshnx4s,twizzler,wnmaz7sd,aamaax,gfhfcjkmrf,alabama123,barrynov,happy5,punt0it,durandal,8xuuobe4,cmu9ggzh,bruno12,316497,crazyfrog,vfvfktyf,apple3,kasey1,mackdaddy,anthon1,sunnys,angel3,cribbage,moon1,donal,bryce1,pandabear,mwss474,whitesta,freaker,197100,bitche,p2ssw0rd,turnb,tiktonik,moonlite,ferret1,jackas,ferrum,bearclaw,liberty2,1diablo,caribe,snakeeyes,janbam,azonic,rainmaker,vetalik,bigeasy,baby1234,sureno13,blink1,kluivert,calbears,lavanda,198600,dhtlbyf,medvedeva,fox123,whirling,bonscott,freedom9,october3,manoman,segredo,cerulean,robinso,bsmith,flatus,dannon,password21,rrrrrr1,callista,romai,rainman1,trantor,mickeymo,bulldog7,g123456,pavlin,pass22,snowie,hookah,7ofnine,bubba22,cabible,nicerack,moomoo1,summer98,yoyo123,milan1,lieve27,mustang69,jackster,exocet,nadege,qaz12,bahama,watson1,libras,eclipse2,bahram,bapezm,up9x8rww,ghjcnjz,themaste,deflep27,ghost16,gattaca,fotograf,junior123,gilber,gbjyth,8vjzus,rosco1,begonia,aldebara,flower12,novastar,buzzman,manchild,lopez1,mama11,william7,yfcnz1,blackstar,spurs123,moom4242,1amber,iownyou,tightend,07931505,paquito,1johnson,smokepot,pi31415,snowmass,ayacdc,jessicam,giuliana,5tgbnhy6,harlee,giuli,bigwig,tentacle,scoubidou2,benelli,vasilina,nimda,284655,jaihind,lero4ka,1tommy,reggi,ididit,jlbyjxtcndj,mike26,qbert,wweraw,lukasz,loosee123,palantir,flint1,mapper,baldie,saturne,virgin1,meeeee,elkcit,iloveme2,blue15,themoon,radmir,number3,shyanne,missle,hannelor,jasmina,karin1,lewie622,ghjcnjqgfhjkm,blasters,oiseau,sheela,grinders,panget,rapido,positiv,twink,fltkbyf,kzsfj874,daniel01,enjoyit,nofags,doodad,rustler,squealer,fortunat,peace123,khushi,devils2,7inches,candlebo,topdawg,armen,soundman,zxcqweasd,april7,gazeta,netman,hoppers,bear99,ghbjhbntn,mantle7,bigbo,harpo,jgordon,bullshi,vinny1,krishn,star22,thunderc,galinka,phish123,tintable,nightcrawler,tigerboy,rbhgbx,messi,basilisk,masha1998,nina123,yomamma,kayla123,geemoney,0000000000d,motoman,a3jtni,ser123,owen10,italien,vintelok,12345rewq,nightime,jeepin,ch1tt1ck,mxyzptlk,bandido,ohboy,doctorj,hussar,superted,parfilev,grundle,1jack,livestrong,chrisj,matthew3,access22,moikka,fatone,miguelit,trivium,glenn1,smooches,heiko,dezember,spaghett,stason,molokai,bossdog,guitarma,waderh,boriska,photosho,path13,hfrtnf,audre,junior24,monkey24,silke,vaz21093,bigblue1,trident1,candide,arcanum,klinker,orange99,bengals1,rosebu,mjujuj,nallepuh,mtwapa1a,ranger69,level1,bissjop,leica,1tiffany,rutabega,elvis77,kellie1,sameas,barada,karabas,frank12,queenb,toutoune,surfcity,samanth1,monitor1,littledo,kazakova,fodase,mistral1,april22,carlit,shakal,batman123,fuckoff2,alpha01,5544332211,buddy3,towtruck,kenwood1,vfiekmrf,jkl123,pypsik,ranger75,sitges,toyman,bartek1,ladygirl,booman,boeing77,installsqlst,222666,gosling,bigmack,223311,bogos,kevin2,gomez1,xohzi3g4,kfnju842,klubnika,cubalibr,123456789101,kenpo,0147852369,raptor1,tallulah,boobys,jjones,1q2s3c,moogie,vid2600,almas,wombat1,extra300,xfiles1,green77,sexsex1,heyjude,sammyy,missy123,maiyeuem,nccpl25282,thicluv,sissie,raven3,fldjrfn,buster22,broncos2,laurab,letmein4,harrydog,solovey,fishlips,asdf4321,ford123,superjet,norwegen,movieman,psw333333,intoit,postbank,deepwate,ola123,geolog323,murphys,eshort,a3eilm2s2y,kimota,belous,saurus,123321qaz,i81b4u,aaa12,monkey20,buckwild,byabybnb,mapleleafs,yfcnzyfcnz,baby69,summer03,twista,246890,246824,ltcnhjth,z1z2z3,monika1,sad123,uto29321,bathory,villan,funkey,poptarts,spam967888,705499fh,sebast,porn1234,earn381,1porsche,whatthef,123456789y,polo12,brillo,soreilly,waters1,eudora,allochka,is_a_bot,winter00,bassplay,531879fiz,onemore,bjarne,red911,kot123,artur1,qazxdr,c0rvette,diamond7,matematica,klesko,beaver12,2enter,seashell,panam,chaching,edward2,browni,xenogear,cornfed,aniram,chicco22,darwin1,ancella2,sophie2,vika1998,anneli,shawn41,babie,resolute,pandora2,william8,twoone,coors1,jesusis1,teh012,cheerlea,renfield,tessa1,anna1986,madness1,bkmlfh,19719870,liebherr,ck6znp42,gary123,123654z,alsscan,eyedoc,matrix7,metalgea,chinito,4iter,falcon11,7jokx7b9du,bigfeet,tassadar,retnuh,muscle1,klimova,darion,batistuta,bigsur,1herbier,noonie,ghjrehjh,karimova,faustus,snowwhite,1manager,dasboot,michael12,analfuck,inbed,dwdrums,jaysoncj,maranell,bsheep75,164379,rolodex,166666,rrrrrrr1,almaz666,167943,russel1,negrito,alianz,goodpussy,veronik,1w2q3r4e,efremov,emb377,sdpass,william6,alanfahy,nastya1995,panther5,automag,123qwe12,vfvf2011,fishe,1peanut,speedie,qazwsx1234,pass999,171204j,ketamine,sheena1,energizer,usethis1,123abc123,buster21,thechamp,flvbhfk,frank69,chane,hopeful1,claybird,pander,anusha,bigmaxxx,faktor,housebed,dimidrol,bigball,shashi,derby1,fredy,dervish,bootycall,80988218126,killerb,cheese2,pariss,mymail,dell123,catbert,christa1,chevytru,gjgjdf,00998877,overdriv,ratten,golf01,nyyanks,dinamite,bloembol,gismo,magnus1,march2,twinkles,ryan22,duckey,118a105b,kitcat,brielle,poussin,lanzarot,youngone,ssvegeta,hero63,battle1,kiler,fktrcfylh1,newera,vika1996,dynomite,oooppp,beer4me,foodie,ljhjuf,sonshine,godess,doug1,constanc,thinkbig,steve2,damnyou,autogod,www333,kyle1,ranger7,roller1,harry2,dustin1,hopalong,tkachuk,b00bies,bill2,deep111,stuffit,fire69,redfish1,andrei123,graphix,1fishing,kimbo1,mlesp31,ifufkbyf,gurkan,44556,emily123,busman,and123,8546404,paladine,1world,bulgakov,4294967296,bball23,1wwwww,mycats,elain,delta6,36363,emilyb,color1,6060842,cdtnkfyrf,hedonism,gfgfrfhkj,5551298,scubad,gostate,sillyme,hdbiker,beardown,fishers,sektor,00000007,newbaby,rapid1,braves95,gator2,nigge,anthony3,sammmy,oou812,heffer,phishin,roxanne1,yourass,hornet1,albator,2521659,underwat,tanusha,dianas,3f3fpht7op,dragon20,bilbobag,cheroke,radiatio,dwarf1,majik,33st33,dochka,garibald,robinh,sham69,temp01,wakeboar,violet1,1w2w3w,registr,tonite,maranello,1593570,parolamea,galatasara,loranthos,1472583,asmodean,1362840,scylla,doneit,jokerr,porkypig,kungen,mercator,koolhaas,come2me,debbie69,calbear,liverpoolfc,yankees4,12344321a,kennyb,madma,85200258,dustin23,thomas13,tooling,mikasa,mistic,crfnbyf,112233445,sofia1,heinz57,colts1,price1,snowey,joakim,mark11,963147,cnhfcnm,kzinti,1bbbbbbb,rubberdu,donthate,rupert1,sasha1992,regis1,nbuhbwf,fanboy,sundial,sooner1,wayout,vjnjhjkf,deskpro,arkangel,willie12,mikeyb,celtic1888,luis1,buddy01,duane1,grandma1,aolcom,weeman,172839456,basshead,hornball,magnu,pagedown,molly2,131517,rfvtgbyhn,astonmar,mistery,madalina,cash1,1happy,shenlong,matrix01,nazarova,369874125,800500,webguy,rse2540,ashley2,briank,789551,786110,chunli,j0nathan,greshnik,courtne,suckmyco,mjollnir,789632147,asdfg1234,754321,odelay,ranma12,zebedee,artem777,bmw318is,butt1,rambler1,yankees9,alabam,5w76rnqp,rosies,mafioso,studio1,babyruth,tranzit,magical123,gfhjkm135,12345$,soboleva,709394,ubique,drizzt1,elmers,teamster,pokemons,1472583690,1597532486,shockers,merckx,melanie2,ttocs,clarisse,earth1,dennys,slobber,flagman,farfalla,troika,4fa82hyx,hakan,x4ww5qdr,cumsuck,leather1,forum1,july20,barbel,zodiak,samuel12,ford01,rushfan,bugsy1,invest1,tumadre,screwme,a666666,money5,henry8,tiddles,sailaway,starburs,100years,killer01,comando,hiromi,ranetka,thordog,blackhole,palmeira,verboten,solidsna,q1w1e1,humme,kevinc,gbrfxe,gevaudan,hannah11,peter2,vangar,sharky7,talktome,jesse123,chuchi,pammy,!qazxsw2,siesta,twenty1,wetwilly,477041,natural1,sun123,daniel3,intersta,shithead1,hellyea,bonethugs,solitair,bubbles2,father1,nick01,444000,adidas12,dripik,cameron2,442200,a7nz8546,respublika,fkojn6gb,428054,snoppy,rulez1,haslo,rachael1,purple01,zldej102,ab12cd34,cytuehjxrf,madhu,astroman,preteen,handsoff,mrblonde,biggio,testin,vfdhif,twolves,unclesam,asmara,kpydskcw,lg2wmgvr,grolsch,biarritz,feather1,williamm,s62i93,bone1,penske,337733,336633,taurus1,334433,billet,diamondd,333000,nukem,fishhook,godogs,thehun,lena1982,blue00,smelly1,unb4g9ty,65pjv22,applegat,mikehunt,giancarlo,krillin,felix123,december1,soapy,46doris,nicole23,bigsexy1,justin10,pingu,bambou,falcon12,dgthtl,1surfer,qwerty01,estrellit,nfqcjy,easygo,konica,qazqwe,1234567890m,stingers,nonrev,3e4r5t,champio,bbbbbb99,196400,allen123,seppel,simba2,rockme,zebra3,tekken3,endgame,sandy2,197300,fitte,monkey00,eldritch,littleone,rfyfgkz,1member,66chevy,oohrah,cormac,hpmrbm41,197600,grayfox,elvis69,celebrit,maxwell7,rodders,krist,1camaro,broken1,kendall1,silkcut,katenka,angrick,maruni,17071994a,tktyf,kruemel,snuffles,iro4ka,baby12,alexis01,marryme,vlad1994,forward1,culero,badaboom,malvin,hardtoon,hatelove,molley,knopo4ka,duchess1,mensuck,cba321,kickbutt,zastava,wayner,fuckyou6,eddie123,cjkysir,john33,dragonfi,cody1,jabell,cjhjrf,badseed,sweden1,marihuana,brownlov,elland,nike1234,kwiettie,jonnyboy,togepi,billyk,robert123,bb334,florenci,ssgoku,198910,bristol1,bob007,allister,yjdujhjl,gauloise,198920,bellaboo,9lives,aguilas,wltfg4ta,foxyroxy,rocket69,fifty50,babalu,master21,malinois,kaluga,gogosox,obsessio,yeahrigh,panthers1,capstan,liza2000,leigh1,paintball1,blueskie,cbr600f3,bagdad,jose98,mandreki,shark01,wonderbo,muledeer,xsvnd4b2,hangten,200001,grenden,anaell,apa195,model1,245lufpq,zip100,ghjcgtrn,wert1234,misty2,charro,juanjose,fkbcrf,frostbit,badminto,buddyy,1doctor,vanya,archibal,parviz,spunky1,footboy,dm6tzsgp,legola,samadhi,poopee,ytdxz2ca,hallowboy,dposton,gautie,theworm,guilherme,dopehead,iluvtits,bobbob1,ranger6,worldwar,lowkey,chewbaca,oooooo99,ducttape,dedalus,celular,8i9o0p,borisenko,taylor01,111111z,arlingto,p3nnywiz,rdgpl3ds,boobless,kcmfwesg,blacksab,mother2,markus1,leachim,secret2,s123456789,1derful,espero,russell2,tazzer,marykate,freakme,mollyb,lindros8,james00,gofaster,stokrotka,kilbosik,aquamann,pawel1,shedevil,mousie,slot2009,october6,146969,mm259up,brewcrew,choucho,uliana,sexfiend,fktirf,pantss,vladimi,starz,sheeps,12341234q,bigun,tiggers,crjhjcnm,libtech,pudge1,home12,zircon,klaus1,jerry2,pink1,lingus,monkey66,dumass,polopolo09,feuerweh,rjyatnf,chessy,beefer,shamen,poohbear1,4jjcho,bennevis,fatgirls,ujnbrf,cdexswzaq,9noize9,rich123,nomoney,racecar1,hacke,clahay,acuario,getsum,hondacrv,william0,cheyenn,techdeck,atljhjdf,wtcacq,suger,fallenangel,bammer,tranquil,carla123,relayer,lespaul1,portvale,idontno,bycnbnen,trooper2,gennadiy,pompon,billbob,amazonka,akitas,chinatow,atkbrc,busters,fitness1,cateye,selfok2013,1murphy,fullhous,mucker,bajskorv,nectarin,littlebitch,love24,feyenoor,bigal37,lambo1,pussybitch,icecube1,biged,kyocera,ltybcjdf,boodle,theking1,gotrice,sunset1,abm1224,fromme,sexsells,inheat,kenya1,swinger1,aphrodit,kurtcobain,rhind101,poidog,poiulkjh,kuzmina,beantown,tony88,stuttgar,drumer,joaqui,messenge,motorman,amber2,nicegirl,rachel69,andreia,faith123,studmuffin,jaiden,red111,vtkmybr,gamecocks,gumper,bosshogg,4me2know,tokyo1,kleaner,roadhog,fuckmeno,phoenix3,seeme,buttnutt,boner69,andreyka,myheart,katerin,rugburn,jvtuepip,dc3ubn,chile1,ashley69,happy99,swissair,balls2,fylhttdf,jimboo,55555d,mickey11,voronin,m7hsqstm,stufff,merete,weihnachte,dowjones,baloo1,freeones,bears34,auburn1,beverl,timberland,1elvis,guinness1,bombadil,flatron1,logging7,telefoon,merl1n,masha1,andrei1,cowabung,yousuck1,1matrix,peopl,asd123qwe,sweett,mirror1,torrente,joker12,diamond6,jackaroo,00000a,millerlite,ironhorse,2twins,stryke,gggg1,zzzxxxccc,roosevel,8363eddy,angel21,depeche1,d0ct0r,blue14,areyou,veloce,grendal,frederiksberg,cbcntvf,cb207sl,sasha2000,was.here,fritzz,rosedale,spinoza,cokeisit,gandalf3,skidmark,ashley01,12345j,1234567890qaz,sexxxxxx,beagles,lennart,12345789,pass10,politic,max007,gcheckou,12345611,tiffy,lightman,mushin,velosiped,brucewayne,gauthie,elena123,greenegg,h2oski,clocker,nitemare,123321s,megiddo,cassidy1,david13,boywonde,flori,peggy12,pgszt6md,batterie,redlands,scooter6,bckhere,trueno,bailey11,maxwell2,bandana,timoth1,startnow,ducati74,tiern,maxine1,blackmetal,suzyq,balla007,phatfarm,kirsten1,titmouse,benhogan,culito,forbin,chess1,warren1,panman,mickey7,24lover,dascha,speed2,redlion,andrew10,johnwayn,nike23,chacha1,bendog,bullyboy,goldtree,spookie,tigger99,1cookie,poutine,cyclone1,woodpony,camaleun,bluesky1,dfadan,eagles20,lovergirl,peepshow,mine1,dima1989,rjdfkmxer,11111aaaaa,machina,august17,1hhhhh,0773417k,1monster,freaksho,jazzmin,davidw,kurupt,chumly,huggies,sashenka,ccccccc1,bridge1,giggalo,cincinna,pistol1,hello22,david77,lightfoo,lucky6,jimmy12,261397,lisa12,tabaluga,mysite,belo4ka,greenn,eagle99,punkrawk,salvado,slick123,wichsen,knight99,dummys,fefolico,contrera,kalle1,anna1984,delray,robert99,garena,pretende,racefan,alons,serenada,ludmilla,cnhtkjr,l0swf9gx,hankster,dfktynbyrf,sheep1,john23,cv141ab,kalyani,944turbo,crystal2,blackfly,zrjdktdf,eus1sue1,mario5,riverplate,harddriv,melissa3,elliott1,sexybitc,cnhfyybr,jimdavis,bollix,beta1,amberlee,skywalk1,natala,1blood,brattax,shitty1,gb15kv99,ronjon,rothmans,thedoc,joey21,hotboi,firedawg,bimbo38,jibber,aftermat,nomar,01478963,phishing,domodo,anna13,materia,martha1,budman1,gunblade,exclusiv,sasha1997,anastas,rebecca2,fackyou,kallisti,fuckmyass,norseman,ipswich1,151500,1edward,intelinside,darcy1,bcrich,yjdjcnbf,failte,buzzzz,cream1,tatiana1,7eleven,green8,153351,1a2s3d4f5g6h,154263,milano1,bambi1,bruins77,rugby2,jamal1,bolita,sundaypunch,bubba12,realmadr,vfyxtcnth,iwojima,notlob,black666,valkiria,nexus1,millerti,birthday100,swiss1,appollo,gefest,greeneyes,celebrat,tigerr,slava123,izumrud,bubbabub,legoman,joesmith,katya123,sweetdream,john44,wwwwwww1,oooooo1,socal,lovespor,s5r8ed67s,258147,heidis,cowboy22,wachovia,michaelb,qwe1234567,i12345,255225,goldie1,alfa155,45colt,safeu851,antonova,longtong,1sparky,gfvznm,busen,hjlbjy,whateva,rocky4,cokeman,joshua3,kekskek1,sirocco,jagman,123456qwert,phinupi,thomas10,loller,sakur,vika2011,fullred,mariska,azucar,ncstate,glenn74,halima,aleshka,ilovemylife,verlaat,baggie,scoubidou6,phatboy,jbruton,scoop1,barney11,blindman,def456,maximus2,master55,nestea,11223355,diego123,sexpistols,sniffy,philip1,f12345,prisonbreak,nokia2700,ajnjuhfa,yankees3,colfax,ak470000,mtnman,bdfyeirf,fotball,ichbin,trebla,ilusha,riobravo,beaner1,thoradin,polkaudi,kurosawa,honda123,ladybu,valerik,poltava,saviola,fuckyouguys,754740g0,anallove,microlab1,juris01,ncc1864,garfild,shania1,qagsud,makarenko,cindy69,lebedev,andrew11,johnnybo,groovy1,booster1,sanders1,tommyb,johnson4,kd189nlcih,hondaman,vlasova,chick1,sokada,sevisgur,bear2327,chacho,sexmania,roma1993,hjcnbckfd,valley1,howdie,tuppence,jimandanne,strike3,y4kuz4,nhfnfnf,tsubasa,19955991,scabby,quincunx,dima1998,uuuuuu1,logica,skinner1,pinguino,lisa1234,xpressmusic,getfucked,qqqq1,bbbb1,matulino,ulyana,upsman,johnsmith,123579,co2000,spanner1,todiefor,mangoes,isabel1,123852,negra,snowdon,nikki123,bronx1,booom,ram2500,chuck123,fireboy,creek1,batman13,princesse,az12345,maksat,1knight,28infern,241455,r7112s,muselman,mets1986,katydid,vlad777,playme,kmfdm1,asssex,1prince,iop890,bigbroth,mollymoo,waitron,lizottes,125412,juggler,quinta,0sister0,zanardi,nata123,heckfyxbr,22q04w90e,engine2,nikita95,zamira,hammer22,lutscher,carolina1,zz6319,sanman,vfuflfy,buster99,rossco,kourniko,aggarwal,tattoo1,janice1,finger1,125521,19911992,shdwlnds,rudenko,vfvfgfgf123,galatea,monkeybu,juhani,premiumcash,classact,devilmay,helpme2,knuddel,hardpack,ramil,perrit,basil1,zombie13,stockcar,tos8217,honeypie,nowayman,alphadog,melon1,talula,125689,tiribon12,tornike,haribol,telefone,tiger22,sucka,lfytxrf,chicken123,muggins,a23456,b1234567,lytdybr,otter1,pippa,vasilisk,cooking1,helter,78978,bestboy,viper7,ahmed1,whitewol,mommys,apple5,shazam1,chelsea7,kumiko,masterma,rallye,bushmast,jkz123,entrar,andrew6,nathan01,alaric,tavasz,heimdall,gravy1,jimmy99,cthlwt,powerr,gthtrhtcnjr,canesfan,sasha11,ybrbnf_25,august9,brucie,artichok,arnie1,superdude,tarelka,mickey22,dooper,luners,holeshot,good123,gettysbu,bicho,hammer99,divine5,1zxcvbn,stronzo,q22222,disne,bmw750il,godhead,hallodu,aerith,nastik,differen,cestmoi,amber69,5string,pornosta,dirtygirl,ginger123,formel1,scott12,honda200,hotspurs,johnatha,firstone123,lexmark1,msconfig,karlmasc,l123456,123qweasdzx,baldman,sungod,furka,retsub,9811020,ryder1,tcglyued,astron,lbvfcbr,minddoc,dirt49,baseball12,tbear,simpl,schuey,artimus,bikman,plat1num,quantex,gotyou,hailey1,justin01,ellada,8481068,000002,manimal,dthjybxrf,buck123,dick123,6969696,nospam,strong1,kodeord,bama12,123321w,superman123,gladiolus,nintend,5792076,dreamgirl,spankme1,gautam,arianna1,titti,tetas,cool1234,belladog,importan,4206969,87e5nclizry,teufelo7,doller,yfl.irf,quaresma,3440172,melis,bradle,nnmaster,fast1,iverso,blargh,lucas12,chrisg,iamsam,123321az,tomjerry,kawika,2597174,standrew,billyg,muskan,gizmodo2,rz93qpmq,870621345,sathya,qmezrxg4,januari,marthe,moom4261,cum2me,hkger286,lou1988,suckit1,croaker,klaudia1,753951456,aidan1,fsunoles,romanenko,abbydog,isthebes,akshay,corgi,fuck666,walkman555,ranger98,scorpian,hardwareid,bluedragon,fastman,2305822q,iddqdiddqd,1597532,gopokes,zvfrfcb,w1234567,sputnik1,tr1993,pa$$w0rd,2i5fdruv,havvoc,1357913,1313131,bnm123,cowd00d,flexscan,thesims2,boogiema,bigsexxy,powerstr,ngc4565,joshman,babyboy1,123jlb,funfunfu,qwe456,honor1,puttana,bobbyj,daniel21,pussy12,shmuck,1232580,123578951,maxthedo,hithere1,bond0007,gehenna,nomames,blueone,r1234567,bwana,gatinho,1011111,torrents,cinta,123451234,tiger25,money69,edibey,pointman,mmcm19,wales1,caffreys,phaedra,bloodlus,321ret32,rufuss,tarbit,joanna1,102030405,stickboy,lotrfotr34,jamshid,mclarenf1,ataman,99ford,yarrak,logan2,ironlung,pushistik,dragoon1,unclebob,tigereye,pinokio,tylerj,mermaid1,stevie1,jaylen,888777,ramana,roman777,brandon7,17711771s,thiago,luigi1,edgar1,brucey,videogam,classi,birder,faramir,twiddle,cubalibre,grizzy,fucky,jjvwd4,august15,idinahui,ranita,nikita1998,123342,w1w2w3,78621323,4cancel,789963,(null,vassago,jaydog472,123452,timt42,canada99,123589,rebenok,htyfnf,785001,osipov,maks123,neverwinter,love2010,777222,67390436,eleanor1,bykemo,aquemini,frogg,roboto,thorny,shipmate,logcabin,66005918,nokian,gonzos,louisian,1abcdefg,triathlo,ilovemar,couger,letmeino,supera,runvs,fibonacci,muttly,58565254,5thgbqi,vfnehsv,electr,jose12,artemis1,newlove,thd1shr,hawkey,grigoryan,saisha,tosca,redder,lifesux,temple1,bunnyman,thekids,sabbeth,tarzan1,182838,158uefas,dell50,1super,666222,47ds8x,jackhamm,mineonly,rfnfhbyf,048ro,665259,kristina1,bombero,52545856,secure1,bigloser,peterk,alex2,51525354,anarchy1,superx,teenslut,money23,sigmapi,sanfrancisco,acme34,private5,eclips,qwerttrewq,axelle,kokain,hardguy,peter69,jesuschr,dyanna,dude69,sarah69,toyota91,amberr,45645645,bugmenot,bigted,44556677,556644,wwr8x9pu,alphaome,harley13,kolia123,wejrpfpu,revelati,nairda,sodoff,cityboy,pinkpussy,dkalis,miami305,wow12345,triplet,tannenbau,asdfasdf1,darkhors,527952,retired1,soxfan,nfyz123,37583867,goddes,515069,gxlmxbewym,1warrior,36925814,dmb2011,topten,karpova,89876065093rax,naturals,gateway9,cepseoun,turbot,493949,cock22,italia1,sasafras,gopnik,stalke,1qazxdr5,wm2006,ace1062,alieva,blue28,aracel,sandia,motoguzz,terri1,emmajane,conej,recoba,alex1995,jerkyboy,cowboy12,arenrone,precisio,31415927,scsa316,panzer1,studly1,powerhou,bensam,mashoutq,billee,eeyore1,reape,thebeatl,rul3z,montesa,doodle1,cvzefh1gk,424365,a159753,zimmerma,gumdrop,ashaman,grimreap,icandoit,borodina,branca,dima2009,keywest1,vaders,bubluk,diavolo,assss,goleta,eatass,napster1,382436,369741,5411pimo,lenchik,pikach,gilgamesh,kalimera,singer1,gordon2,rjycnbnewbz,maulwurf,joker13,2much4u,bond00,alice123,robotec,fuckgirl,zgjybz,redhorse,margaret1,brady1,pumpkin2,chinky,fourplay,1booger,roisin,1brandon,sandan,blackheart,cheez,blackfin,cntgfyjdf,mymoney1,09080706,goodboss,sebring1,rose1,kensingt,bigboner,marcus12,ym3cautj,struppi,thestone,lovebugs,stater,silver99,forest99,qazwsx12345,vasile,longboar,mkonji,huligan,rhfcbdfz,airmail,porn11,1ooooo,sofun,snake2,msouthwa,dougla,1iceman,shahrukh,sharona,dragon666,france98,196800,196820,ps253535,zjses9evpa,sniper01,design1,konfeta,jack99,drum66,good4you,station2,brucew,regedit,school12,mvtnr765,pub113,fantas,tiburon1,king99,ghjcnjgbpltw,checkito,308win,1ladybug,corneliu,svetasveta,197430,icicle,imaccess,ou81269,jjjdsl,brandon6,bimbo1,smokee,piccolo1,3611jcmg,children2,cookie2,conor1,darth1,margera,aoi856,paully,ou812345,sklave,eklhigcz,30624700,amazing1,wahooo,seau55,1beer,apples2,chulo,dolphin9,heather6,198206,198207,hergood,miracle1,njhyflj,4real,milka,silverfi,fabfive,spring12,ermine,mammy,jumpjet,adilbek,toscana,caustic,hotlove,sammy69,lolita1,byoung,whipme,barney01,mistys,tree1,buster3,kaylin,gfccgjhn,132333,aishiteru,pangaea,fathead1,smurph,198701,ryslan,gasto,xexeylhf,anisimov,chevyss,saskatoo,brandy12,tweaker,irish123,music2,denny1,palpatin,outlaw1,lovesuck,woman1,mrpibb,diadora,hfnfneq,poulette,harlock,mclaren1,cooper12,newpass3,bobby12,rfgecnfcerf,alskdjfh,mini14,dukers,raffael,199103,cleo123,1234567qwertyu,mossberg,scoopy,dctulf,starline,hjvjxrf,misfits1,rangers2,bilbos,blackhea,pappnase,atwork,purple2,daywalker,summoner,1jjjjjjj,swansong,chris10,laluna,12345qqq,charly1,lionsden,money99,silver33,hoghead,bdaddy,199430,saisg002,nosaints,tirpitz,1gggggg,jason13,kingss,ernest1,0cdh0v99ue,pkunzip,arowana,spiri,deskjet1,armine,lances,magic2,thetaxi,14159265,cacique,14142135,orange10,richard0,backdraf,255ooo,humtum,kohsamui,c43dae874d,wrestling1,cbhtym,sorento,megha,pepsiman,qweqwe12,bliss7,mario64,korolev,balls123,schlange,gordit,optiquest,fatdick,fish99,richy,nottoday,dianne1,armyof1,1234qwerasdfzxcv,bbonds,aekara,lidiya,baddog1,yellow5,funkie,ryan01,greentree,gcheckout,marshal1,liliput,000000z,rfhbyrf,gtogto43,rumpole,tarado,marcelit,aqwzsxedc,kenshin1,sassydog,system12,belly1,zilla,kissfan,tools1,desember,donsdad,nick11,scorpio6,poopoo1,toto99,steph123,dogfuck,rocket21,thx113,dude12,sanek,sommar,smacky,pimpsta,letmego,k1200rs,lytghjgtnhjdcr,abigale,buddog,deles,baseball9,roofus,carlsbad,hamzah,hereiam,genial,schoolgirlie,yfz450,breads,piesek,washear,chimay,apocalyp,nicole18,gfgf1234,gobulls,dnevnik,wonderwall,beer1234,1moose,beer69,maryann1,adpass,mike34,birdcage,hottuna,gigant,penquin,praveen,donna123,123lol123,thesame,fregat,adidas11,selrahc,pandoras,test3,chasmo,111222333000,pecos,daniel11,ingersol,shana1,mama12345,cessna15,myhero,1simpson,nazarenko,cognit,seattle2,irina1,azfpc310,rfycthdf,hardy1,jazmyn,sl1200,hotlanta,jason22,kumar123,sujatha,fsd9shtyu,highjump,changer,entertai,kolding,mrbig,sayuri,eagle21,qwertzu,jorge1,0101dd,bigdong,ou812a,sinatra1,htcnjhfy,oleg123,videoman,pbyfblf,tv612se,bigbird1,kenaidog,gunite,silverma,ardmore,123123qq,hotbot,cascada,cbr600f4,harakiri,chico123,boscos,aaron12,glasgow1,kmn5hc,lanfear,1light,liveoak,fizika,ybrjkftdyf,surfside,intermilan,multipas,redcard,72chevy,balata,coolio1,schroede,kanat,testerer,camion,kierra,hejmeddig,antonio2,tornados,isidor,pinkey,n8skfswa,ginny1,houndog,1bill,chris25,hastur,1marine,greatdan,french1,hatman,123qqq,z1z2z3z4,kicker1,katiedog,usopen,smith22,mrmagoo,1234512i,assa123,7seven7,monster7,june12,bpvtyf,149521,guenter,alex1985,voronina,mbkugegs,zaqwsxcderfv,rusty5,mystic1,master0,abcdef12,jndfkb,r4zpm3,cheesey,skripka,blackwhite,sharon69,dro8smwq,lektor,techman,boognish,deidara,heckfyf,quietkey,authcode,monkey4,jayboy,pinkerto,merengue,chulita,bushwick,turambar,kittykit,joseph2,dad123,kristo,pepote,scheiss,hambone1,bigballa,restaura,tequil,111luzer,euro2000,motox,denhaag,chelsi,flaco1,preeti,lillo,1001sin,passw,august24,beatoff,555555d,willis1,kissthis,qwertyz,rvgmw2gl,iloveboobies,timati,kimbo,msinfo,dewdrop,sdbaker,fcc5nky2,messiah1,catboy,small1,chode,beastie1,star77,hvidovre,short1,xavie,dagobah,alex1987,papageno,dakota2,toonami,fuerte,jesus33,lawina,souppp,dirtybir,chrish,naturist,channel1,peyote,flibble,gutentag,lactate,killem,zucchero,robinho,ditka,grumpy1,avr7000,boxxer,topcop,berry1,mypass1,beverly1,deuce1,9638527410,cthuttdf,kzkmrf,lovethem,band1t,cantona1,purple11,apples123,wonderwo,123a456,fuzzie,lucky99,dancer2,hoddling,rockcity,winner12,spooty,mansfiel,aimee1,287hf71h,rudiger,culebra,god123,agent86,daniel0,bunky1,notmine,9ball,goofus,puffy1,xyh28af4,kulikov,bankshot,vurdf5i2,kevinm,ercole,sexygirls,razvan,october7,goater,lollie,raissa,thefrog,mdmaiwa3,mascha,jesussaves,union1,anthony9,crossroa,brother2,areyuke,rodman91,toonsex,dopeman,gericom,vaz2115,cockgobbler,12356789,12345699,signatur,alexandra1,coolwhip,erwin1,awdrgyjilp,pens66,ghjrjgtyrj,linkinpark,emergenc,psych0,blood666,bootmort,wetworks,piroca,johnd,iamthe1,supermario,homer69,flameon,image1,bebert,fylhtq1,annapoli,apple11,hockey22,10048,indahouse,mykiss,1penguin,markp,misha123,foghat,march11,hank1,santorin,defcon4,tampico,vbnhjafy,robert22,bunkie,athlon64,sex777,nextdoor,koskesh,lolnoob,seemnemaailm,black23,march15,yeehaa,chiqui,teagan,siegheil,monday2,cornhusk,mamusia,chilis,sthgrtst,feldspar,scottm,pugdog,rfghjy,micmac,gtnhjdyf,terminato,1jackson,kakosja,bogomol,123321aa,rkbvtyrj,tresor,tigertig,fuckitall,vbkkbjy,caramon,zxc12,balin,dildo1,soccer09,avata,abby123,cheetah1,marquise,jennyc,hondavfr,tinti,anna1985,dennis2,jorel,mayflowe,icema,hal2000,nikkis,bigmouth,greenery,nurjan,leonov,liberty7,fafnir,larionov,sat321321,byteme1,nausicaa,hjvfynbrf,everto,zebra123,sergio1,titone,wisdom1,kahala,104328q,marcin1,salima,pcitra,1nnnnn,nalini,galvesto,neeraj,rick1,squeeky,agnes1,jitterbu,agshar,maria12,0112358,traxxas,stivone,prophet1,bananza,sommer1,canoneos,hotfun,redsox11,1bigmac,dctdjkjl,legion1,everclea,valenok,black9,danny001,roxie1,1theman,mudslide,july16,lechef,chula,glamis,emilka,canbeef,ioanna,cactus1,rockshox,im2cool,ninja9,thvfrjdf,june28,milo17,missyou,micky1,nbibyf,nokiaa,goldi,mattias,fuckthem,asdzxc123,ironfist,junior01,nesta,crazzy,killswit,hygge,zantac,kazama,melvin1,allston,maandag,hiccup,prototyp,specboot,dwl610,hello6,159456,baldhead,redwhite,calpoly,whitetail,agile1,cousteau,matt01,aust1n,malcolmx,gjlfhjr,semperf1,ferarri,a1b2c3d,vangelis,mkvdari,bettis36,andzia,comand,tazzman,morgaine,pepluv,anna1990,inandout,anetka,anna1997,wallpape,moonrake,huntress,hogtie,cameron7,sammy7,singe11,clownboy,newzeala,wilmar,safrane,rebeld,poopi,granat,hammertime,nermin,11251422,xyzzy1,bogeys,jkmxbr,fktrcfyl,11223311,nfyrbcn,11223300,powerpla,zoedog,ybrbnbyf,zaphod42,tarawa,jxfhjdfirf,dude1234,g5wks9,goobe,czekolada,blackros,amaranth,medical1,thereds,julija,nhecsyfujkjdt,promopas,buddy4,marmalad,weihnachten,tronic,letici,passthief,67mustan,ds7zamnw,morri,w8woord,cheops,pinarell,sonofsam,av473dv,sf161pn,5c92v5h6,purple13,tango123,plant1,1baby,xufrgemw,fitta,1rangers,spawns,kenned,taratata,19944991,11111118,coronas,4ebouux8,roadrash,corvette1,dfyjdf846,marley12,qwaszxerdfcv,68stang,67stang,racin,ellehcim,sofiko,nicetry,seabass1,jazzman1,zaqwsx1,laz2937,uuuuuuu1,vlad123,rafale,j1234567,223366,nnnnnn1,226622,junkfood,asilas,cer980,daddymac,persepho,neelam,00700,shithappens,255555,qwertyy,xbox36,19755791,qweasd1,bearcub,jerryb,a1b1c1,polkaudio,basketball1,456rty,1loveyou,marcus2,mama1961,palace1,transcend,shuriken,sudhakar,teenlove,anabelle,matrix99,pogoda,notme,bartend,jordana,nihaoma,ataris,littlegi,ferraris,redarmy,giallo,fastdraw,accountbloc,peludo,pornostar,pinoyako,cindee,glassjaw,dameon,johnnyd,finnland,saudade,losbravo,slonko,toplay,smalltit,nicksfun,stockhol,penpal,caraj,divedeep,cannibus,poppydog,pass88,viktory,walhalla,arisia,lucozade,goldenbo,tigers11,caball,ownage123,tonna,handy1,johny,capital5,faith2,stillher,brandan,pooky1,antananarivu,hotdick,1justin,lacrimos,goathead,bobrik,cgtwbfkbcn,maywood,kamilek,gbplf123,gulnar,beanhead,vfvjyn,shash,viper69,ttttttt1,hondacr,kanako,muffer,dukies,justin123,agapov58,mushka,bad11bad,muleman,jojo123,andreika,makeit,vanill,boomers,bigals,merlin11,quacker,aurelien,spartak1922,ligeti,diana2,lawnmowe,fortune1,awesom,rockyy,anna1994,oinker,love88,eastbay,ab55484,poker0,ozzy666,papasmurf,antihero,photogra,ktm250,painkill,jegr2d2,p3orion,canman,dextur,qwest123,samboy,yomismo,sierra01,herber,vfrcbvvfrcbv,gloria1,llama1,pie123,bobbyjoe,buzzkill,skidrow,grabber,phili,javier1,9379992q,geroin,oleg1994,sovereig,rollover,zaq12qaz,battery1,killer13,alina123,groucho1,mario12,peter22,butterbean,elise1,lucycat,neo123,ferdi,golfer01,randie,gfhfyjbr,ventura1,chelsea3,pinoy,mtgox,yrrim7,shoeman,mirko,ffggyyo,65mustan,ufdibyjd,john55,suckfuck,greatgoo,fvfnjhb,mmmnnn,love20,1bullshi,sucesso,easy1234,robin123,rockets1,diamondb,wolfee,nothing0,joker777,glasnost,richar1,guille,sayan,koresh,goshawk,alexx,batman21,a123456b,hball,243122,rockandr,coolfool,isaia,mary1,yjdbrjdf,lolopc,cleocat,cimbo,lovehina,8vfhnf,passking,bonapart,diamond2,bigboys,kreator,ctvtyjdf,sassy123,shellac,table54781,nedkelly,philbert,sux2bu,nomis,sparky99,python1,littlebear,numpty,silmaril,sweeet,jamesw,cbufhtnf,peggysue,wodahs,luvsex,wizardry,venom123,love4you,bama1,samat,reviewpass,ned467,cjkjdtq,mamula,gijoe,amersham,devochka,redhill,gisel,preggo,polock,cando,rewster,greenlantern,panasonik,dave1234,mikeee,1carlos,miledi,darkness1,p0o9i8u7y6,kathryn1,happyguy,dcp500,assmaster,sambuka,sailormo,antonio3,logans,18254288,nokiax2,qwertzuiop,zavilov,totti,xenon1,edward11,targa1,something1,tony_t,q1w2e3r4t5y6u7i8o9p0,02551670,vladimir1,monkeybutt,greenda,neel21,craiger,saveliy,dei008,honda450,fylhtq95,spike2,fjnq8915,passwordstandard,vova12345,talonesi,richi,gigemags,pierre1,westin,trevoga,dorothee,bastogne,25563o,brandon3,truegrit,krimml,iamgreat,servis,a112233,paulinka,azimuth,corperfmonsy,358hkyp,homerun1,dogbert1,eatmyass,cottage1,savina,baseball7,bigtex,gimmesum,asdcxz,lennon1,a159357,1bastard,413276191q,pngfilt,pchealth,netsnip,bodiroga,1matt,webtvs,ravers,adapters,siddis,mashamasha,coffee2,myhoney,anna1982,marcia1,fairchil,maniek,iloveluc,batmonh,wildon,bowie1,netnwlnk,fancy1,tom204,olga1976,vfif123,queens1,ajax01,lovess,mockba,icam4usb,triada,odinthor,rstlne,exciter,sundog,anchorat,girls69,nfnmzyrf,soloma,gti16v,shadowman,ottom,rataros,tonchin,vishal,chicken0,pornlo,christiaan,volante,likesit,mariupol,runfast,gbpltw123,missys,villevalo,kbpjxrf,ghibli,calla,cessna172,kinglear,dell11,swift1,walera,1cricket,pussy5,turbo911,tucke,maprchem56458,rosehill,thekiwi1,ygfxbkgt,mandarinka,98xa29,magnit,cjfrf,paswoord,grandam1,shenmue,leedsuni,hatrick,zagadka,angeldog,michaell,dance123,koichi,bballs,29palms,xanth,228822,ppppppp1,1kkkkk,1lllll,mynewbots,spurss,madmax1,224455,city1,mmmmmmm1,nnnnnnn1,biedronka,thebeatles,elessar,f14tomcat,jordan18,bobo123,ayi000,tedbear,86chevyx,user123,bobolink,maktub,elmer1,flyfishi,franco1,gandalf0,traxdata,david21,enlighte,dmitrij,beckys,1giants,flippe,12345678w,jossie,rugbyman,snowcat,rapeme,peanut11,gemeni,udders,techn9ne,armani1,chappie,war123,vakantie,maddawg,sewanee,jake5253,tautt1,anthony5,letterma,jimbo2,kmdtyjr,hextall,jessica6,amiga500,hotcunt,phoenix9,veronda,saqartvelo,scubas,sixer3,williamj,nightfal,shihan,melnikova,kosssss,handily,killer77,jhrl0821,march17,rushman,6gcf636i,metoyou,irina123,mine11,primus1,formatters,matthew5,infotech,gangster1,jordan45,moose69,kompas,motoxxx,greatwhi,cobra12,kirpich,weezer1,hello23,montse,tracy123,connecte,cjymrf,hemingwa,azreal,gundam00,mobila,boxman,slayers1,ravshan,june26,fktrcfylhjd,bermuda1,tylerd,maersk,qazwsx11,eybdthcbntn,ash123,camelo,kat123,backd00r,cheyenne1,1king,jerkin,tnt123,trabant,warhammer40k,rambos,punto,home77,pedrito,1frank,brille,guitarman,george13,rakas,tgbxtcrbq,flute1,bananas1,lovezp1314,thespot,postie,buster69,sexytime,twistys,zacharia,sportage,toccata,denver7,terry123,bogdanova,devil69,higgins1,whatluck,pele10,kkk666,jeffery1,1qayxsw2,riptide1,chevy11,munchy,lazer1,hooker1,ghfgjh,vergesse,playgrou,4077mash,gusev,humpin,oneputt,hydepark,monster9,tiger8,tangsoo,guy123,hesoyam1,uhtqneyu,thanku,lomond,ortezza,kronik,geetha,rabbit66,killas,qazxswe,alabaste,1234567890qwerty,capone1,andrea12,geral,beatbox,slutfuck,booyaka,jasmine7,ostsee,maestro1,beatme,tracey1,buster123,donaldduck,ironfish,happy6,konnichi,gintonic,momoney1,dugan1,today2,enkidu,destiny2,trim7gun,katuha,fractals,morganstanley,polkadot,gotime,prince11,204060,fifa2010,bobbyt,seemee,amanda10,airbrush,bigtitty,heidie,layla1,cotton1,5speed,fyfnjkmtdyf,flynavy,joxury8f,meeko,akuma,dudley1,flyboy1,moondog1,trotters,mariami,signin,chinna,legs11,pussy4,1s1h1e1f1,felici,optimus1,iluvu,marlins1,gavaec,balance1,glock40,london01,kokot,southwes,comfort1,sammy11,rockbottom,brianc,litebeer,homero,chopsuey,greenlan,charit,freecell,hampster,smalldog,viper12,blofeld,1234567890987654321,realsex,romann,cartman2,cjdthitycndj,nelly1,bmw528,zwezda,masterba,jeep99,turtl,america2,sunburst,sanyco,auntjudy,125wm,blue10,qwsazx,cartma,toby12,robbob,red222,ilovecock,losfix16,1explore,helge,vaz2114,whynotme,baba123,mugen,1qazwsxedc,albertjr,0101198,sextime,supras,nicolas2,wantsex,pussy6,checkm8,winam,24gordon,misterme,curlew,gbljhfcs,medtech,franzi,butthea,voivod,blackhat,egoiste,pjkeirf,maddog69,pakalolo,hockey4,igor1234,rouges,snowhite,homefree,sexfreak,acer12,dsmith,blessyou,199410,vfrcbvjd,falco02,belinda1,yaglasph,april21,groundho,jasmin1,nevergiveup,elvir,gborv526,c00kie,emma01,awesome2,larina,mike12345,maximu,anupam,bltynbabrfwbz,tanushka,sukkel,raptor22,josh12,schalke04,cosmodog,fuckyou8,busybee,198800,bijoux,frame1,blackmor,giveit,issmall,bear13,123-123,bladez,littlegirl,ultra123,fletch1,flashnet,loploprock,rkelly,12step,lukas1,littlewhore,cuntfinger,stinkyfinger,laurenc,198020,n7td4bjl,jackie69,camel123,ben1234,1gateway,adelheid,fatmike,thuglove,zzaaqq,chivas1,4815162342q,mamadou,nadano,james22,benwin,andrea99,rjirf,michou,abkbgg,d50gnn,aaazzz,a123654,blankman,booboo11,medicus,bigbone,197200,justine1,bendix,morphius,njhvjp,44mag,zsecyus56,goodbye1,nokiadermo,a333444,waratsea,4rzp8ab7,fevral,brillian,kirbys,minim,erathia,grazia,zxcvb1234,dukey,snaggle,poppi,hymen,1video,dune2000,jpthjdf,cvbn123,zcxfcnkbdfz,astonv,ginnie,316271,engine3,pr1ncess,64chevy,glass1,laotzu,hollyy,comicbooks,assasins,nuaddn9561,scottsda,hfcnfvfy,accobra,7777777z,werty123,metalhead,romanson,redsand,365214,shalo,arsenii,1989cc,sissi,duramax,382563,petera,414243,mamapap,jollymon,field1,fatgirl,janets,trompete,matchbox20,rambo2,nepenthe,441232,qwertyuiop10,bozo123,phezc419hv,romantika,lifestyl,pengui,decembre,demon6,panther6,444888,scanman,ghjcnjabkz,pachanga,buzzword,indianer,spiderman3,tony12,startre,frog1,fyutk,483422,tupacshakur,albert12,1drummer,bmw328i,green17,aerdna,invisibl,summer13,calimer,mustaine,lgnu9d,morefun,hesoyam123,escort1,scrapland,stargat,barabbas,dead13,545645,mexicali,sierr,gfhfpbn,gonchar,moonstafa,searock,counte,foster1,jayhawk1,floren,maremma,nastya2010,softball1,adaptec,halloo,barrabas,zxcasd123,hunny,mariana1,kafedra,freedom0,green420,vlad1234,method7,665566,tooting,hallo12,davinchi,conducto,medias,666444,invernes,madhatter,456asd,12345678i,687887,le33px,spring00,help123,bellybut,billy5,vitalik1,river123,gorila,bendis,power666,747200,footslav,acehigh,qazxswedc123,q1a1z1,richard9,peterburg,tabletop,gavrilov,123qwe1,kolosov,fredrau,run4fun,789056,jkbvgbflf,chitra,87654321q,steve22,wideopen,access88,surfe,tdfyutkbjy,impossib,kevin69,880888,cantina,887766,wxcvb,dontforg,qwer1209,asslicke,mamma123,indig,arkasha,scrapp,morelia,vehxbr,jones2,scratch1,cody11,cassie12,gerbera,dontgotm,underhil,maks2010,hollywood1,hanibal,elena2010,jason11,1010321,stewar,elaman,fireplug,goodby,sacrific,babyphat,bobcat12,bruce123,1233215,tony45,tiburo,love15,bmw750,wallstreet,2h0t4me,1346795,lamerz,munkee,134679q,granvill,1512198,armastus,aiden1,pipeutvj,g1234567,angeleyes,usmc1,102030q,putangina,brandnew,shadowfax,eagles12,1falcon,brianw,lokomoti,2022958,scooper,pegas,jabroni1,2121212,buffal,siffredi,wewiz,twotone,rosebudd,nightwis,carpet1,mickey2,2525252,sleddog,red333,jamesm,2797349,jeff12,onizuka,felixxxx,rf6666,fine1,ohlala,forplay,chicago5,muncho,scooby11,ptichka,johnnn,19851985p,dogphil3650,totenkopf,monitor2,macross7,3816778,dudder,semaj1,bounder,racerx1,5556633,7085506,ofclr278,brody1,7506751,nantucke,hedj2n4q,drew1,aessedai,trekbike,pussykat,samatron,imani,9124852,wiley1,dukenukem,iampurehaha2,9556035,obvious1,mccool24,apache64,kravchenko,justforf,basura,jamese,s0ccer,safado,darksta,surfer69,damian1,gjpbnbd,gunny1,wolley,sananton,zxcvbn123456,odt4p6sv8,sergei1,modem1,mansikka,zzzz1,rifraf,dima777,mary69,looking4,donttell,red100,ninjutsu,uaeuaeman,bigbri,brasco,queenas8151,demetri,angel007,bubbl,kolort,conny,antonia1,avtoritet,kaka22,kailayu,sassy2,wrongway,chevy3,1nascar,patriots1,chrisrey,mike99,sexy22,chkdsk,sd3utre7,padawan,a6pihd,doming,mesohorny,tamada,donatello,emma22,eather,susan69,pinky123,stud69,fatbitch,pilsbury,thc420,lovepuss,1creativ,golf1234,hurryup,1honda,huskerdu,marino1,gowron,girl1,fucktoy,gtnhjpfdjlcr,dkjfghdk,pinkfl,loreli,7777777s,donkeykong,rockytop,staples1,sone4ka,xxxjay,flywheel,toppdogg,bigbubba,aaa123456,2letmein,shavkat,paule,dlanor,adamas,0147852,aassaa,dixon1,bmw328,mother12,ilikepussy,holly2,tsmith,excaliber,fhutynbyf,nicole3,tulipan,emanue,flyvholm,currahee,godsgift,antonioj,torito,dinky1,sanna,yfcnzvjz,june14,anime123,123321456654,hanswurst,bandman,hello101,xxxyyy,chevy69,technica,tagada,arnol,v00d00,lilone,filles,drumandbass,dinamit,a1234a,eatmeat,elway07,inout,james6,dawid1,thewolf,diapason,yodaddy,qscwdv,fuckit1,liljoe,sloeber,simbacat,sascha1,qwe1234,1badger,prisca,angel17,gravedig,jakeyboy,longboard,truskawka,golfer11,pyramid7,highspee,pistola,theriver,hammer69,1packers,dannyd,alfonse,qwertgfdsa,11119999,basket1,ghjtrn,saralee,12inches,paolo1,zse4xdr5,taproot,sophieh6,grizzlie,hockey69,danang,biggums,hotbitch,5alive,beloved1,bluewave,dimon95,koketka,multiscan,littleb,leghorn,poker2,delite,skyfir,bigjake,persona1,amberdog,hannah12,derren,ziffle,1sarah,1assword,sparky01,seymur,tomtom1,123321qw,goskins,soccer19,luvbekki,bumhole,2balls,1muffin,borodin,monkey9,yfeiybrb,1alex,betmen,freder,nigger123,azizbek,gjkzrjdf,lilmike,1bigdadd,1rock,taganrog,snappy1,andrey1,kolonka,bunyan,gomango,vivia,clarkkent,satur,gaudeamus,mantaray,1month,whitehea,fargus,andrew99,ray123,redhawks,liza2009,qw12345,den12345,vfhnsyjdf,147258369a,mazepa,newyorke,1arsenal,hondas2000,demona,fordgt,steve12,birthday2,12457896,dickster,edcwsxqaz,sahalin,pantyman,skinny1,hubertus,cumshot1,chiro,kappaman,mark3434,canada12,lichking,bonkers1,ivan1985,sybase,valmet,doors1,deedlit,kyjelly,bdfysx,ford11,throatfuck,backwood,fylhsq,lalit,boss429,kotova,bricky,steveh,joshua19,kissa,imladris,star1234,lubimka,partyman,crazyd,tobias1,ilike69,imhome,whome,fourstar,scanner1,ujhjl312,anatoli,85bears,jimbo69,5678ytr,potapova,nokia7070,sunday1,kalleank,1996gta,refinnej,july1,molodec,nothanks,enigm,12play,sugardog,nhfkbdfkb,larousse,cannon1,144444,qazxcdew,stimorol,jhereg,spawn7,143000,fearme,hambur,merlin21,dobie,is3yeusc,partner1,dekal,varsha,478jfszk,flavi,hippo1,9hmlpyjd,july21,7imjfstw,lexxus,truelov,nokia5200,carlos6,anais,mudbone,anahit,taylorc,tashas,larkspur,animal2000,nibiru,jan123,miyvarxar,deflep,dolore,communit,ifoptfcor,laura2,anadrol,mamaliga,mitzi1,blue92,april15,matveev,kajlas,wowlook1,1flowers,shadow14,alucard1,1golf,bantha,scotlan,singapur,mark13,manchester1,telus01,superdav,jackoff1,madnes,bullnuts,world123,clitty,palmer1,david10,spider10,sargsyan,rattlers,david4,windows2,sony12,visigoth,qqqaaa,penfloor,cabledog,camilla1,natasha123,eagleman,softcore,bobrov,dietmar,divad,sss123,d1234567,tlbyjhju,1q1q1q1,paraiso,dav123,lfiekmrf,drachen,lzhan16889,tplate,gfghbrf,casio1,123boots1,123test,sys64738,heavymetal,andiamo,meduza,soarer,coco12,negrita,amigas,heavymet,bespin,1asdfghj,wharfrat,wetsex,tight1,janus1,sword123,ladeda,dragon98,austin2,atep1,jungle1,12345abcd,lexus300,pheonix1,alex1974,123qw123,137955,bigtim,shadow88,igor1994,goodjob,arzen,champ123,121ebay,changeme1,brooksie,frogman1,buldozer,morrowin,achim,trish1,lasse,festiva,bubbaman,scottb,kramit,august22,tyson123,passsword,oompah,al123456,fucking1,green45,noodle1,looking1,ashlynn,al1716,stang50,coco11,greese,bob111,brennan1,jasonj,1cherry,1q2345,1xxxxxxx,fifa2011,brondby,zachar1,satyam,easy1,magic7,1rainbow,cheezit,1eeeeeee,ashley123,assass1,amanda123,jerbear,1bbbbbb,azerty12,15975391,654321z,twinturb,onlyone1,denis1988,6846kg3r,jumbos,pennydog,dandelion,haileris,epervier,snoopy69,afrodite,oldpussy,green55,poopypan,verymuch,katyusha,recon7,mine69,tangos,contro,blowme2,jade1,skydive1,fiveiron,dimo4ka,bokser,stargirl,fordfocus,tigers2,platina,baseball11,raque,pimper,jawbreak,buster88,walter34,chucko,penchair,horizon1,thecure1,scc1975,adrianna1,kareta,duke12,krille,dumbfuck,cunt1,aldebaran,laverda,harumi,knopfler,pongo1,pfhbyf,dogman1,rossigno,1hardon,scarlets,nuggets1,ibelieve,akinfeev,xfhkbr,athene,falcon69,happie,billly,nitsua,fiocco,qwerty09,gizmo2,slava2,125690,doggy123,craigs,vader123,silkeborg,124365,peterm,123978,krakatoa,123699,123592,kgvebmqy,pensacol,d1d2d3,snowstor,goldenboy,gfg65h7,ev700,church1,orange11,g0dz1ll4,chester3,acheron,cynthi,hotshot1,jesuschris,motdepass,zymurgy,one2one,fietsbel,harryp,wisper,pookster,nn527hp,dolla,milkmaid,rustyboy,terrell1,epsilon1,lillian1,dale3,crhbgrf,maxsim,selecta,mamada,fatman1,ufkjxrf,shinchan,fuckuall,women1,000008,bossss,greta1,rbhjxrf,mamasboy,purple69,felicidade,sexy21,cathay,hunglow,splatt,kahless,shopping1,1gandalf,themis,delta7,moon69,blue24,parliame,mamma1,miyuki,2500hd,jackmeof,razer,rocker1,juvis123,noremac,boing747,9z5ve9rrcz,icewater,titania,alley1,moparman,christo1,oliver2,vinicius,tigerfan,chevyy,joshua99,doda99,matrixx,ekbnrf,jackfrost,viper01,kasia,cnfhsq,triton1,ssbt8ae2,rugby8,ramman,1lucky,barabash,ghtlfntkm,junaid,apeshit,enfant,kenpo1,shit12,007000,marge1,shadow10,qwerty789,richard8,vbitkm,lostboys,jesus4me,richard4,hifive,kolawole,damilola,prisma,paranoya,prince2,lisaann,happyness,cardss,methodma,supercop,a8kd47v5,gamgee,polly123,irene1,number8,hoyasaxa,1digital,matthew0,dclxvi,lisica,roy123,2468013579,sparda,queball,vaffanculo,pass1wor,repmvbx,999666333,freedom8,botanik,777555333,marcos1,lubimaya,flash2,einstei,08080,123456789j,159951159,159357123,carrot1,alina1995,sanjos,dilara,mustang67,wisteria,jhnjgtl12,98766789,darksun,arxangel,87062134,creativ1,malyshka,fuckthemall,barsic,rocksta,2big4u,5nizza,genesis2,romance1,ofcourse,1horse,latenite,cubana,sactown,789456123a,milliona,61808861,57699434,imperia,bubba11,yellow3,change12,55495746,flappy,jimbo123,19372846,19380018,cutlass1,craig123,klepto,beagle1,solus,51502112,pasha1,19822891,46466452,19855891,petshop,nikolaevna,119966,nokia6131,evenpar,hoosier1,contrasena,jawa350,gonzo123,mouse2,115511,eetfuk,gfhfvgfvgfv,1crystal,sofaking,coyote1,kwiatuszek,fhrflbq,valeria1,anthro,0123654789,alltheway,zoltar,maasikas,wildchil,fredonia,earlgrey,gtnhjczy,matrix123,solid1,slavko,12monkeys,fjdksl,inter1,nokia6500,59382113kevinp,spuddy,cachero,coorslit,password!,kiba1z,karizma,vova1994,chicony,english1,bondra12,1rocket,hunden,jimbob1,zpflhjn1,th0mas,deuce22,meatwad,fatfree,congas,sambora,cooper2,janne,clancy1,stonie,busta,kamaz,speedy2,jasmine3,fahayek,arsenal0,beerss,trixie1,boobs69,luansantana,toadman,control2,ewing33,maxcat,mama1964,diamond4,tabaco,joshua0,piper2,music101,guybrush,reynald,pincher,katiebug,starrs,pimphard,frontosa,alex97,cootie,clockwor,belluno,skyeseth,booty69,chaparra,boochie,green4,bobcat1,havok,saraann,pipeman,aekdb,jumpshot,wintermu,chaika,1chester,rjnjatq,emokid,reset1,regal1,j0shua,134679a,asmodey,sarahh,zapidoo,ciccione,sosexy,beckham23,hornets1,alex1971,delerium,manageme,connor11,1rabbit,sane4ek,caseyboy,cbljhjdf,redsox20,tttttt99,haustool,ander,pantera6,passwd1,journey1,9988776655,blue135,writerspace,xiaoyua123,justice2,niagra,cassis,scorpius,bpgjldsgjldthnf,gamemaster,bloody1,retrac,stabbin,toybox,fight1,ytpyf.,glasha,va2001,taylor11,shameles,ladylove,10078,karmann,rodeos,eintritt,lanesra,tobasco,jnrhjqcz,navyman,pablit,leshka,jessica3,123vika,alena1,platinu,ilford,storm7,undernet,sasha777,1legend,anna2002,kanmax1994,porkpie,thunder0,gundog,pallina,easypass,duck1,supermom,roach1,twincam,14028,tiziano,qwerty32,123654789a,evropa,shampoo1,yfxfkmybr,cubby1,tsunami1,fktrcttdf,yasacrac,17098,happyhap,bullrun,rodder,oaktown,holde,isbest,taylor9,reeper,hammer11,julias,rolltide1,compaq123,fourx4,subzero1,hockey9,7mary3,busines,ybrbnjcbr,wagoneer,danniash,portishead,digitex,alex1981,david11,infidel,1snoopy,free30,jaden,tonto1,redcar27,footie,moskwa,thomas21,hammer12,burzum,cosmo123,50000,burltree,54343,54354,vwpassat,jack5225,cougars1,burlpony,blackhorse,alegna,petert,katemoss,ram123,nels0n,ferrina,angel77,cstock,1christi,dave55,abc123a,alex1975,av626ss,flipoff,folgore,max1998,science1,si711ne,yams7,wifey1,sveiks,cabin1,volodia,ox3ford,cartagen,platini,picture1,sparkle1,tiedomi,service321,wooody,christi1,gnasher,brunob,hammie,iraffert,bot2010,dtcyeirf,1234567890p,cooper11,alcoholi,savchenko,adam01,chelsea5,niewiem,icebear,lllooottt,ilovedick,sweetpus,money8,cookie13,rfnthbyf1988,booboo2,angus123,blockbus,david9,chica1,nazaret,samsung9,smile4u,daystar,skinnass,john10,thegirl,sexybeas,wasdwasd1,sigge1,1qa2ws3ed4rf5tg,czarny,ripley1,chris5,ashley19,anitha,pokerman,prevert,trfnthby,tony69,georgia2,stoppedb,qwertyuiop12345,miniclip,franky1,durdom,cabbages,1234567890o,delta5,liudmila,nhfycajhvths,court1,josiew,abcd1,doghead,diman,masiania,songline,boogle,triston,deepika,sexy4me,grapple,spacebal,ebonee,winter0,smokewee,nargiza,dragonla,sassys,andy2000,menards,yoshio,massive1,suckmy1k,passat99,sexybo,nastya1996,isdead,stratcat,hokuto,infix,pidoras,daffyduck,cumhard,baldeagl,kerberos,yardman,shibainu,guitare,cqub6553,tommyy,bk.irf,bigfoo,hecto,july27,james4,biggus,esbjerg,isgod,1irish,phenmarr,jamaic,roma1990,diamond0,yjdbrjd,girls4me,tampa1,kabuto,vaduz,hanse,spieng,dianochka,csm101,lorna1,ogoshi,plhy6hql,2wsx4rfv,cameron0,adebayo,oleg1996,sharipov,bouboule,hollister1,frogss,yeababy,kablam,adelante,memem,howies,thering,cecilia1,onetwo12,ojp123456,jordan9,msorcloledbr,neveraga,evh5150,redwin,1august,canno,1mercede,moody1,mudbug,chessmas,tiikeri,stickdaddy77,alex15,kvartira,7654321a,lollol123,qwaszxedc,algore,solana,vfhbyfvfhbyf,blue72,misha1111,smoke20,junior13,mogli,threee,shannon2,fuckmylife,kevinh,saransk,karenw,isolde,sekirarr,orion123,thomas0,debra1,laketaho,alondra,curiva,jazz1234,1tigers,jambos,lickme2,suomi,gandalf7,028526,zygote,brett123,br1ttany,supafly,159000,kingrat,luton1,cool-ca,bocman,thomasd,skiller,katter,mama777,chanc,tomass,1rachel,oldno7,rfpfyjdf,bigkev,yelrah,primas,osito,kipper1,msvcr71,bigboy11,thesun,noskcaj,chicc,sonja1,lozinka,mobile1,1vader,ummagumma,waves1,punter12,tubgtn,server1,irina1991,magic69,dak001,pandemonium,dead1,berlingo,cherrypi,1montana,lohotron,chicklet,asdfgh123456,stepside,ikmvw103,icebaby,trillium,1sucks,ukrnet,glock9,ab12345,thepower,robert8,thugstools,hockey13,buffon,livefree,sexpics,dessar,ja0000,rosenrot,james10,1fish,svoloch,mykitty,muffin11,evbukb,shwing,artem1992,andrey1992,sheldon1,passpage,nikita99,fubar123,vannasx,eight888,marial,max2010,express2,violentj,2ykn5ccf,spartan11,brenda69,jackiech,abagail,robin2,grass1,andy76,bell1,taison,superme,vika1995,xtr451,fred20,89032073168,denis1984,2000jeep,weetabix,199020,daxter,tevion,panther8,h9iymxmc,bigrig,kalambur,tsalagi,12213443,racecar02,jeffrey4,nataxa,bigsam,purgator,acuracl,troutbum,potsmoke,jimmyz,manutd1,nytimes,pureevil,bearss,cool22,dragonage,nodnarb,dbrbyu,4seasons,freude,elric1,werule,hockey14,12758698,corkie,yeahright,blademan,tafkap,clave,liziko,hofner,jeffhardy,nurich,runne,stanisla,lucy1,monk3y,forzaroma,eric99,bonaire,blackwoo,fengshui,1qaz0okm,newmoney,pimpin69,07078,anonymer,laptop1,cherry12,ace111,salsa1,wilbur1,doom12,diablo23,jgtxzbhr,under1,honda01,breadfan,megan2,juancarlos,stratus1,ackbar,love5683,happytim,lambert1,cbljhtyrj,komarov,spam69,nfhtkrf,brownn,sarmat,ifiksr,spike69,hoangen,angelz,economia,tanzen,avogadro,1vampire,spanners,mazdarx,queequeg,oriana,hershil,sulaco,joseph11,8seconds,aquariu,cumberla,heather9,anthony8,burton12,crystal0,maria3,qazwsxc,snow123,notgood,198520,raindog,heehaw,consulta,dasein,miller01,cthulhu1,dukenuke,iubire,baytown,hatebree,198505,sistem,lena12,welcome01,maraca,middleto,sindhu,mitsou,phoenix5,vovan,donaldo,dylandog,domovoy,lauren12,byrjuybnj,123llll,stillers,sanchin,tulpan,smallvill,1mmmmm,patti1,folgers,mike31,colts18,123456rrr,njkmrjz,phoenix0,biene,ironcity,kasperok,password22,fitnes,matthew6,spotligh,bujhm123,tommycat,hazel5,guitar11,145678,vfcmrf,compass1,willee,1barney,jack2000,littleminge,shemp,derrek,xxx12345,littlefuck,spuds1,karolinka,camneely,qwertyu123,142500,brandon00,munson15,falcon3,passssap,z3cn2erv,goahead,baggio10,141592,denali1,37kazoo,copernic,123456789asd,orange88,bravada,rush211,197700,pablo123,uptheass,samsam1,demoman,mattylad10,heydude,mister2,werken,13467985,marantz,a22222,f1f2f3f4,fm12mn12,gerasimova,burrito1,sony1,glenny,baldeagle,rmfidd,fenomen,verbati,forgetme,5element,wer138,chanel1,ooicu812,10293847qp,minicooper,chispa,myturn,deisel,vthrehbq,boredboi4u,filatova,anabe,poiuyt1,barmalei,yyyy1,fourkids,naumenko,bangbros,pornclub,okaykk,euclid90,warrior3,kornet,palevo,patatina,gocart,antanta,jed1054,clock1,111111w,dewars,mankind1,peugeot406,liten,tahira,howlin,naumov,rmracing,corone,cunthole,passit,rock69,jaguarxj,bumsen,197101,sweet2,197010,whitecat,sawadee,money100,yfhrjnbrb,andyboy,9085603566,trace1,fagget,robot1,angel20,6yhn7ujm,specialinsta,kareena,newblood,chingada,boobies2,bugger1,squad51,133andre,call06,ashes1,ilovelucy,success2,kotton,cavalla,philou,deebee,theband,nine09,artefact,196100,kkkkkkk1,nikolay9,onelov,basia,emilyann,sadman,fkrjujkbr,teamomuch,david777,padrino,money21,firdaus,orion3,chevy01,albatro,erdfcv,2legit,sarah7,torock,kevinn,holio,soloy,enron714,starfleet,qwer11,neverman,doctorwh,lucy11,dino12,trinity7,seatleon,o123456,pimpman,1asdfgh,snakebit,chancho,prorok,bleacher,ramire,darkseed,warhorse,michael123,1spanky,1hotdog,34erdfcv,n0th1ng,dimanche,repmvbyf,michaeljackson,login1,icequeen,toshiro,sperme,racer2,veget,birthday26,daniel9,lbvekmrf,charlus,bryan123,wspanic,schreibe,1andonly,dgoins,kewell,apollo12,egypt1,fernie,tiger21,aa123456789,blowj,spandau,bisquit,12345678d,deadmau5,fredie,311420,happyface,samant,gruppa,filmstar,andrew17,bakesale,sexy01,justlook,cbarkley,paul11,bloodred,rideme,birdbath,nfkbcvfy,jaxson,sirius1,kristof,virgos,nimrod1,hardc0re,killerbee,1abcdef,pitcher1,justonce,vlada,dakota99,vespucci,wpass,outside1,puertori,rfvbkf,teamlosi,vgfun2,porol777,empire11,20091989q,jasong,webuivalidat,escrima,lakers08,trigger2,addpass,342500,mongini,dfhtybr,horndogg,palermo1,136900,babyblu,alla98,dasha2010,jkelly,kernow,yfnecz,rockhopper,toeman,tlaloc,silver77,dave01,kevinr,1234567887654321,135642,me2you,8096468644q,remmus,spider7,jamesa,jilly,samba1,drongo,770129ji,supercat,juntas,tema1234,esthe,1234567892000,drew11,qazqaz123,beegees,blome,rattrace,howhigh,tallboy,rufus2,sunny2,sou812,miller12,indiana7,irnbru,patch123,letmeon,welcome5,nabisco,9hotpoin,hpvteb,lovinit,stormin,assmonke,trill,atlanti,money1234,cubsfan,mello1,stars2,ueptkm,agate,dannym88,lover123,wordz,worldnet,julemand,chaser1,s12345678,pissword,cinemax,woodchuc,point1,hotchkis,packers2,bananana,kalender,420666,penguin8,awo8rx3wa8t,hoppie,metlife,ilovemyfamily,weihnachtsbau,pudding1,luckystr,scully1,fatboy1,amizade,dedham,jahbless,blaat,surrende,****er,1panties,bigasses,ghjuhfvbcn,asshole123,dfktyrb,likeme,nickers,plastik,hektor,deeman,muchacha,cerebro,santana5,testdrive,dracula1,canalc,l1750sq,savannah1,murena,1inside,pokemon00,1iiiiiii,jordan20,sexual1,mailliw,calipso,014702580369,1zzzzzz,1jjjjjj,break1,15253545,yomama1,katinka,kevin11,1ffffff,martijn,sslazio,daniel5,porno2,nosmas,leolion,jscript,15975312,pundai,kelli1,kkkddd,obafgkm,marmaris,lilmama,london123,rfhfnt,elgordo,talk87,daniel7,thesims3,444111,bishkek,afrika2002,toby22,1speedy,daishi,2children,afroman,qqqqwwww,oldskool,hawai,v55555,syndicat,pukimak,fanatik,tiger5,parker01,bri5kev6,timexx,wartburg,love55,ecosse,yelena03,madinina,highway1,uhfdbwfgf,karuna,buhjvfybz,wallie,46and2,khalif,europ,qaz123wsx456,bobbybob,wolfone,falloutboy,manning18,scuba10,schnuff,ihateyou1,lindam,sara123,popcor,fallengun,divine1,montblanc,qwerty8,rooney10,roadrage,bertie1,latinus,lexusis,rhfvfnjhcr,opelgt,hitme,agatka,1yamaha,dmfxhkju,imaloser,michell1,sb211st,silver22,lockedup,andrew9,monica01,sassycat,dsobwick,tinroof,ctrhtnyj,bultaco,rhfcyjzhcr,aaaassss,14ss88,joanne1,momanddad,ahjkjdf,yelhsa,zipdrive,telescop,500600,1sexsex,facial1,motaro,511647,stoner1,temujin,elephant1,greatman,honey69,kociak,ukqmwhj6,altezza,cumquat,zippos,kontiki,123max,altec1,bibigon,tontos,qazsew,nopasaran,militar,supratt,oglala,kobayash,agathe,yawetag,dogs1,cfiekmrf,megan123,jamesdea,porosenok,tiger23,berger1,hello11,seemann,stunner1,walker2,imissu,jabari,minfd,lollol12,hjvfy,1-oct,stjohns,2278124q,123456789qwer,alex1983,glowworm,chicho,mallards,bluedevil,explorer1,543211,casita,1time,lachesis,alex1982,airborn1,dubesor,changa,lizzie1,captaink,socool,bidule,march23,1861brr,k.ljxrf,watchout,fotze,1brian,keksa2,aaaa1122,matrim,providian,privado,dreame,merry1,aregdone,davidt,nounour,twenty2,play2win,artcast2,zontik,552255,shit1,sluggy,552861,dr8350,brooze,alpha69,thunder6,kamelia2011,caleb123,mmxxmm,jamesh,lfybkjd,125267,125000,124536,bliss1,dddsss,indonesi,bob69,123888,tgkbxfgy,gerar,themack,hijodeputa,good4now,ddd123,clk430,kalash,tolkien1,132forever,blackb,whatis,s1s2s3s4,lolkin09,yamahar,48n25rcc,djtiesto,111222333444555,bigbull,blade55,coolbree,kelse,ichwill,yamaha12,sakic,bebeto,katoom,donke,sahar,wahine,645202,god666,berni,starwood,june15,sonoio,time123,llbean,deadsoul,lazarev,cdtnf,ksyusha,madarchod,technik,jamesy,4speed,tenorsax,legshow,yoshi1,chrisbl,44e3ebda,trafalga,heather7,serafima,favorite4,havefun1,wolve,55555r,james13,nosredna,bodean,jlettier,borracho,mickael,marinus,brutu,sweet666,kiborg,rollrock,jackson6,macross1,ousooner,9085084232,takeme,123qwaszx,firedept,vfrfhjd,jackfros,123456789000,briane,cookie11,baby22,bobby18,gromova,systemofadown,martin01,silver01,pimaou,darthmaul,hijinx,commo,chech,skyman,sunse,2vrd6,vladimirovna,uthvfybz,nicole01,kreker,bobo1,v123456789,erxtgb,meetoo,drakcap,vfvf12,misiek1,butane,network2,flyers99,riogrand,jennyk,e12345,spinne,avalon11,lovejone,studen,maint,porsche2,qwerty100,chamberl,bluedog1,sungam,just4u,andrew23,summer22,ludic,musiclover,aguil,beardog1,libertin,pippo1,joselit,patito,bigberth,digler,sydnee,jockstra,poopo,jas4an,nastya123,profil,fuesse,default1,titan2,mendoz,kpcofgs,anamika,brillo021,bomberman,guitar69,latching,69pussy,blues2,phelge,ninja123,m7n56xo,qwertasd,alex1976,cunningh,estrela,gladbach,marillion,mike2000,258046,bypop,muffinman,kd5396b,zeratul,djkxbwf,john77,sigma2,1linda,selur,reppep,quartz1,teen1,freeclus,spook1,kudos4ever,clitring,sexiness,blumpkin,macbook,tileman,centra,escaflowne,pentable,shant,grappa,zverev,1albert,lommerse,coffee11,777123,polkilo,muppet1,alex74,lkjhgfdsazx,olesica,april14,ba25547,souths,jasmi,arashi,smile2,2401pedro,mybabe,alex111,quintain,pimp1,tdeir8b2,makenna,122333444455555,%e2%82%ac,tootsie1,pass111,zaqxsw123,gkfdfybt,cnfnbcnbrf,usermane,iloveyou12,hard69,osasuna,firegod,arvind,babochka,kiss123,cookie123,julie123,kamakazi,dylan2,223355,tanguy,nbhtqa,tigger13,tubby1,makavel,asdflkj,sambo1,mononoke,mickeys,gayguy,win123,green33,wcrfxtvgbjy,bigsmall,1newlife,clove,babyfac,bigwaves,mama1970,shockwav,1friday,bassey,yarddog,codered1,victory7,bigrick,kracker,gulfstre,chris200,sunbanna,bertuzzi,begemotik,kuolema,pondus,destinee,123456789zz,abiodun,flopsy,amadeusptfcor,geronim,yggdrasi,contex,daniel6,suck1,adonis1,moorea,el345612,f22raptor,moviebuf,raunchy,6043dkf,zxcvbnm123456789,eric11,deadmoin,ratiug,nosliw,fannies,danno,888889,blank1,mikey2,gullit,thor99,mamiya,ollieb,thoth,dagger1,websolutionssu,bonker,prive,1346798520,03038,q1234q,mommy2,contax,zhipo,gwendoli,gothic1,1234562000,lovedick,gibso,digital2,space199,b26354,987654123,golive,serious1,pivkoo,better1,824358553,794613258,nata1980,logout,fishpond,buttss,squidly,good4me,redsox19,jhonny,zse45rdx,matrixxx,honey12,ramina,213546879,motzart,fall99,newspape,killit,gimpy,photowiz,olesja,thebus,marco123,147852963,bedbug,147369258,hellbound,gjgjxrf,123987456,lovehurt,five55,hammer01,1234554321a,alina2011,peppino,ang238,questor,112358132,alina1994,alina1998,money77,bobjones,aigerim,cressida,madalena,420smoke,tinchair,raven13,mooser,mauric,lovebu,adidas69,krypton1,1111112,loveline,divin,voshod,michaelm,cocotte,gbkbuhbv,76689295,kellyj,rhonda1,sweetu70,steamforums,geeque,nothere,124c41,quixotic,steam181,1169900,rfcgthcrbq,rfvbkm,sexstuff,1231230,djctvm,rockstar1,fulhamfc,bhecbr,rfntyf,quiksilv,56836803,jedimaster,pangit,gfhjkm777,tocool,1237654,stella12,55378008,19216811,potte,fender12,mortalkombat,ball1,nudegirl,palace22,rattrap,debeers,lickpussy,jimmy6,not4u2c,wert12,bigjuggs,sadomaso,1357924,312mas,laser123,arminia,branford,coastie,mrmojo,19801982,scott11,banaan123,ingres,300zxtt,hooters6,sweeties,19821983,19831985,19833891,sinnfein,welcome4,winner69,killerman,tachyon,tigre1,nymets1,kangol,martinet,sooty1,19921993,789qwe,harsingh,1597535,thecount,phantom3,36985214,lukas123,117711,pakistan1,madmax11,willow01,19932916,fucker12,flhrci,opelagila,theword,ashley24,tigger3,crazyj,rapide,deadfish,allana,31359092,sasha1993,sanders2,discman,zaq!2wsx,boilerma,mickey69,jamesg,babybo,jackson9,orion7,alina2010,indien,breeze1,atease,warspite,bazongaz,1celtic,asguard,mygal,fitzgera,1secret,duke33,cyklone,dipascuc,potapov,1escobar2,c0l0rad0,kki177hk,1little,macondo,victoriya,peter7,red666,winston6,kl?benhavn,muneca,jackme,jennan,happylife,am4h39d8nh,bodybuil,201980,dutchie,biggame,lapo4ka,rauchen,black10,flaquit,water12,31021364,command2,lainth88,mazdamx5,typhon,colin123,rcfhlfc,qwaszx11,g0away,ramir,diesirae,hacked1,cessna1,woodfish,enigma2,pqnr67w5,odgez8j3,grisou,hiheels,5gtgiaxm,2580258,ohotnik,transits,quackers,serjik,makenzie,mdmgatew,bryana,superman12,melly,lokit,thegod,slickone,fun4all,netpass,penhorse,1cooper,nsync,asdasd22,otherside,honeydog,herbie1,chiphi,proghouse,l0nd0n,shagg,select1,frost1996,casper123,countr,magichat,greatzyo,jyothi,3bears,thefly,nikkita,fgjcnjk,nitros,hornys,san123,lightspe,maslova,kimber1,newyork2,spammm,mikejone,pumpk1n,bruiser1,bacons,prelude9,boodie,dragon4,kenneth2,love98,power5,yodude,pumba,thinline,blue30,sexxybj,2dumb2live,matt21,forsale,1carolin,innova,ilikeporn,rbgtkjd,a1s2d3f,wu9942,ruffus,blackboo,qwerty999,draco1,marcelin,hideki,gendalf,trevon,saraha,cartmen,yjhbkmcr,time2go,fanclub,ladder1,chinni,6942987,united99,lindac,quadra,paolit,mainstre,beano002,lincoln7,bellend,anomie,8520456,bangalor,goodstuff,chernov,stepashka,gulla,mike007,frasse,harley03,omnislash,8538622,maryjan,sasha2011,gineok,8807031,hornier,gopinath,princesit,bdr529,godown,bosslady,hakaone,1qwe2,madman1,joshua11,lovegame,bayamon,jedi01,stupid12,sport123,aaa666,tony44,collect1,charliem,chimaira,cx18ka,trrim777,chuckd,thedream,redsox99,goodmorning,delta88,iloveyou11,newlife2,figvam,chicago3,jasonk,12qwer,9875321,lestat1,satcom,conditio,capri50,sayaka,9933162,trunks1,chinga,snooch,alexand1,findus,poekie,cfdbyf,kevind,mike1969,fire13,leftie,bigtuna,chinnu,silence1,celos1,blackdra,alex24,gfgfif,2boobs,happy8,enolagay,sataniv1993,turner1,dylans,peugeo,sasha1994,hoppel,conno,moonshot,santa234,meister1,008800,hanako,tree123,qweras,gfitymrf,reggie31,august29,supert,joshua10,akademia,gbljhfc,zorro123,nathalia,redsox12,hfpdjl,mishmash,nokiae51,nyyankees,tu190022,strongbo,none1,not4u2no,katie2,popart,harlequi,santan,michal1,1therock,screwu,csyekmrf,olemiss1,tyrese,hoople,sunshin1,cucina,starbase,topshelf,fostex,california1,castle1,symantec,pippolo,babare,turntabl,1angela,moo123,ipvteb,gogolf,alex88,cycle1,maxie1,phase2,selhurst,furnitur,samfox,fromvermine,shaq34,gators96,captain2,delonge,tomatoe,bisous,zxcvbnma,glacius,pineapple1,cannelle,ganibal,mko09ijn,paraklast1974,hobbes12,petty43,artema,junior8,mylover,1234567890d,fatal1ty,prostreet,peruan,10020,nadya,caution1,marocas,chanel5,summer08,metal123,111lox,scrapy,thatguy,eddie666,washingto,yannis,minnesota_hp,lucky4,playboy6,naumova,azzurro,patat,dale33,pa55wd,speedster,zemanova,saraht,newto,tony22,qscesz,arkady,1oliver,death6,vkfwx046,antiflag,stangs,jzf7qf2e,brianp,fozzy,cody123,startrek1,yoda123,murciela,trabajo,lvbnhbtdf,canario,fliper,adroit,henry5,goducks,papirus,alskdj,soccer6,88mike,gogetter,tanelorn,donking,marky1,leedsu,badmofo,al1916,wetdog,akmaral,pallet,april24,killer00,nesterova,rugby123,coffee12,browseui,ralliart,paigow,calgary1,armyman,vtldtltd,frodo2,frxtgb,iambigal,benno,jaytee,2hot4you,askar,bigtee,brentwoo,palladin,eddie2,al1916w,horosho,entrada,ilovetits,venture1,dragon19,jayde,chuvak,jamesl,fzr600,brandon8,vjqvbh,snowbal,snatch1,bg6njokf,pudder,karolin,candoo,pfuflrf,satchel1,manteca,khongbiet,critter1,partridg,skyclad,bigdon,ginger69,brave1,anthony4,spinnake,chinadol,passout,cochino,nipples1,15058,lopesk,sixflags,lloo999,parkhead,breakdance,cia123,fidodido,yuitre12,fooey,artem1995,gayathri,medin,nondriversig,l12345,bravo7,happy13,kazuya,camster,alex1998,luckyy,zipcode,dizzle,boating1,opusone,newpassw,movies23,kamikazi,zapato,bart316,cowboys0,corsair1,kingshit,hotdog12,rolyat,h200svrm,qwerty4,boofer,rhtyltkm,chris999,vaz21074,simferopol,pitboss,love3,britania,tanyshka,brause,123qwerty123,abeille,moscow1,ilkaev,manut,process1,inetcfg,dragon05,fortknox,castill,rynner,mrmike,koalas,jeebus,stockpor,longman,juanpabl,caiman,roleplay,jeremi,26058,prodojo,002200,magical1,black5,bvlgari,doogie1,cbhtqa,mahina,a1s2d3f4g5h6,jblpro,usmc01,bismilah,guitar01,april9,santana1,1234aa,monkey14,sorokin,evan1,doohan,animalsex,pfqxtyjr,dimitry,catchme,chello,silverch,glock45,dogleg,litespee,nirvana9,peyton18,alydar,warhamer,iluvme,sig229,minotavr,lobzik,jack23,bushwack,onlin,football123,joshua5,federov,winter2,bigmax,fufnfrhbcnb,hfpldfnhb,1dakota,f56307,chipmonk,4nick8,praline,vbhjh123,king11,22tango,gemini12,street1,77879,doodlebu,homyak,165432,chuluthu,trixi,karlito,salom,reisen,cdtnkzxjr,pookie11,tremendo,shazaam,welcome0,00000ty,peewee51,pizzle,gilead,bydand,sarvar,upskirt,legends1,freeway1,teenfuck,ranger9,darkfire,dfymrf,hunt0802,justme1,buffy1ma,1harry,671fsa75yt,burrfoot,budster,pa437tu,jimmyp,alina2006,malacon,charlize,elway1,free12,summer02,gadina,manara,gomer1,1cassie,sanja,kisulya,money3,pujols,ford50,midiland,turga,orange6,demetriu,freakboy,orosie1,radio123,open12,vfufpby,mustek,chris33,animes,meiling,nthtvjr,jasmine9,gfdkjd,oligarh,marimar,chicago9,.kzirf,bugssgub,samuraix,jackie01,pimpjuic,macdad,cagiva,vernost,willyboy,fynjyjdf,tabby1,privet123,torres9,retype,blueroom,raven11,q12we3,alex1989,bringiton,ridered,kareltje,ow8jtcs8t,ciccia,goniners,countryb,24688642,covingto,24861793,beyblade,vikin,badboyz,wlafiga,walstib,mirand,needajob,chloes,balaton,kbpfdtnf,freyja,bond9007,gabriel12,stormbri,hollage,love4eve,fenomeno,darknite,dragstar,kyle123,milfhunter,ma123123123,samia,ghislain,enrique1,ferien12,xjy6721,natalie2,reglisse,wilson2,wesker,rosebud7,amazon1,robertr,roykeane,xtcnth,mamatata,crazyc,mikie,savanah,blowjob69,jackie2,forty1,1coffee,fhbyjxrf,bubbah,goteam,hackedit,risky1,logoff,h397pnvr,buck13,robert23,bronc,st123st,godflesh,pornog,iamking,cisco69,septiembr,dale38,zhongguo,tibbar,panther9,buffa1,bigjohn1,mypuppy,vehvfycr,april16,shippo,fire1234,green15,q123123,gungadin,steveg,olivier1,chinaski,magnoli,faithy,storm12,toadfrog,paul99,78791,august20,automati,squirtle,cheezy,positano,burbon,nunya,llebpmac,kimmi,turtle2,alan123,prokuror,violin1,durex,pussygal,visionar,trick1,chicken6,29024,plowboy,rfybreks,imbue,sasha13,wagner1,vitalogy,cfymrf,thepro,26028,gorbunov,dvdcom,letmein5,duder,fastfun,pronin,libra1,conner1,harley20,stinker1,20068,20038,amitech,syoung,dugway,18068,welcome7,jimmypag,anastaci,kafka1,pfhfnecnhf,catsss,campus100,shamal,nacho1,fire12,vikings2,brasil1,rangerover,mohamma,peresvet,14058,cocomo,aliona,14038,qwaser,vikes,cbkmdf,skyblue1,ou81234,goodlove,dfkmltvfh,108888,roamer,pinky2,static1,zxcv4321,barmen,rock22,shelby2,morgans,1junior,pasword1,logjam,fifty5,nhfrnjhbcn,chaddy,philli,nemesis2,ingenier,djkrjd,ranger3,aikman8,knothead,daddy69,love007,vsythb,ford350,tiger00,renrut,owen11,energy12,march14,alena123,robert19,carisma,orange22,murphy11,podarok,prozak,kfgeirf,wolf13,lydia1,shazza,parasha,akimov,tobbie,pilote,heather4,baster,leones,gznfxjr,megama,987654321g,bullgod,boxster1,minkey,wombats,vergil,colegiata,lincol,smoothe,pride1,carwash1,latrell,bowling3,fylhtq123,pickwick,eider,bubblebox,bunnies1,loquit,slipper1,nutsac,purina,xtutdfhf,plokiju,1qazxs,uhjpysq,zxcvbasdfg,enjoy1,1pumpkin,phantom7,mama22,swordsma,wonderbr,dogdays,milker,u23456,silvan,dfkthbr,slagelse,yeahman,twothree,boston11,wolf100,dannyg,troll1,fynjy123,ghbcnfd,bftest,ballsdeep,bobbyorr,alphasig,cccdemo,fire123,norwest,claire2,august10,lth1108,problemas,sapito,alex06,1rusty,maccom,goirish1,ohyes,bxdumb,nabila,boobear1,rabbit69,princip,alexsander,travail,chantal1,dogggy,greenpea,diablo69,alex2009,bergen09,petticoa,classe,ceilidh,vlad2011,kamakiri,lucidity,qaz321,chileno,cexfhf,99ranger,mcitra,estoppel,volvos60,carter80,webpass,temp12,touareg,fcgbhby,bubba8,sunitha,200190ru,bitch2,shadow23,iluvit,nicole0,ruben1,nikki69,butttt,shocker1,souschef,lopotok01,kantot,corsano,cfnfyf,riverat,makalu,swapna,all4u9,cdtnkfy,ntktgepbr,ronaldo99,thomasj,bmw540i,chrisw,boomba,open321,z1x2c3v4b5n6m7,gaviota,iceman44,frosya,chris100,chris24,cosette,clearwat,micael,boogyman,pussy9,camus1,chumpy,heccrbq,konoplya,chester8,scooter5,ghjgfufylf,giotto,koolkat,zero000,bonita1,ckflrbq,j1964,mandog,18n28n24a,renob,head1,shergar,ringo123,tanita,sex4free,johnny12,halberd,reddevils,biolog,dillinge,fatb0y,c00per,hyperlit,wallace2,spears1,vitamine,buheirf,sloboda,alkash,mooman,marion1,arsenal7,sunder,nokia5610,edifier,pippone,fyfnjkmtdbx,fujimo,pepsi12,kulikova,bolat,duetto,daimon,maddog01,timoshka,ezmoney,desdemon,chesters,aiden,hugues,patrick5,aikman08,robert4,roenick,nyranger,writer1,36169544,foxmulder,118801,kutter,shashank,jamjar,118811,119955,aspirina,dinkus,1sailor,nalgene,19891959,snarf,allie1,cracky,resipsa,45678912,kemerovo,19841989,netware1,alhimik,19801984,nicole123,19761977,51501984,malaka1,montella,peachfuz,jethro1,cypress1,henkie,holdon,esmith,55443322,1friend,quique,bandicoot,statistika,great123,death13,ucht36,master4,67899876,bobsmith,nikko1,jr1234,hillary1,78978978,rsturbo,lzlzdfcz,bloodlust,shadow00,skagen,bambina,yummies,88887777,91328378,matthew4,itdoes,98256518,102938475,alina2002,123123789,fubared,dannys,123456321,nikifor,suck69,newmexico,scubaman,rhbcnb,fifnfy,puffdadd,159357852,dtheyxbr,theman22,212009164,prohor,shirle,nji90okm,newmedia,goose5,roma1995,letssee,iceman11,aksana,wirenut,pimpdady,1212312121,tamplier,pelican1,domodedovo,1928374655,fiction6,duckpond,ybrecz,thwack,onetwo34,gunsmith,murphydo,fallout1,spectre1,jabberwo,jgjesq,turbo6,bobo12,redryder,blackpus,elena1971,danilova,antoin,bobo1234,bobob,bobbobbo,dean1,222222a,jesusgod,matt23,musical1,darkmage,loppol,werrew,josepha,rebel12,toshka,gadfly,hawkwood,alina12,dnomyar,sexaddict,dangit,cool23,yocrack,archimed,farouk,nhfkzkz,lindalou,111zzzzz,ghjatccjh,wethepeople,m123456789,wowsers,kbkbxrf,bulldog5,m_roesel,sissinit,yamoon6,123ewqasd,dangel,miruvor79,kaytee,falcon7,bandit11,dotnet,dannii,arsenal9,miatamx5,1trouble,strip4me,dogpile,sexyred1,rjdfktdf,google10,shortman,crystal7,awesome123,cowdog,haruka,birthday28,jitter,diabolik,boomer12,dknight,bluewate,hockey123,crm0624,blueboys,willy123,jumpup,google2,cobra777,llabesab,vicelord,hopper1,gerryber,remmah,j10e5d4,qqqqqqw,agusti,fre_ak8yj,nahlik,redrobin,scott3,epson1,dumpy,bundao,aniolek,hola123,jergens,itsasecret,maxsam,bluelight,mountai1,bongwater,1london,pepper14,freeuse,dereks,qweqw,fordgt40,rfhfdfy,raider12,hunnybun,compac,splicer,megamon,tuffgong,gymnast1,butter11,modaddy,wapbbs_1,dandelio,soccer77,ghjnbdjcnjzybt,123xyi2,fishead,x002tp00,whodaman,555aaa,oussama,brunodog,technici,pmtgjnbl,qcxdw8ry,schweden,redsox3,throbber,collecto,japan10,dbm123dm,hellhoun,tech1,deadzone,kahlan,wolf123,dethklok,xzsawq,bigguy1,cybrthc,chandle,buck01,qq123123,secreta,williams1,c32649135,delta12,flash33,123joker,spacejam,polopo,holycrap,daman1,tummybed,financia,nusrat,euroline,magicone,jimkirk,ameritec,daniel26,sevenn,topazz,kingpins,dima1991,macdog,spencer5,oi812,geoffre,music11,baffle,123569,usagi,cassiope,polla,lilcrowe,thecakeisalie,vbhjndjhtw,vthokies,oldmans,sophie01,ghoster,penny2,129834,locutus1,meesha,magik,jerry69,daddysgirl,irondesk,andrey12,jasmine123,vepsrfyn,likesdick,1accord,jetboat,grafix,tomuch,showit,protozoa,mosias98,taburetka,blaze420,esenin,anal69,zhv84kv,puissant,charles0,aishwarya,babylon6,bitter1,lenina,raleigh1,lechat,access01,kamilka,fynjy,sparkplu,daisy3112,choppe,zootsuit,1234567j,rubyrose,gorilla9,nightshade,alternativa,cghfdjxybr,snuggles1,10121v,vova1992,leonardo1,dave2,matthewd,vfhfnbr,1986mets,nobull,bacall,mexican1,juanjo,mafia1,boomer22,soylent,edwards1,jordan10,blackwid,alex86,gemini13,lunar2,dctvcjcfnm,malaki,plugger,eagles11,snafu2,1shelly,cintaku,hannah22,tbird1,maks5843,irish88,homer22,amarok,fktrcfylhjdf,lincoln2,acess,gre69kik,need4speed,hightech,core2duo,blunt1,ublhjgjybrf,dragon33,1autopas,autopas1,wwww1,15935746,daniel20,2500aa,massim,1ggggggg,96ford,hardcor1,cobra5,blackdragon,vovan_lt,orochimaru,hjlbntkb,qwertyuiop12,tallen,paradoks,frozenfish,ghjuhfvvbcn,gerri1,nuggett,camilit,doright,trans1,serena1,catch2,bkmyeh,fireston,afhvfwtdn,purple3,figure8,fuckya,scamp1,laranja,ontheoutside,louis123,yellow7,moonwalk,mercury2,tolkein,raide,amenra,a13579,dranreb,5150vh,harish,tracksta,sexking,ozzmosis,katiee,alomar,matrix19,headroom,jahlove,ringding,apollo8,132546,132613,12345672000,saretta,135798,136666,thomas7,136913,onetwothree,hockey33,calida,nefertit,bitwise,tailhook,boop4,kfgecbr,bujhmbujhm,metal69,thedark,meteoro,felicia1,house12,tinuviel,istina,vaz2105,pimp13,toolfan,nina1,tuesday2,maxmotives,lgkp500,locksley,treech,darling1,kurama,aminka,ramin,redhed,dazzler,jager1,stpiliot,cardman,rfvtym,cheeser,14314314,paramoun,samcat,plumpy,stiffie,vsajyjr,panatha,qqq777,car12345,098poi,asdzx,keegan1,furelise,kalifornia,vbhjckfd,beast123,zcfvfzkexifz,harry5,1birdie,96328i,escola,extra330,henry12,gfhfyjqz,14u2nv,max1234,templar1,1dave,02588520,catrin,pangolin,marhaba,latin1,amorcito,dave22,escape1,advance1,yasuhiro,grepw,meetme,orange01,ernes,erdna,zsergn,nautica1,justinb,soundwav,miasma,greg78,nadine1,sexmad,lovebaby,promo1,excel1,babys,dragonma,camry1,sonnenschein,farooq,wazzkaprivet,magal,katinas,elvis99,redsox24,rooney1,chiefy,peggys,aliev,pilsung,mudhen,dontdoit,dennis12,supercal,energia,ballsout,funone,claudiu,brown2,amoco,dabl1125,philos,gjdtkbntkm,servette,13571113,whizzer,nollie,13467982,upiter,12string,bluejay1,silkie,william4,kosta1,143333,connor12,sustanon,06068,corporat,ssnake,laurita,king10,tahoes,arsenal123,sapato,charless,jeanmarc,levent,algerie,marine21,jettas,winsome,dctvgbplf,1701ab,xxxp455w0rd5,lllllll1,ooooooo1,monalis,koufax32,anastasya,debugger,sarita2,jason69,ufkxjyjr,gjlcnfdf,1jerry,daniel10,balinor,sexkitten,death2,qwertasdfgzxcvb,s9te949f,vegeta1,sysman,maxxam,dimabilan,mooose,ilovetit,june23,illest,doesit,mamou,abby12,longjump,transalp,moderato,littleguy,magritte,dilnoza,hawaiiguy,winbig,nemiroff,kokaine,admira,myemail,dream2,browneyes,destiny7,dragonss,suckme1,asa123,andranik,suckem,fleshbot,dandie,timmys,scitra,timdog,hasbeen,guesss,smellyfe,arachne,deutschl,harley88,birthday27,nobody1,papasmur,home1,jonass,bunia3,epatb1,embalm,vfvekmrf,apacer,12345656,estreet,weihnachtsbaum,mrwhite,admin12,kristie1,kelebek,yoda69,socken,tima123,bayern1,fktrcfylth,tamiya,99strenght,andy01,denis2011,19delta,stokecit,aotearoa,stalker2,nicnac,conrad1,popey,agusta,bowl36,1bigfish,mossyoak,1stunner,getinnow,jessejames,gkfnjy,drako,1nissan,egor123,hotness,1hawaii,zxc123456,cantstop,1peaches,madlen,west1234,jeter1,markis,judit,attack1,artemi,silver69,153246,crazy2,green9,yoshimi,1vette,chief123,jasper2,1sierra,twentyon,drstrang,aspirant,yannic,jenna123,bongtoke,slurpy,1sugar,civic97,rusty21,shineon,james19,anna12345,wonderwoman,1kevin,karol1,kanabis,wert21,fktif6115,evil1,kakaha,54gv768,826248s,tyrone1,1winston,sugar2,falcon01,adelya,mopar440,zasxcd,leecher,kinkysex,mercede1,travka,11234567,rebon,geekboy".split(","),
18242english_wikipedia:"the,of,and,in,was,is,for,as,on,with,by,he,at,from,his,an,were,are,which,doc,https,also,or,has,had,first,one,their,its,after,new,who,they,two,her,she,been,other,when,time,during,there,into,school,more,may,years,over,only,year,most,would,world,city,some,where,between,later,three,state,such,then,national,used,made,known,under,many,university,united,while,part,season,team,these,american,than,film,second,born,south,became,states,war,through,being,including,both,before,north,high,however,people,family,early,history,album,area,them,series,against,until,since,district,county,name,work,life,group,music,following,number,company,several,four,called,played,released,career,league,game,government,house,each,based,day,same,won,use,station,club,international,town,located,population,general,college,east,found,age,march,end,september,began,home,public,church,line,june,river,member,system,place,century,band,july,york,january,october,song,august,best,former,british,party,named,held,village,show,local,november,took,service,december,built,another,major,within,along,members,five,single,due,although,small,old,left,final,large,include,building,served,president,received,games,death,february,main,third,set,children,own,order,species,park,law,air,published,road,died,book,men,women,army,often,according,education,central,country,division,english,top,included,development,french,community,among,water,play,side,list,times,near,late,form,original,different,center,power,led,students,german,moved,court,six,land,council,island,u.s.,record,million,research,art,established,award,street,military,television,given,region,support,western,production,non,political,point,cup,period,business,title,started,various,election,using,england,role,produced,become,program,works,field,total,office,class,written,association,radio,union,level,championship,director,few,force,created,department,founded,services,married,though,per,n't,site,open,act,short,society,version,royal,present,northern,worked,professional,full,returned,joined,story,france,european,currently,language,social,california,india,days,design,st.,further,round,australia,wrote,san,project,control,southern,railway,board,popular,continued,free,battle,considered,video,common,position,living,half,playing,recorded,red,post,described,average,records,special,modern,appeared,announced,areas,rock,release,elected,others,example,term,opened,similar,formed,route,census,current,schools,originally,lake,developed,race,himself,forces,addition,information,upon,province,match,event,songs,result,events,win,eastern,track,lead,teams,science,human,construction,minister,germany,awards,available,throughout,training,style,body,museum,australian,health,seven,signed,chief,eventually,appointed,sea,centre,debut,tour,points,media,light,range,character,across,features,families,largest,indian,network,less,performance,players,refer,europe,sold,festival,usually,taken,despite,designed,committee,process,return,official,episode,institute,stage,followed,performed,japanese,personal,thus,arts,space,low,months,includes,china,study,middle,magazine,leading,japan,groups,aircraft,featured,federal,civil,rights,model,coach,canadian,books,remained,eight,type,independent,completed,capital,academy,instead,kingdom,organization,countries,studies,competition,sports,size,above,section,finished,gold,involved,reported,management,systems,industry,directed,market,fourth,movement,technology,bank,ground,campaign,base,lower,sent,rather,added,provided,coast,grand,historic,valley,conference,bridge,winning,approximately,films,chinese,awarded,degree,russian,shows,native,female,replaced,municipality,square,studio,medical,data,african,successful,mid,bay,attack,previous,operations,spanish,theatre,student,republic,beginning,provide,ship,primary,owned,writing,tournament,culture,introduced,texas,related,natural,parts,governor,reached,ireland,units,senior,decided,italian,whose,higher,africa,standard,income,professor,placed,regional,los,buildings,championships,active,novel,energy,generally,interest,via,economic,previously,stated,itself,channel,below,operation,leader,traditional,trade,structure,limited,runs,prior,regular,famous,saint,navy,foreign,listed,artist,catholic,airport,results,parliament,collection,unit,officer,goal,attended,command,staff,commission,lived,location,plays,commercial,places,foundation,significant,older,medal,self,scored,companies,highway,activities,programs,wide,musical,notable,library,numerous,paris,towards,individual,allowed,plant,property,annual,contract,whom,highest,initially,required,earlier,assembly,artists,rural,seat,practice,defeated,ended,soviet,length,spent,manager,press,associated,author,issues,additional,characters,lord,zealand,policy,engine,township,noted,historical,complete,financial,religious,mission,contains,nine,recent,represented,pennsylvania,administration,opening,secretary,lines,report,executive,youth,closed,theory,writer,italy,angeles,appearance,feature,queen,launched,legal,terms,entered,issue,edition,singer,greek,majority,background,source,anti,cultural,complex,changes,recording,stadium,islands,operated,particularly,basketball,month,uses,port,castle,mostly,names,fort,selected,increased,status,earth,subsequently,pacific,cover,variety,certain,goals,remains,upper,congress,becoming,studied,irish,nature,particular,loss,caused,chart,dr.,forced,create,era,retired,material,review,rate,singles,referred,larger,individuals,shown,provides,products,speed,democratic,poland,parish,olympics,cities,themselves,temple,wing,genus,households,serving,cost,wales,stations,passed,supported,view,cases,forms,actor,male,matches,males,stars,tracks,females,administrative,median,effect,biography,train,engineering,camp,offered,chairman,houses,mainly,19th,surface,therefore,nearly,score,ancient,subject,prime,seasons,claimed,experience,specific,jewish,failed,overall,believed,plot,troops,greater,spain,consists,broadcast,heavy,increase,raised,separate,campus,1980s,appears,presented,lies,composed,recently,influence,fifth,nations,creek,references,elections,britain,double,cast,meaning,earned,carried,producer,latter,housing,brothers,attempt,article,response,border,remaining,nearby,direct,ships,value,workers,politician,academic,label,1970s,commander,rule,fellow,residents,authority,editor,transport,dutch,projects,responsible,covered,territory,flight,races,defense,tower,emperor,albums,facilities,daily,stories,assistant,managed,primarily,quality,function,proposed,distribution,conditions,prize,journal,code,vice,newspaper,corps,highly,constructed,mayor,critical,secondary,corporation,rugby,regiment,ohio,appearances,serve,allow,nation,multiple,discovered,directly,scene,levels,growth,elements,acquired,1990s,officers,physical,20th,latin,host,jersey,graduated,arrived,issued,literature,metal,estate,vote,immediately,quickly,asian,competed,extended,produce,urban,1960s,promoted,contemporary,global,formerly,appear,industrial,types,opera,ministry,soldiers,commonly,mass,formation,smaller,typically,drama,shortly,density,senate,effects,iran,polish,prominent,naval,settlement,divided,basis,republican,languages,distance,treatment,continue,product,mile,sources,footballer,format,clubs,leadership,initial,offers,operating,avenue,officially,columbia,grade,squadron,fleet,percent,farm,leaders,agreement,likely,equipment,website,mount,grew,method,transferred,intended,renamed,iron,asia,reserve,capacity,politics,widely,activity,advanced,relations,scottish,dedicated,crew,founder,episodes,lack,amount,build,efforts,concept,follows,ordered,leaves,positive,economy,entertainment,affairs,memorial,ability,illinois,communities,color,text,railroad,scientific,focus,comedy,serves,exchange,environment,cars,direction,organized,firm,description,agency,analysis,purpose,destroyed,reception,planned,revealed,infantry,architecture,growing,featuring,household,candidate,removed,situated,models,knowledge,solo,technical,organizations,assigned,conducted,participated,largely,purchased,register,gained,combined,headquarters,adopted,potential,protection,scale,approach,spread,independence,mountains,titled,geography,applied,safety,mixed,accepted,continues,captured,rail,defeat,principal,recognized,lieutenant,mentioned,semi,owner,joint,liberal,actress,traffic,creation,basic,notes,unique,supreme,declared,simply,plants,sales,massachusetts,designated,parties,jazz,compared,becomes,resources,titles,concert,learning,remain,teaching,versions,content,alongside,revolution,sons,block,premier,impact,champions,districts,generation,estimated,volume,image,sites,account,roles,sport,quarter,providing,zone,yard,scoring,classes,presence,performances,representatives,hosted,split,taught,origin,olympic,claims,critics,facility,occurred,suffered,municipal,damage,defined,resulted,respectively,expanded,platform,draft,opposition,expected,educational,ontario,climate,reports,atlantic,surrounding,performing,reduced,ranked,allows,birth,nominated,younger,newly,kong,positions,theater,philadelphia,heritage,finals,disease,sixth,laws,reviews,constitution,tradition,swedish,theme,fiction,rome,medicine,trains,resulting,existing,deputy,environmental,labour,classical,develop,fans,granted,receive,alternative,begins,nuclear,fame,buried,connected,identified,palace,falls,letters,combat,sciences,effort,villages,inspired,regions,towns,conservative,chosen,animals,labor,attacks,materials,yards,steel,representative,orchestra,peak,entitled,officials,returning,reference,northwest,imperial,convention,examples,ocean,publication,painting,subsequent,frequently,religion,brigade,fully,sides,acts,cemetery,relatively,oldest,suggested,succeeded,achieved,application,programme,cells,votes,promotion,graduate,armed,supply,flying,communist,figures,literary,netherlands,korea,worldwide,citizens,1950s,faculty,draw,stock,seats,occupied,methods,unknown,articles,claim,holds,authorities,audience,sweden,interview,obtained,covers,settled,transfer,marked,allowing,funding,challenge,southeast,unlike,crown,rise,portion,transportation,sector,phase,properties,edge,tropical,standards,institutions,philosophy,legislative,hills,brand,fund,conflict,unable,founding,refused,attempts,metres,permanent,starring,applications,creating,effective,aired,extensive,employed,enemy,expansion,billboard,rank,battalion,multi,vehicle,fought,alliance,category,perform,federation,poetry,bronze,bands,entry,vehicles,bureau,maximum,billion,trees,intelligence,greatest,screen,refers,commissioned,gallery,injury,confirmed,setting,treaty,adult,americans,broadcasting,supporting,pilot,mobile,writers,programming,existence,squad,minnesota,copies,korean,provincial,sets,defence,offices,agricultural,internal,core,northeast,retirement,factory,actions,prevent,communications,ending,weekly,containing,functions,attempted,interior,weight,bowl,recognition,incorporated,increasing,ultimately,documentary,derived,attacked,lyrics,mexican,external,churches,centuries,metropolitan,selling,opposed,personnel,mill,visited,presidential,roads,pieces,norwegian,controlled,18th,rear,influenced,wrestling,weapons,launch,composer,locations,developing,circuit,specifically,studios,shared,canal,wisconsin,publishing,approved,domestic,consisted,determined,comic,establishment,exhibition,southwest,fuel,electronic,cape,converted,educated,melbourne,hits,wins,producing,norway,slightly,occur,surname,identity,represent,constituency,funds,proved,links,structures,athletic,birds,contest,users,poet,institution,display,receiving,rare,contained,guns,motion,piano,temperature,publications,passenger,contributed,toward,cathedral,inhabitants,architect,exist,athletics,muslim,courses,abandoned,signal,successfully,disambiguation,tennessee,dynasty,heavily,maryland,jews,representing,budget,weather,missouri,introduction,faced,pair,chapel,reform,height,vietnam,occurs,motor,cambridge,lands,focused,sought,patients,shape,invasion,chemical,importance,communication,selection,regarding,homes,voivodeship,maintained,borough,failure,aged,passing,agriculture,oregon,teachers,flow,philippines,trail,seventh,portuguese,resistance,reaching,negative,fashion,scheduled,downtown,universities,trained,skills,scenes,views,notably,typical,incident,candidates,engines,decades,composition,commune,chain,inc.,austria,sale,values,employees,chamber,regarded,winners,registered,task,investment,colonial,swiss,user,entirely,flag,stores,closely,entrance,laid,journalist,coal,equal,causes,turkish,quebec,techniques,promote,junction,easily,dates,kentucky,singapore,residence,violence,advance,survey,humans,expressed,passes,streets,distinguished,qualified,folk,establish,egypt,artillery,visual,improved,actual,finishing,medium,protein,switzerland,productions,operate,poverty,neighborhood,organisation,consisting,consecutive,sections,partnership,extension,reaction,factor,costs,bodies,device,ethnic,racial,flat,objects,chapter,improve,musicians,courts,controversy,membership,merged,wars,expedition,interests,arab,comics,gain,describes,mining,bachelor,crisis,joining,decade,1930s,distributed,habitat,routes,arena,cycle,divisions,briefly,vocals,directors,degrees,object,recordings,installed,adjacent,demand,voted,causing,businesses,ruled,grounds,starred,drawn,opposite,stands,formal,operates,persons,counties,compete,wave,israeli,ncaa,resigned,brief,greece,combination,demographics,historian,contain,commonwealth,musician,collected,argued,louisiana,session,cabinet,parliamentary,electoral,loan,profit,regularly,conservation,islamic,purchase,17th,charts,residential,earliest,designs,paintings,survived,moth,items,goods,grey,anniversary,criticism,images,discovery,observed,underground,progress,additionally,participate,thousands,reduce,elementary,owners,stating,iraq,resolution,capture,tank,rooms,hollywood,finance,queensland,reign,maintain,iowa,landing,broad,outstanding,circle,path,manufacturing,assistance,sequence,gmina,crossing,leads,universal,shaped,kings,attached,medieval,ages,metro,colony,affected,scholars,oklahoma,coastal,soundtrack,painted,attend,definition,meanwhile,purposes,trophy,require,marketing,popularity,cable,mathematics,mississippi,represents,scheme,appeal,distinct,factors,acid,subjects,roughly,terminal,economics,senator,diocese,prix,contrast,argentina,czech,wings,relief,stages,duties,16th,novels,accused,whilst,equivalent,charged,measure,documents,couples,request,danish,defensive,guide,devices,statistics,credited,tries,passengers,allied,frame,puerto,peninsula,concluded,instruments,wounded,differences,associate,forests,afterwards,replace,requirements,aviation,solution,offensive,ownership,inner,legislation,hungarian,contributions,actors,translated,denmark,steam,depending,aspects,assumed,injured,severe,admitted,determine,shore,technique,arrival,measures,translation,debuted,delivered,returns,rejected,separated,visitors,damaged,storage,accompanied,markets,industries,losses,gulf,charter,strategy,corporate,socialist,somewhat,significantly,physics,mounted,satellite,experienced,constant,relative,pattern,restored,belgium,connecticut,partners,harvard,retained,networks,protected,mode,artistic,parallel,collaboration,debate,involving,journey,linked,salt,authors,components,context,occupation,requires,occasionally,policies,tamil,ottoman,revolutionary,hungary,poem,versus,gardens,amongst,audio,makeup,frequency,meters,orthodox,continuing,suggests,legislature,coalition,guitarist,eighth,classification,practices,soil,tokyo,instance,limit,coverage,considerable,ranking,colleges,cavalry,centers,daughters,twin,equipped,broadway,narrow,hosts,rates,domain,boundary,arranged,12th,whereas,brazilian,forming,rating,strategic,competitions,trading,covering,baltimore,commissioner,infrastructure,origins,replacement,praised,disc,collections,expression,ukraine,driven,edited,austrian,solar,ensure,premiered,successor,wooden,operational,hispanic,concerns,rapid,prisoners,childhood,meets,influential,tunnel,employment,tribe,qualifying,adapted,temporary,celebrated,appearing,increasingly,depression,adults,cinema,entering,laboratory,script,flows,romania,accounts,fictional,pittsburgh,achieve,monastery,franchise,formally,tools,newspapers,revival,sponsored,processes,vienna,springs,missions,classified,13th,annually,branches,lakes,gender,manner,advertising,normally,maintenance,adding,characteristics,integrated,decline,modified,strongly,critic,victims,malaysia,arkansas,nazi,restoration,powered,monument,hundreds,depth,15th,controversial,admiral,criticized,brick,honorary,initiative,output,visiting,birmingham,progressive,existed,carbon,1920s,credits,colour,rising,hence,defeating,superior,filmed,listing,column,surrounded,orleans,principles,territories,struck,participation,indonesia,movements,index,commerce,conduct,constitutional,spiritual,ambassador,vocal,completion,edinburgh,residing,tourism,finland,bears,medals,resident,themes,visible,indigenous,involvement,basin,electrical,ukrainian,concerts,boats,styles,processing,rival,drawing,vessels,experimental,declined,touring,supporters,compilation,coaching,cited,dated,roots,string,explained,transit,traditionally,poems,minimum,representation,14th,releases,effectively,architectural,triple,indicated,greatly,elevation,clinical,printed,10th,proposal,peaked,producers,romanized,rapidly,stream,innings,meetings,counter,householder,honour,lasted,agencies,document,exists,surviving,experiences,honors,landscape,hurricane,harbor,panel,competing,profile,vessel,farmers,lists,revenue,exception,customers,11th,participants,wildlife,utah,bible,gradually,preserved,replacing,symphony,begun,longest,siege,provinces,mechanical,genre,transmission,agents,executed,videos,benefits,funded,rated,instrumental,ninth,similarly,dominated,destruction,passage,technologies,thereafter,outer,facing,affiliated,opportunities,instrument,governments,scholar,evolution,channels,shares,sessions,widespread,occasions,engineers,scientists,signing,battery,competitive,alleged,eliminated,supplies,judges,hampshire,regime,portrayed,penalty,taiwan,denied,submarine,scholarship,substantial,transition,victorian,http,nevertheless,filed,supports,continental,tribes,ratio,doubles,useful,honours,blocks,principle,retail,departure,ranks,patrol,yorkshire,vancouver,inter,extent,afghanistan,strip,railways,component,organ,symbol,categories,encouraged,abroad,civilian,periods,traveled,writes,struggle,immediate,recommended,adaptation,egyptian,graduating,assault,drums,nomination,historically,voting,allies,detailed,achievement,percentage,arabic,assist,frequent,toured,apply,and/or,intersection,maine,touchdown,throne,produces,contribution,emerged,obtain,archbishop,seek,researchers,remainder,populations,clan,finnish,overseas,fifa,licensed,chemistry,festivals,mediterranean,injuries,animated,seeking,publisher,volumes,limits,venue,jerusalem,generated,trials,islam,youngest,ruling,glasgow,germans,songwriter,persian,municipalities,donated,viewed,belgian,cooperation,posted,tech,dual,volunteer,settlers,commanded,claiming,approval,delhi,usage,terminus,partly,electricity,locally,editions,premiere,absence,belief,traditions,statue,indicate,manor,stable,attributed,possession,managing,viewers,chile,overview,seed,regulations,essential,minority,cargo,segment,endemic,forum,deaths,monthly,playoffs,erected,practical,machines,suburb,relation,mrs.,descent,indoor,continuous,characterized,solutions,caribbean,rebuilt,serbian,summary,contested,psychology,pitch,attending,muhammad,tenure,drivers,diameter,assets,venture,punk,airlines,concentration,athletes,volunteers,pages,mines,influences,sculpture,protest,ferry,behalf,drafted,apparent,furthermore,ranging,romanian,democracy,lanka,significance,linear,d.c.,certified,voters,recovered,tours,demolished,boundaries,assisted,identify,grades,elsewhere,mechanism,1940s,reportedly,aimed,conversion,suspended,photography,departments,beijing,locomotives,publicly,dispute,magazines,resort,conventional,platforms,internationally,capita,settlements,dramatic,derby,establishing,involves,statistical,implementation,immigrants,exposed,diverse,layer,vast,ceased,connections,belonged,interstate,uefa,organised,abuse,deployed,cattle,partially,filming,mainstream,reduction,automatic,rarely,subsidiary,decides,merger,comprehensive,displayed,amendment,guinea,exclusively,manhattan,concerning,commons,radical,serbia,baptist,buses,initiated,portrait,harbour,choir,citizen,sole,unsuccessful,manufactured,enforcement,connecting,increases,patterns,sacred,muslims,clothing,hindu,unincorporated,sentenced,advisory,tanks,campaigns,fled,repeated,remote,rebellion,implemented,texts,fitted,tribute,writings,sufficient,ministers,21st,devoted,jurisdiction,coaches,interpretation,pole,businessman,peru,sporting,prices,cuba,relocated,opponent,arrangement,elite,manufacturer,responded,suitable,distinction,calendar,dominant,tourist,earning,prefecture,ties,preparation,anglo,pursue,worship,archaeological,chancellor,bangladesh,scores,traded,lowest,horror,outdoor,biology,commented,specialized,loop,arriving,farming,housed,historians,'the,patent,pupils,christianity,opponents,athens,northwestern,maps,promoting,reveals,flights,exclusive,lions,norfolk,hebrew,extensively,eldest,shops,acquisition,virtual,renowned,margin,ongoing,essentially,iranian,alternate,sailed,reporting,conclusion,originated,temperatures,exposure,secured,landed,rifle,framework,identical,martial,focuses,topics,ballet,fighters,belonging,wealthy,negotiations,evolved,bases,oriented,acres,democrat,heights,restricted,vary,graduation,aftermath,chess,illness,participating,vertical,collective,immigration,demonstrated,leaf,completing,organic,missile,leeds,eligible,grammar,confederate,improvement,congressional,wealth,cincinnati,spaces,indicates,corresponding,reaches,repair,isolated,taxes,congregation,ratings,leagues,diplomatic,submitted,winds,awareness,photographs,maritime,nigeria,accessible,animation,restaurants,philippine,inaugural,dismissed,armenian,illustrated,reservoir,speakers,programmes,resource,genetic,interviews,camps,regulation,computers,preferred,travelled,comparison,distinctive,recreation,requested,southeastern,dependent,brisbane,breeding,playoff,expand,bonus,gauge,departed,qualification,inspiration,shipping,slaves,variations,shield,theories,munich,recognised,emphasis,favour,variable,seeds,undergraduate,territorial,intellectual,qualify,mini,banned,pointed,democrats,assessment,judicial,examination,attempting,objective,partial,characteristic,hardware,pradesh,execution,ottawa,metre,drum,exhibitions,withdrew,attendance,phrase,journalism,logo,measured,error,christians,trio,protestant,theology,respective,atmosphere,buddhist,substitute,curriculum,fundamental,outbreak,rabbi,intermediate,designation,globe,liberation,simultaneously,diseases,experiments,locomotive,difficulties,mainland,nepal,relegated,contributing,database,developments,veteran,carries,ranges,instruction,lodge,protests,obama,newcastle,experiment,physician,describing,challenges,corruption,delaware,adventures,ensemble,succession,renaissance,tenth,altitude,receives,approached,crosses,syria,croatia,warsaw,professionals,improvements,worn,airline,compound,permitted,preservation,reducing,printing,scientist,activist,comprises,sized,societies,enters,ruler,gospel,earthquake,extend,autonomous,croatian,serial,decorated,relevant,ideal,grows,grass,tier,towers,wider,welfare,columns,alumni,descendants,interface,reserves,banking,colonies,manufacturers,magnetic,closure,pitched,vocalist,preserve,enrolled,cancelled,equation,2000s,nickname,bulgaria,heroes,exile,mathematical,demands,input,structural,tube,stem,approaches,argentine,axis,manuscript,inherited,depicted,targets,visits,veterans,regard,removal,efficiency,organisations,concepts,lebanon,manga,petersburg,rally,supplied,amounts,yale,tournaments,broadcasts,signals,pilots,azerbaijan,architects,enzyme,literacy,declaration,placing,batting,incumbent,bulgarian,consistent,poll,defended,landmark,southwestern,raid,resignation,travels,casualties,prestigious,namely,aims,recipient,warfare,readers,collapse,coached,controls,volleyball,coup,lesser,verse,pairs,exhibited,proteins,molecular,abilities,integration,consist,aspect,advocate,administered,governing,hospitals,commenced,coins,lords,variation,resumed,canton,artificial,elevated,palm,difficulty,civic,efficient,northeastern,inducted,radiation,affiliate,boards,stakes,byzantine,consumption,freight,interaction,oblast,numbered,seminary,contracts,extinct,predecessor,bearing,cultures,functional,neighboring,revised,cylinder,grants,narrative,reforms,athlete,tales,reflect,presidency,compositions,specialist,cricketer,founders,sequel,widow,disbanded,associations,backed,thereby,pitcher,commanding,boulevard,singers,crops,militia,reviewed,centres,waves,consequently,fortress,tributary,portions,bombing,excellence,nest,payment,mars,plaza,unity,victories,scotia,farms,nominations,variant,attacking,suspension,installation,graphics,estates,comments,acoustic,destination,venues,surrender,retreat,libraries,quarterback,customs,berkeley,collaborated,gathered,syndrome,dialogue,recruited,shanghai,neighbouring,psychological,saudi,moderate,exhibit,innovation,depot,binding,brunswick,situations,certificate,actively,shakespeare,editorial,presentation,ports,relay,nationalist,methodist,archives,experts,maintains,collegiate,bishops,maintaining,temporarily,embassy,essex,wellington,connects,reformed,bengal,recalled,inches,doctrine,deemed,legendary,reconstruction,statements,palestinian,meter,achievements,riders,interchange,spots,auto,accurate,chorus,dissolved,missionary,thai,operators,e.g.,generations,failing,delayed,cork,nashville,perceived,venezuela,cult,emerging,tomb,abolished,documented,gaining,canyon,episcopal,stored,assists,compiled,kerala,kilometers,mosque,grammy,theorem,unions,segments,glacier,arrives,theatrical,circulation,conferences,chapters,displays,circular,authored,conductor,fewer,dimensional,nationwide,liga,yugoslavia,peer,vietnamese,fellowship,armies,regardless,relating,dynamic,politicians,mixture,serie,somerset,imprisoned,posts,beliefs,beta,layout,independently,electronics,provisions,fastest,logic,headquartered,creates,challenged,beaten,appeals,plains,protocol,graphic,accommodate,iraqi,midfielder,span,commentary,freestyle,reflected,palestine,lighting,burial,virtually,backing,prague,tribal,heir,identification,prototype,criteria,dame,arch,tissue,footage,extending,procedures,predominantly,updated,rhythm,preliminary,cafe,disorder,prevented,suburbs,discontinued,retiring,oral,followers,extends,massacre,journalists,conquest,larvae,pronounced,behaviour,diversity,sustained,addressed,geographic,restrictions,voiced,milwaukee,dialect,quoted,grid,nationally,nearest,roster,twentieth,separation,indies,manages,citing,intervention,guidance,severely,migration,artwork,focusing,rivals,trustees,varied,enabled,committees,centered,skating,slavery,cardinals,forcing,tasks,auckland,youtube,argues,colored,advisor,mumbai,requiring,theological,registration,refugees,nineteenth,survivors,runners,colleagues,priests,contribute,variants,workshop,concentrated,creator,lectures,temples,exploration,requirement,interactive,navigation,companion,perth,allegedly,releasing,citizenship,observation,stationed,ph.d.,sheep,breed,discovers,encourage,kilometres,journals,performers,isle,saskatchewan,hybrid,hotels,lancashire,dubbed,airfield,anchor,suburban,theoretical,sussex,anglican,stockholm,permanently,upcoming,privately,receiver,optical,highways,congo,colours,aggregate,authorized,repeatedly,varies,fluid,innovative,transformed,praise,convoy,demanded,discography,attraction,export,audiences,ordained,enlisted,occasional,westminster,syrian,heavyweight,bosnia,consultant,eventual,improving,aires,wickets,epic,reactions,scandal,i.e.,discrimination,buenos,patron,investors,conjunction,testament,construct,encountered,celebrity,expanding,georgian,brands,retain,underwent,algorithm,foods,provision,orbit,transformation,associates,tactical,compact,varieties,stability,refuge,gathering,moreover,manila,configuration,gameplay,discipline,entity,comprising,composers,skill,monitoring,ruins,museums,sustainable,aerial,altered,codes,voyage,friedrich,conflicts,storyline,travelling,conducting,merit,indicating,referendum,currency,encounter,particles,automobile,workshops,acclaimed,inhabited,doctorate,cuban,phenomenon,dome,enrollment,tobacco,governance,trend,equally,manufacture,hydrogen,grande,compensation,download,pianist,grain,shifted,neutral,evaluation,define,cycling,seized,array,relatives,motors,firms,varying,automatically,restore,nicknamed,findings,governed,investigate,manitoba,administrator,vital,integral,indonesian,confusion,publishers,enable,geographical,inland,naming,civilians,reconnaissance,indianapolis,lecturer,deer,tourists,exterior,rhode,bassist,symbols,scope,ammunition,yuan,poets,punjab,nursing,cent,developers,estimates,presbyterian,nasa,holdings,generate,renewed,computing,cyprus,arabia,duration,compounds,gastropod,permit,valid,touchdowns,facade,interactions,mineral,practiced,allegations,consequence,goalkeeper,baronet,copyright,uprising,carved,targeted,competitors,mentions,sanctuary,fees,pursued,tampa,chronicle,capabilities,specified,specimens,toll,accounting,limestone,staged,upgraded,philosophical,streams,guild,revolt,rainfall,supporter,princeton,terrain,hometown,probability,assembled,paulo,surrey,voltage,developer,destroyer,floors,lineup,curve,prevention,potentially,onwards,trips,imposed,hosting,striking,strict,admission,apartments,solely,utility,proceeded,observations,euro,incidents,vinyl,profession,haven,distant,expelled,rivalry,runway,torpedo,zones,shrine,dimensions,investigations,lithuania,idaho,pursuit,copenhagen,considerably,locality,wireless,decrease,genes,thermal,deposits,hindi,habitats,withdrawn,biblical,monuments,casting,plateau,thesis,managers,flooding,assassination,acknowledged,interim,inscription,guided,pastor,finale,insects,transported,activists,marshal,intensity,airing,cardiff,proposals,lifestyle,prey,herald,capitol,aboriginal,measuring,lasting,interpreted,occurring,desired,drawings,healthcare,panels,elimination,oslo,ghana,blog,sabha,intent,superintendent,governors,bankruptcy,p.m.,equity,disk,layers,slovenia,prussia,quartet,mechanics,graduates,politically,monks,screenplay,nato,absorbed,topped,petition,bold,morocco,exhibits,canterbury,publish,rankings,crater,dominican,enhanced,planes,lutheran,governmental,joins,collecting,brussels,unified,streak,strategies,flagship,surfaces,oval,archive,etymology,imprisonment,instructor,noting,remix,opposing,servant,rotation,width,trans,maker,synthesis,excess,tactics,snail,ltd.,lighthouse,sequences,cornwall,plantation,mythology,performs,foundations,populated,horizontal,speedway,activated,performer,diving,conceived,edmonton,subtropical,environments,prompted,semifinals,caps,bulk,treasury,recreational,telegraph,continent,portraits,relegation,catholics,graph,velocity,rulers,endangered,secular,observer,learns,inquiry,idol,dictionary,certification,estimate,cluster,armenia,observatory,revived,nadu,consumers,hypothesis,manuscripts,contents,arguments,editing,trails,arctic,essays,belfast,acquire,promotional,undertaken,corridor,proceedings,antarctic,millennium,labels,delegates,vegetation,acclaim,directing,substance,outcome,diploma,philosopher,malta,albanian,vicinity,degc,legends,regiments,consent,terrorist,scattered,presidents,gravity,orientation,deployment,duchy,refuses,estonia,crowned,separately,renovation,rises,wilderness,objectives,agreements,empress,slopes,inclusion,equality,decree,ballot,criticised,rochester,recurring,struggled,disabled,henri,poles,prussian,convert,bacteria,poorly,sudan,geological,wyoming,consistently,minimal,withdrawal,interviewed,proximity,repairs,initiatives,pakistani,republicans,propaganda,viii,abstract,commercially,availability,mechanisms,naples,discussions,underlying,lens,proclaimed,advised,spelling,auxiliary,attract,lithuanian,editors,o'brien,accordance,measurement,novelist,ussr,formats,councils,contestants,indie,facebook,parishes,barrier,battalions,sponsor,consulting,terrorism,implement,uganda,crucial,unclear,notion,distinguish,collector,attractions,filipino,ecology,investments,capability,renovated,iceland,albania,accredited,scouts,armor,sculptor,cognitive,errors,gaming,condemned,successive,consolidated,baroque,entries,regulatory,reserved,treasurer,variables,arose,technological,rounded,provider,rhine,agrees,accuracy,genera,decreased,frankfurt,ecuador,edges,particle,rendered,calculated,careers,faction,rifles,americas,gaelic,portsmouth,resides,merchants,fiscal,premises,coin,draws,presenter,acceptance,ceremonies,pollution,consensus,membrane,brigadier,nonetheless,genres,supervision,predicted,magnitude,finite,differ,ancestry,vale,delegation,removing,proceeds,placement,emigrated,siblings,molecules,payments,considers,demonstration,proportion,newer,valve,achieving,confederation,continuously,luxury,notre,introducing,coordinates,charitable,squadrons,disorders,geometry,winnipeg,ulster,loans,longtime,receptor,preceding,belgrade,mandate,wrestler,neighbourhood,factories,buddhism,imported,sectors,protagonist,steep,elaborate,prohibited,artifacts,prizes,pupil,cooperative,sovereign,subspecies,carriers,allmusic,nationals,settings,autobiography,neighborhoods,analog,facilitate,voluntary,jointly,newfoundland,organizing,raids,exercises,nobel,machinery,baltic,crop,granite,dense,websites,mandatory,seeks,surrendered,anthology,comedian,bombs,slot,synopsis,critically,arcade,marking,equations,halls,indo,inaugurated,embarked,speeds,clause,invention,premiership,likewise,presenting,demonstrate,designers,organize,examined,km/h,bavaria,troop,referee,detection,zurich,prairie,rapper,wingspan,eurovision,luxembourg,slovakia,inception,disputed,mammals,entrepreneur,makers,evangelical,yield,clergy,trademark,defunct,allocated,depicting,volcanic,batted,conquered,sculptures,providers,reflects,armoured,locals,walt,herzegovina,contracted,entities,sponsorship,prominence,flowing,ethiopia,marketed,corporations,withdraw,carnegie,induced,investigated,portfolio,flowering,opinions,viewing,classroom,donations,bounded,perception,leicester,fruits,charleston,academics,statute,complaints,smallest,deceased,petroleum,resolved,commanders,algebra,southampton,modes,cultivation,transmitter,spelled,obtaining,sizes,acre,pageant,bats,abbreviated,correspondence,barracks,feast,tackles,raja,derives,geology,disputes,translations,counted,constantinople,seating,macedonia,preventing,accommodation,homeland,explored,invaded,provisional,transform,sphere,unsuccessfully,missionaries,conservatives,highlights,traces,organisms,openly,dancers,fossils,absent,monarchy,combining,lanes,stint,dynamics,chains,missiles,screening,module,tribune,generating,miners,nottingham,seoul,unofficial,owing,linking,rehabilitation,citation,louisville,mollusk,depicts,differential,zimbabwe,kosovo,recommendations,responses,pottery,scorer,aided,exceptions,dialects,telecommunications,defines,elderly,lunar,coupled,flown,25th,espn,formula_1,bordered,fragments,guidelines,gymnasium,valued,complexity,papal,presumably,maternal,challenging,reunited,advancing,comprised,uncertain,favorable,twelfth,correspondent,nobility,livestock,expressway,chilean,tide,researcher,emissions,profits,lengths,accompanying,witnessed,itunes,drainage,slope,reinforced,feminist,sanskrit,develops,physicians,outlets,isbn,coordinator,averaged,termed,occupy,diagnosed,yearly,humanitarian,prospect,spacecraft,stems,enacted,linux,ancestors,karnataka,constitute,immigrant,thriller,ecclesiastical,generals,celebrations,enhance,heating,advocated,evident,advances,bombardment,watershed,shuttle,wicket,twitter,adds,branded,teaches,schemes,pension,advocacy,conservatory,cairo,varsity,freshwater,providence,seemingly,shells,cuisine,specially,peaks,intensive,publishes,trilogy,skilled,nacional,unemployment,destinations,parameters,verses,trafficking,determination,infinite,savings,alignment,linguistic,countryside,dissolution,measurements,advantages,licence,subfamily,highlands,modest,regent,algeria,crest,teachings,knockout,brewery,combine,conventions,descended,chassis,primitive,fiji,explicitly,cumberland,uruguay,laboratories,bypass,elect,informal,preceded,holocaust,tackle,minneapolis,quantity,securities,console,doctoral,religions,commissioners,expertise,unveiled,precise,diplomat,standings,infant,disciplines,sicily,endorsed,systematic,charted,armored,mild,lateral,townships,hurling,prolific,invested,wartime,compatible,galleries,moist,battlefield,decoration,convent,tubes,terrestrial,nominee,requests,delegate,leased,dubai,polar,applying,addresses,munster,sings,commercials,teamed,dances,eleventh,midland,cedar,flee,sandstone,snails,inspection,divide,asset,themed,comparable,paramount,dairy,archaeology,intact,institutes,rectangular,instances,phases,reflecting,substantially,applies,vacant,lacked,copa,coloured,encounters,sponsors,encoded,possess,revenues,ucla,chaired,a.m.,enabling,playwright,stoke,sociology,tibetan,frames,motto,financing,illustrations,gibraltar,chateau,bolivia,transmitted,enclosed,persuaded,urged,folded,suffolk,regulated,bros.,submarines,myth,oriental,malaysian,effectiveness,narrowly,acute,sunk,replied,utilized,tasmania,consortium,quantities,gains,parkway,enlarged,sided,employers,adequate,accordingly,assumption,ballad,mascot,distances,peaking,saxony,projected,affiliation,limitations,metals,guatemala,scots,theaters,kindergarten,verb,employer,differs,discharge,controller,seasonal,marching,guru,campuses,avoided,vatican,maori,excessive,chartered,modifications,caves,monetary,sacramento,mixing,institutional,celebrities,irrigation,shapes,broadcaster,anthem,attributes,demolition,offshore,specification,surveys,yugoslav,contributor,auditorium,lebanese,capturing,airports,classrooms,chennai,paths,tendency,determining,lacking,upgrade,sailors,detected,kingdoms,sovereignty,freely,decorative,momentum,scholarly,georges,gandhi,speculation,transactions,undertook,interact,similarities,cove,teammate,constituted,painters,tends,madagascar,partnerships,afghan,personalities,attained,rebounds,masses,synagogue,reopened,asylum,embedded,imaging,catalogue,defenders,taxonomy,fiber,afterward,appealed,communists,lisbon,rica,judaism,adviser,batsman,ecological,commands,lgbt,cooling,accessed,wards,shiva,employs,thirds,scenic,worcester,tallest,contestant,humanities,economist,textile,constituencies,motorway,tram,percussion,cloth,leisure,1880s,baden,flags,resemble,riots,coined,sitcom,composite,implies,daytime,tanzania,penalties,optional,competitor,excluded,steering,reversed,autonomy,reviewer,breakthrough,professionally,damages,pomeranian,deputies,valleys,ventures,highlighted,electorate,mapping,shortened,executives,tertiary,specimen,launching,bibliography,sank,pursuing,binary,descendant,marched,natives,ideology,turks,adolf,archdiocese,tribunal,exceptional,nigerian,preference,fails,loading,comeback,vacuum,favored,alter,remnants,consecrated,spectators,trends,patriarch,feedback,paved,sentences,councillor,astronomy,advocates,broader,commentator,commissions,identifying,revealing,theatres,incomplete,enables,constituent,reformation,tract,haiti,atmospheric,screened,explosive,czechoslovakia,acids,symbolic,subdivision,liberals,incorporate,challenger,erie,filmmaker,laps,kazakhstan,organizational,evolutionary,chemicals,dedication,riverside,fauna,moths,maharashtra,annexed,gen.,resembles,underwater,garnered,timeline,remake,suited,educator,hectares,automotive,feared,latvia,finalist,narrator,portable,airways,plaque,designing,villagers,licensing,flank,statues,struggles,deutsche,migrated,cellular,jacksonville,wimbledon,defining,highlight,preparatory,planets,cologne,employ,frequencies,detachment,readily,libya,resign,halt,helicopters,reef,landmarks,collaborative,irregular,retaining,helsinki,folklore,weakened,viscount,interred,professors,memorable,mega,repertoire,rowing,dorsal,albeit,progressed,operative,coronation,liner,telugu,domains,philharmonic,detect,bengali,synthetic,tensions,atlas,dramatically,paralympics,xbox,shire,kiev,lengthy,sued,notorious,seas,screenwriter,transfers,aquatic,pioneers,unesco,radius,abundant,tunnels,syndicated,inventor,accreditation,janeiro,exeter,ceremonial,omaha,cadet,predators,resided,prose,slavic,precision,abbot,deity,engaging,cambodia,estonian,compliance,demonstrations,protesters,reactor,commodore,successes,chronicles,mare,extant,listings,minerals,tonnes,parody,cultivated,traders,pioneering,supplement,slovak,preparations,collision,partnered,vocational,atoms,malayalam,welcomed,documentation,curved,functioning,presently,formations,incorporates,nazis,botanical,nucleus,ethical,greeks,metric,automated,whereby,stance,europeans,duet,disability,purchasing,email,telescope,displaced,sodium,comparative,processor,inning,precipitation,aesthetic,import,coordination,feud,alternatively,mobility,tibet,regained,succeeding,hierarchy,apostolic,catalog,reproduction,inscriptions,vicar,clusters,posthumously,rican,loosely,additions,photographic,nowadays,selective,derivative,keyboards,guides,collectively,affecting,combines,operas,networking,decisive,terminated,continuity,finishes,ancestor,consul,heated,simulation,leipzig,incorporating,georgetown,formula_2,circa,forestry,portrayal,councillors,advancement,complained,forewings,confined,transaction,definitions,reduces,televised,1890s,rapids,phenomena,belarus,alps,landscapes,quarterly,specifications,commemorate,continuation,isolation,antenna,downstream,patents,ensuing,tended,saga,lifelong,columnist,labeled,gymnastics,papua,anticipated,demise,encompasses,madras,antarctica,interval,icon,rams,midlands,ingredients,priory,strengthen,rouge,explicit,gaza,aging,securing,anthropology,listeners,adaptations,underway,vista,malay,fortified,lightweight,violations,concerto,financed,jesuit,observers,trustee,descriptions,nordic,resistant,opted,accepts,prohibition,andhra,inflation,negro,wholly,imagery,spur,instructed,gloucester,cycles,middlesex,destroyers,statewide,evacuated,hyderabad,peasants,mice,shipyard,coordinate,pitching,colombian,exploring,numbering,compression,countess,hiatus,exceed,raced,archipelago,traits,soils,o'connor,vowel,android,facto,angola,amino,holders,logistics,circuits,emergence,kuwait,partition,emeritus,outcomes,submission,promotes,barack,negotiated,loaned,stripped,50th,excavations,treatments,fierce,participant,exports,decommissioned,cameo,remarked,residences,fuselage,mound,undergo,quarry,node,midwest,specializing,occupies,etc.,showcase,molecule,offs,modules,salon,exposition,revision,peers,positioned,hunters,competes,algorithms,reside,zagreb,calcium,uranium,silicon,airs,counterpart,outlet,collectors,sufficiently,canberra,inmates,anatomy,ensuring,curves,aviv,firearms,basque,volcano,thrust,sheikh,extensions,installations,aluminum,darker,sacked,emphasized,aligned,asserted,pseudonym,spanning,decorations,eighteenth,orbital,spatial,subdivided,notation,decay,macedonian,amended,declining,cyclist,feat,unusually,commuter,birthplace,latitude,activation,overhead,30th,finalists,whites,encyclopedia,tenor,qatar,survives,complement,concentrations,uncommon,astronomical,bangalore,pius,genome,memoir,recruit,prosecutor,modification,paired,container,basilica,arlington,displacement,germanic,mongolia,proportional,debates,matched,calcutta,rows,tehran,aerospace,prevalent,arise,lowland,24th,spokesman,supervised,advertisements,clash,tunes,revelation,wanderers,quarterfinals,fisheries,steadily,memoirs,pastoral,renewable,confluence,acquiring,strips,slogan,upstream,scouting,analyst,practitioners,turbine,strengthened,heavier,prehistoric,plural,excluding,isles,persecution,turin,rotating,villain,hemisphere,unaware,arabs,corpus,relied,singular,unanimous,schooling,passive,angles,dominance,instituted,aria,outskirts,balanced,beginnings,financially,structured,parachute,viewer,attitudes,subjected,escapes,derbyshire,erosion,addressing,styled,declaring,originating,colts,adjusted,stained,occurrence,fortifications,baghdad,nitrogen,localities,yemen,galway,debris,lodz,victorious,pharmaceutical,substances,unnamed,dwelling,atop,developmental,activism,voter,refugee,forested,relates,overlooking,genocide,kannada,insufficient,oversaw,partisan,dioxide,recipients,factions,mortality,capped,expeditions,receptors,reorganized,prominently,atom,flooded,flute,orchestral,scripts,mathematician,airplay,detached,rebuilding,dwarf,brotherhood,salvation,expressions,arabian,cameroon,poetic,recruiting,bundesliga,inserted,scrapped,disabilities,evacuation,pasha,undefeated,crafts,rituals,aluminium,norm,pools,submerged,occupying,pathway,exams,prosperity,wrestlers,promotions,basal,permits,nationalism,trim,merge,gazette,tributaries,transcription,caste,porto,emerge,modeled,adjoining,counterparts,paraguay,redevelopment,renewal,unreleased,equilibrium,similarity,minorities,soviets,comprise,nodes,tasked,unrelated,expired,johan,precursor,examinations,electrons,socialism,exiled,admiralty,floods,wigan,nonprofit,lacks,brigades,screens,repaired,hanover,fascist,labs,osaka,delays,judged,statutory,colt,col.,offspring,solving,bred,assisting,retains,somalia,grouped,corresponds,tunisia,chaplain,eminent,chord,22nd,spans,viral,innovations,possessions,mikhail,kolkata,icelandic,implications,introduces,racism,workforce,alto,compulsory,admits,censorship,onset,reluctant,inferior,iconic,progression,liability,turnout,satellites,behavioral,coordinated,exploitation,posterior,averaging,fringe,krakow,mountainous,greenwich,para,plantations,reinforcements,offerings,famed,intervals,constraints,individually,nutrition,1870s,taxation,threshold,tomatoes,fungi,contractor,ethiopian,apprentice,diabetes,wool,gujarat,honduras,norse,bucharest,23rd,arguably,accompany,prone,teammates,perennial,vacancy,polytechnic,deficit,okinawa,functionality,reminiscent,tolerance,transferring,myanmar,concludes,neighbours,hydraulic,economically,slower,plots,charities,synod,investor,catholicism,identifies,bronx,interpretations,adverse,judiciary,hereditary,nominal,sensor,symmetry,cubic,triangular,tenants,divisional,outreach,representations,passages,undergoing,cartridge,testified,exceeded,impacts,limiting,railroads,defeats,regain,rendering,humid,retreated,reliability,governorate,antwerp,infamous,implied,packaging,lahore,trades,billed,extinction,ecole,rejoined,recognizes,projection,qualifications,stripes,forts,socially,lexington,accurately,sexuality,westward,wikipedia,pilgrimage,abolition,choral,stuttgart,nests,expressing,strikeouts,assessed,monasteries,reconstructed,humorous,marxist,fertile,consort,urdu,patronage,peruvian,devised,lyric,baba,nassau,communism,extraction,popularly,markings,inability,litigation,accounted,processed,emirates,tempo,cadets,eponymous,contests,broadly,oxide,courtyard,frigate,directory,apex,outline,regency,chiefly,patrols,secretariat,cliffs,residency,privy,armament,australians,dorset,geometric,genetics,scholarships,fundraising,flats,demographic,multimedia,captained,documentaries,updates,canvas,blockade,guerrilla,songwriting,administrators,intake,drought,implementing,fraction,cannes,refusal,inscribed,meditation,announcing,exported,ballots,formula_3,curator,basel,arches,flour,subordinate,confrontation,gravel,simplified,berkshire,patriotic,tuition,employing,servers,castile,posting,combinations,discharged,miniature,mutations,constellation,incarnation,ideals,necessity,granting,ancestral,crowds,pioneered,mormon,methodology,rama,indirect,complexes,bavarian,patrons,uttar,skeleton,bollywood,flemish,viable,bloc,breeds,triggered,sustainability,tailed,referenced,comply,takeover,latvian,homestead,platoon,communal,nationality,excavated,targeting,sundays,posed,physicist,turret,endowment,marginal,dispatched,commentators,renovations,attachment,collaborations,ridges,barriers,obligations,shareholders,prof.,defenses,presided,rite,backgrounds,arbitrary,affordable,gloucestershire,thirteenth,inlet,miniseries,possesses,detained,pressures,subscription,realism,solidarity,proto,postgraduate,noun,burmese,abundance,homage,reasoning,anterior,robust,fencing,shifting,vowels,garde,profitable,loch,anchored,coastline,samoa,terminology,prostitution,magistrate,venezuelan,speculated,regulate,fixture,colonists,digit,induction,manned,expeditionary,computational,centennial,principally,vein,preserving,engineered,numerical,cancellation,conferred,continually,borne,seeded,advertisement,unanimously,treaties,infections,ions,sensors,lowered,amphibious,lava,fourteenth,bahrain,niagara,nicaragua,squares,congregations,26th,periodic,proprietary,1860s,contributors,seller,overs,emission,procession,presumed,illustrator,zinc,gases,tens,applicable,stretches,reproductive,sixteenth,apparatus,accomplishments,canoe,guam,oppose,recruitment,accumulated,limerick,namibia,staging,remixes,ordnance,uncertainty,pedestrian,temperate,treason,deposited,registry,cerambycidae,attracting,lankan,reprinted,shipbuilding,homosexuality,neurons,eliminating,1900s,resume,ministries,beneficial,blackpool,surplus,northampton,licenses,constructing,announcer,standardized,alternatives,taipei,inadequate,failures,yields,medalist,titular,obsolete,torah,burlington,predecessors,lublin,retailers,castles,depiction,issuing,gubernatorial,propulsion,tiles,damascus,discs,alternating,pomerania,peasant,tavern,redesignated,27th,illustration,focal,mans,codex,specialists,productivity,antiquity,controversies,promoter,pits,companions,behaviors,lyrical,prestige,creativity,swansea,dramas,approximate,feudal,tissues,crude,campaigned,unprecedented,chancel,amendments,surroundings,allegiance,exchanges,align,firmly,optimal,commenting,reigning,landings,obscure,1850s,contemporaries,paternal,devi,endurance,communes,incorporation,denominations,exchanged,routing,resorts,amnesty,slender,explores,suppression,heats,pronunciation,centred,coupe,stirling,freelance,treatise,linguistics,laos,informs,discovering,pillars,encourages,halted,robots,definitive,maturity,tuberculosis,venetian,silesian,unchanged,originates,mali,lincolnshire,quotes,seniors,premise,contingent,distribute,danube,gorge,logging,dams,curling,seventeenth,specializes,wetlands,deities,assess,thickness,rigid,culminated,utilities,substrate,insignia,nile,assam,shri,currents,suffrage,canadians,mortar,asteroid,bosnian,discoveries,enzymes,sanctioned,replica,hymn,investigators,tidal,dominate,derivatives,converting,leinster,verbs,honoured,criticisms,dismissal,discrete,masculine,reorganization,unlimited,wurttemberg,sacks,allocation,bahn,jurisdictions,participates,lagoon,famine,communion,culminating,surveyed,shortage,cables,intersects,cassette,foremost,adopting,solicitor,outright,bihar,reissued,farmland,dissertation,turnpike,baton,photographed,christchurch,kyoto,finances,rails,histories,linebacker,kilkenny,accelerated,dispersed,handicap,absorption,rancho,ceramic,captivity,cites,font,weighed,mater,utilize,bravery,extract,validity,slovenian,seminars,discourse,ranged,duel,ironically,warships,sega,temporal,surpassed,prolonged,recruits,northumberland,greenland,contributes,patented,eligibility,unification,discusses,reply,translates,beirut,relies,torque,northward,reviewers,monastic,accession,neural,tramway,heirs,sikh,subscribers,amenities,taliban,audit,rotterdam,wagons,kurdish,favoured,combustion,meanings,persia,browser,diagnostic,niger,formula_4,denomination,dividing,parameter,branding,badminton,leningrad,sparked,hurricanes,beetles,propeller,mozambique,refined,diagram,exhaust,vacated,readings,markers,reconciliation,determines,concurrent,imprint,primera,organism,demonstrating,filmmakers,vanderbilt,affiliates,traction,evaluated,defendants,megachile,investigative,zambia,assassinated,rewarded,probable,staffordshire,foreigners,directorate,nominees,consolidation,commandant,reddish,differing,unrest,drilling,bohemia,resembling,instrumentation,considerations,haute,promptly,variously,dwellings,clans,tablet,enforced,cockpit,semifinal,hussein,prisons,ceylon,emblem,monumental,phrases,correspond,crossover,outlined,characterised,acceleration,caucus,crusade,protested,composing,rajasthan,habsburg,rhythmic,interception,inherent,cooled,ponds,spokesperson,gradual,consultation,kuala,globally,suppressed,builders,avengers,suffix,integer,enforce,fibers,unionist,proclamation,uncovered,infrared,adapt,eisenhower,utilizing,captains,stretched,observing,assumes,prevents,analyses,saxophone,caucasus,notices,villains,dartmouth,mongol,hostilities,stretching,veterinary,lenses,texture,prompting,overthrow,excavation,islanders,masovian,battleship,biographer,replay,degradation,departing,luftwaffe,fleeing,oversight,immigrated,serbs,fishermen,strengthening,respiratory,italians,denotes,radial,escorted,motif,wiltshire,expresses,accessories,reverted,establishments,inequality,protocols,charting,famously,satirical,entirety,trench,friction,atletico,sampling,subset,weekday,upheld,sharply,correlation,incorrect,mughal,travelers,hasan,earnings,offset,evaluate,specialised,recognizing,flexibility,nagar,postseason,algebraic,capitalism,crystals,melodies,polynomial,racecourse,defences,austro,wembley,attracts,anarchist,resurrection,reviewing,decreasing,prefix,ratified,mutation,displaying,separating,restoring,assemblies,ordinance,priesthood,cruisers,appoint,moldova,imports,directive,epidemic,militant,senegal,signaling,restriction,critique,retrospective,nationalists,undertake,sioux,canals,algerian,redesigned,philanthropist,depict,conceptual,turbines,intellectuals,eastward,applicants,contractors,vendors,undergone,namesake,ensured,tones,substituted,hindwings,arrests,tombs,transitional,principality,reelection,taiwanese,cavity,manifesto,broadcasters,spawned,thoroughbred,identities,generators,proposes,hydroelectric,johannesburg,cortex,scandinavian,killings,aggression,boycott,catalyst,physiology,fifteenth,waterfront,chromosome,organist,costly,calculation,cemeteries,flourished,recognise,juniors,merging,disciples,ashore,workplace,enlightenment,diminished,debated,hailed,podium,educate,mandated,distributor,litre,electromagnetic,flotilla,estuary,peterborough,staircase,selections,melodic,confronts,wholesale,integrate,intercepted,catalonia,unite,immense,palatinate,switches,earthquakes,occupational,successors,praising,concluding,faculties,firstly,overhaul,empirical,metacritic,inauguration,evergreen,laden,winged,philosophers,amalgamated,geoff,centimeters,napoleonic,upright,planting,brewing,fined,sensory,migrants,wherein,inactive,headmaster,warwickshire,siberia,terminals,denounced,academia,divinity,bilateral,clive,omitted,peerage,relics,apartheid,syndicate,fearing,fixtures,desirable,dismantled,ethnicity,valves,biodiversity,aquarium,ideological,visibility,creators,analyzed,tenant,balkan,postwar,supplier,smithsonian,risen,morphology,digits,bohemian,wilmington,vishnu,demonstrates,aforementioned,biographical,mapped,khorasan,phosphate,presentations,ecosystem,processors,calculations,mosaic,clashes,penned,recalls,coding,angular,lattice,macau,accountability,extracted,pollen,therapeutic,overlap,violinist,deposed,candidacy,infants,covenant,bacterial,restructuring,dungeons,ordination,conducts,builds,invasive,customary,concurrently,relocation,cello,statutes,borneo,entrepreneurs,sanctions,packet,rockefeller,piedmont,comparisons,waterfall,receptions,glacial,surge,signatures,alterations,advertised,enduring,somali,botanist,100th,canonical,motifs,longitude,circulated,alloy,indirectly,margins,preserves,internally,besieged,shale,peripheral,drained,baseman,reassigned,tobago,soloist,socio,grazing,contexts,roofs,portraying,ottomans,shrewsbury,noteworthy,lamps,supplying,beams,qualifier,portray,greenhouse,stronghold,hitter,rites,cretaceous,urging,derive,nautical,aiming,fortunes,verde,donors,reliance,exceeding,exclusion,exercised,simultaneous,continents,guiding,pillar,gradient,poznan,eruption,clinics,moroccan,indicator,trams,piers,parallels,fragment,teatro,potassium,satire,compressed,businessmen,influx,seine,perspectives,shelters,decreases,mounting,formula_5,confederacy,equestrian,expulsion,mayors,liberia,resisted,affinity,shrub,unexpectedly,stimulus,amtrak,deported,perpendicular,statesman,wharf,storylines,romanesque,weights,surfaced,interceptions,dhaka,crambidae,orchestras,rwanda,conclude,constitutes,subsidiaries,admissions,prospective,shear,bilingual,campaigning,presiding,domination,commemorative,trailing,confiscated,petrol,acquisitions,polymer,onlyinclude,chloride,elevations,resolutions,hurdles,pledged,likelihood,objected,erect,encoding,databases,aristotle,hindus,marshes,bowled,ministerial,grange,acronym,annexation,squads,ambient,pilgrims,botany,sofla,astronomer,planetary,descending,bestowed,ceramics,diplomacy,metabolism,colonization,potomac,africans,engraved,recycling,commitments,resonance,disciplinary,jamaican,narrated,spectral,tipperary,waterford,stationary,arbitration,transparency,threatens,crossroads,slalom,oversee,centenary,incidence,economies,livery,moisture,newsletter,autobiographical,bhutan,propelled,dependence,moderately,adobe,barrels,subdivisions,outlook,labelled,stratford,arising,diaspora,barony,automobiles,ornamental,slated,norms,primetime,generalized,analysts,vectors,libyan,yielded,certificates,rooted,vernacular,belarusian,marketplace,prediction,fairfax,malawi,viruses,wooded,demos,mauritius,prosperous,coincided,liberties,huddersfield,ascent,warnings,hinduism,glucose,pulitzer,unused,filters,illegitimate,acquitted,protestants,canopy,staple,psychedelic,winding,abbas,pathways,cheltenham,lagos,niche,invaders,proponents,barred,conversely,doncaster,recession,embraced,rematch,concession,emigration,upgrades,bowls,tablets,remixed,loops,kensington,shootout,monarchs,organizers,harmful,punjabi,broadband,exempt,neolithic,profiles,portrays,parma,cyrillic,quasi,attested,regimental,revive,torpedoes,heidelberg,rhythms,spherical,denote,hymns,icons,theologian,qaeda,exceptionally,reinstated,comune,playhouse,lobbying,grossing,viceroy,delivers,visually,armistice,utrecht,syllable,vertices,analogous,annex,refurbished,entrants,knighted,disciple,rhetoric,detailing,inactivated,ballads,algae,intensified,favourable,sanitation,receivers,pornography,commemorated,cannons,entrusted,manifold,photographers,pueblo,textiles,steamer,myths,marquess,onward,liturgical,romney,uzbekistan,consistency,denoted,hertfordshire,convex,hearings,sulfur,universidad,podcast,selecting,emperors,arises,justices,1840s,mongolian,exploited,termination,digitally,infectious,sedan,symmetric,penal,illustrate,formulation,attribute,problematic,modular,inverse,berth,searches,rutgers,leicestershire,enthusiasts,lockheed,upwards,transverse,accolades,backward,archaeologists,crusaders,nuremberg,defects,ferries,vogue,containers,openings,transporting,separates,lumpur,purchases,attain,wichita,topology,woodlands,deleted,periodically,syntax,overturned,musicals,corp.,strasbourg,instability,nationale,prevailing,cache,marathi,versailles,unmarried,grains,straits,antagonist,segregation,assistants,d'etat,contention,dictatorship,unpopular,motorcycles,criterion,analytical,salzburg,militants,hanged,worcestershire,emphasize,paralympic,erupted,convinces,offences,oxidation,nouns,populace,atari,spanned,hazardous,educators,playable,births,baha'i,preseason,generates,invites,meteorological,handbook,foothills,enclosure,diffusion,mirza,convergence,geelong,coefficient,connector,formula_6,cylindrical,disasters,pleaded,knoxville,contamination,compose,libertarian,arrondissement,franciscan,intercontinental,susceptible,initiation,malaria,unbeaten,consonants,waived,saloon,popularized,estadio,pseudo,interdisciplinary,transports,transformers,carriages,bombings,revolves,ceded,collaborator,celestial,exemption,colchester,maltese,oceanic,ligue,crete,shareholder,routed,depictions,ridden,advisors,calculate,lending,guangzhou,simplicity,newscast,scheduling,snout,eliot,undertaking,armenians,nottinghamshire,whitish,consulted,deficiency,salle,cinemas,superseded,rigorous,kerman,convened,landowners,modernization,evenings,pitches,conditional,scandinavia,differed,formulated,cyclists,swami,guyana,dunes,electrified,appalachian,abdomen,scenarios,prototypes,sindh,consonant,adaptive,boroughs,wolverhampton,modelling,cylinders,amounted,minimize,ambassadors,lenin,settler,coincide,approximation,grouping,murals,bullying,registers,rumours,engagements,energetic,vertex,annals,bordering,geologic,yellowish,runoff,converts,allegheny,facilitated,saturdays,colliery,monitored,rainforest,interfaces,geographically,impaired,prevalence,joachim,paperback,slowed,shankar,distinguishing,seminal,categorized,authorised,auspices,bandwidth,asserts,rebranded,balkans,supplemented,seldom,weaving,capsule,apostles,populous,monmouth,payload,symphonic,densely,shoreline,managerial,masonry,antioch,averages,textbooks,royalist,coliseum,tandem,brewers,diocesan,posthumous,walled,incorrectly,distributions,ensued,reasonably,graffiti,propagation,automation,harmonic,augmented,middleweight,limbs,elongated,landfall,comparatively,literal,grossed,koppen,wavelength,1830s,cerebral,boasts,congestion,physiological,practitioner,coasts,cartoonist,undisclosed,frontal,launches,burgundy,qualifiers,imposing,stade,flanked,assyrian,raided,multiplayer,montane,chesapeake,pathology,drains,vineyards,intercollegiate,semiconductor,grassland,convey,citations,predominant,rejects,benefited,yahoo,graphs,busiest,encompassing,hamlets,explorers,suppress,minors,graphical,calculus,sediment,intends,diverted,mainline,unopposed,cottages,initiate,alumnus,towed,autism,forums,darlington,modernist,oxfordshire,lectured,capitalist,suppliers,panchayat,actresses,foundry,southbound,commodity,wesleyan,divides,palestinians,luton,caretaker,nobleman,mutiny,organizer,preferences,nomenclature,splits,unwilling,offenders,timor,relying,halftime,semitic,arithmetic,milestone,jesuits,arctiidae,retrieved,consuming,contender,edged,plagued,inclusive,transforming,khmer,federally,insurgents,distributing,amherst,rendition,prosecutors,viaduct,disqualified,kabul,liturgy,prevailed,reelected,instructors,swimmers,aperture,churchyard,interventions,totals,darts,metropolis,fuels,fluent,northbound,correctional,inflicted,barrister,realms,culturally,aristocratic,collaborating,emphasizes,choreographer,inputs,ensembles,humboldt,practised,endowed,strains,infringement,archaeologist,congregational,magna,relativity,efficiently,proliferation,mixtape,abruptly,regeneration,commissioning,yukon,archaic,reluctantly,retailer,northamptonshire,universally,crossings,boilers,nickelodeon,revue,abbreviation,retaliation,scripture,routinely,medicinal,benedictine,kenyan,retention,deteriorated,glaciers,apprenticeship,coupling,researched,topography,entrances,anaheim,pivotal,compensate,arched,modify,reinforce,dusseldorf,journeys,motorsport,conceded,sumatra,spaniards,quantitative,loire,cinematography,discarded,botswana,morale,engined,zionist,philanthropy,sainte,fatalities,cypriot,motorsports,indicators,pricing,institut,bethlehem,implicated,gravitational,differentiation,rotor,thriving,precedent,ambiguous,concessions,forecast,conserved,fremantle,asphalt,landslide,middlesbrough,formula_7,humidity,overseeing,chronological,diaries,multinational,crimean,turnover,improvised,youths,declares,tasmanian,canadiens,fumble,refinery,weekdays,unconstitutional,upward,guardians,brownish,imminent,hamas,endorsement,naturalist,martyrs,caledonia,chords,yeshiva,reptiles,severity,mitsubishi,fairs,installment,substitution,repertory,keyboardist,interpreter,silesia,noticeable,rhineland,transmit,inconsistent,booklet,academies,epithet,pertaining,progressively,aquatics,scrutiny,prefect,toxicity,rugged,consume,o'donnell,evolve,uniquely,cabaret,mediated,landowner,transgender,palazzo,compilations,albuquerque,induce,sinai,remastered,efficacy,underside,analogue,specify,possessing,advocating,compatibility,liberated,greenville,mecklenburg,header,memorials,sewage,rhodesia,1800s,salaries,atoll,coordinating,partisans,repealed,amidst,subjective,optimization,nectar,evolving,exploits,madhya,styling,accumulation,raion,postage,responds,buccaneers,frontman,brunei,choreography,coated,kinetic,sampled,inflammatory,complementary,eclectic,norte,vijay,a.k.a,mainz,casualty,connectivity,laureate,franchises,yiddish,reputed,unpublished,economical,periodicals,vertically,bicycles,brethren,capacities,unitary,archeological,tehsil,domesday,wehrmacht,justification,angered,mysore,fielded,abuses,nutrients,ambitions,taluk,battleships,symbolism,superiority,neglect,attendees,commentaries,collaborators,predictions,yorker,breeders,investing,libretto,informally,coefficients,memorandum,pounder,collingwood,tightly,envisioned,arbor,mistakenly,captures,nesting,conflicting,enhancing,streetcar,manufactures,buckinghamshire,rewards,commemorating,stony,expenditure,tornadoes,semantic,relocate,weimar,iberian,sighted,intending,ensign,beverages,expectation,differentiate,centro,utilizes,saxophonist,catchment,transylvania,ecosystems,shortest,sediments,socialists,ineffective,kapoor,formidable,heroine,guantanamo,prepares,scattering,pamphlet,verified,elector,barons,totaling,shrubs,pyrenees,amalgamation,mutually,longitudinal,comte,negatively,masonic,envoy,sexes,akbar,mythical,tonga,bishopric,assessments,malaya,warns,interiors,reefs,reflections,neutrality,musically,nomadic,waterways,provence,collaborate,scaled,adulthood,emerges,euros,optics,incentives,overland,periodical,liege,awarding,realization,slang,affirmed,schooner,hokkaido,czechoslovak,protectorate,undrafted,disagreed,commencement,electors,spruce,swindon,fueled,equatorial,inventions,suites,slovene,backdrop,adjunct,energies,remnant,inhabit,alliances,simulcast,reactors,mosques,travellers,outfielder,plumage,migratory,benin,experimented,fibre,projecting,drafting,laude,evidenced,northernmost,indicted,directional,replication,croydon,comedies,jailed,organizes,devotees,reservoirs,turrets,originate,economists,songwriters,junta,trenches,mounds,proportions,comedic,apostle,azerbaijani,farmhouse,resembled,disrupted,playback,mixes,diagonal,relevance,govern,programmer,gdansk,maize,soundtracks,tendencies,mastered,impacted,believers,kilometre,intervene,chairperson,aerodrome,sails,subsidies,ensures,aesthetics,congresses,ratios,sardinia,southernmost,functioned,controllers,downward,randomly,distortion,regents,palatine,disruption,spirituality,vidhan,tracts,compiler,ventilation,anchorage,symposium,assert,pistols,excelled,avenues,convoys,moniker,constructions,proponent,phased,spines,organising,schleswig,policing,campeonato,mined,hourly,croix,lucrative,authenticity,haitian,stimulation,burkina,espionage,midfield,manually,staffed,awakening,metabolic,biographies,entrepreneurship,conspicuous,guangdong,preface,subgroup,mythological,adjutant,feminism,vilnius,oversees,honourable,tripoli,stylized,kinase,societe,notoriety,altitudes,configurations,outward,transmissions,announces,auditor,ethanol,clube,nanjing,mecca,haifa,blogs,postmaster,paramilitary,depart,positioning,potent,recognizable,spire,brackets,remembrance,overlapping,turkic,articulated,scientology,operatic,deploy,readiness,biotechnology,restrict,cinematographer,inverted,synonymous,administratively,westphalia,commodities,replaces,downloads,centralized,munitions,preached,sichuan,fashionable,implementations,matrices,hiv/aids,loyalist,luzon,celebrates,hazards,heiress,mercenaries,synonym,creole,ljubljana,technician,auditioned,technicians,viewpoint,wetland,mongols,princely,sharif,coating,dynasties,southward,doubling,formula_8,mayoral,harvesting,conjecture,goaltender,oceania,spokane,welterweight,bracket,gatherings,weighted,newscasts,mussolini,affiliations,disadvantage,vibrant,spheres,sultanate,distributors,disliked,establishes,marches,drastically,yielding,jewellery,yokohama,vascular,airlift,canons,subcommittee,repression,strengths,graded,outspoken,fused,pembroke,filmography,redundant,fatigue,repeal,threads,reissue,pennant,edible,vapor,corrections,stimuli,commemoration,dictator,anand,secession,amassed,orchards,pontifical,experimentation,greeted,bangor,forwards,decomposition,quran,trolley,chesterfield,traverse,sermons,burials,skier,climbs,consultants,petitioned,reproduce,parted,illuminated,kurdistan,reigned,occupants,packaged,geometridae,woven,regulating,protagonists,crafted,affluent,clergyman,consoles,migrant,supremacy,attackers,caliph,defect,convection,rallies,huron,resin,segunda,quota,warship,overseen,criticizing,shrines,glamorgan,lowering,beaux,hampered,invasions,conductors,collects,bluegrass,surrounds,substrates,perpetual,chronology,pulmonary,executions,crimea,compiling,noctuidae,battled,tumors,minsk,novgorod,serviced,yeast,computation,swamps,theodor,baronetcy,salford,uruguayan,shortages,odisha,siberian,novelty,cinematic,invitational,decks,dowager,oppression,bandits,appellate,state-of-the-art,clade,palaces,signalling,galaxies,industrialist,tensor,learnt,incurred,magistrates,binds,orbits,ciudad,willingness,peninsular,basins,biomedical,shafts,marlborough,bournemouth,withstand,fitzroy,dunedin,variance,steamship,integrating,muscular,fines,akron,bulbophyllum,malmo,disclosed,cornerstone,runways,medicines,twenty20,gettysburg,progresses,frigates,bodied,transformations,transforms,helens,modelled,versatile,regulator,pursuits,legitimacy,amplifier,scriptures,voyages,examines,presenters,octagonal,poultry,formula_9,anatolia,computed,migrate,directorial,hybrids,localized,preferring,guggenheim,persisted,grassroots,inflammation,fishery,otago,vigorous,professions,instructional,inexpensive,insurgency,legislators,sequels,surnames,agrarian,stainless,nairobi,minas,forerunner,aristocracy,transitions,sicilian,showcased,doses,hiroshima,summarized,gearbox,emancipation,limitation,nuclei,seismic,abandonment,dominating,appropriations,occupations,electrification,hilly,contracting,exaggerated,entertainer,kazan,oricon,cartridges,characterization,parcel,maharaja,exceeds,aspiring,obituary,flattened,contrasted,narration,replies,oblique,outpost,fronts,arranger,talmud,keynes,doctrines,endured,confesses,fortification,supervisors,kilometer,academie,jammu,bathurst,piracy,prostitutes,navarre,cumulative,cruises,lifeboat,twinned,radicals,interacting,expenditures,wexford,libre,futsal,curated,clockwise,colloquially,procurement,immaculate,lyricist,enhancement,porcelain,alzheimer,highlighting,judah,disagreements,storytelling,sheltered,wroclaw,vaudeville,contrasts,neoclassical,compares,contrasting,deciduous,francaise,descriptive,cyclic,reactive,antiquities,meiji,repeats,creditors,forcibly,newmarket,picturesque,impending,uneven,bison,raceway,solvent,ecumenical,optic,professorship,harvested,waterway,banjo,pharaoh,geologist,scanning,dissent,recycled,unmanned,retreating,gospels,aqueduct,branched,tallinn,groundbreaking,syllables,hangar,designations,procedural,craters,cabins,encryption,anthropologist,montevideo,outgoing,inverness,chattanooga,fascism,calais,chapels,groundwater,downfall,misleading,robotic,tortricidae,pixel,handel,prohibit,crewe,renaming,reprised,kickoff,leftist,spaced,integers,causeway,pines,authorship,organise,ptolemy,accessibility,virtues,lesions,iroquois,qur'an,atheist,synthesized,biennial,confederates,dietary,skaters,stresses,tariff,koreans,intercity,republics,quintet,baroness,naive,amplitude,insistence,tbilisi,residues,grammatical,diversified,egyptians,accompaniment,vibration,repository,mandal,topological,distinctions,coherent,invariant,batters,nuevo,internationals,implements,follower,bahia,widened,independents,cantonese,totaled,guadalajara,wolverines,befriended,muzzle,surveying,hungarians,medici,deportation,rayon,approx,recounts,attends,clerical,hellenic,furnished,alleging,soluble,systemic,gallantry,bolshevik,intervened,hostel,gunpowder,specialising,stimulate,leiden,removes,thematic,floral,bafta,printers,conglomerate,eroded,analytic,successively,lehigh,thessaloniki,kilda,clauses,ascended,nehru,scripted,tokugawa,competence,diplomats,exclude,consecration,freedoms,assaults,revisions,blacksmith,textual,sparse,concacaf,slain,uploaded,enraged,whaling,guise,stadiums,debuting,dormitory,cardiovascular,yunnan,dioceses,consultancy,notions,lordship,archdeacon,collided,medial,airfields,garment,wrestled,adriatic,reversal,refueling,verification,jakob,horseshoe,intricate,veracruz,sarawak,syndication,synthesizer,anthologies,stature,feasibility,guillaume,narratives,publicized,antrim,intermittent,constituents,grimsby,filmmaking,doping,unlawful,nominally,transmitting,documenting,seater,internationale,ejected,steamboat,alsace,boise,ineligible,geared,vassal,mustered,ville,inline,pairing,eurasian,kyrgyzstan,barnsley,reprise,stereotypes,rushes,conform,firefighters,deportivo,revolutionaries,rabbis,concurrency,charters,sustaining,aspirations,algiers,chichester,falkland,morphological,systematically,volcanoes,designate,artworks,reclaimed,jurist,anglia,resurrected,chaotic,feasible,circulating,simulated,environmentally,confinement,adventist,harrisburg,laborers,ostensibly,universiade,pensions,influenza,bratislava,octave,refurbishment,gothenburg,putin,barangay,annapolis,breaststroke,illustrates,distorted,choreographed,promo,emphasizing,stakeholders,descends,exhibiting,intrinsic,invertebrates,evenly,roundabout,salts,formula_10,strata,inhibition,branching,stylistic,rumored,realises,mitochondrial,commuted,adherents,logos,bloomberg,telenovela,guineas,charcoal,engages,winery,reflective,siena,cambridgeshire,ventral,flashback,installing,engraving,grasses,traveller,rotated,proprietor,nationalities,precedence,sourced,trainers,cambodian,reductions,depleted,saharan,classifications,biochemistry,plaintiffs,arboretum,humanist,fictitious,aleppo,climates,bazaar,his/her,homogeneous,multiplication,moines,indexed,linguist,skeletal,foliage,societal,differentiated,informing,mammal,infancy,archival,cafes,malls,graeme,musee,schizophrenia,fargo,pronouns,derivation,descend,ascending,terminating,deviation,recaptured,confessions,weakening,tajikistan,bahadur,pasture,b/hip,donegal,supervising,sikhs,thinkers,euclidean,reinforcement,friars,portage,fuscous,lucknow,synchronized,assertion,choirs,privatization,corrosion,multitude,skyscraper,royalties,ligament,usable,spores,directs,clashed,stockport,fronted,dependency,contiguous,biologist,backstroke,powerhouse,frescoes,phylogenetic,welding,kildare,gabon,conveyed,augsburg,severn,continuum,sahib,lille,injuring,passeriformesfamily,succeeds,translating,unitarian,startup,turbulent,outlying,philanthropic,stanislaw,idols,claremont,conical,haryana,armagh,blended,implicit,conditioned,modulation,rochdale,labourers,coinage,shortstop,potsdam,gears,obesity,bestseller,advisers,bouts,comedians,jozef,lausanne,taxonomic,correlated,columbian,marne,indications,psychologists,libel,edict,beaufort,disadvantages,renal,finalized,racehorse,unconventional,disturbances,falsely,zoology,adorned,redesign,executing,narrower,commended,appliances,stalls,resurgence,saskatoon,miscellaneous,permitting,epoch,formula_11,cumbria,forefront,vedic,eastenders,disposed,supermarkets,rower,inhibitor,magnesium,colourful,yusuf,harrow,formulas,centrally,balancing,ionic,nocturnal,consolidate,ornate,raiding,charismatic,accelerate,nominate,residual,dhabi,commemorates,attribution,uninhabited,mindanao,atrocities,genealogical,romani,applicant,enactment,abstraction,trough,pulpit,minuscule,misconduct,grenades,timely,supplements,messaging,curvature,ceasefire,telangana,susquehanna,braking,redistribution,shreveport,neighbourhoods,gregorian,widowed,khuzestan,empowerment,scholastic,evangelist,peptide,topical,theorist,historia,thence,sudanese,museo,jurisprudence,masurian,frankish,headlined,recounted,netball,petitions,tolerant,hectare,truncated,southend,methane,captives,reigns,massif,subunit,acidic,weightlifting,footballers,sabah,britannia,tunisian,segregated,sawmill,withdrawing,unpaid,weaponry,somme,perceptions,unicode,alcoholism,durban,wrought,waterfalls,jihad,auschwitz,upland,eastbound,adjective,anhalt,evaluating,regimes,guildford,reproduced,pamphlets,hierarchical,maneuvers,hanoi,fabricated,repetition,enriched,arterial,replacements,tides,globalization,adequately,westbound,satisfactory,fleets,phosphorus,lastly,neuroscience,anchors,xinjiang,membranes,improvisation,shipments,orthodoxy,submissions,bolivian,mahmud,ramps,leyte,pastures,outlines,flees,transmitters,fares,sequential,stimulated,novice,alternately,symmetrical,breakaway,layered,baronets,lizards,blackish,edouard,horsepower,penang,principals,mercantile,maldives,overwhelmingly,hawke,rallied,prostate,conscription,juveniles,maccabi,carvings,strikers,sudbury,spurred,improves,lombardy,macquarie,parisian,elastic,distillery,shetland,humane,brentford,wrexham,warehouses,routines,encompassed,introductory,isfahan,instituto,palais,revolutions,sporadic,impoverished,portico,fellowships,speculative,enroll,dormant,adhere,fundamentally,sculpted,meritorious,template,upgrading,reformer,rectory,uncredited,indicative,creeks,galveston,radically,hezbollah,firearm,educating,prohibits,trondheim,locus,refit,headwaters,screenings,lowlands,wasps,coarse,attaining,sedimentary,perished,pitchfork,interned,cerro,stagecoach,aeronautical,liter,transitioned,haydn,inaccurate,legislatures,bromwich,knesset,spectroscopy,butte,asiatic,degraded,concordia,catastrophic,lobes,wellness,pensacola,periphery,hapoel,theta,horizontally,freiburg,liberalism,pleas,durable,warmian,offenses,mesopotamia,shandong,unsuitable,hospitalized,appropriately,phonetic,encompass,conversions,observes,illnesses,breakout,assigns,crowns,inhibitors,nightly,manifestation,fountains,maximize,alphabetical,sloop,expands,newtown,widening,gaddafi,commencing,camouflage,footprint,tyrol,barangays,universite,highlanders,budgets,query,lobbied,westchester,equator,stipulated,pointe,distinguishes,allotted,embankment,advises,storing,loyalists,fourier,rehearsals,starvation,gland,rihanna,tubular,expressive,baccalaureate,intersections,revered,carbonate,eritrea,craftsmen,cosmopolitan,sequencing,corridors,shortlisted,bangladeshi,persians,mimic,parades,repetitive,recommends,flanks,promoters,incompatible,teaming,ammonia,greyhound,solos,improper,legislator,newsweek,recurrent,vitro,cavendish,eireann,crises,prophets,mandir,strategically,guerrillas,formula_12,ghent,contenders,equivalence,drone,sociological,hamid,castes,statehood,aland,clinched,relaunched,tariffs,simulations,williamsburg,rotate,mediation,smallpox,harmonica,lodges,lavish,restrictive,o'sullivan,detainees,polynomials,echoes,intersecting,learners,elects,charlemagne,defiance,epsom,liszt,facilitating,absorbing,revelations,padua,pieter,pious,penultimate,mammalian,montenegrin,supplementary,widows,aromatic,croats,roanoke,trieste,legions,subdistrict,babylonian,grasslands,volga,violently,sparsely,oldies,telecommunication,respondents,quarries,downloadable,commandos,taxpayer,catalytic,malabar,afforded,copying,declines,nawab,junctions,assessing,filtering,classed,disused,compliant,christoph,gottingen,civilizations,hermitage,caledonian,whereupon,ethnically,springsteen,mobilization,terraces,indus,excel,zoological,enrichment,simulate,guitarists,registrar,cappella,invoked,reused,manchu,configured,uppsala,genealogy,mergers,casts,curricular,rebelled,subcontinent,horticultural,parramatta,orchestrated,dockyard,claudius,decca,prohibiting,turkmenistan,brahmin,clandestine,obligatory,elaborated,parasitic,helix,constraint,spearheaded,rotherham,eviction,adapting,albans,rescues,sociologist,guiana,convicts,occurrences,kamen,antennas,asturias,wheeled,sanitary,deterioration,trier,theorists,baseline,announcements,valea,planners,factual,serialized,serials,bilbao,demoted,fission,jamestown,cholera,alleviate,alteration,indefinite,sulfate,paced,climatic,valuation,artisans,proficiency,aegean,regulators,fledgling,sealing,influencing,servicemen,frequented,cancers,tambon,narayan,bankers,clarified,embodied,engraver,reorganisation,dissatisfied,dictated,supplemental,temperance,ratification,puget,nutrient,pretoria,papyrus,uniting,ascribed,cores,coptic,schoolhouse,barrio,1910s,armory,defected,transatlantic,regulates,ported,artefacts,specifies,boasted,scorers,mollusks,emitted,navigable,quakers,projective,dialogues,reunification,exponential,vastly,banners,unsigned,dissipated,halves,coincidentally,leasing,purported,escorting,estimation,foxes,lifespan,inflorescence,assimilation,showdown,staunch,prologue,ligand,superliga,telescopes,northwards,keynote,heaviest,taunton,redeveloped,vocalists,podlaskie,soyuz,rodents,azores,moravian,outset,parentheses,apparel,domestically,authoritative,polymers,monterrey,inhibit,launcher,jordanian,folds,taxis,mandates,singled,liechtenstein,subsistence,marxism,ousted,governorship,servicing,offseason,modernism,prism,devout,translators,islamist,chromosomes,pitted,bedfordshire,fabrication,authoritarian,javanese,leaflets,transient,substantive,predatory,sigismund,assassinate,diagrams,arrays,rediscovered,reclamation,spawning,fjord,peacekeeping,strands,fabrics,highs,regulars,tirana,ultraviolet,athenian,filly,barnet,naacp,nueva,favourites,terminates,showcases,clones,inherently,interpreting,bjorn,finely,lauded,unspecified,chola,pleistocene,insulation,antilles,donetsk,funnel,nutritional,biennale,reactivated,southport,primate,cavaliers,austrians,interspersed,restarted,suriname,amplifiers,wladyslaw,blockbuster,sportsman,minogue,brightness,benches,bridgeport,initiating,israelis,orbiting,newcomers,externally,scaling,transcribed,impairment,luxurious,longevity,impetus,temperament,ceilings,tchaikovsky,spreads,pantheon,bureaucracy,1820s,heraldic,villas,formula_13,galician,meath,avoidance,corresponded,headlining,connacht,seekers,rappers,solids,monograph,scoreless,opole,isotopes,himalayas,parodies,garments,microscopic,republished,havilland,orkney,demonstrators,pathogen,saturated,hellenistic,facilitates,aerodynamic,relocating,indochina,laval,astronomers,bequeathed,administrations,extracts,nagoya,torquay,demography,medicare,ambiguity,renumbered,pursuant,concave,syriac,electrode,dispersal,henan,bialystok,walsall,crystalline,puebla,janata,illumination,tianjin,enslaved,coloration,championed,defamation,grille,johor,rejoin,caspian,fatally,planck,workings,appointing,institutionalized,wessex,modernized,exemplified,regatta,jacobite,parochial,programmers,blending,eruptions,insurrection,regression,indices,sited,dentistry,mobilized,furnishings,levant,primaries,ardent,nagasaki,conqueror,dorchester,opined,heartland,amman,mortally,wellesley,bowlers,outputs,coveted,orthography,immersion,disrepair,disadvantaged,curate,childless,condensed,codice_1,remodeled,resultant,bolsheviks,superfamily,saxons,2010s,contractual,rivalries,malacca,oaxaca,magnate,vertebrae,quezon,olympiad,yucatan,tyres,macro,specialization,commendation,caliphate,gunnery,exiles,excerpts,fraudulent,adjustable,aramaic,interceptor,drumming,standardization,reciprocal,adolescents,federalist,aeronautics,favorably,enforcing,reintroduced,zhejiang,refining,biplane,banknotes,accordion,intersect,illustrating,summits,classmate,militias,biomass,massacres,epidemiology,reworked,wrestlemania,nantes,auditory,taxon,elliptical,chemotherapy,asserting,avoids,proficient,airmen,yellowstone,multicultural,alloys,utilization,seniority,kuyavian,huntsville,orthogonal,bloomington,cultivars,casimir,internment,repulsed,impedance,revolving,fermentation,parana,shutout,partnering,empowered,islamabad,polled,classify,amphibians,greyish,obedience,4x100,projectile,khyber,halfback,relational,d'ivoire,synonyms,endeavour,padma,customized,mastery,defenceman,berber,purge,interestingly,covent,promulgated,restricting,condemnation,hillsborough,walkers,privateer,intra,captaincy,naturalized,huffington,detecting,hinted,migrating,bayou,counterattack,anatomical,foraging,unsafe,swiftly,outdated,paraguayan,attire,masjid,endeavors,jerseys,triassic,quechua,growers,axial,accumulate,wastewater,cognition,fungal,animator,pagoda,kochi,uniformly,antibody,yerevan,hypotheses,combatants,italianate,draining,fragmentation,snowfall,formative,inversion,kitchener,identifier,additive,lucha,selects,ashland,cambrian,racetrack,trapping,congenital,primates,wavelengths,expansions,yeomanry,harcourt,wealthiest,awaited,punta,intervening,aggressively,vichy,piloted,midtown,tailored,heyday,metadata,guadalcanal,inorganic,hadith,pulses,francais,tangent,scandals,erroneously,tractors,pigment,constabulary,jiangsu,landfill,merton,basalt,astor,forbade,debuts,collisions,exchequer,stadion,roofed,flavour,sculptors,conservancy,dissemination,electrically,undeveloped,existent,surpassing,pentecostal,manifested,amend,formula_14,superhuman,barges,tunis,analytics,argyll,liquids,mechanized,domes,mansions,himalayan,indexing,reuters,nonlinear,purification,exiting,timbers,triangles,decommissioning,departmental,causal,fonts,americana,sept.,seasonally,incomes,razavi,sheds,memorabilia,rotational,terre,sutra,protege,yarmouth,grandmaster,annum,looted,imperialism,variability,liquidation,baptised,isotope,showcasing,milling,rationale,hammersmith,austen,streamlined,acknowledging,contentious,qaleh,breadth,turing,referees,feral,toulon,unofficially,identifiable,standout,labeling,dissatisfaction,jurgen,angrily,featherweight,cantons,constrained,dominates,standalone,relinquished,theologians,markedly,italics,downed,nitrate,likened,gules,craftsman,singaporean,pixels,mandela,moray,parity,departement,antigen,academically,burgh,brahma,arranges,wounding,triathlon,nouveau,vanuatu,banded,acknowledges,unearthed,stemming,authentication,byzantines,converge,nepali,commonplace,deteriorating,recalling,palette,mathematicians,greenish,pictorial,ahmedabad,rouen,validation,u.s.a.,'best,malvern,archers,converter,undergoes,fluorescent,logistical,notification,transvaal,illicit,symphonies,stabilization,worsened,fukuoka,decrees,enthusiast,seychelles,blogger,louvre,dignitaries,burundi,wreckage,signage,pinyin,bursts,federer,polarization,urbana,lazio,schism,nietzsche,venerable,administers,seton,kilograms,invariably,kathmandu,farmed,disqualification,earldom,appropriated,fluctuations,kermanshah,deployments,deformation,wheelbase,maratha,psalm,bytes,methyl,engravings,skirmish,fayette,vaccines,ideally,astrology,breweries,botanic,opposes,harmonies,irregularities,contended,gaulle,prowess,constants,aground,filipinos,fresco,ochreous,jaipur,willamette,quercus,eastwards,mortars,champaign,braille,reforming,horned,hunan,spacious,agitation,draught,specialties,flourishing,greensboro,necessitated,swedes,elemental,whorls,hugely,structurally,plurality,synthesizers,embassies,assad,contradictory,inference,discontent,recreated,inspectors,unicef,commuters,embryo,modifying,stints,numerals,communicated,boosted,trumpeter,brightly,adherence,remade,leases,restrained,eucalyptus,dwellers,planar,grooves,gainesville,daimler,anzac,szczecin,cornerback,prized,peking,mauritania,khalifa,motorized,lodging,instrumentalist,fortresses,cervical,formula_15,passerine,sectarian,researches,apprenticed,reliefs,disclose,gliding,repairing,queue,kyushu,literate,canoeing,sacrament,separatist,calabria,parkland,flowed,investigates,statistically,visionary,commits,dragoons,scrolls,premieres,revisited,subdued,censored,patterned,elective,outlawed,orphaned,leyland,richly,fujian,miniatures,heresy,plaques,countered,nonfiction,exponent,moravia,dispersion,marylebone,midwestern,enclave,ithaca,federated,electronically,handheld,microscopy,tolls,arrivals,climbers,continual,cossacks,moselle,deserts,ubiquitous,gables,forecasts,deforestation,vertebrates,flanking,drilled,superstructure,inspected,consultative,bypassed,ballast,subsidy,socioeconomic,relic,grenada,journalistic,administering,accommodated,collapses,appropriation,reclassified,foreword,porte,assimilated,observance,fragmented,arundel,thuringia,gonzaga,shenzhen,shipyards,sectional,ayrshire,sloping,dependencies,promenade,ecuadorian,mangrove,constructs,goalscorer,heroism,iteration,transistor,omnibus,hampstead,cochin,overshadowed,chieftain,scalar,finishers,ghanaian,abnormalities,monoplane,encyclopaedia,characterize,travancore,baronetage,bearers,biking,distributes,paving,christened,inspections,banco,humber,corinth,quadratic,albanians,lineages,majored,roadside,inaccessible,inclination,darmstadt,fianna,epilepsy,propellers,papacy,montagu,bhutto,sugarcane,optimized,pilasters,contend,batsmen,brabant,housemates,sligo,ascot,aquinas,supervisory,accorded,gerais,echoed,nunavut,conservatoire,carniola,quartermaster,gminas,impeachment,aquitaine,reformers,quarterfinal,karlsruhe,accelerator,coeducational,archduke,gelechiidae,seaplane,dissident,frenchman,palau,depots,hardcover,aachen,darreh,denominational,groningen,parcels,reluctance,drafts,elliptic,counters,decreed,airship,devotional,contradiction,formula_16,undergraduates,qualitative,guatemalan,slavs,southland,blackhawks,detrimental,abolish,chechen,manifestations,arthritis,perch,fated,hebei,peshawar,palin,immensely,havre,totalling,rampant,ferns,concourse,triples,elites,olympian,larva,herds,lipid,karabakh,distal,monotypic,vojvodina,batavia,multiplied,spacing,spellings,pedestrians,parchment,glossy,industrialization,dehydrogenase,patriotism,abolitionist,mentoring,elizabethan,figurative,dysfunction,abyss,constantin,middletown,stigma,mondays,gambia,gaius,israelites,renounced,nepalese,overcoming,buren,sulphur,divergence,predation,looting,iberia,futuristic,shelved,anthropological,innsbruck,escalated,clermont,entrepreneurial,benchmark,mechanically,detachments,populist,apocalyptic,exited,embryonic,stanza,readership,chiba,landlords,expansive,boniface,therapies,perpetrators,whitehall,kassel,masts,carriageway,clinch,pathogens,mazandaran,undesirable,teutonic,miocene,nagpur,juris,cantata,compile,diffuse,dynastic,reopening,comptroller,o'neal,flourish,electing,scientifically,departs,welded,modal,cosmology,fukushima,libertadores,chang'an,asean,generalization,localization,afrikaans,cricketers,accompanies,emigrants,esoteric,southwards,shutdown,prequel,fittings,innate,wrongly,equitable,dictionaries,senatorial,bipolar,flashbacks,semitism,walkway,lyrically,legality,sorbonne,vigorously,durga,samoan,karel,interchanges,patna,decider,registering,electrodes,anarchists,excursion,overthrown,gilan,recited,michelangelo,advertiser,kinship,taboo,cessation,formula_17,premiers,traversed,madurai,poorest,torneo,exerted,replicate,spelt,sporadically,horde,landscaping,razed,hindered,esperanto,manchuria,propellant,jalan,baha'is,sikkim,linguists,pandit,racially,ligands,dowry,francophone,escarpment,behest,magdeburg,mainstay,villiers,yangtze,grupo,conspirators,martyrdom,noticeably,lexical,kazakh,unrestricted,utilised,sired,inhabits,proofs,joseon,pliny,minted,buddhists,cultivate,interconnected,reuse,viability,australasian,derelict,resolving,overlooks,menon,stewardship,playwrights,thwarted,filmfare,disarmament,protections,bundles,sidelined,hypothesized,singer/songwriter,forage,netted,chancery,townshend,restructured,quotation,hyperbolic,succumbed,parliaments,shenandoah,apical,kibbutz,storeys,pastors,lettering,ukrainians,hardships,chihuahua,avail,aisles,taluka,antisemitism,assent,ventured,banksia,seamen,hospice,faroe,fearful,woreda,outfield,chlorine,transformer,tatar,panoramic,pendulum,haarlem,styria,cornice,importing,catalyzes,subunits,enamel,bakersfield,realignment,sorties,subordinates,deanery,townland,gunmen,tutelage,evaluations,allahabad,thrace,veneto,mennonite,sharia,subgenus,satisfies,puritan,unequal,gastrointestinal,ordinances,bacterium,horticulture,argonauts,adjectives,arable,duets,visualization,woolwich,revamped,euroleague,thorax,completes,originality,vasco,freighter,sardar,oratory,sects,extremes,signatories,exporting,arisen,exacerbated,departures,saipan,furlongs,d'italia,goring,dakar,conquests,docked,offshoot,okrug,referencing,disperse,netting,summed,rewritten,articulation,humanoid,spindle,competitiveness,preventive,facades,westinghouse,wycombe,synthase,emulate,fostering,abdel,hexagonal,myriad,caters,arjun,dismay,axiom,psychotherapy,colloquial,complemented,martinique,fractures,culmination,erstwhile,atrium,electronica,anarchism,nadal,montpellier,algebras,submitting,adopts,stemmed,overcame,internacional,asymmetric,gallipoli,gliders,flushing,extermination,hartlepool,tesla,interwar,patriarchal,hitherto,ganges,combatant,marred,philology,glastonbury,reversible,isthmus,undermined,southwark,gateshead,andalusia,remedies,hastily,optimum,smartphone,evade,patrolled,beheaded,dopamine,waivers,ugandan,gujarati,densities,predicting,intestinal,tentative,interstellar,kolonia,soloists,penetrated,rebellions,qeshlaq,prospered,colegio,deficits,konigsberg,deficient,accessing,relays,kurds,politburo,codified,incarnations,occupancy,cossack,metaphysical,deprivation,chopra,piccadilly,formula_18,makeshift,protestantism,alaskan,frontiers,faiths,tendon,dunkirk,durability,autobots,bonuses,coinciding,emails,gunboat,stucco,magma,neutrons,vizier,subscriptions,visuals,envisaged,carpets,smoky,schema,parliamentarian,immersed,domesticated,parishioners,flinders,diminutive,mahabharata,ballarat,falmouth,vacancies,gilded,twigs,mastering,clerics,dalmatia,islington,slogans,compressor,iconography,congolese,sanction,blends,bulgarians,moderator,outflow,textures,safeguard,trafalgar,tramways,skopje,colonialism,chimneys,jazeera,organisers,denoting,motivations,ganga,longstanding,deficiencies,gwynedd,palladium,holistic,fascia,preachers,embargo,sidings,busan,ignited,artificially,clearwater,cemented,northerly,salim,equivalents,crustaceans,oberliga,quadrangle,historiography,romanians,vaults,fiercely,incidental,peacetime,tonal,bhopal,oskar,radha,pesticides,timeslot,westerly,cathedrals,roadways,aldershot,connectors,brahmins,paler,aqueous,gustave,chromatic,linkage,lothian,specialises,aggregation,tributes,insurgent,enact,hampden,ghulam,federations,instigated,lyceum,fredrik,chairmanship,floated,consequent,antagonists,intimidation,patriarchate,warbler,heraldry,entrenched,expectancy,habitation,partitions,widest,launchers,nascent,ethos,wurzburg,lycee,chittagong,mahatma,merseyside,asteroids,yokosuka,cooperatives,quorum,redistricting,bureaucratic,yachts,deploying,rustic,phonology,chorale,cellist,stochastic,crucifixion,surmounted,confucian,portfolios,geothermal,crested,calibre,tropics,deferred,nasir,iqbal,persistence,essayist,chengdu,aborigines,fayetteville,bastion,interchangeable,burlesque,kilmarnock,specificity,tankers,colonels,fijian,quotations,enquiry,quito,palmerston,delle,multidisciplinary,polynesian,iodine,antennae,emphasised,manganese,baptists,galilee,jutland,latent,excursions,skepticism,tectonic,precursors,negligible,musique,misuse,vitoria,expressly,veneration,sulawesi,footed,mubarak,chongqing,chemically,midday,ravaged,facets,varma,yeovil,ethnographic,discounted,physicists,attache,disbanding,essen,shogunate,cooperated,waikato,realising,motherwell,pharmacology,sulfide,inward,expatriate,devoid,cultivar,monde,andean,groupings,goran,unaffected,moldovan,postdoctoral,coleophora,delegated,pronoun,conductivity,coleridge,disapproval,reappeared,microbial,campground,olsztyn,fostered,vaccination,rabbinical,champlain,milestones,viewership,caterpillar,effected,eupithecia,financier,inferred,uzbek,bundled,bandar,balochistan,mysticism,biosphere,holotype,symbolizes,lovecraft,photons,abkhazia,swaziland,subgroups,measurable,falkirk,valparaiso,ashok,discriminatory,rarity,tabernacle,flyweight,jalisco,westernmost,antiquarian,extracellular,margrave,colspan=9,midsummer,digestive,reversing,burgeoning,substitutes,medallist,khrushchev,guerre,folio,detonated,partido,plentiful,aggregator,medallion,infiltration,shaded,santander,fared,auctioned,permian,ramakrishna,andorra,mentors,diffraction,bukit,potentials,translucent,feminists,tiers,protracted,coburg,wreath,guelph,adventurer,he/she,vertebrate,pipelines,celsius,outbreaks,australasia,deccan,garibaldi,unionists,buildup,biochemical,reconstruct,boulders,stringent,barbed,wording,furnaces,pests,befriends,organises,popes,rizal,tentacles,cadre,tallahassee,punishments,occidental,formatted,mitigation,rulings,rubens,cascades,inducing,choctaw,volta,synagogues,movable,altarpiece,mitigate,practise,intermittently,encountering,memberships,earns,signify,retractable,amounting,pragmatic,wilfrid,dissenting,divergent,kanji,reconstituted,devonian,constitutions,levied,hendrik,starch,costal,honduran,ditches,polygon,eindhoven,superstars,salient,argus,punitive,purana,alluvial,flaps,inefficient,retracted,advantageous,quang,andersson,danville,binghamton,symbolize,conclave,shaanxi,silica,interpersonal,adept,frans,pavilions,lubbock,equip,sunken,limburg,activates,prosecutions,corinthian,venerated,shootings,retreats,parapet,orissa,riviere,animations,parodied,offline,metaphysics,bluffs,plume,piety,fruition,subsidized,steeplechase,shanxi,eurasia,angled,forecasting,suffragan,ashram,larval,labyrinth,chronicler,summaries,trailed,merges,thunderstorms,filtered,formula_19,advertisers,alpes,informatics,parti,constituting,undisputed,certifications,javascript,molten,sclerosis,rumoured,boulogne,hmong,lewes,breslau,notts,bantu,ducal,messengers,radars,nightclubs,bantamweight,carnatic,kaunas,fraternal,triggering,controversially,londonderry,visas,scarcity,offaly,uprisings,repelled,corinthians,pretext,kuomintang,kielce,empties,matriculated,pneumatic,expos,agile,treatises,midpoint,prehistory,oncology,subsets,hydra,hypertension,axioms,wabash,reiterated,swapped,achieves,premio,ageing,overture,curricula,challengers,subic,selangor,liners,frontline,shutter,validated,normalized,entertainers,molluscs,maharaj,allegation,youngstown,synth,thoroughfare,regionally,pillai,transcontinental,pedagogical,riemann,colonia,easternmost,tentatively,profiled,herefordshire,nativity,meuse,nucleotide,inhibits,huntingdon,throughput,recorders,conceding,domed,homeowners,centric,gabled,canoes,fringes,breeder,subtitled,fluoride,haplogroup,zionism,izmir,phylogeny,kharkiv,romanticism,adhesion,usaaf,delegations,lorestan,whalers,biathlon,vaulted,mathematically,pesos,skirmishes,heisman,kalamazoo,gesellschaft,launceston,interacts,quadruple,kowloon,psychoanalysis,toothed,ideologies,navigational,valence,induces,lesotho,frieze,rigging,undercarriage,explorations,spoof,eucharist,profitability,virtuoso,recitals,subterranean,sizeable,herodotus,subscriber,huxley,pivot,forewing,warring,boleslaw,bharatiya,suffixes,trois,percussionist,downturn,garrisons,philosophies,chants,mersin,mentored,dramatist,guilds,frameworks,thermodynamic,venomous,mehmed,assembling,rabbinic,hegemony,replicas,enlargement,claimant,retitled,utica,dumfries,metis,deter,assortment,tubing,afflicted,weavers,rupture,ornamentation,transept,salvaged,upkeep,callsign,rajput,stevenage,trimmed,intracellular,synchronization,consular,unfavorable,royalists,goldwyn,fasting,hussars,doppler,obscurity,currencies,amiens,acorn,tagore,townsville,gaussian,migrations,porta,anjou,graphite,seaport,monographs,gladiators,metrics,calligraphy,sculptural,swietokrzyskie,tolombeh,eredivisie,shoals,queries,carts,exempted,fiberglass,mirrored,bazar,progeny,formalized,mukherjee,professed,amazon.com,cathode,moreton,removable,mountaineers,nagano,transplantation,augustinian,steeply,epilogue,adapter,decisively,accelerating,mediaeval,substituting,tasman,devonshire,litres,enhancements,himmler,nephews,bypassing,imperfect,argentinian,reims,integrates,sochi,ascii,licences,niches,surgeries,fables,versatility,indra,footpath,afonso,crore,evaporation,encodes,shelling,conformity,simplify,updating,quotient,overt,firmware,umpires,architectures,eocene,conservatism,secretion,embroidery,f.c..,tuvalu,mosaics,shipwreck,prefectural,cohort,grievances,garnering,centerpiece,apoptosis,djibouti,bethesda,formula_20,shonen,richland,justinian,dormitories,meteorite,reliably,obtains,pedagogy,hardness,cupola,manifolds,amplification,steamers,familial,dumbarton,jerzy,genital,maidstone,salinity,grumman,signifies,presbytery,meteorology,procured,aegis,streamed,deletion,nuestra,mountaineering,accords,neuronal,khanate,grenoble,axles,dispatches,tokens,turku,auctions,propositions,planters,proclaiming,recommissioned,stravinsky,obverse,bombarded,waged,saviour,massacred,reformist,purportedly,resettlement,ravenna,embroiled,minden,revitalization,hikers,bridging,torpedoed,depletion,nizam,affectionately,latitudes,lubeck,spore,polymerase,aarhus,nazism,101st,buyout,galerie,diets,overflow,motivational,renown,brevet,deriving,melee,goddesses,demolish,amplified,tamworth,retake,brokerage,beneficiaries,henceforth,reorganised,silhouette,browsers,pollutants,peron,lichfield,encircled,defends,bulge,dubbing,flamenco,coimbatore,refinement,enshrined,grizzlies,capacitor,usefulness,evansville,interscholastic,rhodesian,bulletins,diamondbacks,rockers,platted,medalists,formosa,transporter,slabs,guadeloupe,disparate,concertos,violins,regaining,mandible,untitled,agnostic,issuance,hamiltonian,brampton,srpska,homology,downgraded,florentine,epitaph,kanye,rallying,analysed,grandstand,infinitely,antitrust,plundered,modernity,colspan=3|total,amphitheatre,doric,motorists,yemeni,carnivorous,probabilities,prelate,struts,scrapping,bydgoszcz,pancreatic,signings,predicts,compendium,ombudsman,apertura,appoints,rebbe,stereotypical,valladolid,clustered,touted,plywood,inertial,kettering,curving,d'honneur,housewives,grenadier,vandals,barbarossa,necked,waltham,reputedly,jharkhand,cistercian,pursues,viscosity,organiser,cloister,islet,stardom,moorish,himachal,strives,scripps,staggered,blasts,westwards,millimeters,angolan,hubei,agility,admirals,mordellistena,coincides,platte,vehicular,cordillera,riffs,schoolteacher,canaan,acoustics,tinged,reinforcing,concentrates,daleks,monza,selectively,musik,polynesia,exporter,reviving,macclesfield,bunkers,ballets,manors,caudal,microbiology,primes,unbroken,outcry,flocks,pakhtunkhwa,abelian,toowoomba,luminous,mould,appraisal,leuven,experimentally,interoperability,hideout,perak,specifying,knighthood,vasily,excerpt,computerized,niels,networked,byzantium,reaffirmed,geographer,obscured,fraternities,mixtures,allusion,accra,lengthened,inquest,panhandle,pigments,revolts,bluetooth,conjugate,overtaken,foray,coils,breech,streaks,impressionist,mendelssohn,intermediary,panned,suggestive,nevis,upazila,rotunda,mersey,linnaeus,anecdotes,gorbachev,viennese,exhaustive,moldavia,arcades,irrespective,orator,diminishing,predictive,cohesion,polarized,montage,avian,alienation,conus,jaffna,urbanization,seawater,extremity,editorials,scrolling,dreyfus,traverses,topographic,gunboats,extratropical,normans,correspondents,recognises,millennia,filtration,ammonium,voicing,complied,prefixes,diplomas,figurines,weakly,gated,oscillator,lucerne,embroidered,outpatient,airframe,fractional,disobedience,quarterbacks,formula_21,shinto,chiapas,epistle,leakage,pacifist,avignon,penrith,renders,mantua,screenplays,gustaf,tesco,alphabetically,rations,discharges,headland,tapestry,manipur,boolean,mediator,ebenezer,subchannel,fable,bestselling,ateneo,trademarks,recurrence,dwarfs,britannica,signifying,vikram,mediate,condensation,censuses,verbandsgemeinde,cartesian,sprang,surat,britons,chelmsford,courtenay,statistic,retina,abortions,liabilities,closures,mississauga,skyscrapers,saginaw,compounded,aristocrat,msnbc,stavanger,septa,interpretive,hinder,visibly,seeding,shutouts,irregularly,quebecois,footbridge,hydroxide,implicitly,lieutenants,simplex,persuades,midshipman,heterogeneous,officiated,crackdown,lends,tartu,altars,fractions,dissidents,tapered,modernisation,scripting,blazon,aquaculture,thermodynamics,sistan,hasidic,bellator,pavia,propagated,theorized,bedouin,transnational,mekong,chronicled,declarations,kickstarter,quotas,runtime,duquesne,broadened,clarendon,brownsville,saturation,tatars,electorates,malayan,replicated,observable,amphitheater,endorsements,referral,allentown,mormons,pantomime,eliminates,typeface,allegorical,varna,conduction,evoke,interviewer,subordinated,uyghur,landscaped,conventionally,ascend,edifice,postulated,hanja,whitewater,embarking,musicologist,tagalog,frontage,paratroopers,hydrocarbons,transliterated,nicolae,viewpoints,surrealist,asheville,falklands,hacienda,glide,opting,zimbabwean,discal,mortgages,nicaraguan,yadav,ghosh,abstracted,castilian,compositional,cartilage,intergovernmental,forfeited,importation,rapping,artes,republika,narayana,condominium,frisian,bradman,duality,marche,extremist,phosphorylation,genomes,allusions,valencian,habeas,ironworks,multiplex,harpsichord,emigrate,alternated,breda,waffen,smartphones,familiarity,regionalliga,herbaceous,piping,dilapidated,carboniferous,xviii,critiques,carcinoma,sagar,chippewa,postmodern,neapolitan,excludes,notoriously,distillation,tungsten,richness,installments,monoxide,chand,privatisation,molded,maths,projectiles,luoyang,epirus,lemma,concentric,incline,erroneous,sideline,gazetted,leopards,fibres,renovate,corrugated,unilateral,repatriation,orchestration,saeed,rockingham,loughborough,formula_22,bandleader,appellation,openness,nanotechnology,massively,tonnage,dunfermline,exposes,moored,ridership,motte,eurobasket,majoring,feats,silla,laterally,playlist,downwards,methodologies,eastbourne,daimyo,cellulose,leyton,norwalk,oblong,hibernian,opaque,insular,allegory,camogie,inactivation,favoring,masterpieces,rinpoche,serotonin,portrayals,waverley,airliner,longford,minimalist,outsourcing,excise,meyrick,qasim,organisational,synaptic,farmington,gorges,scunthorpe,zoned,tohoku,librarians,davao,decor,theatrically,brentwood,pomona,acquires,planter,capacitors,synchronous,skateboarding,coatings,turbocharged,ephraim,capitulation,scoreboard,hebrides,ensues,cereals,ailing,counterpoint,duplication,antisemitic,clique,aichi,oppressive,transcendental,incursions,rename,renumbering,powys,vestry,bitterly,neurology,supplanted,affine,susceptibility,orbiter,activating,overlaps,ecoregion,raman,canoer,darfur,microorganisms,precipitated,protruding,torun,anthropologists,rennes,kangaroos,parliamentarians,edits,littoral,archived,begum,rensselaer,microphones,ypres,empower,etruscan,wisden,montfort,calibration,isomorphic,rioting,kingship,verbally,smyrna,cohesive,canyons,fredericksburg,rahul,relativistic,micropolitan,maroons,industrialized,henchmen,uplift,earthworks,mahdi,disparity,cultured,transliteration,spiny,fragmentary,extinguished,atypical,inventors,biosynthesis,heralded,curacao,anomalies,aeroplane,surya,mangalore,maastricht,ashkenazi,fusiliers,hangzhou,emitting,monmouthshire,schwarzenegger,ramayana,peptides,thiruvananthapuram,alkali,coimbra,budding,reasoned,epithelial,harbors,rudimentary,classically,parque,ealing,crusades,rotations,riparian,pygmy,inertia,revolted,microprocessor,calendars,solvents,kriegsmarine,accademia,cheshmeh,yoruba,ardabil,mitra,genomic,notables,propagate,narrates,univision,outposts,polio,birkenhead,urinary,crocodiles,pectoral,barrymore,deadliest,rupees,chaim,protons,comical,astrophysics,unifying,formula_23,vassals,cortical,audubon,pedals,tenders,resorted,geophysical,lenders,recognising,tackling,lanarkshire,doctrinal,annan,combating,guangxi,estimating,selectors,tribunals,chambered,inhabiting,exemptions,curtailed,abbasid,kandahar,boron,bissau,150th,codenamed,wearer,whorl,adhered,subversive,famer,smelting,inserting,mogadishu,zoologist,mosul,stumps,almanac,olympiacos,stamens,participatory,cults,honeycomb,geologists,dividend,recursive,skiers,reprint,pandemic,liber,percentages,adversely,stoppage,chieftains,tubingen,southerly,overcrowding,unorganized,hangars,fulfil,hails,cantilever,woodbridge,pinus,wiesbaden,fertilization,fluorescence,enhances,plenary,troublesome,episodic,thrissur,kickboxing,allele,staffing,garda,televisions,philatelic,spacetime,bullpen,oxides,leninist,enrolling,inventive,truro,compatriot,ruskin,normative,assay,gotha,murad,illawarra,gendarmerie,strasse,mazraeh,rebounded,fanfare,liaoning,rembrandt,iranians,emirate,governs,latency,waterfowl,chairmen,katowice,aristocrats,eclipsed,sentient,sonatas,interplay,sacking,decepticons,dynamical,arbitrarily,resonant,petar,velocities,alludes,wastes,prefectures,belleville,sensibility,salvadoran,consolidating,medicaid,trainees,vivekananda,molar,porous,upload,youngster,infused,doctorates,wuhan,annihilation,enthusiastically,gamespot,kanpur,accumulating,monorail,operetta,tiling,sapporo,finns,calvinist,hydrocarbon,sparrows,orienteering,cornelis,minster,vuelta,plebiscite,embraces,panchayats,focussed,remediation,brahman,olfactory,reestablished,uniqueness,northumbria,rwandan,predominately,abode,ghats,balances,californian,uptake,bruges,inert,westerns,reprints,cairn,yarra,resurfaced,audible,rossini,regensburg,italiana,fleshy,irrigated,alerts,yahya,varanasi,marginalized,expatriates,cantonment,normandie,sahitya,directives,rounder,hulls,fictionalized,constables,inserts,hipped,potosi,navies,biologists,canteen,husbandry,augment,fortnight,assamese,kampala,o'keefe,paleolithic,bluish,promontory,consecutively,striving,niall,reuniting,dipole,friendlies,disapproved,thrived,netflix,liberian,dielectric,medway,strategist,sankt,pickups,hitters,encode,rerouted,claimants,anglesey,partitioned,cavan,flutes,reared,repainted,armaments,bowed,thoracic,balliol,piero,chaplains,dehestan,sender,junkers,sindhi,sickle,dividends,metallurgy,honorific,berths,namco,springboard,resettled,gansu,copyrighted,criticizes,utopian,bendigo,ovarian,binomial,spaceflight,oratorio,proprietors,supergroup,duplicated,foreground,strongholds,revolved,optimize,layouts,westland,hurler,anthropomorphic,excelsior,merchandising,reeds,vetoed,cryptography,hollyoaks,monash,flooring,ionian,resilience,johnstown,resolves,lawmakers,alegre,wildcards,intolerance,subculture,selector,slums,formulate,bayonet,istvan,restitution,interchangeably,awakens,rostock,serpentine,oscillation,reichstag,phenotype,recessed,piotr,annotated,preparedness,consultations,clausura,preferential,euthanasia,genoese,outcrops,freemasonry,geometrical,genesee,islets,prometheus,panamanian,thunderbolt,terraced,stara,shipwrecks,futebol,faroese,sharqi,aldermen,zeitung,unify,formula_24,humanism,syntactic,earthen,blyth,taxed,rescinded,suleiman,cymru,dwindled,vitality,superieure,resupply,adolphe,ardennes,rajiv,profiling,olympique,gestation,interfaith,milosevic,tagline,funerary,druze,silvery,plough,shrubland,relaunch,disband,nunatak,minimizing,excessively,waned,attaching,luminosity,bugle,encampment,electrostatic,minesweeper,dubrovnik,rufous,greenock,hochschule,assyrians,extracting,malnutrition,priya,attainment,anhui,connotations,predicate,seabirds,deduced,pseudonyms,gopal,plovdiv,refineries,imitated,kwazulu,terracotta,tenets,discourses,brandeis,whigs,dominions,pulmonate,landslides,tutors,determinant,richelieu,farmstead,tubercles,technicolor,hegel,redundancy,greenpeace,shortening,mules,distilled,xxiii,fundamentalist,acrylic,outbuildings,lighted,corals,signaled,transistors,cavite,austerity,76ers,exposures,dionysius,outlining,commutative,permissible,knowledgeable,howrah,assemblage,inhibited,crewmen,mbit/s,pyramidal,aberdeenshire,bering,rotates,atheism,howitzer,saone,lancet,fermented,contradicted,materiel,ofsted,numeric,uniformity,josephus,nazarene,kuwaiti,noblemen,pediment,emergent,campaigner,akademi,murcia,perugia,gallen,allsvenskan,finned,cavities,matriculation,rosters,twickenham,signatory,propel,readable,contends,artisan,flamboyant,reggio,italo,fumbles,widescreen,rectangle,centimetres,collaborates,envoys,rijeka,phonological,thinly,refractive,civilisation,reductase,cognate,dalhousie,monticello,lighthouses,jitsu,luneburg,socialite,fermi,collectible,optioned,marquee,jokingly,architecturally,kabir,concubine,nationalisation,watercolor,wicklow,acharya,pooja,leibniz,rajendra,nationalized,stalemate,bloggers,glutamate,uplands,shivaji,carolingian,bucuresti,dasht,reappears,muscat,functionally,formulations,hinged,hainan,catechism,autosomal,incremental,asahi,coeur,diversification,multilateral,fewest,recombination,finisher,harrogate,hangul,feasts,photovoltaic,paget,liquidity,alluded,incubation,applauded,choruses,malagasy,hispanics,bequest,underparts,cassava,kazimierz,gastric,eradication,mowtowr,tyrosine,archbishopric,e9e9e9,unproductive,uxbridge,hydrolysis,harbours,officio,deterministic,devonport,kanagawa,breaches,freetown,rhinoceros,chandigarh,janos,sanatorium,liberator,inequalities,agonist,hydrophobic,constructors,nagorno,snowboarding,welcomes,subscribed,iloilo,resuming,catalysts,stallions,jawaharlal,harriers,definitively,roughriders,hertford,inhibiting,elgar,randomized,incumbents,episcopate,rainforests,yangon,improperly,kemal,interpreters,diverged,uttarakhand,umayyad,phnom,panathinaikos,shabbat,diode,jiangxi,forbidding,nozzle,artistry,licensee,processions,staffs,decimated,expressionism,shingle,palsy,ontology,mahayana,maribor,sunil,hostels,edwardian,jetty,freehold,overthrew,eukaryotic,schuylkill,rawalpindi,sheath,recessive,ferenc,mandibles,berlusconi,confessor,convergent,ababa,slugging,rentals,sephardic,equivalently,collagen,markov,dynamically,hailing,depressions,sprawling,fairgrounds,indistinguishable,plutarch,pressurized,banff,coldest,braunschweig,mackintosh,sociedad,wittgenstein,tromso,airbase,lecturers,subtitle,attaches,purified,contemplated,dreamworks,telephony,prophetic,rockland,aylesbury,biscay,coherence,aleksandar,judoka,pageants,theses,homelessness,luthor,sitcoms,hinterland,fifths,derwent,privateers,enigmatic,nationalistic,instructs,superimposed,conformation,tricycle,dusan,attributable,unbeknownst,laptops,etching,archbishops,ayatollah,cranial,gharbi,interprets,lackawanna,abingdon,saltwater,tories,lender,minaj,ancillary,ranching,pembrokeshire,topographical,plagiarism,murong,marque,chameleon,assertions,infiltrated,guildhall,reverence,schenectady,formula_25,kollam,notary,mexicana,initiates,abdication,basra,theorems,ionization,dismantling,eared,censors,budgetary,numeral,verlag,excommunicated,distinguishable,quarried,cagliari,hindustan,symbolizing,watertown,descartes,relayed,enclosures,militarily,sault,devolved,dalian,djokovic,filaments,staunton,tumour,curia,villainous,decentralized,galapagos,moncton,quartets,onscreen,necropolis,brasileiro,multipurpose,alamos,comarca,jorgen,concise,mercia,saitama,billiards,entomologist,montserrat,lindbergh,commuting,lethbridge,phoenician,deviations,anaerobic,denouncing,redoubt,fachhochschule,principalities,negros,announcers,seconded,parrots,konami,revivals,approving,devotee,riyadh,overtook,morecambe,lichen,expressionist,waterline,silverstone,geffen,sternites,aspiration,behavioural,grenville,tripura,mediums,genders,pyotr,charlottesville,sacraments,programmable,ps100,shackleton,garonne,sumerian,surpass,authorizing,interlocking,lagoons,voiceless,advert,steeple,boycotted,alouettes,yosef,oxidative,sassanid,benefiting,sayyid,nauru,predetermined,idealism,maxillary,polymerization,semesters,munchen,conor,outfitted,clapham,progenitor,gheorghe,observational,recognitions,numerically,colonized,hazrat,indore,contaminants,fatality,eradicate,assyria,convocation,cameos,skillful,skoda,corfu,confucius,overtly,ramadan,wollongong,placements,d.c..,permutation,contemporaneous,voltages,elegans,universitat,samar,plunder,dwindling,neuter,antonin,sinhala,campania,solidified,stanzas,fibrous,marburg,modernize,sorcery,deutscher,florets,thakur,disruptive,infielder,disintegration,internazionale,vicariate,effigy,tripartite,corrective,klamath,environs,leavenworth,sandhurst,workmen,compagnie,hoseynabad,strabo,palisades,ordovician,sigurd,grandsons,defection,viacom,sinhalese,innovator,uncontrolled,slavonic,indexes,refrigeration,aircrew,superbike,resumption,neustadt,confrontations,arras,hindenburg,ripon,embedding,isomorphism,dwarves,matchup,unison,lofty,argos,louth,constitutionally,transitive,newington,facelift,degeneration,perceptual,aviators,enclosing,igneous,symbolically,academician,constitutionality,iso/iec,sacrificial,maturation,apprentices,enzymology,naturalistic,hajji,arthropods,abbess,vistula,scuttled,gradients,pentathlon,etudes,freedmen,melaleuca,thrice,conductive,sackville,franciscans,stricter,golds,kites,worshiped,monsignor,trios,orally,tiered,primacy,bodywork,castleford,epidemics,alveolar,chapelle,chemists,hillsboro,soulful,warlords,ngati,huguenot,diurnal,remarking,luger,motorways,gauss,jahan,cutoff,proximal,bandai,catchphrase,jonubi,ossetia,codename,codice_2,throated,itinerant,chechnya,riverfront,leela,evoked,entailed,zamboanga,rejoining,circuitry,haymarket,khartoum,feuds,braced,miyazaki,mirren,lubusz,caricature,buttresses,attrition,characterizes,widnes,evanston,materialism,contradictions,marist,midrash,gainsborough,ulithi,turkmen,vidya,escuela,patrician,inspirations,reagent,premierships,humanistic,euphrates,transitioning,belfry,zedong,adaption,kaliningrad,lobos,epics,waiver,coniferous,polydor,inductee,refitted,moraine,unsatisfactory,worsening,polygamy,rajya,nested,subgenre,broadside,stampeders,lingua,incheon,pretender,peloton,persuading,excitation,multan,predates,tonne,brackish,autoimmune,insulated,podcasts,iraqis,bodybuilding,condominiums,midlothian,delft,debtor,asymmetrical,lycaenidae,forcefully,pathogenic,tamaulipas,andaman,intravenous,advancements,senegalese,chronologically,realigned,inquirer,eusebius,dekalb,additives,shortlist,goldwater,hindustani,auditing,caterpillars,pesticide,nakhon,ingestion,lansdowne,traditionalist,northland,thunderbirds,josip,nominating,locale,ventricular,animators,verandah,epistles,surveyors,anthems,dredd,upheaval,passaic,anatolian,svalbard,associative,floodplain,taranaki,estuaries,irreducible,beginners,hammerstein,allocate,coursework,secreted,counteract,handwritten,foundational,passover,discoverer,decoding,wares,bourgeoisie,playgrounds,nazionale,abbreviations,seanad,golan,mishra,godavari,rebranding,attendances,backstory,interrupts,lettered,hasbro,ultralight,hormozgan,armee,moderne,subdue,disuse,improvisational,enrolment,persists,moderated,carinthia,hatchback,inhibitory,capitalized,anatoly,abstracts,albemarle,bergamo,insolvency,sentai,cellars,walloon,joked,kashmiri,dirac,materialized,renomination,homologous,gusts,eighteens,centrifugal,storied,baluchestan,formula_26,poincare,vettel,infuriated,gauges,streetcars,vedanta,stately,liquidated,goguryeo,swifts,accountancy,levee,acadian,hydropower,eustace,comintern,allotment,designating,torsion,molding,irritation,aerobic,halen,concerted,plantings,garrisoned,gramophone,cytoplasm,onslaught,requisitioned,relieving,genitive,centrist,jeong,espanola,dissolving,chatterjee,sparking,connaught,varese,arjuna,carpathian,empowering,meteorologist,decathlon,opioid,hohenzollern,fenced,ibiza,avionics,footscray,scrum,discounts,filament,directories,a.f.c,stiffness,quaternary,adventurers,transmits,harmonious,taizong,radiating,germantown,ejection,projectors,gaseous,nahuatl,vidyalaya,nightlife,redefined,refuted,destitute,arista,potters,disseminated,distanced,jamboree,kaohsiung,tilted,lakeshore,grained,inflicting,kreis,novelists,descendents,mezzanine,recast,fatah,deregulation,ac/dc,australis,kohgiluyeh,boreal,goths,authoring,intoxicated,nonpartisan,theodosius,pyongyang,shree,boyhood,sanfl,plenipotentiary,photosynthesis,presidium,sinaloa,honshu,texan,avenida,transmembrane,malays,acropolis,catalunya,vases,inconsistencies,methodists,quell,suisse,banat,simcoe,cercle,zealanders,discredited,equine,sages,parthian,fascists,interpolation,classifying,spinoff,yehuda,cruised,gypsum,foaled,wallachia,saraswati,imperialist,seabed,footnotes,nakajima,locales,schoolmaster,drosophila,bridgehead,immanuel,courtier,bookseller,niccolo,stylistically,portmanteau,superleague,konkani,millimetres,arboreal,thanjavur,emulation,sounders,decompression,commoners,infusion,methodological,osage,rococo,anchoring,bayreuth,formula_27,abstracting,symbolized,bayonne,electrolyte,rowed,corvettes,traversing,editorship,sampler,presidio,curzon,adirondack,swahili,rearing,bladed,lemur,pashtun,behaviours,bottling,zaire,recognisable,systematics,leeward,formulae,subdistricts,smithfield,vijaya,buoyancy,boosting,cantonal,rishi,airflow,kamakura,adana,emblems,aquifer,clustering,husayn,woolly,wineries,montessori,turntable,exponentially,caverns,espoused,pianists,vorpommern,vicenza,latterly,o'rourke,williamstown,generale,kosice,duisburg,poirot,marshy,mismanagement,mandalay,dagenham,universes,chiral,radiated,stewards,vegan,crankshaft,kyrgyz,amphibian,cymbals,infrequently,offenbach,environmentalist,repatriated,permutations,midshipmen,loudoun,refereed,bamberg,ornamented,nitric,selim,translational,dorsum,annunciation,gippsland,reflector,informational,regia,reactionary,ahmet,weathering,erlewine,legalized,berne,occupant,divas,manifests,analyzes,disproportionate,mitochondria,totalitarian,paulista,interscope,anarcho,correlate,brookfield,elongate,brunel,ordinal,precincts,volatility,equaliser,hittite,somaliland,ticketing,monochrome,ubuntu,chhattisgarh,titleholder,ranches,referendums,blooms,accommodates,merthyr,religiously,ryukyu,tumultuous,checkpoints,anode,mi'kmaq,cannonball,punctuation,remodelled,assassinations,criminology,alternates,yonge,pixar,namibian,piraeus,trondelag,hautes,lifeboats,shoal,atelier,vehemently,sadat,postcode,jainism,lycoming,undisturbed,lutherans,genomics,popmatters,tabriz,isthmian,notched,autistic,horsham,mites,conseil,bloomsbury,seung,cybertron,idris,overhauled,disbandment,idealized,goldfields,worshippers,lobbyist,ailments,paganism,herbarium,athenians,messerschmitt,faraday,entangled,'olya,untreated,criticising,howitzers,parvati,lobed,debussy,atonement,tadeusz,permeability,mueang,sepals,degli,optionally,fuelled,follies,asterisk,pristina,lewiston,congested,overpass,affixed,pleads,telecasts,stanislaus,cryptographic,friesland,hamstring,selkirk,antisubmarine,inundated,overlay,aggregates,fleur,trolleybus,sagan,ibsen,inductees,beltway,tiled,ladders,cadbury,laplace,ascetic,micronesia,conveying,bellingham,cleft,batches,usaid,conjugation,macedon,assisi,reappointed,brine,jinnah,prairies,screenwriting,oxidized,despatches,linearly,fertilizers,brazilians,absorbs,wagga,modernised,scorsese,ashraf,charlestown,esque,habitable,nizhny,lettres,tuscaloosa,esplanade,coalitions,carbohydrates,legate,vermilion,standardised,galleria,psychoanalytic,rearrangement,substation,competency,nationalised,reshuffle,reconstructions,mehdi,bougainville,receivership,contraception,enlistment,conducive,aberystwyth,solicitors,dismisses,fibrosis,montclair,homeowner,surrealism,s.h.i.e.l.d,peregrine,compilers,1790s,parentage,palmas,rzeszow,worldview,eased,svenska,housemate,bundestag,originator,enlisting,outwards,reciprocity,formula_28,carbohydrate,democratically,firefighting,romagna,acknowledgement,khomeini,carbide,quests,vedas,characteristically,guwahati,brixton,unintended,brothels,parietal,namur,sherbrooke,moldavian,baruch,milieu,undulating,laurier,entre,dijon,ethylene,abilene,heracles,paralleling,ceres,dundalk,falun,auspicious,chisinau,polarity,foreclosure,templates,ojibwe,punic,eriksson,biden,bachchan,glaciation,spitfires,norsk,nonviolent,heidegger,algonquin,capacitance,cassettes,balconies,alleles,airdate,conveys,replays,classifies,infrequent,amine,cuttings,rarer,woking,olomouc,amritsar,rockabilly,illyrian,maoist,poignant,tempore,stalinist,segmented,bandmate,mollusc,muhammed,totalled,byrds,tendered,endogenous,kottayam,aisne,oxidase,overhears,illustrators,verve,commercialization,purplish,directv,moulded,lyttelton,baptismal,captors,saracens,georgios,shorten,polity,grids,fitzwilliam,sculls,impurities,confederations,akhtar,intangible,oscillations,parabolic,harlequin,maulana,ovate,tanzanian,singularity,confiscation,qazvin,speyer,phonemes,overgrown,vicarage,gurion,undocumented,niigata,thrones,preamble,stave,interment,liiga,ataturk,aphrodite,groupe,indentured,habsburgs,caption,utilitarian,ozark,slovenes,reproductions,plasticity,serbo,dulwich,castel,barbuda,salons,feuding,lenape,wikileaks,swamy,breuning,shedding,afield,superficially,operationally,lamented,okanagan,hamadan,accolade,furthering,adolphus,fyodor,abridged,cartoonists,pinkish,suharto,cytochrome,methylation,debit,colspan=9|,refine,taoist,signalled,herding,leaved,bayan,fatherland,rampart,sequenced,negation,storyteller,occupiers,barnabas,pelicans,nadir,conscripted,railcars,prerequisite,furthered,columba,carolinas,markup,gwalior,franche,chaco,eglinton,ramparts,rangoon,metabolites,pollination,croat,televisa,holyoke,testimonial,setlist,safavid,sendai,georgians,shakespearean,galleys,regenerative,krzysztof,overtones,estado,barbary,cherbourg,obispo,sayings,composites,sainsbury,deliberation,cosmological,mahalleh,embellished,ascap,biala,pancras,calumet,grands,canvases,antigens,marianas,defenseman,approximated,seedlings,soren,stele,nuncio,immunology,testimonies,glossary,recollections,suitability,tampere,venous,cohomology,methanol,echoing,ivanovich,warmly,sterilization,imran,multiplying,whitechapel,undersea,xuanzong,tacitus,bayesian,roundhouse,correlations,rioters,molds,fiorentina,bandmates,mezzo,thani,guerilla,200th,premiums,tamils,deepwater,chimpanzees,tribesmen,selwyn,globo,turnovers,punctuated,erode,nouvelle,banbury,exponents,abolishing,helical,maimonides,endothelial,goteborg,infield,encroachment,cottonwood,mazowiecki,parable,saarbrucken,reliever,epistemology,artistes,enrich,rationing,formula_29,palmyra,subfamilies,kauai,zoran,fieldwork,arousal,creditor,friuli,celts,comoros,equated,escalation,negev,tallied,inductive,anion,netanyahu,mesoamerican,lepidoptera,aspirated,remit,westmorland,italic,crosse,vaclav,fuego,owain,balmain,venetians,ethnicities,deflected,ticino,apulia,austere,flycatcher,reprising,repressive,hauptbahnhof,subtype,ophthalmology,summarizes,eniwetok,colonisation,subspace,nymphalidae,earmarked,tempe,burnet,crests,abbots,norwegians,enlarge,ashoka,frankfort,livorno,malware,renters,singly,iliad,moresby,rookies,gustavus,affirming,alleges,legume,chekhov,studded,abdicated,suzhou,isidore,townsite,repayment,quintus,yankovic,amorphous,constructor,narrowing,industrialists,tanganyika,capitalization,connective,mughals,rarities,aerodynamics,worthing,antalya,diagnostics,shaftesbury,thracian,obstetrics,benghazi,multiplier,orbitals,livonia,roscommon,intensify,ravel,oaths,overseer,locomotion,necessities,chickasaw,strathclyde,treviso,erfurt,aortic,contemplation,accrington,markazi,predeceased,hippocampus,whitecaps,assemblyman,incursion,ethnography,extraliga,reproducing,directorship,benzene,byway,stupa,taxable,scottsdale,onondaga,favourably,countermeasures,lithuanians,thatched,deflection,tarsus,consuls,annuity,paralleled,contextual,anglian,klang,hoisted,multilingual,enacting,samaj,taoiseach,carthaginian,apologised,hydrology,entrant,seamless,inflorescences,mugabe,westerners,seminaries,wintering,penzance,mitre,sergeants,unoccupied,delimitation,discriminate,upriver,abortive,nihon,bessarabia,calcareous,buffaloes,patil,daegu,streamline,berks,chaparral,laity,conceptions,typified,kiribati,threaded,mattel,eccentricity,signified,patagonia,slavonia,certifying,adnan,astley,sedition,minimally,enumerated,nikos,goalless,walid,narendra,causa,missoula,coolant,dalek,outcrop,hybridization,schoolchildren,peasantry,afghans,confucianism,shahr,gallic,tajik,kierkegaard,sauvignon,commissar,patriarchs,tuskegee,prussians,laois,ricans,talmudic,officiating,aesthetically,baloch,antiochus,separatists,suzerainty,arafat,shading,u.s.c,chancellors,inc..,toolkit,nepenthes,erebidae,solicited,pratap,kabbalah,alchemist,caltech,darjeeling,biopic,spillway,kaiserslautern,nijmegen,bolstered,neath,pahlavi,eugenics,bureaus,retook,northfield,instantaneous,deerfield,humankind,selectivity,putative,boarders,cornhuskers,marathas,raikkonen,aliabad,mangroves,garages,gulch,karzai,poitiers,chernobyl,thane,alexios,belgrano,scion,solubility,urbanized,executable,guizhou,nucleic,tripled,equalled,harare,houseguests,potency,ghazi,repeater,overarching,regrouped,broward,ragtime,d'art,nandi,regalia,campsites,mamluk,plating,wirral,presumption,zenit,archivist,emmerdale,decepticon,carabidae,kagoshima,franconia,guarani,formalism,diagonally,submarginal,denys,walkways,punts,metrolink,hydrographic,droplets,upperside,martyred,hummingbird,antebellum,curiously,mufti,friary,chabad,czechs,shaykh,reactivity,berklee,turbonilla,tongan,sultans,woodville,unlicensed,enmity,dominicans,operculum,quarrying,watercolour,catalyzed,gatwick,'what,mesozoic,auditors,shizuoka,footballing,haldane,telemundo,appended,deducted,disseminate,o'shea,pskov,abrasive,entente,gauteng,calicut,lemurs,elasticity,suffused,scopula,staining,upholding,excesses,shostakovich,loanwords,naidu,championnat,chromatography,boasting,goaltenders,engulfed,salah,kilogram,morristown,shingles,shi'a,labourer,renditions,frantisek,jekyll,zonal,nanda,sheriffs,eigenvalues,divisione,endorsing,ushered,auvergne,cadres,repentance,freemasons,utilising,laureates,diocletian,semiconductors,o'grady,vladivostok,sarkozy,trackage,masculinity,hydroxyl,mervyn,muskets,speculations,gridiron,opportunistic,mascots,aleutian,fillies,sewerage,excommunication,borrowers,capillary,trending,sydenham,synthpop,rajah,cagayan,deportes,kedah,faure,extremism,michoacan,levski,culminates,occitan,bioinformatics,unknowingly,inciting,emulated,footpaths,piacenza,dreadnought,viceroyalty,oceanographic,scouted,combinatorial,ornithologist,cannibalism,mujahideen,independiente,cilicia,hindwing,minimized,odeon,gyorgy,rubles,purchaser,collieries,kickers,interurban,coiled,lynchburg,respondent,plzen,detractors,etchings,centering,intensification,tomography,ranjit,warblers,retelling,reinstatement,cauchy,modulus,redirected,evaluates,beginner,kalateh,perforated,manoeuvre,scrimmage,internships,megawatts,mottled,haakon,tunbridge,kalyan,summarised,sukarno,quetta,canonized,henryk,agglomeration,coahuila,diluted,chiropractic,yogyakarta,talladega,sheik,cation,halting,reprisals,sulfuric,musharraf,sympathizers,publicised,arles,lectionary,fracturing,startups,sangha,latrobe,rideau,ligaments,blockading,cremona,lichens,fabaceae,modulated,evocative,embodies,battersea,indistinct,altai,subsystem,acidity,somatic,formula_30,tariq,rationality,sortie,ashlar,pokal,cytoplasmic,valour,bangla,displacing,hijacking,spectrometry,westmeath,weill,charing,goias,revolvers,individualized,tenured,nawaz,piquet,chanted,discard,bernd,phalanx,reworking,unilaterally,subclass,yitzhak,piloting,circumvent,disregarded,semicircular,viscous,tibetans,endeavours,retaliated,cretan,vienne,workhouse,sufficiency,aurangzeb,legalization,lipids,expanse,eintracht,sanjak,megas,125th,bahraini,yakima,eukaryotes,thwart,affirmation,peloponnese,retailing,carbonyl,chairwoman,macedonians,dentate,rockaway,correctness,wealthier,metamorphic,aragonese,fermanagh,pituitary,schrodinger,evokes,spoiler,chariots,akita,genitalia,combe,confectionery,desegregation,experiential,commodores,persepolis,viejo,restorations,virtualization,hispania,printmaking,stipend,yisrael,theravada,expended,radium,tweeted,polygonal,lippe,charente,leveraged,cutaneous,fallacy,fragrant,bypasses,elaborately,rigidity,majid,majorca,kongo,plasmodium,skits,audiovisual,eerste,staircases,prompts,coulthard,northwestward,riverdale,beatrix,copyrights,prudential,communicates,mated,obscenity,asynchronous,analyse,hansa,searchlight,farnborough,patras,asquith,qarah,contours,fumbled,pasteur,redistributed,almeria,sanctuaries,jewry,israelite,clinicians,koblenz,bookshop,affective,goulburn,panelist,sikorsky,cobham,mimics,ringed,portraiture,probabilistic,girolamo,intelligible,andalusian,jalal,athenaeum,eritrean,auxiliaries,pittsburg,devolution,sangam,isolating,anglers,cronulla,annihilated,kidderminster,synthesize,popularised,theophilus,bandstand,innumerable,chagrin,retroactively,weser,multiples,birdlife,goryeo,pawnee,grosser,grappling,tactile,ahmadinejad,turboprop,erdogan,matchday,proletarian,adhering,complements,austronesian,adverts,luminaries,archeology,impressionism,conifer,sodomy,interracial,platoons,lessen,postings,pejorative,registrations,cookery,persecutions,microbes,audits,idiosyncratic,subsp,suspensions,restricts,colouring,ratify,instrumentals,nucleotides,sulla,posits,bibliotheque,diameters,oceanography,instigation,subsumed,submachine,acceptor,legation,borrows,sedge,discriminated,loaves,insurers,highgate,detectable,abandons,kilns,sportscaster,harwich,iterations,preakness,arduous,tensile,prabhu,shortwave,philologist,shareholding,vegetative,complexities,councilors,distinctively,revitalize,automaton,amassing,montreux,khanh,surabaya,nurnberg,pernambuco,cuisines,charterhouse,firsts,tercera,inhabitant,homophobia,naturalism,einar,powerplant,coruna,entertainments,whedon,rajputs,raton,democracies,arunachal,oeuvre,wallonia,jeddah,trolleybuses,evangelism,vosges,kiowa,minimise,encirclement,undertakes,emigrant,beacons,deepened,grammars,publius,preeminent,seyyed,repechage,crafting,headingley,osteopathic,lithography,hotly,bligh,inshore,betrothed,olympians,formula_31,dissociation,trivandrum,arran,petrovic,stettin,disembarked,simplification,bronzes,philo,acrobatic,jonsson,conjectured,supercharged,kanto,detects,cheeses,correlates,harmonics,lifecycle,sudamericana,reservists,decayed,elitserien,parametric,113th,dusky,hogarth,modulo,symbiotic,monopolies,discontinuation,converges,southerners,tucuman,eclipses,enclaves,emits,famicom,caricatures,artistically,levelled,mussels,erecting,mouthparts,cunard,octaves,crucible,guardia,unusable,lagrangian,droughts,ephemeral,pashto,canis,tapering,sasebo,silurian,metallurgical,outscored,evolves,reissues,sedentary,homotopy,greyhawk,reagents,inheriting,onshore,tilting,rebuffed,reusable,naturalists,basingstoke,insofar,offensives,dravidian,curators,planks,rajan,isoforms,flagstaff,preside,globular,egalitarian,linkages,biographers,goalscorers,molybdenum,centralised,nordland,jurists,ellesmere,rosberg,hideyoshi,restructure,biases,borrower,scathing,redress,tunnelling,workflow,magnates,mahendra,dissenters,plethora,transcriptions,handicrafts,keyword,xi'an,petrograd,unser,prokofiev,90deg,madan,bataan,maronite,kearny,carmarthen,termini,consulates,disallowed,rockville,bowery,fanzine,docklands,bests,prohibitions,yeltsin,selassie,naturalization,realisation,dispensary,tribeca,abdulaziz,pocahontas,stagnation,pamplona,cuneiform,propagating,subsurface,christgau,epithelium,schwerin,lynching,routledge,hanseatic,upanishad,glebe,yugoslavian,complicity,endowments,girona,mynetworktv,entomology,plinth,ba'ath,supercup,torus,akkadian,salted,englewood,commandery,belgaum,prefixed,colorless,dartford,enthroned,caesarea,nominative,sandown,safeguards,hulled,formula_32,leamington,dieppe,spearhead,generalizations,demarcation,llanelli,masque,brickwork,recounting,sufism,strikingly,petrochemical,onslow,monologues,emigrating,anderlecht,sturt,hossein,sakhalin,subduction,novices,deptford,zanjan,airstrikes,coalfield,reintroduction,timbaland,hornby,messianic,stinging,universalist,situational,radiocarbon,strongman,rowling,saloons,traffickers,overran,fribourg,cambrai,gravesend,discretionary,finitely,archetype,assessor,pilipinas,exhumed,invocation,interacted,digitized,timisoara,smelter,teton,sexism,precepts,srinagar,pilsudski,carmelite,hanau,scoreline,hernando,trekking,blogging,fanbase,wielded,vesicles,nationalization,banja,rafts,motoring,luang,takeda,girder,stimulates,histone,sunda,nanoparticles,attains,jumpers,catalogued,alluding,pontus,ancients,examiners,shinkansen,ribbentrop,reimbursement,pharmacological,ramat,stringed,imposes,cheaply,transplanted,taiping,mizoram,looms,wallabies,sideman,kootenay,encased,sportsnet,revolutionized,tangier,benthic,runic,pakistanis,heatseekers,shyam,mishnah,presbyterians,stadt,sutras,straddles,zoroastrian,infer,fueling,gymnasts,ofcom,gunfight,journeyman,tracklist,oshawa,ps500,pa'in,mackinac,xiongnu,mississippian,breckinridge,freemason,bight,autoroute,liberalization,distantly,thrillers,solomons,presumptive,romanization,anecdotal,bohemians,unpaved,milder,concurred,spinners,alphabets,strenuous,rivieres,kerrang,mistreatment,dismounted,intensively,carlist,dancehall,shunting,pluralism,trafficked,brokered,bonaventure,bromide,neckar,designates,malian,reverses,sotheby,sorghum,serine,environmentalists,languedoc,consulship,metering,bankstown,handlers,militiamen,conforming,regularity,pondicherry,armin,capsized,consejo,capitalists,drogheda,granular,purged,acadians,endocrine,intramural,elicit,terns,orientations,miklos,omitting,apocryphal,slapstick,brecon,pliocene,affords,typography,emigre,tsarist,tomasz,beset,nishi,necessitating,encyclical,roleplaying,journeyed,inflow,sprints,progressives,novosibirsk,cameroonian,ephesus,speckled,kinshasa,freiherr,burnaby,dalmatian,torrential,rigor,renegades,bhakti,nurburgring,cosimo,convincingly,reverting,visayas,lewisham,charlottetown,charadriiformesfamily,transferable,jodhpur,converters,deepening,camshaft,underdeveloped,protease,polonia,uterine,quantify,tobruk,dealerships,narasimha,fortran,inactivity,1780s,victors,categorised,naxos,workstation,skink,sardinian,chalice,precede,dammed,sondheim,phineas,tutored,sourcing,uncompromising,placer,tyneside,courtiers,proclaims,pharmacies,hyogo,booksellers,sengoku,kursk,spectrometer,countywide,wielkopolski,bobsleigh,shetty,llywelyn,consistory,heretics,guinean,cliches,individualism,monolithic,imams,usability,bursa,deliberations,railings,torchwood,inconsistency,balearic,stabilizer,demonstrator,facet,radioactivity,outboard,educates,d'oyly,heretical,handover,jurisdictional,shockwave,hispaniola,conceptually,routers,unaffiliated,trentino,formula_33,cypriots,intervenes,neuchatel,formulating,maggiore,delisted,alcohols,thessaly,potable,estimator,suborder,fluency,mimicry,clergymen,infrastructures,rivals.com,baroda,subplot,majlis,plano,clinching,connotation,carinae,savile,intercultural,transcriptional,sandstones,ailerons,annotations,impresario,heinkel,scriptural,intermodal,astrological,ribbed,northeastward,posited,boers,utilise,kalmar,phylum,breakwater,skype,textured,guideline,azeri,rimini,massed,subsidence,anomalous,wolfsburg,polyphonic,accrediting,vodacom,kirov,captaining,kelantan,logie,fervent,eamon,taper,bundeswehr,disproportionately,divination,slobodan,pundits,hispano,kinetics,reunites,makati,ceasing,statistician,amending,chiltern,eparchy,riverine,melanoma,narragansett,pagans,raged,toppled,breaching,zadar,holby,dacian,ochre,velodrome,disparities,amphoe,sedans,webpage,williamsport,lachlan,groton,baring,swastika,heliport,unwillingness,razorbacks,exhibitors,foodstuffs,impacting,tithe,appendages,dermot,subtypes,nurseries,balinese,simulating,stary,remakes,mundi,chautauqua,geologically,stockade,hakka,dilute,kalimantan,pahang,overlapped,fredericton,baha'u'llah,jahangir,damping,benefactors,shomali,triumphal,cieszyn,paradigms,shielded,reggaeton,maharishi,zambian,shearing,golestan,mirroring,partitioning,flyover,songbook,incandescent,merrimack,huguenots,sangeet,vulnerabilities,trademarked,drydock,tantric,honoris,queenstown,labelling,iterative,enlists,statesmen,anglicans,herge,qinghai,burgundian,islami,delineated,zhuge,aggregated,banknote,qatari,suitably,tapestries,asymptotic,charleroi,majorities,pyramidellidae,leanings,climactic,tahir,ramsar,suppressor,revisionist,trawler,ernakulam,penicillium,categorization,slits,entitlement,collegium,earths,benefice,pinochet,puritans,loudspeaker,stockhausen,eurocup,roskilde,alois,jaroslav,rhondda,boutiques,vigor,neurotransmitter,ansar,malden,ferdinando,sported,relented,intercession,camberwell,wettest,thunderbolts,positional,oriel,cloverleaf,penalized,shoshone,rajkumar,completeness,sharjah,chromosomal,belgians,woolen,ultrasonic,sequentially,boleyn,mordella,microsystems,initiator,elachista,mineralogy,rhododendron,integrals,compostela,hamza,sawmills,stadio,berlioz,maidens,stonework,yachting,tappeh,myocardial,laborer,workstations,costumed,nicaea,lanark,roundtable,mashhad,nablus,algonquian,stuyvesant,sarkar,heroines,diwan,laments,intonation,intrigues,almaty,feuded,grandes,algarve,rehabilitate,macrophages,cruciate,dismayed,heuristic,eliezer,kozhikode,covalent,finalised,dimorphism,yaroslavl,overtaking,leverkusen,middlebury,feeders,brookings,speculates,insoluble,lodgings,jozsef,cysteine,shenyang,habilitation,spurious,brainchild,mtdna,comique,albedo,recife,partick,broadening,shahi,orientated,himalaya,swabia,palme,mennonites,spokeswoman,conscripts,sepulchre,chartres,eurozone,scaffold,invertebrate,parishad,bagan,heian,watercolors,basse,supercomputer,commences,tarragona,plainfield,arthurian,functor,identically,murex,chronicling,pressings,burrowing,histoire,guayaquil,goalkeeping,differentiable,warburg,machining,aeneas,kanawha,holocene,ramesses,reprisal,qingdao,avatars,turkestan,cantatas,besieging,repudiated,teamsters,equipping,hydride,ahmadiyya,euston,bottleneck,computations,terengganu,kalinga,stela,rediscovery,'this,azhar,stylised,karelia,polyethylene,kansai,motorised,lounges,normalization,calculators,1700s,goalkeepers,unfolded,commissary,cubism,vignettes,multiverse,heaters,briton,sparingly,childcare,thorium,plock,riksdag,eunuchs,catalysis,limassol,perce,uncensored,whitlam,ulmus,unites,mesopotamian,refraction,biodiesel,forza,fulda,unseated,mountbatten,shahrak,selenium,osijek,mimicking,antimicrobial,axons,simulcasting,donizetti,swabian,sportsmen,hafiz,neared,heraclius,locates,evaded,subcarpathian,bhubaneswar,negeri,jagannath,thaksin,aydin,oromo,lateran,goldsmiths,multiculturalism,cilia,mihai,evangelists,lorient,qajar,polygons,vinod,mechanised,anglophone,prefabricated,mosses,supervillain,airliners,biofuels,iodide,innovators,valais,wilberforce,logarithm,intelligentsia,dissipation,sanctioning,duchies,aymara,porches,simulators,mostar,telepathic,coaxial,caithness,burghs,fourths,stratification,joaquim,scribes,meteorites,monarchist,germination,vries,desiring,replenishment,istria,winemaking,tammany,troupes,hetman,lanceolate,pelagic,triptych,primeira,scant,outbound,hyphae,denser,bentham,basie,normale,executes,ladislaus,kontinental,herat,cruiserweight,activision,customization,manoeuvres,inglewood,northwood,waveform,investiture,inpatient,alignments,kiryat,rabat,archimedes,ustad,monsanto,archetypal,kirkby,sikhism,correspondingly,catskill,overlaid,petrels,widowers,unicameral,federalists,metalcore,gamerankings,mussel,formula_34,lymphocytes,cystic,southgate,vestiges,immortals,kalam,strove,amazons,pocono,sociologists,sopwith,adheres,laurens,caregivers,inspecting,transylvanian,rebroadcast,rhenish,miserables,pyrams,blois,newtonian,carapace,redshirt,gotland,nazir,unilever,distortions,linebackers,federalism,mombasa,lumen,bernoulli,favouring,aligarh,denounce,steamboats,dnieper,stratigraphic,synths,bernese,umass,icebreaker,guanajuato,heisenberg,boldly,diodes,ladakh,dogmatic,scriptwriter,maritimes,battlestar,symposia,adaptable,toluca,bhavan,nanking,ieyasu,picardy,soybean,adalbert,brompton,deutsches,brezhnev,glandular,laotian,hispanicized,ibadan,personification,dalit,yamuna,regio,dispensed,yamagata,zweibrucken,revising,fandom,stances,participle,flavours,khitan,vertebral,crores,mayaguez,dispensation,guntur,undefined,harpercollins,unionism,meena,leveling,philippa,refractory,telstra,judea,attenuation,pylons,elaboration,elegy,edging,gracillariidae,residencies,absentia,reflexive,deportations,dichotomy,stoves,sanremo,shimon,menachem,corneal,conifers,mordellidae,facsimile,diagnoses,cowper,citta,viticulture,divisive,riverview,foals,mystics,polyhedron,plazas,airspeed,redgrave,motherland,impede,multiplicity,barrichello,airships,pharmacists,harvester,clays,payloads,differentiating,popularize,caesars,tunneling,stagnant,circadian,indemnity,sensibilities,musicology,prefects,serfs,metra,lillehammer,carmarthenshire,kiosks,welland,barbican,alkyl,tillandsia,gatherers,asociacion,showings,bharati,brandywine,subversion,scalable,pfizer,dawla,barium,dardanelles,nsdap,konig,ayutthaya,hodgkin,sedimentation,completions,purchasers,sponsorships,maximizing,banked,taoism,minot,enrolls,fructose,aspired,capuchin,outages,artois,carrollton,totality,osceola,pawtucket,fontainebleau,converged,queretaro,competencies,botha,allotments,sheaf,shastri,obliquely,banding,catharines,outwardly,monchengladbach,driest,contemplative,cassini,ranga,pundit,kenilworth,tiananmen,disulfide,formula_35,townlands,codice_3,looping,caravans,rachmaninoff,segmentation,fluorine,anglicised,gnostic,dessau,discern,reconfigured,altrincham,rebounding,battlecruiser,ramblers,1770s,convective,triomphe,miyagi,mourners,instagram,aloft,breastfeeding,courtyards,folkestone,changsha,kumamoto,saarland,grayish,provisionally,appomattox,uncial,classicism,mahindra,elapsed,supremes,monophyletic,cautioned,formula_36,noblewoman,kernels,sucre,swaps,bengaluru,grenfell,epicenter,rockhampton,worshipful,licentiate,metaphorical,malankara,amputated,wattle,palawan,tankobon,nobunaga,polyhedra,transduction,jilin,syrians,affinities,fluently,emanating,anglicized,sportscar,botanists,altona,dravida,chorley,allocations,kunming,luanda,premiering,outlived,mesoamerica,lingual,dissipating,impairments,attenborough,balustrade,emulator,bakhsh,cladding,increments,ascents,workington,qal'eh,winless,categorical,petrel,emphasise,dormer,toros,hijackers,telescopic,solidly,jankovic,cession,gurus,madoff,newry,subsystems,northside,talib,englishmen,farnese,holographic,electives,argonne,scrivener,predated,brugge,nauvoo,catalyses,soared,siddeley,graphically,powerlifting,funicular,sungai,coercive,fusing,uncertainties,locos,acetic,diverge,wedgwood,dressings,tiebreaker,didactic,vyacheslav,acreage,interplanetary,battlecruisers,sunbury,alkaloids,hairpin,automata,wielkie,interdiction,plugins,monkees,nudibranch,esporte,approximations,disabling,powering,characterisation,ecologically,martinsville,termen,perpetuated,lufthansa,ascendancy,motherboard,bolshoi,athanasius,prunus,dilution,invests,nonzero,mendocino,charan,banque,shaheed,counterculture,unita,voivode,hospitalization,vapour,supermarine,resistor,steppes,osnabruck,intermediates,benzodiazepines,sunnyside,privatized,geopolitical,ponta,beersheba,kievan,embody,theoretic,sangh,cartographer,blige,rotors,thruway,battlefields,discernible,demobilized,broodmare,colouration,sagas,policymakers,serialization,augmentation,hoare,frankfurter,transnistria,kinases,detachable,generational,converging,antiaircraft,khaki,bimonthly,coadjutor,arkhangelsk,kannur,buffers,livonian,northwich,enveloped,cysts,yokozuna,herne,beeching,enron,virginian,woollen,excepting,competitively,outtakes,recombinant,hillcrest,clearances,pathe,cumbersome,brasov,u.s.a,likud,christiania,cruciform,hierarchies,wandsworth,lupin,resins,voiceover,sitar,electrochemical,mediacorp,typhus,grenadiers,hepatic,pompeii,weightlifter,bosniak,oxidoreductase,undersecretary,rescuers,ranji,seleucid,analysing,exegesis,tenancy,toure,kristiansand,110th,carillon,minesweepers,poitou,acceded,palladian,redevelop,naismith,rifled,proletariat,shojo,hackensack,harvests,endpoint,kuban,rosenborg,stonehenge,authorisation,jacobean,revocation,compatriots,colliding,undetermined,okayama,acknowledgment,angelou,fresnel,chahar,ethereal,mg/kg,emmet,mobilised,unfavourable,cultura,characterizing,parsonage,skeptics,expressways,rabaul,medea,guardsmen,visakhapatnam,caddo,homophobic,elmwood,encircling,coexistence,contending,seljuk,mycologist,infertility,moliere,insolvent,covenants,underpass,holme,landesliga,workplaces,delinquency,methamphetamine,contrived,tableau,tithes,overlying,usurped,contingents,spares,oligocene,molde,beatification,mordechai,balloting,pampanga,navigators,flowered,debutant,codec,orogeny,newsletters,solon,ambivalent,ubisoft,archdeaconry,harpers,kirkus,jabal,castings,kazhagam,sylhet,yuwen,barnstaple,amidships,causative,isuzu,watchtower,granules,canaveral,remuneration,insurer,payout,horizonte,integrative,attributing,kiwis,skanderbeg,asymmetry,gannett,urbanism,disassembled,unaltered,precluded,melodifestivalen,ascends,plugin,gurkha,bisons,stakeholder,industrialisation,abbotsford,sextet,bustling,uptempo,slavia,choreographers,midwives,haram,javed,gazetteer,subsection,natively,weighting,lysine,meera,redbridge,muchmusic,abruzzo,adjoins,unsustainable,foresters,kbit/s,cosmopterigidae,secularism,poetics,causality,phonograph,estudiantes,ceausescu,universitario,adjoint,applicability,gastropods,nagaland,kentish,mechelen,atalanta,woodpeckers,lombards,gatineau,romansh,avraham,acetylcholine,perturbation,galois,wenceslaus,fuzhou,meandering,dendritic,sacristy,accented,katha,therapeutics,perceives,unskilled,greenhouses,analogues,chaldean,timbre,sloped,volodymyr,sadiq,maghreb,monogram,rearguard,caucuses,mures,metabolite,uyezd,determinism,theosophical,corbet,gaels,disruptions,bicameral,ribosomal,wolseley,clarksville,watersheds,tarsi,radon,milanese,discontinuous,aristotelian,whistleblower,representational,hashim,modestly,localised,atrial,hazara,ravana,troyes,appointees,rubus,morningside,amity,aberdare,ganglia,wests,zbigniew,aerobatic,depopulated,corsican,introspective,twinning,hardtop,shallower,cataract,mesolithic,emblematic,graced,lubrication,republicanism,voronezh,bastions,meissen,irkutsk,oboes,hokkien,sprites,tenet,individualist,capitulated,oakville,dysentery,orientalist,hillsides,keywords,elicited,incised,lagging,apoel,lengthening,attractiveness,marauders,sportswriter,decentralization,boltzmann,contradicts,draftsman,precipitate,solihull,norske,consorts,hauptmann,riflemen,adventists,syndromes,demolishing,customize,continuo,peripherals,seamlessly,linguistically,bhushan,orphanages,paraul,lessened,devanagari,quarto,responders,patronymic,riemannian,altoona,canonization,honouring,geodetic,exemplifies,republica,enzymatic,porters,fairmount,pampa,sufferers,kamchatka,conjugated,coachella,uthman,repositories,copious,headteacher,awami,phoneme,homomorphism,franconian,moorland,davos,quantified,kamloops,quarks,mayoralty,weald,peacekeepers,valerian,particulate,insiders,perthshire,caches,guimaraes,piped,grenadines,kosciuszko,trombonist,artemisia,covariance,intertidal,soybeans,beatified,ellipse,fruiting,deafness,dnipropetrovsk,accrued,zealous,mandala,causation,junius,kilowatt,bakeries,montpelier,airdrie,rectified,bungalows,toleration,debian,pylon,trotskyist,posteriorly,two-and-a-half,herbivorous,islamists,poetical,donne,wodehouse,frome,allium,assimilate,phonemic,minaret,unprofitable,darpa,untenable,leaflet,bitcoin,zahir,thresholds,argentino,jacopo,bespoke,stratified,wellbeing,shiite,basaltic,timberwolves,secrete,taunts,marathons,isomers,carre,consecrators,penobscot,pitcairn,sakha,crosstown,inclusions,impassable,fenders,indre,uscgc,jordi,retinue,logarithmic,pilgrimages,railcar,cashel,blackrock,macroscopic,aligning,tabla,trestle,certify,ronson,palps,dissolves,thickened,silicate,taman,walsingham,hausa,lowestoft,rondo,oleksandr,cuyahoga,retardation,countering,cricketing,holborn,identifiers,hells,geophysics,infighting,sculpting,balaji,webbed,irradiation,runestone,trusses,oriya,sojourn,forfeiture,colonize,exclaimed,eucharistic,lackluster,glazing,northridge,gutenberg,stipulates,macroeconomic,priori,outermost,annular,udinese,insulating,headliner,godel,polytope,megalithic,salix,sharapova,derided,muskegon,braintree,plateaus,confers,autocratic,isomer,interstitial,stamping,omits,kirtland,hatchery,evidences,intifada,111th,podgorica,capua,motivating,nuneaton,jakub,korsakov,amitabh,mundial,monrovia,gluten,predictor,marshalling,d'orleans,levers,touchscreen,brantford,fricative,banishment,descendent,antagonism,ludovico,loudspeakers,formula_37,livelihoods,manassas,steamships,dewsbury,uppermost,humayun,lures,pinnacles,dependents,lecce,clumps,observatories,paleozoic,dedicating,samiti,draughtsman,gauls,incite,infringing,nepean,pythagorean,convents,triumvirate,seigneur,gaiman,vagrant,fossa,byproduct,serrated,renfrewshire,sheltering,achaemenid,dukedom,catchers,sampdoria,platelet,bielefeld,fluctuating,phenomenology,strikeout,ethnology,prospectors,woodworking,tatra,wildfires,meditations,agrippa,fortescue,qureshi,wojciech,methyltransferase,accusative,saatchi,amerindian,volcanism,zeeland,toyama,vladimirovich,allege,polygram,redox,budgeted,advisories,nematode,chipset,starscream,tonbridge,hardening,shales,accompanist,paraded,phonographic,whitefish,sportive,audiobook,kalisz,hibernation,latif,duels,ps200,coxeter,nayak,safeguarding,cantabria,minesweeping,zeiss,dunams,catholicos,sawtooth,ontological,nicobar,bridgend,unclassified,intrinsically,hanoverian,rabbitohs,kenseth,alcalde,northumbrian,raritan,septuagint,presse,sevres,origen,dandenong,peachtree,intersected,impeded,usages,hippodrome,novara,trajectories,customarily,yardage,inflected,yanow,kalan,taverns,liguria,librettist,intermarriage,1760s,courant,gambier,infanta,ptolemaic,ukulele,haganah,sceptical,manchukuo,plexus,implantation,hilal,intersex,efficiencies,arbroath,hagerstown,adelphi,diario,marais,matti,lifes,coining,modalities,divya,bletchley,conserving,ivorian,mithridates,generative,strikeforce,laymen,toponymy,pogrom,satya,meticulously,agios,dufferin,yaakov,fortnightly,cargoes,deterrence,prefrontal,przemysl,mitterrand,commemorations,chatsworth,gurdwara,abuja,chakraborty,badajoz,geometries,artiste,diatonic,ganglion,presides,marymount,nanak,cytokines,feudalism,storks,rowers,widens,politico,evangelicals,assailants,pittsfield,allowable,bijapur,telenovelas,dichomeris,glenelg,herbivores,keita,inked,radom,fundraisers,constantius,boheme,portability,komnenos,crystallography,derrida,moderates,tavistock,fateh,spacex,disjoint,bristles,commercialized,interwoven,empirically,regius,bulacan,newsday,showa,radicalism,yarrow,pleura,sayed,structuring,cotes,reminiscences,acetyl,edicts,escalators,aomori,encapsulated,legacies,bunbury,placings,fearsome,postscript,powerfully,keighley,hildesheim,amicus,crevices,deserters,benelux,aurangabad,freeware,ioannis,carpathians,chirac,seceded,prepaid,landlocked,naturalised,yanukovych,soundscan,blotch,phenotypic,determinants,twente,dictatorial,giessen,composes,recherche,pathophysiology,inventories,ayurveda,elevating,gravestone,degeneres,vilayet,popularizing,spartanburg,bloemfontein,previewed,renunciation,genotype,ogilvy,tracery,blacklisted,emissaries,diploid,disclosures,tupolev,shinjuku,antecedents,pennine,braganza,bhattacharya,countable,spectroscopic,ingolstadt,theseus,corroborated,compounding,thrombosis,extremadura,medallions,hasanabad,lambton,perpetuity,glycol,besancon,palaiologos,pandey,caicos,antecedent,stratum,laserdisc,novitiate,crowdfunding,palatal,sorceress,dassault,toughness,celle,cezanne,vientiane,tioga,hander,crossbar,gisborne,cursor,inspectorate,serif,praia,sphingidae,nameplate,psalter,ivanovic,sitka,equalised,mutineers,sergius,outgrowth,creationism,haredi,rhizomes,predominate,undertakings,vulgate,hydrothermal,abbeville,geodesic,kampung,physiotherapy,unauthorised,asteraceae,conservationist,minoan,supersport,mohammadabad,cranbrook,mentorship,legitimately,marshland,datuk,louvain,potawatomi,carnivores,levies,lyell,hymnal,regionals,tinto,shikoku,conformal,wanganui,beira,lleida,standstill,deloitte,formula_40,corbusier,chancellery,mixtapes,airtime,muhlenberg,formula_39,bracts,thrashers,prodigious,gironde,chickamauga,uyghurs,substitutions,pescara,batangas,gregarious,gijon,paleo,mathura,pumas,proportionally,hawkesbury,yucca,kristiania,funimation,fluted,eloquence,mohun,aftermarket,chroniclers,futurist,nonconformist,branko,mannerisms,lesnar,opengl,altos,retainers,ashfield,shelbourne,sulaiman,divisie,gwent,locarno,lieder,minkowski,bivalve,redeployed,cartography,seaway,bookings,decays,ostend,antiquaries,pathogenesis,formula_38,chrysalis,esperance,valli,motogp,homelands,bridged,bloor,ghazal,vulgaris,baekje,prospector,calculates,debtors,hesperiidae,titian,returner,landgrave,frontenac,kelowna,pregame,castelo,caius,canoeist,watercolours,winterthur,superintendents,dissonance,dubstep,adorn,matic,salih,hillel,swordsman,flavoured,emitter,assays,monongahela,deeded,brazzaville,sufferings,babylonia,fecal,umbria,astrologer,gentrification,frescos,phasing,zielona,ecozone,candido,manoj,quadrilateral,gyula,falsetto,prewar,puntland,infinitive,contraceptive,bakhtiari,ohrid,socialization,tailplane,evoking,havelock,macapagal,plundering,104th,keynesian,templars,phrasing,morphologically,czestochowa,humorously,catawba,burgas,chiswick,ellipsoid,kodansha,inwards,gautama,katanga,orthopaedic,heilongjiang,sieges,outsourced,subterminal,vijayawada,hares,oration,leitrim,ravines,manawatu,cryogenic,tracklisting,about.com,ambedkar,degenerated,hastened,venturing,lobbyists,shekhar,typefaces,northcote,rugen,'good,ornithology,asexual,hemispheres,unsupported,glyphs,spoleto,epigenetic,musicianship,donington,diogo,kangxi,bisected,polymorphism,megawatt,salta,embossed,cheetahs,cruzeiro,unhcr,aristide,rayleigh,maturing,indonesians,noire,llano,ffffff,camus,purges,annales,convair,apostasy,algol,phage,apaches,marketers,aldehyde,pompidou,kharkov,forgeries,praetorian,divested,retrospectively,gornji,scutellum,bitumen,pausanias,magnification,imitations,nyasaland,geographers,floodlights,athlone,hippolyte,expositions,clarinetist,razak,neutrinos,rotax,sheykh,plush,interconnect,andalus,cladogram,rudyard,resonator,granby,blackfriars,placido,windscreen,sahel,minamoto,haida,cations,emden,blackheath,thematically,blacklist,pawel,disseminating,academical,undamaged,raytheon,harsher,powhatan,ramachandran,saddles,paderborn,capping,zahra,prospecting,glycine,chromatin,profane,banska,helmand,okinawan,dislocation,oscillators,insectivorous,foyle,gilgit,autonomic,tuareg,sluice,pollinated,multiplexed,granary,narcissus,ranchi,staines,nitra,goalscoring,midwifery,pensioners,algorithmic,meetinghouse,biblioteca,besar,narva,angkor,predate,lohan,cyclical,detainee,occipital,eventing,faisalabad,dartmoor,kublai,courtly,resigns,radii,megachilidae,cartels,shortfall,xhosa,unregistered,benchmarks,dystopian,bulkhead,ponsonby,jovanovic,accumulates,papuan,bhutanese,intuitively,gotaland,headliners,recursion,dejan,novellas,diphthongs,imbued,withstood,analgesic,amplify,powertrain,programing,maidan,alstom,affirms,eradicated,summerslam,videogame,molla,severing,foundered,gallium,atmospheres,desalination,shmuel,howmeh,catolica,bossier,reconstructing,isolates,lyase,tweets,unconnected,tidewater,divisible,cohorts,orebro,presov,furnishing,folklorist,simplifying,centrale,notations,factorization,monarchies,deepen,macomb,facilitation,hennepin,declassified,redrawn,microprocessors,preliminaries,enlarging,timeframe,deutschen,shipbuilders,patiala,ferrous,aquariums,genealogies,vieux,unrecognized,bridgwater,tetrahedral,thule,resignations,gondwana,registries,agder,dataset,felled,parva,analyzer,worsen,coleraine,columella,blockaded,polytechnique,reassembled,reentry,narvik,greys,nigra,knockouts,bofors,gniezno,slotted,hamasaki,ferrers,conferring,thirdly,domestication,photojournalist,universality,preclude,ponting,halved,thereupon,photosynthetic,ostrava,mismatch,pangasinan,intermediaries,abolitionists,transited,headings,ustase,radiological,interconnection,dabrowa,invariants,honorius,preferentially,chantilly,marysville,dialectical,antioquia,abstained,gogol,dirichlet,muricidae,symmetries,reproduces,brazos,fatwa,bacillus,ketone,paribas,chowk,multiplicative,dermatitis,mamluks,devotes,adenosine,newbery,meditative,minefields,inflection,oxfam,conwy,bystrica,imprints,pandavas,infinitesimal,conurbation,amphetamine,reestablish,furth,edessa,injustices,frankston,serjeant,4x200,khazar,sihanouk,longchamp,stags,pogroms,coups,upperparts,endpoints,infringed,nuanced,summing,humorist,pacification,ciaran,jamaat,anteriorly,roddick,springboks,faceted,hypoxia,rigorously,cleves,fatimid,ayurvedic,tabled,ratna,senhora,maricopa,seibu,gauguin,holomorphic,campgrounds,amboy,coordinators,ponderosa,casemates,ouachita,nanaimo,mindoro,zealander,rimsky,cluny,tomaszow,meghalaya,caetano,tilak,roussillon,landtag,gravitation,dystrophy,cephalopods,trombones,glens,killarney,denominated,anthropogenic,pssas,roubaix,carcasses,montmorency,neotropical,communicative,rabindranath,ordinated,separable,overriding,surged,sagebrush,conciliation,codice_4,durrani,phosphatase,qadir,votive,revitalized,taiyuan,tyrannosaurus,graze,slovaks,nematodes,environmentalism,blockhouse,illiteracy,schengen,ecotourism,alternation,conic,wields,hounslow,blackfoot,kwame,ambulatory,volhynia,hordaland,croton,piedras,rohit,drava,conceptualized,birla,illustrative,gurgaon,barisal,tutsi,dezong,nasional,polje,chanson,clarinets,krasnoyarsk,aleksandrovich,cosmonaut,d'este,palliative,midseason,silencing,wardens,durer,girders,salamanders,torrington,supersonics,lauda,farid,circumnavigation,embankments,funnels,bajnoksag,lorries,cappadocia,jains,warringah,retirees,burgesses,equalization,cusco,ganesan,algal,amazonian,lineups,allocating,conquerors,usurper,mnemonic,predating,brahmaputra,ahmadabad,maidenhead,numismatic,subregion,encamped,reciprocating,freebsd,irgun,tortoises,governorates,zionists,airfoil,collated,ajmer,fiennes,etymological,polemic,chadian,clerestory,nordiques,fluctuated,calvados,oxidizing,trailhead,massena,quarrels,dordogne,tirunelveli,pyruvate,pulsed,athabasca,sylar,appointee,serer,japonica,andronikos,conferencing,nicolaus,chemin,ascertained,incited,woodbine,helices,hospitalised,emplacements,to/from,orchestre,tyrannical,pannonia,methodism,pop/rock,shibuya,berbers,despot,seaward,westpac,separator,perpignan,alamein,judeo,publicize,quantization,ethniki,gracilis,menlo,offside,oscillating,unregulated,succumbing,finnmark,metrical,suleyman,raith,sovereigns,bundesstrasse,kartli,fiduciary,darshan,foramen,curler,concubines,calvinism,larouche,bukhara,sophomores,mohanlal,lutheranism,monomer,eamonn,'black,uncontested,immersive,tutorials,beachhead,bindings,permeable,postulates,comite,transformative,indiscriminate,hofstra,associacao,amarna,dermatology,lapland,aosta,babur,unambiguous,formatting,schoolboys,gwangju,superconducting,replayed,adherent,aureus,compressors,forcible,spitsbergen,boulevards,budgeting,nossa,annandale,perumal,interregnum,sassoon,kwajalein,greenbrier,caldas,triangulation,flavius,increment,shakhtar,nullified,pinfall,nomen,microfinance,depreciation,cubist,steeper,splendour,gruppe,everyman,chasers,campaigners,bridle,modality,percussive,darkly,capes,velar,picton,triennial,factional,padang,toponym,betterment,norepinephrine,112th,estuarine,diemen,warehousing,morphism,ideologically,pairings,immunization,crassus,exporters,sefer,flocked,bulbous,deseret,booms,calcite,bohol,elven,groot,pulau,citigroup,wyeth,modernizing,layering,pastiche,complies,printmaker,condenser,theropod,cassino,oxyrhynchus,akademie,trainings,lowercase,coxae,parte,chetniks,pentagonal,keselowski,monocoque,morsi,reticulum,meiosis,clapboard,recoveries,tinge,an/fps,revista,sidon,livre,epidermis,conglomerates,kampong,congruent,harlequins,tergum,simplifies,epidemiological,underwriting,tcp/ip,exclusivity,multidimensional,mysql,columbine,ecologist,hayat,sicilies,levees,handset,aesop,usenet,pacquiao,archiving,alexandrian,compensatory,broadsheet,annotation,bahamian,d'affaires,interludes,phraya,shamans,marmara,customizable,immortalized,ambushes,chlorophyll,diesels,emulsion,rheumatoid,voluminous,screenwriters,tailoring,sedis,runcorn,democratization,bushehr,anacostia,constanta,antiquary,sixtus,radiate,advaita,antimony,acumen,barristers,reichsbahn,ronstadt,symbolist,pasig,cursive,secessionist,afrikaner,munnetra,inversely,adsorption,syllabic,moltke,idioms,midline,olimpico,diphosphate,cautions,radziwill,mobilisation,copelatus,trawlers,unicron,bhaskar,financiers,minimalism,derailment,marxists,oireachtas,abdicate,eigenvalue,zafar,vytautas,ganguly,chelyabinsk,telluride,subordination,ferried,dived,vendee,pictish,dimitrov,expiry,carnation,cayley,magnitudes,lismore,gretna,sandwiched,unmasked,sandomierz,swarthmore,tetra,nanyang,pevsner,dehradun,mormonism,rashi,complying,seaplanes,ningbo,cooperates,strathcona,mornington,mestizo,yulia,edgbaston,palisade,ethno,polytopes,espirito,tymoshenko,pronunciations,paradoxical,taichung,chipmunks,erhard,maximise,accretion,kanda,`abdu'l,narrowest,umpiring,mycenaean,divisor,geneticist,ceredigion,barque,hobbyists,equates,auxerre,spinose,cheil,sweetwater,guano,carboxylic,archiv,tannery,cormorant,agonists,fundacion,anbar,tunku,hindrance,meerut,concordat,secunderabad,kachin,achievable,murfreesboro,comprehensively,forges,broadest,synchronised,speciation,scapa,aliyev,conmebol,tirelessly,subjugated,pillaged,udaipur,defensively,lakhs,stateless,haasan,headlamps,patterning,podiums,polyphony,mcmurdo,mujer,vocally,storeyed,mucosa,multivariate,scopus,minimizes,formalised,certiorari,bourges,populate,overhanging,gaiety,unreserved,borromeo,woolworths,isotopic,bashar,purify,vertebra,medan,juxtaposition,earthwork,elongation,chaudhary,schematic,piast,steeped,nanotubes,fouls,achaea,legionnaires,abdur,qmjhl,embraer,hardback,centerville,ilocos,slovan,whitehorse,mauritian,moulding,mapuche,donned,provisioning,gazprom,jonesboro,audley,lightest,calyx,coldwater,trigonometric,petroglyphs,psychoanalyst,congregate,zambezi,fissure,supervises,bexley,etobicoke,wairarapa,tectonics,emphasises,formula_41,debugging,linfield,spatially,ionizing,ungulates,orinoco,clades,erlangen,news/talk,vols.,ceara,yakovlev,finsbury,entanglement,fieldhouse,graphene,intensifying,grigory,keyong,zacatecas,ninian,allgemeine,keswick,societa,snorri,femininity,najib,monoclonal,guyanese,postulate,huntly,abbeys,machinist,yunus,emphasising,ishaq,urmia,bremerton,pretenders,lumiere,thoroughfares,chikara,dramatized,metathorax,taiko,transcendence,wycliffe,retrieves,umpired,steuben,racehorses,taylors,kuznetsov,montezuma,precambrian,canopies,gaozong,propodeum,disestablished,retroactive,shoreham,rhizome,doubleheader,clinician,diwali,quartzite,shabaab,agassiz,despatched,stormwater,luxemburg,callao,universidade,courland,skane,glyph,dormers,witwatersrand,curacy,qualcomm,nansen,entablature,lauper,hausdorff,lusaka,ruthenian,360deg,cityscape,douai,vaishnava,spars,vaulting,rationalist,gygax,sequestration,typology,pollinates,accelerators,leben,colonials,cenotaph,imparted,carthaginians,equaled,rostrum,gobind,bodhisattva,oberst,bicycling,arabi,sangre,biophysics,hainaut,vernal,lunenburg,apportioned,finches,lajos,nenad,repackaged,zayed,nikephoros,r.e.m,swaminarayan,gestalt,unplaced,crags,grohl,sialkot,unsaturated,gwinnett,linemen,forays,palakkad,writs,instrumentalists,aircrews,badged,terrapins,180deg,oneness,commissariat,changi,pupation,circumscribed,contador,isotropic,administrated,fiefs,nimes,intrusions,minoru,geschichte,nadph,tainan,changchun,carbondale,frisia,swapo,evesham,hawai'i,encyclopedic,transporters,dysplasia,formula_42,onsite,jindal,guetta,judgements,narbonne,permissions,paleogene,rationalism,vilna,isometric,subtracted,chattahoochee,lamina,missa,greville,pervez,lattices,persistently,crystallization,timbered,hawaiians,fouling,interrelated,masood,ripening,stasi,gamal,visigothic,warlike,cybernetics,tanjung,forfar,cybernetic,karelian,brooklands,belfort,greifswald,campeche,inexplicably,refereeing,understory,uninterested,prius,collegiately,sefid,sarsfield,categorize,biannual,elsevier,eisteddfod,declension,autonoma,procuring,misrepresentation,novelization,bibliographic,shamanism,vestments,potash,eastleigh,ionized,turan,lavishly,scilly,balanchine,importers,parlance,'that,kanyakumari,synods,mieszko,crossovers,serfdom,conformational,legislated,exclave,heathland,sadar,differentiates,propositional,konstantinos,photoshop,manche,vellore,appalachia,orestes,taiga,exchanger,grozny,invalidated,baffin,spezia,staunchly,eisenach,robustness,virtuosity,ciphers,inlets,bolagh,understandings,bosniaks,parser,typhoons,sinan,luzerne,webcomic,subtraction,jhelum,businessweek,ceske,refrained,firebox,mitigated,helmholtz,dilip,eslamabad,metalwork,lucan,apportionment,provident,gdynia,schooners,casement,danse,hajjiabad,benazir,buttress,anthracite,newsreel,wollaston,dispatching,cadastral,riverboat,provincetown,nantwich,missal,irreverent,juxtaposed,darya,ennobled,electropop,stereoscopic,maneuverability,laban,luhansk,udine,collectibles,haulage,holyrood,materially,supercharger,gorizia,shkoder,townhouses,pilate,layoffs,folkloric,dialectic,exuberant,matures,malla,ceuta,citizenry,crewed,couplet,stopover,transposition,tradesmen,antioxidant,amines,utterance,grahame,landless,isere,diction,appellant,satirist,urbino,intertoto,subiaco,antonescu,nehemiah,ubiquitin,emcee,stourbridge,fencers,103rd,wranglers,monteverdi,watertight,expounded,xiamen,manmohan,pirie,threefold,antidepressant,sheboygan,grieg,cancerous,diverging,bernini,polychrome,fundamentalism,bihari,critiqued,cholas,villers,tendulkar,dafydd,vastra,fringed,evangelization,episcopalian,maliki,sana'a,ashburton,trianon,allegany,heptathlon,insufficiently,panelists,pharrell,hexham,amharic,fertilized,plumes,cistern,stratigraphy,akershus,catalans,karoo,rupee,minuteman,quantification,wigmore,leutnant,metanotum,weeknights,iridescent,extrasolar,brechin,deuterium,kuching,lyricism,astrakhan,brookhaven,euphorbia,hradec,bhagat,vardar,aylmer,positron,amygdala,speculators,unaccompanied,debrecen,slurry,windhoek,disaffected,rapporteur,mellitus,blockers,fronds,yatra,sportsperson,precession,physiologist,weeknight,pidgin,pharma,condemns,standardize,zetian,tibor,glycoprotein,emporia,cormorants,amalie,accesses,leonhard,denbighshire,roald,116th,will.i.am,symbiosis,privatised,meanders,chemnitz,jabalpur,shing,secede,ludvig,krajina,homegrown,snippets,sasanian,euripides,peder,cimarron,streaked,graubunden,kilimanjaro,mbeki,middleware,flensburg,bukovina,lindwall,marsalis,profited,abkhaz,polis,camouflaged,amyloid,morgantown,ovoid,bodleian,morte,quashed,gamelan,juventud,natchitoches,storyboard,freeview,enumeration,cielo,preludes,bulawayo,1600s,olympiads,multicast,faunal,asura,reinforces,puranas,ziegfeld,handicraft,seamount,kheil,noche,hallmarks,dermal,colorectal,encircle,hessen,umbilicus,sunnis,leste,unwin,disclosing,superfund,montmartre,refuelling,subprime,kolhapur,etiology,bismuth,laissez,vibrational,mazar,alcoa,rumsfeld,recurve,ticonderoga,lionsgate,onlookers,homesteads,filesystem,barometric,kingswood,biofuel,belleza,moshav,occidentalis,asymptomatic,northeasterly,leveson,huygens,numan,kingsway,primogeniture,toyotomi,yazoo,limpets,greenbelt,booed,concurrence,dihedral,ventrites,raipur,sibiu,plotters,kitab,109th,trackbed,skilful,berthed,effendi,fairing,sephardi,mikhailovich,lockyer,wadham,invertible,paperbacks,alphabetic,deuteronomy,constitutive,leathery,greyhounds,estoril,beechcraft,poblacion,cossidae,excreted,flamingos,singha,olmec,neurotransmitters,ascoli,nkrumah,forerunners,dualism,disenchanted,benefitted,centrum,undesignated,noida,o'donoghue,collages,egrets,egmont,wuppertal,cleave,montgomerie,pseudomonas,srinivasa,lymphatic,stadia,resold,minima,evacuees,consumerism,ronde,biochemist,automorphism,hollows,smuts,improvisations,vespasian,bream,pimlico,eglin,colne,melancholic,berhad,ousting,saale,notaulices,ouest,hunslet,tiberias,abdomina,ramsgate,stanislas,donbass,pontefract,sucrose,halts,drammen,chelm,l'arc,taming,trolleys,konin,incertae,licensees,scythian,giorgos,dative,tanglewood,farmlands,o'keeffe,caesium,romsdal,amstrad,corte,oglethorpe,huntingdonshire,magnetization,adapts,zamosc,shooto,cuttack,centrepiece,storehouse,winehouse,morbidity,woodcuts,ryazan,buddleja,buoyant,bodmin,estero,austral,verifiable,periyar,christendom,curtail,shura,kaifeng,cotswold,invariance,seafaring,gorica,androgen,usman,seabird,forecourt,pekka,juridical,audacious,yasser,cacti,qianlong,polemical,d'amore,espanyol,distrito,cartographers,pacifism,serpents,backa,nucleophilic,overturning,duplicates,marksman,oriente,vuitton,oberleutnant,gielgud,gesta,swinburne,transfiguration,1750s,retaken,celje,fredrikstad,asuka,cropping,mansard,donates,blacksmiths,vijayanagara,anuradhapura,germinate,betis,foreshore,jalandhar,bayonets,devaluation,frazione,ablaze,abidjan,approvals,homeostasis,corollary,auden,superfast,redcliffe,luxembourgish,datum,geraldton,printings,ludhiana,honoree,synchrotron,invercargill,hurriedly,108th,three-and-a-half,colonist,bexar,limousin,bessemer,ossetian,nunataks,buddhas,rebuked,thais,tilburg,verdicts,interleukin,unproven,dordrecht,solent,acclamation,muammar,dahomey,operettas,4x400,arrears,negotiators,whitehaven,apparitions,armoury,psychoactive,worshipers,sculptured,elphinstone,airshow,kjell,o'callaghan,shrank,professorships,predominance,subhash,coulomb,sekolah,retrofitted,samos,overthrowing,vibrato,resistors,palearctic,datasets,doordarshan,subcutaneous,compiles,immorality,patchwork,trinidadian,glycogen,pronged,zohar,visigoths,freres,akram,justo,agora,intakes,craiova,playwriting,bukhari,militarism,iwate,petitioners,harun,wisla,inefficiency,vendome,ledges,schopenhauer,kashi,entombed,assesses,tenn.,noumea,baguio,carex,o'donovan,filings,hillsdale,conjectures,blotches,annuals,lindisfarne,negated,vivek,angouleme,trincomalee,cofactor,verkhovna,backfield,twofold,automaker,rudra,freighters,darul,gharana,busway,formula_43,plattsburgh,portuguesa,showrunner,roadmap,valenciennes,erdos,biafra,spiritualism,transactional,modifies,carne,107th,cocos,gcses,tiverton,radiotherapy,meadowlands,gunma,srebrenica,foxtel,authenticated,enslavement,classicist,klaipeda,minstrels,searchable,infantrymen,incitement,shiga,nadp+,urals,guilders,banquets,exteriors,counterattacks,visualized,diacritics,patrimony,svensson,transepts,prizren,telegraphy,najaf,emblazoned,coupes,effluent,ragam,omani,greensburg,taino,flintshire,cd/dvd,lobbies,narrating,cacao,seafarers,bicolor,collaboratively,suraj,floodlit,sacral,puppetry,tlingit,malwa,login,motionless,thien,overseers,vihar,golem,specializations,bathhouse,priming,overdubs,winningest,archetypes,uniao,acland,creamery,slovakian,lithographs,maryborough,confidently,excavating,stillborn,ramallah,audiencia,alava,ternary,hermits,rostam,bauxite,gawain,lothair,captions,gulfstream,timelines,receded,mediating,petain,bastia,rudbar,bidders,disclaimer,shrews,tailings,trilobites,yuriy,jamil,demotion,gynecology,rajinikanth,madrigals,ghazni,flycatchers,vitebsk,bizet,computationally,kashgar,refinements,frankford,heralds,europe/africa,levante,disordered,sandringham,queues,ransacked,trebizond,verdes,comedie,primitives,figurine,organists,culminate,gosport,coagulation,ferrying,hoyas,polyurethane,prohibitive,midfielders,ligase,progesterone,defectors,sweetened,backcountry,diodorus,waterside,nieuport,khwaja,jurong,decried,gorkha,ismaili,300th,octahedral,kindergartens,paseo,codification,notifications,disregarding,risque,reconquista,shortland,atolls,texarkana,perceval,d'etudes,kanal,herbicides,tikva,nuova,gatherer,dissented,soweto,dexterity,enver,bacharach,placekicker,carnivals,automate,maynooth,symplectic,chetnik,militaire,upanishads,distributive,strafing,championing,moiety,miliband,blackadder,enforceable,maung,dimer,stadtbahn,diverges,obstructions,coleophoridae,disposals,shamrocks,aural,banca,bahru,coxed,grierson,vanadium,watermill,radiative,ecoregions,berets,hariri,bicarbonate,evacuations,mallee,nairn,rushden,loggia,slupsk,satisfactorily,milliseconds,cariboo,reine,cyclo,pigmentation,postmodernism,aqueducts,vasari,bourgogne,dilemmas,liquefied,fluminense,alloa,ibaraki,tenements,kumasi,humerus,raghu,labours,putsch,soundcloud,bodybuilder,rakyat,domitian,pesaro,translocation,sembilan,homeric,enforcers,tombstones,lectureship,rotorua,salamis,nikolaos,inferences,superfortress,lithgow,surmised,undercard,tarnow,barisan,stingrays,federacion,coldstream,haverford,ornithological,heerenveen,eleazar,jyoti,murali,bamako,riverbed,subsidised,theban,conspicuously,vistas,conservatorium,madrasa,kingfishers,arnulf,credential,syndicalist,sheathed,discontinuity,prisms,tsushima,coastlines,escapees,vitis,optimizing,megapixel,overground,embattled,halide,sprinters,buoys,mpumalanga,peculiarities,106th,roamed,menezes,macao,prelates,papyri,freemen,dissertations,irishmen,pooled,sverre,reconquest,conveyance,subjectivity,asturian,circassian,formula_45,comdr,thickets,unstressed,monro,passively,harmonium,moveable,dinar,carlsson,elysees,chairing,b'nai,confusingly,kaoru,convolution,godolphin,facilitator,saxophones,eelam,jebel,copulation,anions,livres,licensure,pontypridd,arakan,controllable,alessandria,propelling,stellenbosch,tiber,wolka,liberators,yarns,d'azur,tsinghua,semnan,amhara,ablation,melies,tonality,historique,beeston,kahne,intricately,sonoran,robespierre,gyrus,boycotts,defaulted,infill,maranhao,emigres,framingham,paraiba,wilhelmshaven,tritium,skyway,labial,supplementation,possessor,underserved,motets,maldivian,marrakech,quays,wikimedia,turbojet,demobilization,petrarch,encroaching,sloops,masted,karbala,corvallis,agribusiness,seaford,stenosis,hieronymus,irani,superdraft,baronies,cortisol,notability,veena,pontic,cyclin,archeologists,newham,culled,concurring,aeolian,manorial,shouldered,fords,philanthropists,105th,siddharth,gotthard,halim,rajshahi,jurchen,detritus,practicable,earthenware,discarding,travelogue,neuromuscular,elkhart,raeder,zygmunt,metastasis,internees,102nd,vigour,upmarket,summarizing,subjunctive,offsets,elizabethtown,udupi,pardubice,repeaters,instituting,archaea,substandard,technische,linga,anatomist,flourishes,velika,tenochtitlan,evangelistic,fitchburg,springbok,cascading,hydrostatic,avars,occasioned,filipina,perceiving,shimbun,africanus,consternation,tsing,optically,beitar,45deg,abutments,roseville,monomers,huelva,lotteries,hypothalamus,internationalist,electromechanical,hummingbirds,fibreglass,salaried,dramatists,uncovers,invokes,earners,excretion,gelding,ancien,aeronautica,haverhill,stour,ittihad,abramoff,yakov,ayodhya,accelerates,industrially,aeroplanes,deleterious,dwelt,belvoir,harpalus,atpase,maluku,alasdair,proportionality,taran,epistemological,interferometer,polypeptide,adjudged,villager,metastatic,marshalls,madhavan,archduchess,weizmann,kalgoorlie,balan,predefined,sessile,sagaing,brevity,insecticide,psychosocial,africana,steelworks,aether,aquifers,belem,mineiro,almagro,radiators,cenozoic,solute,turbocharger,invicta,guested,buccaneer,idolatry,unmatched,paducah,sinestro,dispossessed,conforms,responsiveness,cyanobacteria,flautist,procurator,complementing,semifinalist,rechargeable,permafrost,cytokine,refuges,boomed,gelderland,franchised,jinan,burnie,doubtless,randomness,colspan=12,angra,ginebra,famers,nuestro,declarative,roughness,lauenburg,motile,rekha,issuer,piney,interceptors,napoca,gipsy,formulaic,formula_44,viswanathan,ebrahim,thessalonica,galeria,muskogee,unsold,html5,taito,mobutu,icann,carnarvon,fairtrade,morphisms,upsilon,nozzles,fabius,meander,murugan,strontium,episcopacy,sandinista,parasol,attenuated,bhima,primeval,panay,ordinator,negara,osteoporosis,glossop,ebook,paradoxically,grevillea,modoc,equating,phonetically,legumes,covariant,dorje,quatre,bruxelles,pyroclastic,shipbuilder,zhaozong,obscuring,sveriges,tremolo,extensible,barrack,multnomah,hakon,chaharmahal,parsing,volumetric,astrophysical,glottal,combinatorics,freestanding,encoder,paralysed,cavalrymen,taboos,heilbronn,orientalis,lockport,marvels,ozawa,dispositions,waders,incurring,saltire,modulate,papilio,phenol,intermedia,rappahannock,plasmid,fortify,phenotypes,transiting,correspondences,leaguer,larnaca,incompatibility,mcenroe,deeming,endeavoured,aboriginals,helmed,salar,arginine,werke,ferrand,expropriated,delimited,couplets,phoenicians,petioles,ouster,anschluss,protectionist,plessis,urchins,orquesta,castleton,juniata,bittorrent,fulani,donji,mykola,rosemont,chandos,scepticism,signer,chalukya,wicketkeeper,coquitlam,programmatic,o'brian,carteret,urology,steelhead,paleocene,konkan,bettered,venkatesh,surfacing,longitudinally,centurions,popularization,yazid,douro,widths,premios,leonards,gristmill,fallujah,arezzo,leftists,ecliptic,glycerol,inaction,disenfranchised,acrimonious,depositing,parashah,cockatoo,marechal,bolzano,chios,cablevision,impartiality,pouches,thickly,equities,bentinck,emotive,boson,ashdown,conquistadors,parsi,conservationists,reductive,newlands,centerline,ornithologists,waveguide,nicene,philological,hemel,setanta,masala,aphids,convening,casco,matrilineal,chalcedon,orthographic,hythe,replete,damming,bolivarian,admixture,embarks,borderlands,conformed,nagarjuna,blenny,chaitanya,suwon,shigeru,tatarstan,lingayen,rejoins,grodno,merovingian,hardwicke,puducherry,prototyping,laxmi,upheavals,headquarter,pollinators,bromine,transom,plantagenet,arbuthnot,chidambaram,woburn,osamu,panelling,coauthored,zhongshu,hyaline,omissions,aspergillus,offensively,electrolytic,woodcut,sodom,intensities,clydebank,piotrkow,supplementing,quipped,focke,harbinger,positivism,parklands,wolfenbuttel,cauca,tryptophan,taunus,curragh,tsonga,remand,obscura,ashikaga,eltham,forelimbs,analogs,trnava,observances,kailash,antithesis,ayumi,abyssinia,dorsally,tralee,pursuers,misadventures,padova,perot,mahadev,tarim,granth,licenced,compania,patuxent,baronial,korda,cochabamba,codices,karna,memorialized,semaphore,playlists,mandibular,halal,sivaji,scherzinger,stralsund,foundries,ribosome,mindfulness,nikolayevich,paraphyletic,newsreader,catalyze,ioannina,thalamus,gbit/s,paymaster,sarab,500th,replenished,gamepro,cracow,formula_46,gascony,reburied,lessing,easement,transposed,meurthe,satires,proviso,balthasar,unbound,cuckoos,durbar,louisbourg,cowes,wholesalers,manet,narita,xiaoping,mohamad,illusory,cathal,reuptake,alkaloid,tahrir,mmorpg,underlies,anglicanism,repton,aharon,exogenous,buchenwald,indigent,odostomia,milled,santorum,toungoo,nevsky,steyr,urbanisation,darkseid,subsonic,canaanite,akiva,eglise,dentition,mediators,cirencester,peloponnesian,malmesbury,durres,oerlikon,tabulated,saens,canaria,ischemic,esterhazy,ringling,centralization,walthamstow,nalanda,lignite,takht,leninism,expiring,circe,phytoplankton,promulgation,integrable,breeches,aalto,menominee,borgo,scythians,skrull,galleon,reinvestment,raglan,reachable,liberec,airframes,electrolysis,geospatial,rubiaceae,interdependence,symmetrically,simulcasts,keenly,mauna,adipose,zaidi,fairport,vestibular,actuators,monochromatic,literatures,congestive,sacramental,atholl,skytrain,tycho,tunings,jamia,catharina,modifier,methuen,tapings,infiltrating,colima,grafting,tauranga,halides,pontificate,phonetics,koper,hafez,grooved,kintetsu,extrajudicial,linkoping,cyberpunk,repetitions,laurentian,parnu,bretton,darko,sverdlovsk,foreshadowed,akhenaten,rehnquist,gosford,coverts,pragmatism,broadleaf,ethiopians,instated,mediates,sodra,opulent,descriptor,enugu,shimla,leesburg,officership,giffard,refectory,lusitania,cybermen,fiume,corus,tydfil,lawrenceville,ocala,leviticus,burghers,ataxia,richthofen,amicably,acoustical,watling,inquired,tiempo,multiracial,parallelism,trenchard,tokyopop,germanium,usisl,philharmonia,shapur,jacobites,latinized,sophocles,remittances,o'farrell,adder,dimitrios,peshwa,dimitar,orlov,outstretched,musume,satish,dimensionless,serialised,baptisms,pagasa,antiviral,1740s,quine,arapaho,bombardments,stratosphere,ophthalmic,injunctions,carbonated,nonviolence,asante,creoles,sybra,boilermakers,abington,bipartite,permissive,cardinality,anheuser,carcinogenic,hohenlohe,surinam,szeged,infanticide,generically,floorball,'white,automakers,cerebellar,homozygous,remoteness,effortlessly,allude,'great,headmasters,minting,manchurian,kinabalu,wemyss,seditious,widgets,marbled,almshouses,bards,subgenres,tetsuya,faulting,kickboxer,gaulish,hoseyn,malton,fluvial,questionnaires,mondale,downplayed,traditionalists,vercelli,sumatran,landfills,gamesradar,exerts,franciszek,unlawfully,huesca,diderot,libertarians,professorial,laane,piecemeal,conidae,taiji,curatorial,perturbations,abstractions,szlachta,watercraft,mullah,zoroastrianism,segmental,khabarovsk,rectors,affordability,scuola,diffused,stena,cyclonic,workpiece,romford,'little,jhansi,stalag,zhongshan,skipton,maracaibo,bernadotte,thanet,groening,waterville,encloses,sahrawi,nuffield,moorings,chantry,annenberg,islay,marchers,tenses,wahid,siegen,furstenberg,basques,resuscitation,seminarians,tympanum,gentiles,vegetarianism,tufted,venkata,fantastical,pterophoridae,machined,superposition,glabrous,kaveri,chicane,executors,phyllonorycter,bidirectional,jasta,undertones,touristic,majapahit,navratilova,unpopularity,barbadian,tinian,webcast,hurdler,rigidly,jarrah,staphylococcus,igniting,irrawaddy,stabilised,airstrike,ragas,wakayama,energetically,ekstraklasa,minibus,largemouth,cultivators,leveraging,waitangi,carnaval,weaves,turntables,heydrich,sextus,excavate,govind,ignaz,pedagogue,uriah,borrowings,gemstones,infractions,mycobacterium,batavian,massing,praetor,subalpine,massoud,passers,geostationary,jalil,trainsets,barbus,impair,budejovice,denbigh,pertain,historicity,fortaleza,nederlandse,lamenting,masterchef,doubs,gemara,conductance,ploiesti,cetaceans,courthouses,bhagavad,mihailovic,occlusion,bremerhaven,bulwark,morava,kaine,drapery,maputo,conquistador,kaduna,famagusta,first-past-the-post,erudite,galton,undated,tangential,filho,dismembered,dashes,criterium,darwen,metabolized,blurring,everard,randwick,mohave,impurity,acuity,ansbach,chievo,surcharge,plantain,algoma,porosity,zirconium,selva,sevenoaks,venizelos,gwynne,golgi,imparting,separatism,courtesan,idiopathic,gravestones,hydroelectricity,babar,orford,purposeful,acutely,shard,ridgewood,viterbo,manohar,expropriation,placenames,brevis,cosine,unranked,richfield,newnham,recoverable,flightless,dispersing,clearfield,abu'l,stranraer,kempe,streamlining,goswami,epidermal,pieta,conciliatory,distilleries,electrophoresis,bonne,tiago,curiosities,candidature,picnicking,perihelion,lintel,povoa,gullies,configure,excision,facies,signers,1730s,insufficiency,semiotics,streatham,deactivation,entomological,skippers,albacete,parodying,escherichia,honorees,singaporeans,counterterrorism,tiruchirappalli,omnivorous,metropole,globalisation,athol,unbounded,codice_5,landforms,classifier,farmhouses,reaffirming,reparation,yomiuri,technologists,mitte,medica,viewable,steampunk,konya,kshatriya,repelling,edgewater,lamiinae,devas,potteries,llandaff,engendered,submits,virulence,uplifted,educationist,metropolitans,frontrunner,dunstable,forecastle,frets,methodius,exmouth,linnean,bouchet,repulsion,computable,equalling,liceo,tephritidae,agave,hydrological,azarenka,fairground,l'homme,enforces,xinhua,cinematographers,cooperstown,sa'id,paiute,christianization,tempos,chippenham,insulator,kotor,stereotyped,dello,cours,hisham,d'souza,eliminations,supercars,passau,rebrand,natures,coote,persephone,rededicated,cleaved,plenum,blistering,indiscriminately,cleese,safed,recursively,compacted,revues,hydration,shillong,echelons,garhwal,pedimented,grower,zwolle,wildflower,annexing,methionine,petah,valens,famitsu,petiole,specialities,nestorian,shahin,tokaido,shearwater,barberini,kinsmen,experimenter,alumnae,cloisters,alumina,pritzker,hardiness,soundgarden,julich,ps300,watercourse,cementing,wordplay,olivet,demesne,chasseurs,amide,zapotec,gaozu,porphyry,absorbers,indium,analogies,devotions,engravers,limestones,catapulted,surry,brickworks,gotra,rodham,landline,paleontologists,shankara,islip,raucous,trollope,arpad,embarkation,morphemes,recites,picardie,nakhchivan,tolerances,formula_47,khorramabad,nichiren,adrianople,kirkuk,assemblages,collider,bikaner,bushfires,roofline,coverings,reredos,bibliotheca,mantras,accentuated,commedia,rashtriya,fluctuation,serhiy,referential,fittipaldi,vesicle,geeta,iraklis,immediacy,chulalongkorn,hunsruck,bingen,dreadnoughts,stonemason,meenakshi,lebesgue,undergrowth,baltistan,paradoxes,parlement,articled,tiflis,dixieland,meriden,tejano,underdogs,barnstable,exemplify,venter,tropes,wielka,kankakee,iskandar,zilina,pharyngeal,spotify,materialised,picts,atlantique,theodoric,prepositions,paramilitaries,pinellas,attlee,actuated,piedmontese,grayling,thucydides,multifaceted,unedited,autonomously,universelle,utricularia,mooted,preto,incubated,underlie,brasenose,nootka,bushland,sensu,benzodiazepine,esteghlal,seagoing,amenhotep,azusa,sappers,culpeper,smokeless,thoroughbreds,dargah,gorda,alumna,mankato,zdroj,deleting,culvert,formula_49,punting,wushu,hindering,immunoglobulin,standardisation,birger,oilfield,quadrangular,ulama,recruiters,netanya,1630s,communaute,istituto,maciej,pathan,meher,vikas,characterizations,playmaker,interagency,intercepts,assembles,horthy,introspection,narada,matra,testes,radnicki,estonians,csiro,instar,mitford,adrenergic,crewmembers,haaretz,wasatch,lisburn,rangefinder,ordre,condensate,reforestation,corregidor,spvgg,modulator,mannerist,faulted,aspires,maktoum,squarepants,aethelred,piezoelectric,mulatto,dacre,progressions,jagiellonian,norge,samaria,sukhoi,effingham,coxless,hermetic,humanists,centrality,litters,stirlingshire,beaconsfield,sundanese,geometrically,caretakers,habitually,bandra,pashtuns,bradenton,arequipa,laminar,brickyard,hitchin,sustains,shipboard,ploughing,trechus,wheelers,bracketed,ilyushin,subotica,d'hondt,reappearance,bridgestone,intermarried,fulfilment,aphasia,birkbeck,transformational,strathmore,hornbill,millstone,lacan,voids,solothurn,gymnasiums,laconia,viaducts,peduncle,teachta,edgware,shinty,supernovae,wilfried,exclaim,parthia,mithun,flashpoint,moksha,cumbia,metternich,avalanches,militancy,motorist,rivadavia,chancellorsville,federals,gendered,bounding,footy,gauri,caliphs,lingam,watchmaker,unrecorded,riverina,unmodified,seafloor,droit,pfalz,chrysostom,gigabit,overlordship,besiege,espn2,oswestry,anachronistic,ballymena,reactivation,duchovny,ghani,abacetus,duller,legio,watercourses,nord-pas-de-calais,leiber,optometry,swarms,installer,sancti,adverbs,iheartmedia,meiningen,zeljko,kakheti,notional,circuses,patrilineal,acrobatics,infrastructural,sheva,oregonian,adjudication,aamir,wloclawek,overfishing,obstructive,subtracting,aurobindo,archeologist,newgate,'cause,secularization,tehsils,abscess,fingal,janacek,elkhorn,trims,kraftwerk,mandating,irregulars,faintly,congregationalist,sveti,kasai,mishaps,kennebec,provincially,durkheim,scotties,aicte,rapperswil,imphal,surrenders,morphs,nineveh,hoxha,cotabato,thuringian,metalworking,retold,shogakukan,anthers,proteasome,tippeligaen,disengagement,mockumentary,palatial,erupts,flume,corrientes,masthead,jaroslaw,rereleased,bharti,labors,distilling,tusks,varzim,refounded,enniskillen,melkite,semifinalists,vadodara,bermudian,capstone,grasse,origination,populus,alesi,arrondissements,semigroup,verein,opossum,messrs.,portadown,bulbul,tirupati,mulhouse,tetrahedron,roethlisberger,nonverbal,connexion,warangal,deprecated,gneiss,octet,vukovar,hesketh,chambre,despatch,claes,kargil,hideo,gravelly,tyndale,aquileia,tuners,defensible,tutte,theotokos,constructivist,ouvrage,dukla,polisario,monasticism,proscribed,commutation,testers,nipissing,codon,mesto,olivine,concomitant,exoskeleton,purports,coromandel,eyalet,dissension,hippocrates,purebred,yaounde,composting,oecophoridae,procopius,o'day,angiogenesis,sheerness,intelligencer,articular,felixstowe,aegon,endocrinology,trabzon,licinius,pagodas,zooplankton,hooghly,satie,drifters,sarthe,mercian,neuilly,tumours,canal+,scheldt,inclinations,counteroffensive,roadrunners,tuzla,shoreditch,surigao,predicates,carnot,algeciras,militaries,generalize,bulkheads,gawler,pollutant,celta,rundgren,microrna,gewog,olimpija,placental,lubelski,roxburgh,discerned,verano,kikuchi,musicale,l'enfant,ferocity,dimorphic,antigonus,erzurum,prebendary,recitative,discworld,cyrenaica,stigmella,totnes,sutta,pachuca,ulsan,downton,landshut,castellan,pleural,siedlce,siecle,catamaran,cottbus,utilises,trophic,freeholders,holyhead,u.s.s,chansons,responder,waziristan,suzuka,birding,shogi,asker,acetone,beautification,cytotoxic,dixit,hunterdon,cobblestone,formula_48,kossuth,devizes,sokoto,interlaced,shuttered,kilowatts,assiniboine,isaak,salto,alderney,sugarloaf,franchising,aggressiveness,toponyms,plaintext,antimatter,henin,equidistant,salivary,bilingualism,mountings,obligate,extirpated,irenaeus,misused,pastoralists,aftab,immigrating,warping,tyrolean,seaforth,teesside,soundwave,oligarchy,stelae,pairwise,iupac,tezuka,posht,orchestrations,landmass,ironstone,gallia,hjalmar,carmelites,strafford,elmhurst,palladio,fragility,teleplay,gruffudd,karoly,yerba,potok,espoo,inductance,macaque,nonprofits,pareto,rock'n'roll,spiritualist,shadowed,skateboarder,utterances,generality,congruence,prostrate,deterred,yellowknife,albarn,maldon,battlements,mohsen,insecticides,khulna,avellino,menstruation,glutathione,springdale,parlophone,confraternity,korps,countrywide,bosphorus,preexisting,damodar,astride,alexandrovich,sprinting,crystallized,botev,leaching,interstates,veers,angevin,undaunted,yevgeni,nishapur,northerners,alkmaar,bethnal,grocers,sepia,tornus,exemplar,trobe,charcot,gyeonggi,larne,tournai,lorain,voided,genji,enactments,maxilla,adiabatic,eifel,nazim,transducer,thelonious,pyrite,deportiva,dialectal,bengt,rosettes,labem,sergeyevich,synoptic,conservator,statuette,biweekly,adhesives,bifurcation,rajapaksa,mammootty,republique,yusef,waseda,marshfield,yekaterinburg,minnelli,fundy,fenian,matchups,dungannon,supremacist,panelled,drenthe,iyengar,fibula,narmada,homeport,oceanside,precept,antibacterial,altarpieces,swath,ospreys,lillooet,legnica,lossless,formula_50,galvatron,iorga,stormont,rsfsr,loggers,kutno,phenomenological,medallists,cuatro,soissons,homeopathy,bituminous,injures,syndicates,typesetting,displacements,dethroned,makassar,lucchese,abergavenny,targu,alborz,akb48,boldface,gastronomy,sacra,amenity,accumulator,myrtaceae,cornices,mourinho,denunciation,oxbow,diddley,aargau,arbitrage,bedchamber,gruffydd,zamindar,klagenfurt,caernarfon,slowdown,stansted,abrasion,tamaki,suetonius,dukakis,individualistic,ventrally,hotham,perestroika,ketones,fertilisation,sobriquet,couplings,renderings,misidentified,rundfunk,sarcastically,braniff,concours,dismissals,elegantly,modifiers,crediting,combos,crucially,seafront,lieut,ischemia,manchus,derivations,proteases,aristophanes,adenauer,porting,hezekiah,sante,trulli,hornblower,foreshadowing,ypsilanti,dharwad,khani,hohenstaufen,distillers,cosmodrome,intracranial,turki,salesian,gorzow,jihlava,yushchenko,leichhardt,venables,cassia,eurogamer,airtel,curative,bestsellers,timeform,sortied,grandview,massillon,ceding,pilbara,chillicothe,heredity,elblag,rogaland,ronne,millennial,batley,overuse,bharata,fille,campbelltown,abeyance,counterclockwise,250cc,neurodegenerative,consigned,electromagnetism,sunnah,saheb,exons,coxswain,gleaned,bassoons,worksop,prismatic,immigrate,pickets,takeo,bobsledder,stosur,fujimori,merchantmen,stiftung,forli,endorses,taskforce,thermally,atman,gurps,floodplains,enthalpy,extrinsic,setubal,kennesaw,grandis,scalability,durations,showrooms,prithvi,outro,overruns,andalucia,amanita,abitur,hipper,mozambican,sustainment,arsene,chesham,palaeolithic,reportage,criminality,knowsley,haploid,atacama,shueisha,ridgefield,astern,getafe,lineal,timorese,restyled,hollies,agincourt,unter,justly,tannins,mataram,industrialised,tarnovo,mumtaz,mustapha,stretton,synthetase,condita,allround,putra,stjepan,troughs,aechmea,specialisation,wearable,kadokawa,uralic,aeros,messiaen,existentialism,jeweller,effigies,gametes,fjordane,cochlear,interdependent,demonstrative,unstructured,emplacement,famines,spindles,amplitudes,actuator,tantalum,psilocybe,apnea,monogatari,expulsions,seleucus,tsuen,hospitaller,kronstadt,eclipsing,olympiakos,clann,canadensis,inverter,helio,egyptologist,squamous,resonate,munir,histology,torbay,khans,jcpenney,veterinarians,aintree,microscopes,colonised,reflectors,phosphorylated,pristimantis,tulare,corvinus,multiplexing,midweek,demosthenes,transjordan,ecija,tengku,vlachs,anamorphic,counterweight,radnor,trinitarian,armidale,maugham,njsiaa,futurism,stairways,avicenna,montebello,bridgetown,wenatchee,lyonnais,amass,surinamese,streptococcus,m*a*s*h,hydrogenation,frazioni,proscenium,kalat,pennsylvanian,huracan,tallying,kralove,nucleolar,phrygian,seaports,hyacinthe,ignace,donning,instalment,regnal,fonds,prawn,carell,folktales,goaltending,bracknell,vmware,patriarchy,mitsui,kragujevac,pythagoras,soult,thapa,disproved,suwalki,secures,somoza,l'ecole,divizia,chroma,herders,technologist,deduces,maasai,rampur,paraphrase,raimi,imaged,magsaysay,ivano,turmeric,formula_51,subcommittees,axillary,ionosphere,organically,indented,refurbishing,pequot,violinists,bearn,colle,contralto,silverton,mechanization,etruscans,wittelsbach,pasir,redshirted,marrakesh,scarp,plein,wafers,qareh,teotihuacan,frobenius,sinensis,rehoboth,bundaberg,newbridge,hydrodynamic,traore,abubakar,adjusts,storytellers,dynamos,verbandsliga,concertmaster,exxonmobil,appreciable,sieradz,marchioness,chaplaincy,rechristened,cunxu,overpopulation,apolitical,sequencer,beaked,nemanja,binaries,intendant,absorber,filamentous,indebtedness,nusra,nashik,reprises,psychedelia,abwehr,ligurian,isoform,resistive,pillaging,mahathir,reformatory,lusatia,allerton,ajaccio,tepals,maturin,njcaa,abyssinian,objector,fissures,sinuous,ecclesiastic,dalits,caching,deckers,phosphates,wurlitzer,navigated,trofeo,berea,purefoods,solway,unlockable,grammys,kostroma,vocalizations,basilan,rebuke,abbasi,douala,helsingborg,ambon,bakar,runestones,cenel,tomislav,pigmented,northgate,excised,seconda,kirke,determinations,dedicates,vilas,pueblos,reversion,unexploded,overprinted,ekiti,deauville,masato,anaesthesia,endoplasmic,transponders,aguascalientes,hindley,celluloid,affording,bayeux,piaget,rickshaws,eishockey,camarines,zamalek,undersides,hardwoods,hermitian,mutinied,monotone,blackmails,affixes,jpmorgan,habermas,mitrovica,paleontological,polystyrene,thana,manas,conformist,turbofan,decomposes,logano,castration,metamorphoses,patroness,herbicide,mikolaj,rapprochement,macroeconomics,barranquilla,matsudaira,lintels,femina,hijab,spotsylvania,morpheme,bitola,baluchistan,kurukshetra,otway,extrusion,waukesha,menswear,helder,trung,bingley,protester,boars,overhang,differentials,exarchate,hejaz,kumara,unjustified,timings,sharpness,nuovo,taisho,sundar,etc..,jehan,unquestionably,muscovy,daltrey,canute,paneled,amedeo,metroplex,elaborates,telus,tetrapods,dragonflies,epithets,saffir,parthenon,lucrezia,refitting,pentateuch,hanshin,montparnasse,lumberjacks,sanhedrin,erectile,odors,greenstone,resurgent,leszek,amory,substituents,prototypical,viewfinder,monck,universiteit,joffre,revives,chatillon,seedling,scherzo,manukau,ashdod,gympie,homolog,stalwarts,ruinous,weibo,tochigi,wallenberg,gayatri,munda,satyagraha,storefronts,heterogeneity,tollway,sportswriters,binocular,gendarmes,ladysmith,tikal,ortsgemeinde,ja'far,osmotic,linlithgow,bramley,telecoms,pugin,repose,rupaul,sieur,meniscus,garmisch,reintroduce,400th,shoten,poniatowski,drome,kazakhstani,changeover,astronautics,husserl,herzl,hypertext,katakana,polybius,antananarivo,seong,breguet,reliquary,utada,aggregating,liangshan,sivan,tonawanda,audiobooks,shankill,coulee,phenolic,brockton,bookmakers,handsets,boaters,wylde,commonality,mappings,silhouettes,pennines,maurya,pratchett,singularities,eschewed,pretensions,vitreous,ibero,totalitarianism,poulenc,lingered,directx,seasoning,deputation,interdict,illyria,feedstock,counterbalance,muzik,buganda,parachuted,violist,homogeneity,comix,fjords,corsairs,punted,verandahs,equilateral,laoghaire,magyars,117th,alesund,televoting,mayotte,eateries,refurbish,nswrl,yukio,caragiale,zetas,dispel,codecs,inoperable,outperformed,rejuvenation,elstree,modernise,contributory,pictou,tewkesbury,chechens,ashina,psionic,refutation,medico,overdubbed,nebulae,sandefjord,personages,eccellenza,businessperson,placename,abenaki,perryville,threshing,reshaped,arecibo,burslem,colspan=3|turnout,rebadged,lumia,erinsborough,interactivity,bitmap,indefatigable,theosophy,excitatory,gleizes,edsel,bermondsey,korce,saarinen,wazir,diyarbakir,cofounder,liberalisation,onsen,nighthawks,siting,retirements,semyon,d'histoire,114th,redditch,venetia,praha,'round,valdosta,hieroglyphic,postmedial,edirne,miscellany,savona,cockpits,minimization,coupler,jacksonian,appeasement,argentines,saurashtra,arkwright,hesiod,folios,fitzalan,publica,rivaled,civitas,beermen,constructivism,ribeira,zeitschrift,solanum,todos,deformities,chilliwack,verdean,meagre,bishoprics,gujrat,yangzhou,reentered,inboard,mythologies,virtus,unsurprisingly,rusticated,museu,symbolise,proportionate,thesaban,symbian,aeneid,mitotic,veliki,compressive,cisterns,abies,winemaker,massenet,bertolt,ahmednagar,triplemania,armorial,administracion,tenures,smokehouse,hashtag,fuerza,regattas,gennady,kanazawa,mahmudabad,crustal,asaph,valentinian,ilaiyaraaja,honeyeater,trapezoidal,cooperatively,unambiguously,mastodon,inhospitable,harnesses,riverton,renewables,djurgardens,haitians,airings,humanoids,boatswain,shijiazhuang,faints,veera,punjabis,steepest,narain,karlovy,serre,sulcus,collectives,1500m,arion,subarctic,liberally,apollonius,ostia,droplet,headstones,norra,robusta,maquis,veronese,imola,primers,luminance,escadrille,mizuki,irreconcilable,stalybridge,temur,paraffin,stuccoed,parthians,counsels,fundamentalists,vivendi,polymath,sugababes,mikko,yonne,fermions,vestfold,pastoralist,kigali,unseeded,glarus,cusps,amasya,northwesterly,minorca,astragalus,verney,trevelyan,antipathy,wollstonecraft,bivalves,boulez,royle,divisao,quranic,bareilly,coronal,deviates,lulea,erectus,petronas,chandan,proxies,aeroflot,postsynaptic,memoriam,moyne,gounod,kuznetsova,pallava,ordinating,reigate,'first,lewisburg,exploitative,danby,academica,bailiwick,brahe,injective,stipulations,aeschylus,computes,gulden,hydroxylase,liveries,somalis,underpinnings,muscovite,kongsberg,domus,overlain,shareware,variegated,jalalabad,agence,ciphertext,insectivores,dengeki,menuhin,cladistic,baerum,betrothal,tokushima,wavelet,expansionist,pottsville,siyuan,prerequisites,carpi,nemzeti,nazar,trialled,eliminator,irrorated,homeward,redwoods,undeterred,strayed,lutyens,multicellular,aurelian,notated,lordships,alsatian,idents,foggia,garros,chalukyas,lillestrom,podlaski,pessimism,hsien,demilitarized,whitewashed,willesden,kirkcaldy,sanctorum,lamia,relaying,escondido,paediatric,contemplates,demarcated,bluestone,betula,penarol,capitalise,kreuznach,kenora,115th,hold'em,reichswehr,vaucluse,m.i.a,windings,boys/girls,cajon,hisar,predictably,flemington,ysgol,mimicked,clivina,grahamstown,ionia,glyndebourne,patrese,aquaria,sleaford,dayal,sportscenter,malappuram,m.b.a.,manoa,carbines,solvable,designator,ramanujan,linearity,academicians,sayid,lancastrian,factorial,strindberg,vashem,delos,comyn,condensing,superdome,merited,kabaddi,intransitive,bideford,neuroimaging,duopoly,scorecards,ziggler,heriot,boyars,virology,marblehead,microtubules,westphalian,anticipates,hingham,searchers,harpist,rapides,morricone,convalescent,mises,nitride,metrorail,matterhorn,bicol,drivetrain,marketer,snippet,winemakers,muban,scavengers,halberstadt,herkimer,peten,laborious,stora,montgomeryshire,booklist,shamir,herault,eurostar,anhydrous,spacewalk,ecclesia,calliostoma,highschool,d'oro,suffusion,imparts,overlords,tagus,rectifier,counterinsurgency,ministered,eilean,milecastle,contre,micromollusk,okhotsk,bartoli,matroid,hasidim,thirunal,terme,tarlac,lashkar,presque,thameslink,flyby,troopship,renouncing,fatih,messrs,vexillum,bagration,magnetite,bornholm,androgynous,vehement,tourette,philosophic,gianfranco,tuileries,codice_6,radially,flexion,hants,reprocessing,setae,burne,palaeographically,infantryman,shorebirds,tamarind,moderna,threading,militaristic,crohn,norrkoping,125cc,stadtholder,troms,klezmer,alphanumeric,brome,emmanuelle,tiwari,alchemical,formula_52,onassis,bleriot,bipedal,colourless,hermeneutics,hosni,precipitating,turnstiles,hallucinogenic,panhellenic,wyandotte,elucidated,chita,ehime,generalised,hydrophilic,biota,niobium,rnzaf,gandhara,longueuil,logics,sheeting,bielsko,cuvier,kagyu,trefoil,docent,pancrase,stalinism,postures,encephalopathy,monckton,imbalances,epochs,leaguers,anzio,diminishes,pataki,nitrite,amuro,nabil,maybach,l'aquila,babbler,bacolod,thutmose,evora,gaudi,breakage,recur,preservative,60deg,mendip,functionaries,columnar,maccabiah,chert,verden,bromsgrove,clijsters,dengue,pastorate,phuoc,principia,viareggio,kharagpur,scharnhorst,anyang,bosons,l'art,criticises,ennio,semarang,brownian,mirabilis,asperger,calibers,typographical,cartooning,minos,disembark,supranational,undescribed,etymologically,alappuzha,vilhelm,lanao,pakenham,bhagavata,rakoczi,clearings,astrologers,manitowoc,bunuel,acetylene,scheduler,defamatory,trabzonspor,leaded,scioto,pentathlete,abrahamic,minigames,aldehydes,peerages,legionary,1640s,masterworks,loudness,bryansk,likeable,genocidal,vegetated,towpath,declination,pyrrhus,divinely,vocations,rosebery,associazione,loaders,biswas,oeste,tilings,xianzong,bhojpuri,annuities,relatedness,idolator,psers,constriction,chuvash,choristers,hanafi,fielders,grammarian,orpheum,asylums,millbrook,gyatso,geldof,stabilise,tableaux,diarist,kalahari,panini,cowdenbeath,melanin,4x100m,resonances,pinar,atherosclerosis,sheringham,castlereagh,aoyama,larks,pantograph,protrude,natak,gustafsson,moribund,cerevisiae,cleanly,polymeric,holkar,cosmonauts,underpinning,lithosphere,firuzabad,languished,mingled,citrate,spadina,lavas,daejeon,fibrillation,porgy,pineville,ps1000,cobbled,emamzadeh,mukhtar,dampers,indelible,salonika,nanoscale,treblinka,eilat,purporting,fluctuate,mesic,hagiography,cutscenes,fondation,barrens,comically,accrue,ibrox,makerere,defections,'there,hollandia,skene,grosseto,reddit,objectors,inoculation,rowdies,playfair,calligrapher,namor,sibenik,abbottabad,propellants,hydraulically,chloroplasts,tablelands,tecnico,schist,klasse,shirvan,bashkortostan,bullfighting,north/south,polski,hanns,woodblock,kilmore,ejecta,ignacy,nanchang,danubian,commendations,snohomish,samaritans,argumentation,vasconcelos,hedgehogs,vajrayana,barents,kulkarni,kumbakonam,identifications,hillingdon,weirs,nayanar,beauvoir,messe,divisors,atlantiques,broods,affluence,tegucigalpa,unsuited,autodesk,akash,princeps,culprits,kingstown,unassuming,goole,visayan,asceticism,blagojevich,irises,paphos,unsound,maurier,pontchartrain,desertification,sinfonietta,latins,especial,limpet,valerenga,glial,brainstem,mitral,parables,sauropod,judean,iskcon,sarcoma,venlo,justifications,zhuhai,blavatsky,alleviated,usafe,steppenwolf,inversions,janko,chagall,secretory,basildon,saguenay,pergamon,hemispherical,harmonized,reloading,franjo,domaine,extravagance,relativism,metamorphosed,labuan,baloncesto,gmail,byproducts,calvinists,counterattacked,vitus,bubonic,120th,strachey,ritually,brookwood,selectable,savinja,incontinence,meltwater,jinja,1720s,brahmi,morgenthau,sheaves,sleeved,stratovolcano,wielki,utilisation,avoca,fluxus,panzergrenadier,philately,deflation,podlaska,prerogatives,kuroda,theophile,zhongzong,gascoyne,magus,takao,arundell,fylde,merdeka,prithviraj,venkateswara,liepaja,daigo,dreamland,reflux,sunnyvale,coalfields,seacrest,soldering,flexor,structuralism,alnwick,outweighed,unaired,mangeshkar,batons,glaad,banshees,irradiated,organelles,biathlete,cabling,chairlift,lollapalooza,newsnight,capacitive,succumbs,flatly,miramichi,burwood,comedienne,charteris,biotic,workspace,aficionados,sokolka,chatelet,o'shaughnessy,prosthesis,neoliberal,refloated,oppland,hatchlings,econometrics,loess,thieu,androids,appalachians,jenin,pterostichinae,downsized,foils,chipsets,stencil,danza,narrate,maginot,yemenite,bisects,crustacean,prescriptive,melodious,alleviation,empowers,hansson,autodromo,obasanjo,osmosis,daugava,rheumatism,moraes,leucine,etymologies,chepstow,delaunay,bramall,bajaj,flavoring,approximates,marsupials,incisive,microcomputer,tactically,waals,wilno,fisichella,ursus,hindmarsh,mazarin,lomza,xenophobia,lawlessness,annecy,wingers,gornja,gnaeus,superieur,tlaxcala,clasps,symbolises,slats,rightist,effector,blighted,permanence,divan,progenitors,kunsthalle,anointing,excelling,coenzyme,indoctrination,dnipro,landholdings,adriaan,liturgies,cartan,ethmia,attributions,sanctus,trichy,chronicon,tancred,affinis,kampuchea,gantry,pontypool,membered,distrusted,fissile,dairies,hyposmocoma,craigie,adarsh,martinsburg,taxiway,30deg,geraint,vellum,bencher,khatami,formula_53,zemun,teruel,endeavored,palmares,pavements,u.s..,internationalization,satirized,carers,attainable,wraparound,muang,parkersburg,extinctions,birkenfeld,wildstorm,payers,cohabitation,unitas,culloden,capitalizing,clwyd,daoist,campinas,emmylou,orchidaceae,halakha,orientales,fealty,domnall,chiefdom,nigerians,ladislav,dniester,avowed,ergonomics,newsmagazine,kitsch,cantilevered,benchmarking,remarriage,alekhine,coldfield,taupo,almirante,substations,apprenticeships,seljuq,levelling,eponym,symbolising,salyut,opioids,underscore,ethnologue,mohegan,marikina,libro,bassano,parse,semantically,disjointed,dugdale,padraig,tulsi,modulating,xfinity,headlands,mstislav,earthworms,bourchier,lgbtq,embellishments,pennants,rowntree,betel,motet,mulla,catenary,washoe,mordaunt,dorking,colmar,girardeau,glentoran,grammatically,samad,recreations,technion,staccato,mikoyan,spoilers,lyndhurst,victimization,chertsey,belafonte,tondo,tonsberg,narrators,subcultures,malformations,edina,augmenting,attests,euphemia,cabriolet,disguising,1650s,navarrese,demoralized,cardiomyopathy,welwyn,wallachian,smoothness,planktonic,voles,issuers,sardasht,survivability,cuauhtemoc,thetis,extruded,signet,raghavan,lombok,eliyahu,crankcase,dissonant,stolberg,trencin,desktops,bursary,collectivization,charlottenburg,triathlete,curvilinear,involuntarily,mired,wausau,invades,sundaram,deletions,bootstrap,abellio,axiomatic,noguchi,setups,malawian,visalia,materialist,kartuzy,wenzong,plotline,yeshivas,parganas,tunica,citric,conspecific,idlib,superlative,reoccupied,blagoevgrad,masterton,immunological,hatta,courbet,vortices,swallowtail,delves,haridwar,diptera,boneh,bahawalpur,angering,mardin,equipments,deployable,guanine,normality,rimmed,artisanal,boxset,chandrasekhar,jools,chenar,tanakh,carcassonne,belatedly,millville,anorthosis,reintegration,velde,surfactant,kanaan,busoni,glyphipterix,personas,fullness,rheims,tisza,stabilizers,bharathi,joost,spinola,mouldings,perching,esztergom,afzal,apostate,lustre,s.league,motorboat,monotheistic,armature,barat,asistencia,bloomsburg,hippocampal,fictionalised,defaults,broch,hexadecimal,lusignan,ryanair,boccaccio,breisgau,southbank,bskyb,adjoined,neurobiology,aforesaid,sadhu,langue,headship,wozniacki,hangings,regulus,prioritized,dynamism,allier,hannity,shimin,antoninus,gymnopilus,caledon,preponderance,melayu,electrodynamics,syncopated,ibises,krosno,mechanistic,morpeth,harbored,albini,monotheism,'real,hyperactivity,haveli,writer/director,minato,nimoy,caerphilly,chitral,amirabad,fanshawe,l'oreal,lorde,mukti,authoritarianism,valuing,spyware,hanbury,restarting,stato,embed,suiza,empiricism,stabilisation,stari,castlemaine,orbis,manufactory,mauritanian,shoji,taoyuan,prokaryotes,oromia,ambiguities,embodying,slims,frente,innovate,ojibwa,powdery,gaeltacht,argentinos,quatermass,detergents,fijians,adaptor,tokai,chileans,bulgars,oxidoreductases,bezirksliga,conceicao,myosin,nellore,500cc,supercomputers,approximating,glyndwr,polypropylene,haugesund,cockerell,tudman,ashbourne,hindemith,bloodlines,rigveda,etruria,romanos,steyn,oradea,deceleration,manhunter,laryngeal,fraudulently,janez,wendover,haplotype,janaki,naoki,belizean,mellencamp,cartographic,sadhana,tricolour,pseudoscience,satara,bytow,s.p.a.,jagdgeschwader,arcot,omagh,sverdrup,masterplan,surtees,apocrypha,ahvaz,d'amato,socratic,leumit,unnumbered,nandini,witold,marsupial,coalesced,interpolated,gimnasia,karadzic,keratin,mamoru,aldeburgh,speculator,escapement,irfan,kashyap,satyajit,haddington,solver,rothko,ashkelon,kickapoo,yeomen,superbly,bloodiest,greenlandic,lithic,autofocus,yardbirds,poona,keble,javan,sufis,expandable,tumblr,ursuline,swimwear,winwood,counsellors,aberrations,marginalised,befriending,workouts,predestination,varietal,siddhartha,dunkeld,judaic,esquimalt,shabab,ajith,telefonica,stargard,hoysala,radhakrishnan,sinusoidal,strada,hiragana,cebuano,monoid,independencia,floodwaters,mildura,mudflats,ottokar,translit,radix,wigner,philosophically,tephritid,synthesizing,castletown,installs,stirner,resettle,bushfire,choirmaster,kabbalistic,shirazi,lightship,rebus,colonizers,centrifuge,leonean,kristofferson,thymus,clackamas,ratnam,rothesay,municipally,centralia,thurrock,gulfport,bilinear,desirability,merite,psoriasis,macaw,erigeron,consignment,mudstone,distorting,karlheinz,ramen,tailwheel,vitor,reinsurance,edifices,superannuation,dormancy,contagion,cobden,rendezvoused,prokaryotic,deliberative,patricians,feigned,degrades,starlings,sopot,viticultural,beaverton,overflowed,convener,garlands,michiel,ternopil,naturelle,biplanes,bagot,gamespy,ventspils,disembodied,flattening,profesional,londoners,arusha,scapular,forestall,pyridine,ulema,eurodance,aruna,callus,periodontal,coetzee,immobilized,o'meara,maharani,katipunan,reactants,zainab,microgravity,saintes,britpop,carrefour,constrain,adversarial,firebirds,brahmo,kashima,simca,surety,surpluses,superconductivity,gipuzkoa,cumans,tocantins,obtainable,humberside,roosting,'king,formula_54,minelayer,bessel,sulayman,cycled,biomarkers,annealing,shusha,barda,cassation,djing,polemics,tuple,directorates,indomitable,obsolescence,wilhelmine,pembina,bojan,tambo,dioecious,pensioner,magnificat,1660s,estrellas,southeasterly,immunodeficiency,railhead,surreptitiously,codeine,encores,religiosity,tempera,camberley,efendi,boardings,malleable,hagia,input/output,lucasfilm,ujjain,polymorphisms,creationist,berners,mickiewicz,irvington,linkedin,endures,kinect,munition,apologetics,fairlie,predicated,reprinting,ethnographer,variances,levantine,mariinsky,jadid,jarrow,asia/oceania,trinamool,waveforms,bisexuality,preselection,pupae,buckethead,hieroglyph,lyricists,marionette,dunbartonshire,restorer,monarchical,pazar,kickoffs,cabildo,savannas,gliese,dench,spoonbills,novelette,diliman,hypersensitivity,authorising,montefiore,mladen,qu'appelle,theistic,maruti,laterite,conestoga,saare,californica,proboscis,carrickfergus,imprecise,hadassah,baghdadi,jolgeh,deshmukh,amusements,heliopolis,berle,adaptability,partenkirchen,separations,baikonur,cardamom,southeastward,southfield,muzaffar,adequacy,metropolitana,rajkot,kiyoshi,metrobus,evictions,reconciles,librarianship,upsurge,knightley,badakhshan,proliferated,spirituals,burghley,electroacoustic,professing,featurette,reformists,skylab,descriptors,oddity,greyfriars,injects,salmond,lanzhou,dauntless,subgenera,underpowered,transpose,mahinda,gatos,aerobatics,seaworld,blocs,waratahs,joris,giggs,perfusion,koszalin,mieczyslaw,ayyubid,ecologists,modernists,sant'angelo,quicktime,him/her,staves,sanyo,melaka,acrocercops,qigong,iterated,generalizes,recuperation,vihara,circassians,psychical,chavo,memoires,infiltrates,notaries,pelecaniformesfamily,strident,chivalric,pierrepont,alleviating,broadsides,centipede,b.tech,reinterpreted,sudetenland,hussite,covenanters,radhika,ironclads,gainsbourg,testis,penarth,plantar,azadegan,beano,espn.com,leominster,autobiographies,nbcuniversal,eliade,khamenei,montferrat,undistinguished,ethnological,wenlock,fricatives,polymorphic,biome,joule,sheaths,astrophysicist,salve,neoclassicism,lovat,downwind,belisarius,forma,usurpation,freie,depopulation,backbench,ascenso,'high,aagpbl,gdanski,zalman,mouvement,encapsulation,bolshevism,statny,voyageurs,hywel,vizcaya,mazra'eh,narthex,azerbaijanis,cerebrospinal,mauretania,fantail,clearinghouse,bolingbroke,pequeno,ansett,remixing,microtubule,wrens,jawahar,palembang,gambian,hillsong,fingerboard,repurposed,sundry,incipient,veolia,theologically,ulaanbaatar,atsushi,foundling,resistivity,myeloma,factbook,mazowiecka,diacritic,urumqi,clontarf,provokes,intelsat,professes,materialise,portobello,benedictines,panionios,introverted,reacquired,bridport,mammary,kripke,oratorios,vlore,stoning,woredas,unreported,antti,togolese,fanzines,heuristics,conservatories,carburetors,clitheroe,cofounded,formula_57,erupting,quinnipiac,bootle,ghostface,sittings,aspinall,sealift,transferase,boldklub,siskiyou,predominated,francophonie,ferruginous,castrum,neogene,sakya,madama,precipitous,'love,posix,bithynia,uttara,avestan,thrushes,seiji,memorably,septimius,libri,cibernetico,hyperinflation,dissuaded,cuddalore,peculiarity,vaslui,grojec,albumin,thurles,casks,fasteners,fluidity,buble,casals,terek,gnosticism,cognates,ulnar,radwanska,babylonians,majuro,oxidizer,excavators,rhythmically,liffey,gorakhpur,eurydice,underscored,arborea,lumumba,tuber,catholique,grama,galilei,scrope,centreville,jacobin,bequests,ardeche,polygamous,montauban,terai,weatherboard,readability,attainder,acraea,transversely,rivets,winterbottom,reassures,bacteriology,vriesea,chera,andesite,dedications,homogenous,reconquered,bandon,forrestal,ukiyo,gurdjieff,tethys,sparc,muscogee,grebes,belchatow,mansa,blantyre,palliser,sokolow,fibroblasts,exmoor,misaki,soundscapes,housatonic,middelburg,convenor,leyla,antipope,histidine,okeechobee,alkenes,sombre,alkene,rubik,macaques,calabar,trophee,pinchot,'free,frusciante,chemins,falaise,vasteras,gripped,schwarzenberg,cumann,kanchipuram,acoustically,silverbacks,fangio,inset,plympton,kuril,vaccinations,recep,theropods,axils,stavropol,encroached,apoptotic,papandreou,wailers,moonstone,assizes,micrometers,hornchurch,truncation,annapurna,egyptologists,rheumatic,promiscuity,satiric,fleche,caloptilia,anisotropy,quaternions,gruppo,viscounts,awardees,aftershocks,sigint,concordance,oblasts,gaumont,stent,commissars,kesteven,hydroxy,vijayanagar,belorussian,fabricius,watermark,tearfully,mamet,leukaemia,sorkh,milepost,tattooing,vosta,abbasids,uncompleted,hedong,woodwinds,extinguishing,malus,multiplexes,francoist,pathet,responsa,bassists,'most,postsecondary,ossory,grampian,saakashvili,alito,strasberg,impressionistic,volador,gelatinous,vignette,underwing,campanian,abbasabad,albertville,hopefuls,nieuwe,taxiways,reconvened,recumbent,pathologists,unionized,faversham,asymptotically,romulo,culling,donja,constricted,annesley,duomo,enschede,lovech,sharpshooter,lansky,dhamma,papillae,alanine,mowat,delius,wrest,mcluhan,podkarpackie,imitators,bilaspur,stunting,pommel,casemate,handicaps,nagas,testaments,hemings,necessitate,rearward,locative,cilla,klitschko,lindau,merion,consequential,antic,soong,copula,berthing,chevrons,rostral,sympathizer,budokan,ranulf,beria,stilt,replying,conflated,alcibiades,painstaking,yamanashi,calif.,arvid,ctesiphon,xizong,rajas,caxton,downbeat,resurfacing,rudders,miscegenation,deathmatch,foregoing,arthropod,attestation,karts,reapportionment,harnessing,eastlake,schola,dosing,postcolonial,imtiaz,formula_55,insulators,gunung,accumulations,pampas,llewelyn,bahnhof,cytosol,grosjean,teaneck,briarcliff,arsenio,canara,elaborating,passchendaele,searchlights,holywell,mohandas,preventable,gehry,mestizos,ustinov,cliched,'national,heidfeld,tertullian,jihadist,tourer,miletus,semicircle,outclassed,bouillon,cardinalate,clarifies,dakshina,bilayer,pandyan,unrwa,chandragupta,formula_56,portola,sukumaran,lactation,islamia,heikki,couplers,misappropriation,catshark,montt,ploughs,carib,stator,leaderboard,kenrick,dendrites,scape,tillamook,molesworth,mussorgsky,melanesia,restated,troon,glycoside,truckee,headwater,mashup,sectoral,gangwon,docudrama,skirting,psychopathology,dramatised,ostroleka,infestations,thabo,depolarization,wideroe,eisenbahn,thomond,kumaon,upendra,foreland,acronyms,yaqui,retaking,raphaelite,specie,dupage,villars,lucasarts,chloroplast,werribee,balsa,ascribe,havant,flava,khawaja,tyumen,subtract,interrogators,reshaping,buzzcocks,eesti,campanile,potemkin,apertures,snowboarder,registrars,handbooks,boyar,contaminant,depositors,proximate,jeunesse,zagora,pronouncements,mists,nihilism,deified,margraviate,pietersen,moderators,amalfi,adjectival,copepods,magnetosphere,pallets,clemenceau,castra,perforation,granitic,troilus,grzegorz,luthier,dockyards,antofagasta,ffestiniog,subroutine,afterword,waterwheel,druce,nitin,undifferentiated,emacs,readmitted,barneveld,tapers,hittites,infomercials,infirm,braathens,heligoland,carpark,geomagnetic,musculoskeletal,nigerien,machinima,harmonize,repealing,indecency,muskoka,verite,steubenville,suffixed,cytoskeleton,surpasses,harmonia,imereti,ventricles,heterozygous,envisions,otsego,ecoles,warrnambool,burgenland,seria,rawat,capistrano,welby,kirin,enrollments,caricom,dragonlance,schaffhausen,expanses,photojournalism,brienne,etude,referent,jamtland,schemas,xianbei,cleburne,bicester,maritima,shorelines,diagonals,bjelke,nonpublic,aliasing,m.f.a,ovals,maitreya,skirmishing,grothendieck,sukhothai,angiotensin,bridlington,durgapur,contras,gakuen,skagit,rabbinate,tsunamis,haphazard,tyldesley,microcontroller,discourages,hialeah,compressing,septimus,larvik,condoleezza,psilocybin,protectionism,songbirds,clandestinely,selectmen,wargame,cinemascope,khazars,agronomy,melzer,latifah,cherokees,recesses,assemblymen,basescu,banaras,bioavailability,subchannels,adenine,o'kelly,prabhakar,leonese,dimethyl,testimonials,geoffroy,oxidant,universiti,gheorghiu,bohdan,reversals,zamorin,herbivore,jarre,sebastiao,infanterie,dolmen,teddington,radomsko,spaceships,cuzco,recapitulation,mahoning,bainimarama,myelin,aykroyd,decals,tokelau,nalgonda,rajasthani,121st,quelled,tambov,illyrians,homilies,illuminations,hypertrophy,grodzisk,inundation,incapacity,equilibria,combats,elihu,steinitz,berengar,gowda,canwest,khosrau,maculata,houten,kandinsky,onside,leatherhead,heritable,belvidere,federative,chukchi,serling,eruptive,patan,entitlements,suffragette,evolutions,migrates,demobilisation,athleticism,trope,sarpsborg,kensal,translink,squamish,concertgebouw,energon,timestamp,competences,zalgiris,serviceman,codice_7,spoofing,assange,mahadevan,skien,suceava,augustan,revisionism,unconvincing,hollande,drina,gottlob,lippi,broglie,darkening,tilapia,eagerness,nacht,kolmogorov,photometric,leeuwarden,jrotc,haemorrhage,almanack,cavalli,repudiation,galactose,zwickau,cetinje,houbraken,heavyweights,gabonese,ordinals,noticias,museveni,steric,charaxes,amjad,resection,joinville,leczyca,anastasius,purbeck,subtribe,dalles,leadoff,monoamine,jettisoned,kaori,anthologized,alfreton,indic,bayezid,tottori,colonizing,assassinating,unchanging,eusebian,d'estaing,tsingtao,toshio,transferases,peronist,metrology,equus,mirpur,libertarianism,kovil,indole,'green,abstention,quantitatively,icebreakers,tribals,mainstays,dryandra,eyewear,nilgiri,chrysanthemum,inositol,frenetic,merchantman,hesar,physiotherapist,transceiver,dancefloor,rankine,neisse,marginalization,lengthen,unaided,rework,pageantry,savio,striated,funen,witton,illuminates,frass,hydrolases,akali,bistrita,copywriter,firings,handballer,tachinidae,dmytro,coalesce,neretva,menem,moraines,coatbridge,crossrail,spoofed,drosera,ripen,protour,kikuyu,boleslav,edwardes,troubadours,haplogroups,wrasse,educationalist,sroda,khaneh,dagbladet,apennines,neuroscientist,deplored,terje,maccabees,daventry,spaceport,lessening,ducats,singer/guitarist,chambersburg,yeong,configurable,ceremonially,unrelenting,caffe,graaf,denizens,kingsport,ingush,panhard,synthesised,tumulus,homeschooled,bozorg,idiomatic,thanhouser,queensway,radek,hippolytus,inking,banovina,peacocks,piaui,handsworth,pantomimes,abalone,thera,kurzweil,bandura,augustinians,bocelli,ferrol,jiroft,quadrature,contravention,saussure,rectification,agrippina,angelis,matanzas,nidaros,palestrina,latium,coriolis,clostridium,ordain,uttering,lanchester,proteolytic,ayacucho,merseburg,holbein,sambalpur,algebraically,inchon,ostfold,savoia,calatrava,lahiri,judgeship,ammonite,masaryk,meyerbeer,hemorrhagic,superspeedway,ningxia,panicles,encircles,khmelnytsky,profusion,esher,babol,inflationary,anhydride,gaspe,mossy,periodicity,nacion,meteorologists,mahjong,interventional,sarin,moult,enderby,modell,palgrave,warners,montcalm,siddha,functionalism,rilke,politicized,broadmoor,kunste,orden,brasileira,araneta,eroticism,colquhoun,mamba,blacktown,tubercle,seagrass,manoel,camphor,neoregelia,llandudno,annexe,enplanements,kamien,plovers,statisticians,iturbide,madrasah,nontrivial,publican,landholders,manama,uninhabitable,revivalist,trunkline,friendliness,gurudwara,rocketry,unido,tripos,besant,braque,evolutionarily,abkhazian,staffel,ratzinger,brockville,bohemond,intercut,djurgarden,utilitarianism,deploys,sastri,absolutism,subhas,asghar,fictions,sepinwall,proportionately,titleholders,thereon,foursquare,machinegun,knightsbridge,siauliai,aqaba,gearboxes,castaways,weakens,phallic,strzelce,buoyed,ruthenia,pharynx,intractable,neptunes,koine,leakey,netherlandish,preempted,vinay,terracing,instigating,alluvium,prosthetics,vorarlberg,politiques,joinery,reduplication,nebuchadnezzar,lenticular,banka,seaborne,pattinson,helpline,aleph,beckenham,californians,namgyal,franziska,aphid,branagh,transcribe,appropriateness,surakarta,takings,propagates,juraj,b0d3fb,brera,arrayed,tailback,falsehood,hazleton,prosody,egyptology,pinnate,tableware,ratan,camperdown,ethnologist,tabari,classifiers,biogas,126th,kabila,arbitron,apuestas,membranous,kincardine,oceana,glories,natick,populism,synonymy,ghalib,mobiles,motherboards,stationers,germinal,patronised,formula_58,gaborone,torts,jeezy,interleague,novaya,batticaloa,offshoots,wilbraham,filename,nswrfl,'well,trilobite,pythons,optimally,scientologists,rhesus,pilsen,backdrops,batang,unionville,hermanos,shrikes,fareham,outlawing,discontinuing,boisterous,shamokin,scanty,southwestward,exchangers,unexpired,mewar,h.m.s,saldanha,pawan,condorcet,turbidity,donau,indulgences,coincident,cliques,weeklies,bardhaman,violators,kenai,caspase,xperia,kunal,fistula,epistemic,cammell,nephi,disestablishment,rotator,germaniawerft,pyaar,chequered,jigme,perlis,anisotropic,popstars,kapil,appendices,berat,defecting,shacks,wrangel,panchayath,gorna,suckling,aerosols,sponheim,talal,borehole,encodings,enlai,subduing,agong,nadar,kitsap,syrmia,majumdar,pichilemu,charleville,embryology,booting,literati,abutting,basalts,jussi,repubblica,hertogenbosch,digitization,relents,hillfort,wiesenthal,kirche,bhagwan,bactrian,oases,phyla,neutralizing,helsing,ebooks,spearheading,margarine,'golden,phosphor,picea,stimulants,outliers,timescale,gynaecology,integrator,skyrocketed,bridgnorth,senecio,ramachandra,suffragist,arrowheads,aswan,inadvertent,microelectronics,118th,sofer,kubica,melanesian,tuanku,balkh,vyborg,crystallographic,initiators,metamorphism,ginzburg,looters,unimproved,finistere,newburyport,norges,immunities,franchisees,asterism,kortrijk,camorra,komsomol,fleurs,draughts,patagonian,voracious,artin,collaborationist,revolucion,revitalizing,xaver,purifying,antipsychotic,disjunct,pompeius,dreamwave,juvenal,beinn,adiyaman,antitank,allama,boletus,melanogaster,dumitru,caproni,aligns,athabaskan,stobart,phallus,veikkausliiga,hornsey,buffering,bourbons,dobruja,marga,borax,electrics,gangnam,motorcyclist,whidbey,draconian,lodger,galilean,sanctification,imitates,boldness,underboss,wheatland,cantabrian,terceira,maumee,redefining,uppercase,ostroda,characterise,universalism,equalized,syndicalism,haringey,masovia,deleuze,funkadelic,conceals,thuan,minsky,pluralistic,ludendorff,beekeeping,bonfires,endoscopic,abuts,prebend,jonkoping,amami,tribunes,yup'ik,awadh,gasification,pforzheim,reforma,antiwar,vaishnavism,maryville,inextricably,margrethe,empresa,neutrophils,sanctified,ponca,elachistidae,curiae,quartier,mannar,hyperplasia,wimax,busing,neologism,florins,underrepresented,digitised,nieuw,cooch,howards,frege,hughie,plied,swale,kapellmeister,vajpayee,quadrupled,aeronautique,dushanbe,custos,saltillo,kisan,tigray,manaus,epigrams,shamanic,peppered,frosts,promotion/relegation,concedes,zwingli,charentes,whangarei,hyung,spring/summer,sobre,eretz,initialization,sawai,ephemera,grandfathered,arnaldo,customised,permeated,parapets,growths,visegrad,estudios,altamont,provincia,apologises,stoppard,carburettor,rifts,kinematic,zhengzhou,eschatology,prakrit,folate,yvelines,scapula,stupas,rishon,reconfiguration,flutist,1680s,apostolate,proudhon,lakshman,articulating,stortford,faithfull,bitterns,upwelling,qur'anic,lidar,interferometry,waterlogged,koirala,ditton,wavefunction,fazal,babbage,antioxidants,lemberg,deadlocked,tolled,ramapo,mathematica,leiria,topologies,khali,photonic,balti,1080p,corrects,recommenced,polyglot,friezes,tiebreak,copacabana,cholmondeley,armband,abolishment,sheamus,buttes,glycolysis,cataloged,warrenton,sassari,kishan,foodservice,cryptanalysis,holmenkollen,cosplay,machi,yousuf,mangal,allying,fertiliser,otomi,charlevoix,metallurg,parisians,bottlenose,oakleigh,debug,cidade,accede,ligation,madhava,pillboxes,gatefold,aveyron,sorin,thirsk,immemorial,menelik,mehra,domingos,underpinned,fleshed,harshness,diphthong,crestwood,miskolc,dupri,pyrausta,muskingum,tuoba,prodi,incidences,waynesboro,marquesas,heydar,artesian,calinescu,nucleation,funders,covalently,compaction,derbies,seaters,sodor,tabular,amadou,peckinpah,o'halloran,zechariah,libyans,kartik,daihatsu,chandran,erzhu,heresies,superheated,yarder,dorde,tanjore,abusers,xuanwu,juniperus,moesia,trusteeship,birdwatching,beatz,moorcock,harbhajan,sanga,choreographic,photonics,boylston,amalgamate,prawns,electrifying,sarath,inaccurately,exclaims,powerpoint,chaining,cpusa,adulterous,saccharomyces,glogow,vfl/afl,syncretic,simla,persisting,functors,allosteric,euphorbiaceae,juryo,mlada,moana,gabala,thornycroft,kumanovo,ostrovsky,sitio,tutankhamun,sauropods,kardzhali,reinterpretation,sulpice,rosyth,originators,halesowen,delineation,asesoria,abatement,gardai,elytra,taillights,overlays,monsoons,sandpipers,ingmar,henrico,inaccuracy,irwell,arenabowl,elche,pressburg,signalman,interviewees,sinkhole,pendle,ecommerce,cellos,nebria,organometallic,surrealistic,propagandist,interlaken,canandaigua,aerials,coutinho,pascagoula,tonopah,letterkenny,gropius,carbons,hammocks,childe,polities,hosiery,donitz,suppresses,diaghilev,stroudsburg,bagram,pistoia,regenerating,unitarians,takeaway,offstage,vidin,glorification,bakunin,yavapai,lutzow,sabercats,witney,abrogated,gorlitz,validating,dodecahedron,stubbornly,telenor,glaxosmithkline,solapur,undesired,jellicoe,dramatization,four-and-a-half,seawall,waterpark,artaxerxes,vocalization,typographic,byung,sachsenhausen,shepparton,kissimmee,konnan,belsen,dhawan,khurd,mutagenesis,vejle,perrot,estradiol,formula_60,saros,chiloe,misiones,lamprey,terrains,speke,miasto,eigenvectors,haydock,reservist,corticosteroids,savitri,shinawatra,developmentally,yehudi,berates,janissaries,recapturing,rancheria,subplots,gresley,nikkatsu,oryol,cosmas,boavista,formula_59,playfully,subsections,commentated,kathakali,dorid,vilaine,seepage,hylidae,keiji,kazakhs,triphosphate,1620s,supersede,monarchists,falla,miyako,notching,bhumibol,polarizing,secularized,shingled,bronislaw,lockerbie,soleyman,bundesbahn,latakia,redoubts,boult,inwardly,invents,ondrej,minangkabau,newquay,permanente,alhaji,madhav,malini,ellice,bookmaker,mankiewicz,etihad,o'dea,interrogative,mikawa,wallsend,canisius,bluesy,vitruvius,noord,ratifying,mixtec,gujranwala,subprefecture,keelung,goiania,nyssa,shi'ite,semitone,ch'uan,computerised,pertuan,catapults,nepomuk,shruti,millstones,buskerud,acolytes,tredegar,sarum,armia,dell'arte,devises,custodians,upturned,gallaudet,disembarking,thrashed,sagrada,myeon,undeclared,qumran,gaiden,tepco,janesville,showground,condense,chalon,unstaffed,pasay,undemocratic,hauts,viridis,uninjured,escutcheon,gymkhana,petaling,hammam,dislocations,tallaght,rerum,shias,indios,guaranty,simplicial,benares,benediction,tajiri,prolifically,huawei,onerous,grantee,ferencvaros,otranto,carbonates,conceit,digipak,qadri,masterclasses,swamiji,cradock,plunket,helmsman,119th,salutes,tippecanoe,murshidabad,intelligibility,mittal,diversifying,bidar,asansol,crowdsourcing,rovere,karakoram,grindcore,skylights,tulagi,furrows,ligne,stuka,sumer,subgraph,amata,regionalist,bulkeley,teletext,glorify,readied,lexicographer,sabadell,predictability,quilmes,phenylalanine,bandaranaike,pyrmont,marksmen,quisling,viscountess,sociopolitical,afoul,pediments,swazi,martyrology,nullify,panagiotis,superconductors,veldenz,jujuy,l'isle,hematopoietic,shafi,subsea,hattiesburg,jyvaskyla,kebir,myeloid,landmine,derecho,amerindians,birkenau,scriabin,milhaud,mucosal,nikaya,freikorps,theoretician,proconsul,o'hanlon,clerked,bactria,houma,macular,topologically,shrubby,aryeh,ghazali,afferent,magalhaes,moduli,ashtabula,vidarbha,securitate,ludwigsburg,adoor,varun,shuja,khatun,chengde,bushels,lascelles,professionnelle,elfman,rangpur,unpowered,citytv,chojnice,quaternion,stokowski,aschaffenburg,commutes,subramaniam,methylene,satrap,gharb,namesakes,rathore,helier,gestational,heraklion,colliers,giannis,pastureland,evocation,krefeld,mahadeva,churchmen,egret,yilmaz,galeazzo,pudukkottai,artigas,generalitat,mudslides,frescoed,enfeoffed,aphorisms,melilla,montaigne,gauliga,parkdale,mauboy,linings,prema,sapir,xylophone,kushan,rockne,sequoyah,vasyl,rectilinear,vidyasagar,microcosm,san'a,carcinogen,thicknesses,aleut,farcical,moderating,detested,hegemonic,instalments,vauban,verwaltungsgemeinschaft,picayune,razorback,magellanic,moluccas,pankhurst,exportation,waldegrave,sufferer,bayswater,1up.com,rearmament,orangutans,varazdin,b.o.b,elucidate,harlingen,erudition,brankovic,lapis,slipway,urraca,shinde,unwell,elwes,euboea,colwyn,srivijaya,grandstands,hortons,generalleutnant,fluxes,peterhead,gandhian,reals,alauddin,maximized,fairhaven,endow,ciechanow,perforations,darters,panellist,manmade,litigants,exhibitor,tirol,caracalla,conformance,hotelier,stabaek,hearths,borac,frisians,ident,veliko,emulators,schoharie,uzbeks,samarra,prestwick,wadia,universita,tanah,bucculatrix,predominates,genotypes,denounces,roadsides,ganassi,keokuk,philatelist,tomic,ingots,conduits,samplers,abdus,johar,allegories,timaru,wolfpacks,secunda,smeaton,sportivo,inverting,contraindications,whisperer,moradabad,calamities,bakufu,soundscape,smallholders,nadeem,crossroad,xenophobic,zakir,nationalliga,glazes,retroflex,schwyz,moroder,rubra,quraysh,theodoros,endemol,infidels,km/hr,repositioned,portraitist,lluis,answerable,arges,mindedness,coarser,eyewall,teleported,scolds,uppland,vibraphone,ricoh,isenburg,bricklayer,cuttlefish,abstentions,communicable,cephalopod,stockyards,balto,kinston,armbar,bandini,elphaba,maxims,bedouins,sachsen,friedkin,tractate,pamir,ivanovo,mohini,kovalainen,nambiar,melvyn,orthonormal,matsuyama,cuernavaca,veloso,overstated,streamer,dravid,informers,analyte,sympathized,streetscape,gosta,thomasville,grigore,futuna,depleting,whelks,kiedis,armadale,earner,wynyard,dothan,animating,tridentine,sabri,immovable,rivoli,ariege,parley,clinker,circulates,junagadh,fraunhofer,congregants,180th,buducnost,formula_62,olmert,dedekind,karnak,bayernliga,mazes,sandpiper,ecclestone,yuvan,smallmouth,decolonization,lemmy,adjudicated,retiro,legia,benue,posit,acidification,wahab,taconic,floatplane,perchlorate,atria,wisbech,divestment,dallara,phrygia,palustris,cybersecurity,rebates,facie,mineralogical,substituent,proteges,fowey,mayenne,smoothbore,cherwell,schwarzschild,junin,murrumbidgee,smalltalk,d'orsay,emirati,calaveras,titusville,theremin,vikramaditya,wampanoag,burra,plaines,onegin,emboldened,whampoa,langa,soderbergh,arnaz,sowerby,arendal,godunov,pathanamthitta,damselfly,bestowing,eurosport,iconoclasm,outfitters,acquiesced,badawi,hypotension,ebbsfleet,annulus,sohrab,thenceforth,chagatai,necessitates,aulus,oddities,toynbee,uniontown,innervation,populaire,indivisible,rossellini,minuet,cyrene,gyeongju,chania,cichlids,harrods,1690s,plunges,abdullahi,gurkhas,homebuilt,sortable,bangui,rediff,incrementally,demetrios,medaille,sportif,svend,guttenberg,tubules,carthusian,pleiades,torii,hoppus,phenyl,hanno,conyngham,teschen,cronenberg,wordless,melatonin,distinctiveness,autos,freising,xuanzang,dunwich,satanism,sweyn,predrag,contractually,pavlovic,malaysians,micrometres,expertly,pannonian,abstaining,capensis,southwesterly,catchphrases,commercialize,frankivsk,normanton,hibernate,verso,deportees,dubliners,codice_8,condors,zagros,glosses,leadville,conscript,morrisons,usury,ossian,oulton,vaccinium,civet,ayman,codrington,hadron,nanometers,geochemistry,extractor,grigori,tyrrhenian,neocollyris,drooping,falsification,werft,courtauld,brigantine,orhan,chapultepec,supercopa,federalized,praga,havering,encampments,infallibility,sardis,pawar,undirected,reconstructionist,ardrossan,varuna,pastimes,archdiocesan,fledging,shenhua,molise,secondarily,stagnated,replicates,ciencias,duryodhana,marauding,ruislip,ilyich,intermixed,ravenswood,shimazu,mycorrhizal,icosahedral,consents,dunblane,follicular,pekin,suffield,muromachi,kinsale,gauche,businesspeople,thereto,watauga,exaltation,chelmno,gorse,proliferate,drainages,burdwan,kangra,transducers,inductor,duvalier,maguindanao,moslem,uncaf,givenchy,plantarum,liturgics,telegraphs,lukashenko,chenango,andante,novae,ironwood,faubourg,torme,chinensis,ambala,pietermaritzburg,virginians,landform,bottlenecks,o'driscoll,darbhanga,baptistery,ameer,needlework,naperville,auditoriums,mullingar,starrer,animatronic,topsoil,madura,cannock,vernet,santurce,catocala,ozeki,pontevedra,multichannel,sundsvall,strategists,medio,135th,halil,afridi,trelawny,caloric,ghraib,allendale,hameed,ludwigshafen,spurned,pavlo,palmar,strafed,catamarca,aveiro,harmonization,surah,predictors,solvay,mande,omnipresent,parenthesis,echolocation,equaling,experimenters,acyclic,lithographic,sepoys,katarzyna,sridevi,impoundment,khosrow,caesarean,nacogdoches,rockdale,lawmaker,caucasians,bahman,miyan,rubric,exuberance,bombastic,ductile,snowdonia,inlays,pinyon,anemones,hurries,hospitallers,tayyip,pulleys,treme,photovoltaics,testbed,polonium,ryszard,osgoode,profiting,ironwork,unsurpassed,nepticulidae,makai,lumbini,preclassic,clarksburg,egremont,videography,rehabilitating,ponty,sardonic,geotechnical,khurasan,solzhenitsyn,henna,phoenicia,rhyolite,chateaux,retorted,tomar,deflections,repressions,harborough,renan,brumbies,vandross,storia,vodou,clerkenwell,decking,universo,salon.com,imprisoning,sudwest,ghaziabad,subscribing,pisgah,sukhumi,econometric,clearest,pindar,yildirim,iulia,atlases,cements,remaster,dugouts,collapsible,resurrecting,batik,unreliability,thiers,conjunctions,colophon,marcher,placeholder,flagella,wolds,kibaki,viviparous,twelver,screenshots,aroostook,khadr,iconographic,itasca,jaume,basti,propounded,varro,be'er,jeevan,exacted,shrublands,creditable,brocade,boras,bittern,oneonta,attentional,herzliya,comprehensible,lakeville,discards,caxias,frankland,camerata,satoru,matlab,commutator,interprovincial,yorkville,benefices,nizami,edwardsville,amigaos,cannabinoid,indianola,amateurliga,pernicious,ubiquity,anarchic,novelties,precondition,zardari,symington,sargodha,headphone,thermopylae,mashonaland,zindagi,thalberg,loewe,surfactants,dobro,crocodilians,samhita,diatoms,haileybury,berwickshire,supercritical,sofie,snorna,slatina,intramolecular,agung,osteoarthritis,obstetric,teochew,vakhtang,connemara,deformations,diadem,ferruccio,mainichi,qualitatively,refrigerant,rerecorded,methylated,karmapa,krasinski,restatement,rouvas,cubitt,seacoast,schwarzkopf,homonymous,shipowner,thiamine,approachable,xiahou,160th,ecumenism,polistes,internazionali,fouad,berar,biogeography,texting,inadequately,'when,4kids,hymenoptera,emplaced,cognomen,bellefonte,supplant,michaelmas,uriel,tafsir,morazan,schweinfurt,chorister,ps400,nscaa,petipa,resolutely,ouagadougou,mascarene,supercell,konstanz,bagrat,harmonix,bergson,shrimps,resonators,veneta,camas,mynydd,rumford,generalmajor,khayyam,web.com,pappus,halfdan,tanana,suomen,yutaka,bibliographical,traian,silat,noailles,contrapuntal,agaricus,'special,minibuses,1670s,obadiah,deepa,rorschach,malolos,lymington,valuations,imperials,caballeros,ambroise,judicature,elegiac,sedaka,shewa,checksum,gosforth,legionaries,corneille,microregion,friedrichshafen,antonis,surnamed,mycelium,cantus,educations,topmost,outfitting,ivica,nankai,gouda,anthemic,iosif,supercontinent,antifungal,belarusians,mudaliar,mohawks,caversham,glaciated,basemen,stevan,clonmel,loughton,deventer,positivist,manipuri,tensors,panipat,changeup,impermeable,dubbo,elfsborg,maritimo,regimens,bikram,bromeliad,substratum,norodom,gaultier,queanbeyan,pompeo,redacted,eurocopter,mothballed,centaurs,borno,copra,bemidji,'home,sopron,neuquen,passo,cineplex,alexandrov,wysokie,mammoths,yossi,sarcophagi,congreve,petkovic,extraneous,waterbirds,slurs,indias,phaeton,discontented,prefaced,abhay,prescot,interoperable,nordisk,bicyclists,validly,sejong,litovsk,zanesville,kapitanleutnant,kerch,changeable,mcclatchy,celebi,attesting,maccoll,sepahan,wayans,veined,gaudens,markt,dansk,soane,quantized,petersham,forebears,nayarit,frenzied,queuing,bygone,viggo,ludwik,tanka,hanssen,brythonic,cornhill,primorsky,stockpiles,conceptualization,lampeter,hinsdale,mesoderm,bielsk,rosenheim,ultron,joffrey,stanwyck,khagan,tiraspol,pavelic,ascendant,empoli,metatarsal,descentralizado,masada,ligier,huseyin,ramadi,waratah,tampines,ruthenium,statoil,mladost,liger,grecian,multiparty,digraph,maglev,reconsideration,radiography,cartilaginous,taizu,wintered,anabaptist,peterhouse,shoghi,assessors,numerator,paulet,painstakingly,halakhic,rocroi,motorcycling,gimel,kryptonian,emmeline,cheeked,drawdown,lelouch,dacians,brahmana,reminiscence,disinfection,optimizations,golders,extensor,tsugaru,tolling,liman,gulzar,unconvinced,crataegus,oppositional,dvina,pyrolysis,mandan,alexius,prion,stressors,loomed,moated,dhivehi,recyclable,relict,nestlings,sarandon,kosovar,solvers,czeslaw,kenta,maneuverable,middens,berkhamsted,comilla,folkways,loxton,beziers,batumi,petrochemicals,optimised,sirjan,rabindra,musicality,rationalisation,drillers,subspaces,'live,bbwaa,outfielders,tsung,danske,vandalised,norristown,striae,kanata,gastroenterology,steadfastly,equalising,bootlegging,mannerheim,notodontidae,lagoa,commentating,peninsulas,chishti,seismology,modigliani,preceptor,canonically,awardee,boyaca,hsinchu,stiffened,nacelle,bogor,dryness,unobstructed,yaqub,scindia,peeters,irritant,ammonites,ferromagnetic,speechwriter,oxygenated,walesa,millais,canarian,faience,calvinistic,discriminant,rasht,inker,annexes,howth,allocates,conditionally,roused,regionalism,regionalbahn,functionary,nitrates,bicentenary,recreates,saboteurs,koshi,plasmids,thinned,124th,plainview,kardashian,neuville,victorians,radiates,127th,vieques,schoolmates,petru,tokusatsu,keying,sunaina,flamethrower,'bout,demersal,hosokawa,corelli,omniscient,o'doherty,niksic,reflectivity,transdev,cavour,metronome,temporally,gabba,nsaids,geert,mayport,hematite,boeotia,vaudreuil,torshavn,sailplane,mineralogist,eskisehir,practises,gallifrey,takumi,unease,slipstream,hedmark,paulinus,ailsa,wielkopolska,filmworks,adamantly,vinaya,facelifted,franchisee,augustana,toppling,velvety,crispa,stonington,histological,genealogist,tactician,tebow,betjeman,nyingma,overwinter,oberoi,rampal,overwinters,petaluma,lactarius,stanmore,balikpapan,vasant,inclines,laminate,munshi,sociedade,rabbah,septal,boyband,ingrained,faltering,inhumans,nhtsa,affix,l'ordre,kazuki,rossendale,mysims,latvians,slaveholders,basilicata,neuburg,assize,manzanillo,scrobipalpa,formula_61,belgique,pterosaurs,privateering,vaasa,veria,northport,pressurised,hobbyist,austerlitz,sahih,bhadra,siliguri,bistrica,bursaries,wynton,corot,lepidus,lully,libor,libera,olusegun,choline,mannerism,lymphocyte,chagos,duxbury,parasitism,ecowas,morotai,cancion,coniston,aggrieved,sputnikmusic,parle,ammonian,civilisations,malformation,cattaraugus,skyhawks,d'arc,demerara,bronfman,midwinter,piscataway,jogaila,threonine,matins,kohlberg,hubli,pentatonic,camillus,nigam,potro,unchained,chauvel,orangeville,cistercians,redeployment,xanthi,manju,carabinieri,pakeha,nikolaevich,kantakouzenos,sesquicentennial,gunships,symbolised,teramo,ballo,crusading,l'oeil,bharatpur,lazier,gabrovo,hysteresis,rothbard,chaumont,roundel,ma'mun,sudhir,queried,newts,shimane,presynaptic,playfield,taxonomists,sensitivities,freleng,burkinabe,orfeo,autovia,proselytizing,bhangra,pasok,jujutsu,heung,pivoting,hominid,commending,formula_64,epworth,christianized,oresund,hantuchova,rajputana,hilversum,masoretic,dayak,bakri,assen,magog,macromolecules,waheed,qaida,spassky,rumped,protrudes,preminger,misogyny,glencairn,salafi,lacunae,grilles,racemes,areva,alighieri,inari,epitomized,photoshoot,one-of-a-kind,tring,muralist,tincture,backwaters,weaned,yeasts,analytically,smaland,caltrans,vysocina,jamuna,mauthausen,175th,nouvelles,censoring,reggina,christology,gilad,amplifying,mehmood,johnsons,redirects,eastgate,sacrum,meteoric,riverbanks,guidebooks,ascribes,scoparia,iconoclastic,telegraphic,chine,merah,mistico,lectern,sheung,aethelstan,capablanca,anant,uspto,albatrosses,mymensingh,antiretroviral,clonal,coorg,vaillant,liquidator,gigas,yokai,eradicating,motorcyclists,waitakere,tandon,nears,montenegrins,250th,tatsuya,yassin,atheistic,syncretism,nahum,berisha,transcended,owensboro,lakshmana,abteilung,unadorned,nyack,overflows,harrisonburg,complainant,uematsu,frictional,worsens,sangguniang,abutment,bulwer,sarma,apollinaire,shippers,lycia,alentejo,porpoises,optus,trawling,augustow,blackwall,workbench,westmount,leaped,sikandar,conveniences,stornoway,culverts,zoroastrians,hristo,ansgar,assistive,reassert,fanned,compasses,delgada,maisons,arima,plonsk,verlaine,starstruck,rakhine,befell,spirally,wyclef,expend,colloquium,formula_63,albertus,bellarmine,handedness,holon,introns,movimiento,profitably,lohengrin,discoverers,awash,erste,pharisees,dwarka,oghuz,hashing,heterodox,uloom,vladikavkaz,linesman,rehired,nucleophile,germanicus,gulshan,songz,bayerische,paralympian,crumlin,enjoined,khanum,prahran,penitent,amersfoort,saranac,semisimple,vagrants,compositing,tualatin,oxalate,lavra,ironi,ilkeston,umpqua,calum,stretford,zakat,guelders,hydrazine,birkin,spurring,modularity,aspartate,sodermanland,hopital,bellary,legazpi,clasico,cadfael,hypersonic,volleys,pharmacokinetics,carotene,orientale,pausini,bataille,lunga,retailed,m.phil,mazowieckie,vijayan,rawal,sublimation,promissory,estimators,ploughed,conflagration,penda,segregationist,otley,amputee,coauthor,sopra,pellew,wreckers,tollywood,circumscription,permittivity,strabane,landward,articulates,beaverbrook,rutherglen,coterminous,whistleblowers,colloidal,surbiton,atlante,oswiecim,bhasa,lampooned,chanter,saarc,landkreis,tribulation,tolerates,daiichi,hatun,cowries,dyschirius,abercromby,attock,aldwych,inflows,absolutist,l'histoire,committeeman,vanbrugh,headstock,westbourne,appenzell,hoxton,oculus,westfalen,roundabouts,nickelback,trovatore,quenching,summarises,conservators,transmutation,talleyrand,barzani,unwillingly,axonal,'blue,opining,enveloping,fidesz,rafah,colborne,flickr,lozenge,dulcimer,ndebele,swaraj,oxidize,gonville,resonated,gilani,superiore,endeared,janakpur,shepperton,solidifying,memoranda,sochaux,kurnool,rewari,emirs,kooning,bruford,unavailability,kayseri,judicious,negating,pterosaur,cytosolic,chernihiv,variational,sabretooth,seawolves,devalued,nanded,adverb,volunteerism,sealers,nemours,smederevo,kashubian,bartin,animax,vicomte,polotsk,polder,archiepiscopal,acceptability,quidditch,tussock,seminaire,immolation,belge,coves,wellingborough,khaganate,mckellen,nayaka,brega,kabhi,pontoons,bascule,newsreels,injectors,cobol,weblog,diplo,biggar,wheatbelt,erythrocytes,pedra,showgrounds,bogdanovich,eclecticism,toluene,elegies,formalize,andromedae,airworthiness,springville,mainframes,overexpression,magadha,bijelo,emlyn,glutamine,accenture,uhuru,metairie,arabidopsis,patanjali,peruvians,berezovsky,accion,astrolabe,jayanti,earnestly,sausalito,recurved,1500s,ramla,incineration,galleons,laplacian,shiki,smethwick,isomerase,dordevic,janow,jeffersonville,internationalism,penciled,styrene,ashur,nucleoside,peristome,horsemanship,sedges,bachata,medes,kristallnacht,schneerson,reflectance,invalided,strutt,draupadi,destino,partridges,tejas,quadrennial,aurel,halych,ethnomusicology,autonomist,radyo,rifting,shi'ar,crvena,telefilm,zawahiri,plana,sultanates,theodorus,subcontractors,pavle,seneschal,teleports,chernivtsi,buccal,brattleboro,stankovic,safar,dunhuang,electrocution,chastised,ergonomic,midsomer,130th,zomba,nongovernmental,escapist,localize,xuzhou,kyrie,carinthian,karlovac,nisan,kramnik,pilipino,digitisation,khasi,andronicus,highwayman,maior,misspelling,sebastopol,socon,rhaetian,archimandrite,partway,positivity,otaku,dingoes,tarski,geopolitics,disciplinarian,zulfikar,kenzo,globose,electrophilic,modele,storekeeper,pohang,wheldon,washers,interconnecting,digraphs,intrastate,campy,helvetic,frontispiece,ferrocarril,anambra,petraeus,midrib,endometrial,dwarfism,mauryan,endocytosis,brigs,percussionists,furtherance,synergistic,apocynaceae,krona,berthier,circumvented,casal,siltstone,precast,ethnikos,realists,geodesy,zarzuela,greenback,tripathi,persevered,interments,neutralization,olbermann,departements,supercomputing,demobilised,cassavetes,dunder,ministering,veszprem,barbarism,'world,pieve,apologist,frentzen,sulfides,firewalls,pronotum,staatsoper,hachette,makhachkala,oberland,phonon,yoshihiro,instars,purnima,winslet,mutsu,ergative,sajid,nizamuddin,paraphrased,ardeidae,kodagu,monooxygenase,skirmishers,sportiva,o'byrne,mykolaiv,ophir,prieta,gyllenhaal,kantian,leche,copan,herero,ps250,gelsenkirchen,shalit,sammarinese,chetwynd,wftda,travertine,warta,sigmaringen,concerti,namespace,ostergotland,biomarker,universals,collegio,embarcadero,wimborne,fiddlers,likening,ransomed,stifled,unabated,kalakaua,khanty,gongs,goodrem,countermeasure,publicizing,geomorphology,swedenborg,undefended,catastrophes,diverts,storyboards,amesbury,contactless,placentia,festivity,authorise,terrane,thallium,stradivarius,antonine,consortia,estimations,consecrate,supergiant,belichick,pendants,butyl,groza,univac,afire,kavala,studi,teletoon,paucity,gonbad,koninklijke,128th,stoichiometric,multimodal,facundo,anatomic,melamine,creuse,altan,brigands,mcguinty,blomfield,tsvangirai,protrusion,lurgan,warminster,tenzin,russellville,discursive,definable,scotrail,lignin,reincorporated,o'dell,outperform,redland,multicolored,evaporates,dimitrie,limbic,patapsco,interlingua,surrogacy,cutty,potrero,masud,cahiers,jintao,ardashir,centaurus,plagiarized,minehead,musings,statuettes,logarithms,seaview,prohibitively,downforce,rivington,tomorrowland,microbiologist,ferric,morag,capsid,kucinich,clairvaux,demotic,seamanship,cicada,painterly,cromarty,carbonic,tupou,oconee,tehuantepec,typecast,anstruther,internalized,underwriters,tetrahedra,flagrant,quakes,pathologies,ulrik,nahal,tarquini,dongguan,parnassus,ryoko,senussi,seleucia,airasia,einer,sashes,d'amico,matriculating,arabesque,honved,biophysical,hardinge,kherson,mommsen,diels,icbms,reshape,brasiliensis,palmach,netaji,oblate,functionalities,grigor,blacksburg,recoilless,melanchthon,reales,astrodome,handcrafted,memes,theorizes,isma'il,aarti,pirin,maatschappij,stabilizes,honiara,ashbury,copts,rootes,defensed,queiroz,mantegna,galesburg,coraciiformesfamily,cabrillo,tokio,antipsychotics,kanon,173rd,apollonia,finial,lydian,hadamard,rangi,dowlatabad,monolingual,platformer,subclasses,chiranjeevi,mirabeau,newsgroup,idmanyurdu,kambojas,walkover,zamoyski,generalist,khedive,flanges,knowle,bande,157th,alleyn,reaffirm,pininfarina,zuckerberg,hakodate,131st,aditi,bellinzona,vaulter,planking,boscombe,colombians,lysis,toppers,metered,nahyan,queensryche,minho,nagercoil,firebrand,foundress,bycatch,mendota,freeform,antena,capitalisation,martinus,overijssel,purists,interventionist,zgierz,burgundians,hippolyta,trompe,umatilla,moroccans,dictionnaire,hydrography,changers,chota,rimouski,aniline,bylaw,grandnephew,neamt,lemnos,connoisseurs,tractive,rearrangements,fetishism,finnic,apalachicola,landowning,calligraphic,circumpolar,mansfeld,legible,orientalism,tannhauser,blamey,maximization,noinclude,blackbirds,angara,ostersund,pancreatitis,glabra,acleris,juried,jungian,triumphantly,singlet,plasmas,synesthesia,yellowhead,unleashes,choiseul,quanzhong,brookville,kaskaskia,igcse,skatepark,jatin,jewellers,scaritinae,techcrunch,tellurium,lachaise,azuma,codeshare,dimensionality,unidirectional,scolaire,macdill,camshafts,unassisted,verband,kahlo,eliya,prelature,chiefdoms,saddleback,sockers,iommi,coloratura,llangollen,biosciences,harshest,maithili,k'iche,plical,multifunctional,andreu,tuskers,confounding,sambre,quarterdeck,ascetics,berdych,transversal,tuolumne,sagami,petrobras,brecker,menxia,instilling,stipulating,korra,oscillate,deadpan,v/line,pyrotechnic,stoneware,prelims,intracoastal,retraining,ilija,berwyn,encrypt,achievers,zulfiqar,glycoproteins,khatib,farmsteads,occultist,saman,fionn,derulo,khilji,obrenovic,argosy,toowong,dementieva,sociocultural,iconostasis,craigslist,festschrift,taifa,intercalated,tanjong,penticton,sharad,marxian,extrapolation,guises,wettin,prabang,exclaiming,kosta,famas,conakry,wanderings,'aliabad,macleay,exoplanet,bancorp,besiegers,surmounting,checkerboard,rajab,vliet,tarek,operable,wargaming,haldimand,fukuyama,uesugi,aggregations,erbil,brachiopods,tokyu,anglais,unfavorably,ujpest,escorial,armagnac,nagara,funafuti,ridgeline,cocking,o'gorman,compactness,retardant,krajowa,barua,coking,bestows,thampi,chicagoland,variably,o'loughlin,minnows,schwa,shaukat,polycarbonate,chlorinated,godalming,gramercy,delved,banqueting,enlil,sarada,prasanna,domhnall,decadal,regressive,lipoprotein,collectable,surendra,zaporizhia,cycliste,suchet,offsetting,formula_65,pudong,d'arte,blyton,quonset,osmania,tientsin,manorama,proteomics,bille,jalpaiguri,pertwee,barnegat,inventiveness,gollancz,euthanized,henricus,shortfalls,wuxia,chlorides,cerrado,polyvinyl,folktale,straddled,bioengineering,eschewing,greendale,recharged,olave,ceylonese,autocephalous,peacebuilding,wrights,guyed,rosamund,abitibi,bannockburn,gerontology,scutari,souness,seagram,codice_9,'open,xhtml,taguig,purposed,darbar,orthopedics,unpopulated,kisumu,tarrytown,feodor,polyhedral,monadnock,gottorp,priam,redesigning,gasworks,elfin,urquiza,homologation,filipovic,bohun,manningham,gornik,soundness,shorea,lanus,gelder,darke,sandgate,criticality,paranaense,153rd,vieja,lithograph,trapezoid,tiebreakers,convalescence,yan'an,actuaries,balad,altimeter,thermoelectric,trailblazer,previn,tenryu,ancaster,endoscopy,nicolet,discloses,fracking,plaine,salado,americanism,placards,absurdist,propylene,breccia,jirga,documenta,ismailis,161st,brentano,dallas/fort,embellishment,calipers,subscribes,mahavidyalaya,wednesbury,barnstormers,miwok,schembechler,minigame,unterberger,dopaminergic,inacio,nizamabad,overridden,monotype,cavernous,stichting,sassafras,sotho,argentinean,myrrh,rapidity,flatts,gowrie,dejected,kasaragod,cyprinidae,interlinked,arcseconds,degeneracy,infamously,incubate,substructure,trigeminal,sectarianism,marshlands,hooliganism,hurlers,isolationist,urania,burrard,switchover,lecco,wilts,interrogator,strived,ballooning,volterra,raciborz,relegating,gilding,cybele,dolomites,parachutist,lochaber,orators,raeburn,backend,benaud,rallycross,facings,banga,nuclides,defencemen,futurity,emitters,yadkin,eudonia,zambales,manasseh,sirte,meshes,peculiarly,mcminnville,roundly,boban,decrypt,icelanders,sanam,chelan,jovian,grudgingly,penalised,subscript,gambrinus,poaceae,infringements,maleficent,runciman,148th,supersymmetry,granites,liskeard,eliciting,involution,hallstatt,kitzbuhel,shankly,sandhills,inefficiencies,yishuv,psychotropic,nightjars,wavell,sangamon,vaikundar,choshu,retrospectives,pitesti,gigantea,hashemi,bosna,gakuin,siochana,arrangers,baronetcies,narayani,temecula,creston,koscierzyna,autochthonous,wyandot,anniston,igreja,mobilise,buzau,dunster,musselburgh,wenzhou,khattak,detoxification,decarboxylase,manlius,campbells,coleoptera,copyist,sympathisers,suisun,eminescu,defensor,transshipment,thurgau,somerton,fluctuates,ambika,weierstrass,lukow,giambattista,volcanics,romanticized,innovated,matabeleland,scotiabank,garwolin,purine,d'auvergne,borderland,maozhen,pricewaterhousecoopers,testator,pallium,scout.com,mv/pi,nazca,curacies,upjohn,sarasvati,monegasque,ketrzyn,malory,spikelets,biomechanics,haciendas,rapped,dwarfed,stews,nijinsky,subjection,matsu,perceptible,schwarzburg,midsection,entertains,circuitous,epiphytic,wonsan,alpini,bluefield,sloths,transportable,braunfels,dictum,szczecinek,jukka,wielun,wejherowo,hucknall,grameen,duodenum,ribose,deshpande,shahar,nexstar,injurious,dereham,lithographer,dhoni,structuralist,progreso,deschutes,christus,pulteney,quoins,yitzchak,gyeongsang,breviary,makkah,chiyoda,jutting,vineland,angiosperms,necrotic,novelisation,redistribute,tirumala,140th,featureless,mafic,rivaling,toyline,2/1st,martius,saalfeld,monthan,texian,kathak,melodramas,mithila,regierungsbezirk,509th,fermenting,schoolmate,virtuosic,briain,kokoda,heliocentric,handpicked,kilwinning,sonically,dinars,kasim,parkways,bogdanov,luxembourgian,halland,avesta,bardic,daugavpils,excavator,qwest,frustrate,physiographic,majoris,'ndrangheta,unrestrained,firmness,montalban,abundances,preservationists,adare,executioners,guardsman,bonnaroo,neglects,nazrul,pro12,hoorn,abercorn,refuting,kabud,cationic,parapsychology,troposphere,venezuelans,malignancy,khoja,unhindered,accordionist,medak,visby,ejercito,laparoscopic,dinas,umayyads,valmiki,o'dowd,saplings,stranding,incisions,illusionist,avocets,buccleuch,amazonia,fourfold,turboprops,roosts,priscus,turnstile,areal,certifies,pocklington,spoofs,viseu,commonalities,dabrowka,annam,homesteaders,daredevils,mondrian,negotiates,fiestas,perennials,maximizes,lubavitch,ravindra,scrapers,finials,kintyre,violas,snoqualmie,wilders,openbsd,mlawa,peritoneal,devarajan,congke,leszno,mercurial,fakir,joannes,bognor,overloading,unbuilt,gurung,scuttle,temperaments,bautzen,jardim,tradesman,visitations,barbet,sagamore,graaff,forecasters,wilsons,assis,l'air,shariah,sochaczew,russa,dirge,biliary,neuve,heartbreakers,strathearn,jacobian,overgrazing,edrich,anticline,parathyroid,petula,lepanto,decius,channelled,parvathi,puppeteers,communicators,francorchamps,kahane,longus,panjang,intron,traite,xxvii,matsuri,amrit,katyn,disheartened,cacak,omonia,alexandrine,partaking,wrangling,adjuvant,haskovo,tendrils,greensand,lammermoor,otherworld,volusia,stabling,one-and-a-half,bresson,zapatista,eotvos,ps150,webisodes,stepchildren,microarray,braganca,quanta,dolne,superoxide,bellona,delineate,ratha,lindenwood,bruhl,cingulate,tallies,bickerton,helgi,bevin,takoma,tsukuba,statuses,changeling,alister,bytom,dibrugarh,magnesia,duplicating,outlier,abated,goncalo,strelitz,shikai,mardan,musculature,ascomycota,springhill,tumuli,gabaa,odenwald,reformatted,autocracy,theresienstadt,suplex,chattopadhyay,mencken,congratulatory,weatherfield,systema,solemnity,projekt,quanzhou,kreuzberg,postbellum,nobuo,mediaworks,finisterre,matchplay,bangladeshis,kothen,oocyte,hovered,aromas,afshar,browed,teases,chorlton,arshad,cesaro,backbencher,iquique,vulcans,padmini,unabridged,cyclase,despotic,kirilenko,achaean,queensberry,debre,octahedron,iphigenia,curbing,karimnagar,sagarmatha,smelters,surrealists,sanada,shrestha,turridae,leasehold,jiedushi,eurythmics,appropriating,correze,thimphu,amery,musicomh,cyborgs,sandwell,pushcart,retorts,ameliorate,deteriorates,stojanovic,spline,entrenchments,bourse,chancellorship,pasolini,lendl,personage,reformulated,pubescens,loiret,metalurh,reinvention,nonhuman,eilema,tarsal,complutense,magne,broadview,metrodome,outtake,stouffville,seinen,bataillon,phosphoric,ostensible,opatow,aristides,beefheart,glorifying,banten,romsey,seamounts,fushimi,prophylaxis,sibylla,ranjith,goslar,balustrades,georgiev,caird,lafitte,peano,canso,bankura,halfpenny,segregate,caisson,bizerte,jamshedpur,euromaidan,philosophie,ridged,cheerfully,reclassification,aemilius,visionaries,samoans,wokingham,chemung,wolof,unbranched,cinerea,bhosle,ourense,immortalised,cornerstones,sourcebook,khufu,archimedean,universitatea,intermolecular,fiscally,suffices,metacomet,adjudicator,stablemate,specks,glace,inowroclaw,patristic,muharram,agitating,ashot,neurologic,didcot,gamla,ilves,putouts,siraj,laski,coaling,diarmuid,ratnagiri,rotulorum,liquefaction,morbihan,harel,aftershock,gruiformesfamily,bonnier,falconiformesfamily,adorns,wikis,maastrichtian,stauffenberg,bishopsgate,fakhr,sevenfold,ponders,quantifying,castiel,opacity,depredations,lenten,gravitated,o'mahony,modulates,inuktitut,paston,kayfabe,vagus,legalised,balked,arianism,tendering,sivas,birthdate,awlaki,khvajeh,shahab,samtgemeinde,bridgeton,amalgamations,biogenesis,recharging,tsukasa,mythbusters,chamfered,enthronement,freelancers,maharana,constantia,sutil,messines,monkton,okanogan,reinvigorated,apoplexy,tanahashi,neues,valiants,harappan,russes,carding,volkoff,funchal,statehouse,imitative,intrepidity,mellotron,samaras,turkana,besting,longitudes,exarch,diarrhoea,transcending,zvonareva,darna,ramblin,disconnection,137th,refocused,diarmait,agricole,ba'athist,turenne,contrabass,communis,daviess,fatimids,frosinone,fittingly,polyphyletic,qanat,theocratic,preclinical,abacha,toorak,marketplaces,conidia,seiya,contraindicated,retford,bundesautobahn,rebuilds,climatology,seaworthy,starfighter,qamar,categoria,malai,hellinsia,newstead,airworthy,catenin,avonmouth,arrhythmias,ayyavazhi,downgrade,ashburnham,ejector,kinematics,petworth,rspca,filmation,accipitridae,chhatrapati,g/mol,bacau,agama,ringtone,yudhoyono,orchestrator,arbitrators,138th,powerplants,cumbernauld,alderley,misamis,hawai`i,cuando,meistriliiga,jermyn,alans,pedigrees,ottavio,approbation,omnium,purulia,prioress,rheinland,lymphoid,lutsk,oscilloscope,ballina,iliac,motorbikes,modernising,uffizi,phylloxera,kalevala,bengalis,amravati,syntheses,interviewers,inflectional,outflank,maryhill,unhurt,profiler,nacelles,heseltine,personalised,guarda,herpetologist,airpark,pigot,margaretha,dinos,peleliu,breakbeat,kastamonu,shaivism,delamere,kingsville,epigram,khlong,phospholipids,journeying,lietuvos,congregated,deviance,celebes,subsoil,stroma,kvitova,lubricating,layoff,alagoas,olafur,doron,interuniversity,raycom,agonopterix,uzice,nanna,springvale,raimundo,wrested,pupal,talat,skinheads,vestige,unpainted,handan,odawara,ammar,attendee,lapped,myotis,gusty,ciconiiformesfamily,traversal,subfield,vitaphone,prensa,hasidism,inwood,carstairs,kropotkin,turgenev,dobra,remittance,purim,tannin,adige,tabulation,lethality,pacha,micronesian,dhruva,defensemen,tibeto,siculus,radioisotope,sodertalje,phitsanulok,euphonium,oxytocin,overhangs,skinks,fabrica,reinterred,emulates,bioscience,paragliding,raekwon,perigee,plausibility,frolunda,erroll,aznar,vyasa,albinus,trevally,confederacion,terse,sixtieth,1530s,kendriya,skateboarders,frontieres,muawiyah,easements,shehu,conservatively,keystones,kasem,brutalist,peekskill,cowry,orcas,syllabary,paltz,elisabetta,denticles,hampering,dolni,eidos,aarau,lermontov,yankton,shahbaz,barrages,kongsvinger,reestablishment,acetyltransferase,zulia,mrnas,slingsby,eucalypt,efficacious,weybridge,gradation,cinematheque,malthus,bampton,coexisted,cisse,hamdi,cupertino,saumarez,chionodes,libertine,formers,sakharov,pseudonymous,vol.1,mcduck,gopalakrishnan,amberley,jorhat,grandmasters,rudiments,dwindle,param,bukidnon,menander,americanus,multipliers,pulawy,homoerotic,pillbox,cd+dvd,epigraph,aleksandrow,extrapolated,horseshoes,contemporain,angiography,hasselt,shawinigan,memorization,legitimized,cyclades,outsold,rodolphe,kelis,powerball,dijkstra,analyzers,incompressible,sambar,orangeburg,osten,reauthorization,adamawa,sphagnum,hypermarket,millipedes,zoroaster,madea,ossuary,murrayfield,pronominal,gautham,resellers,ethers,quarrelled,dolna,stragglers,asami,tangut,passos,educacion,sharaf,texel,berio,bethpage,bezalel,marfa,noronha,36ers,genteel,avram,shilton,compensates,sweetener,reinstalled,disables,noether,1590s,balakrishnan,kotaro,northallerton,cataclysm,gholam,cancellara,schiphol,commends,longinus,albinism,gemayel,hamamatsu,volos,islamism,sidereal,pecuniary,diggings,townsquare,neosho,lushan,chittoor,akhil,disputation,desiccation,cambodians,thwarting,deliberated,ellipsis,bahini,susumu,separators,kohneh,plebeians,kultur,ogaden,pissarro,trypeta,latur,liaodong,vetting,datong,sohail,alchemists,lengthwise,unevenly,masterly,microcontrollers,occupier,deviating,farringdon,baccalaureat,theocracy,chebyshev,archivists,jayaram,ineffectiveness,scandinavians,jacobins,encomienda,nambu,g/cm3,catesby,paavo,heeded,rhodium,idealised,10deg,infective,mecyclothorax,halevy,sheared,minbari,audax,lusatian,rebuffs,hitfix,fastener,subjugate,tarun,binet,compuserve,synthesiser,keisuke,amalric,ligatures,tadashi,ignazio,abramovich,groundnut,otomo,maeve,mortlake,ostrogoths,antillean,todor,recto,millimetre,espousing,inaugurate,paracetamol,galvanic,harpalinae,jedrzejow,reassessment,langlands,civita,mikan,stikine,bijar,imamate,istana,kaiserliche,erastus,federale,cytosine,expansionism,hommes,norrland,smriti,snapdragon,gulab,taleb,lossy,khattab,urbanised,sesto,rekord,diffuser,desam,morganatic,silting,pacts,extender,beauharnais,purley,bouches,halfpipe,discontinuities,houthi,farmville,animism,horni,saadi,interpretative,blockades,symeon,biogeographic,transcaucasian,jetties,landrieu,astrocytes,conjunto,stumpings,weevils,geysers,redux,arching,romanus,tazeh,marcellinus,casein,opava,misrata,anare,sattar,declarer,dreux,oporto,venta,vallis,icosahedron,cortona,lachine,mohammedan,sandnes,zynga,clarin,diomedes,tsuyoshi,pribram,gulbarga,chartist,superettan,boscawen,altus,subang,gating,epistolary,vizianagaram,ogdensburg,panna,thyssen,tarkovsky,dzogchen,biograph,seremban,unscientific,nightjar,legco,deism,n.w.a,sudha,siskel,sassou,flintlock,jovial,montbeliard,pallida,formula_66,tranquillity,nisei,adornment,'people,yamhill,hockeyallsvenskan,adopters,appian,lowicz,haplotypes,succinctly,starogard,presidencies,kheyrabad,sobibor,kinesiology,cowichan,militum,cromwellian,leiningen,ps1.5,concourses,dalarna,goldfield,brzeg,faeces,aquarii,matchless,harvesters,181st,numismatics,korfball,sectioned,transpires,facultative,brandishing,kieron,forages,menai,glutinous,debarge,heathfield,1580s,malang,photoelectric,froome,semiotic,alwar,grammophon,chiaroscuro,mentalist,maramures,flacco,liquors,aleutians,marvell,sutlej,patnaik,qassam,flintoff,bayfield,haeckel,sueno,avicii,exoplanets,hoshi,annibale,vojislav,honeycombs,celebrant,rendsburg,veblen,quails,141st,carronades,savar,narrations,jeeva,ontologies,hedonistic,marinette,godot,munna,bessarabian,outrigger,thame,gravels,hoshino,falsifying,stereochemistry,nacionalista,medially,radula,ejecting,conservatorio,odile,ceiba,jaina,essonne,isometry,allophones,recidivism,iveco,ganda,grammarians,jagan,signposted,uncompressed,facilitators,constancy,ditko,propulsive,impaling,interbank,botolph,amlaib,intergroup,sorbus,cheka,debye,praca,adorning,presbyteries,dormition,strategos,qarase,pentecostals,beehives,hashemite,goldust,euronext,egress,arpanet,soames,jurchens,slovenska,copse,kazim,appraisals,marischal,mineola,sharada,caricaturist,sturluson,galba,faizabad,overwintering,grete,uyezds,didsbury,libreville,ablett,microstructure,anadolu,belenenses,elocution,cloaks,timeslots,halden,rashidun,displaces,sympatric,germanus,tuples,ceska,equalize,disassembly,krautrock,babangida,memel,deild,gopala,hematology,underclass,sangli,wawrinka,assur,toshack,refrains,nicotinic,bhagalpur,badami,racetracks,pocatello,walgreens,nazarbayev,occultation,spinnaker,geneon,josias,hydrolyzed,dzong,corregimiento,waistcoat,thermoplastic,soldered,anticancer,lactobacillus,shafi'i,carabus,adjournment,schlumberger,triceratops,despotate,mendicant,krishnamurti,bahasa,earthworm,lavoisier,noetherian,kalki,fervently,bhawan,saanich,coquille,gannet,motagua,kennels,mineralization,fitzherbert,svein,bifurcated,hairdressing,felis,abounded,dimers,fervour,hebdo,bluffton,aetna,corydon,clevedon,carneiro,subjectively,deutz,gastropoda,overshot,concatenation,varman,carolla,maharshi,mujib,inelastic,riverhead,initialized,safavids,rohini,caguas,bulges,fotbollforbund,hefei,spithead,westville,maronites,lytham,americo,gediminas,stephanus,chalcolithic,hijra,gnu/linux,predilection,rulership,sterility,haidar,scarlatti,saprissa,sviatoslav,pointedly,sunroof,guarantor,thevar,airstrips,pultusk,sture,129th,divinities,daizong,dolichoderus,cobourg,maoists,swordsmanship,uprated,bohme,tashi,largs,chandi,bluebeard,householders,richardsonian,drepanidae,antigonish,elbasan,occultism,marca,hypergeometric,oirat,stiglitz,ignites,dzungar,miquelon,pritam,d'automne,ulidiid,niamey,vallecano,fondo,billiton,incumbencies,raceme,chambery,cadell,barenaked,kagame,summerside,haussmann,hatshepsut,apothecaries,criollo,feint,nasals,timurid,feltham,plotinus,oxygenation,marginata,officinalis,salat,participations,ising,downe,izumo,unguided,pretence,coursed,haruna,viscountcy,mainstage,justicia,powiat,takara,capitoline,implacable,farben,stopford,cosmopterix,tuberous,kronecker,galatians,kweli,dogmas,exhorted,trebinje,skanda,newlyn,ablative,basidia,bhiwani,encroachments,stranglers,regrouping,tubal,shoestring,wawel,anionic,mesenchymal,creationists,pyrophosphate,moshi,despotism,powerbook,fatehpur,rupiah,segre,ternate,jessore,b.i.g,shevardnadze,abounds,gliwice,densest,memoria,suborbital,vietcong,ratepayers,karunanidhi,toolbar,descents,rhymney,exhortation,zahedan,carcinomas,hyperbaric,botvinnik,billets,neuropsychological,tigranes,hoards,chater,biennially,thistles,scotus,wataru,flotillas,hungama,monopolistic,payouts,vetch,generalissimo,caries,naumburg,piran,blizzards,escalates,reactant,shinya,theorize,rizzoli,transitway,ecclesiae,streptomyces,cantal,nisibis,superconductor,unworkable,thallus,roehampton,scheckter,viceroys,makuuchi,ilkley,superseding,takuya,klodzko,borbon,raspberries,operand,w.a.k.o,sarabande,factionalism,egalitarianism,temasek,torbat,unscripted,jorma,westerner,perfective,vrije,underlain,goldfrapp,blaenau,jomon,barthes,drivetime,bassa,bannock,umaga,fengxiang,zulus,sreenivasan,farces,codice_10,freeholder,poddebice,imperialists,deregulated,wingtip,o'hagan,pillared,overtone,hofstadter,149th,kitano,saybrook,standardizing,aldgate,staveley,o'flaherty,hundredths,steerable,soltan,empted,cruyff,intramuros,taluks,cotonou,marae,karur,figueres,barwon,lucullus,niobe,zemlya,lathes,homeported,chaux,amyotrophic,opines,exemplars,bhamo,homomorphisms,gauleiter,ladin,mafiosi,airdrieonians,b/soul,decal,transcaucasia,solti,defecation,deaconess,numidia,sampradaya,normalised,wingless,schwaben,alnus,cinerama,yakutsk,ketchikan,orvieto,unearned,monferrato,rotem,aacsb,loong,decoders,skerries,cardiothoracic,repositioning,pimpernel,yohannan,tenebrionoidea,nargis,nouvel,costliest,interdenominational,noize,redirecting,zither,morcha,radiometric,frequenting,irtysh,gbagbo,chakri,litvinenko,infotainment,ravensbruck,harith,corbels,maegashira,jousting,natan,novus,falcao,minis,railed,decile,rauma,ramaswamy,cavitation,paranaque,berchtesgaden,reanimated,schomberg,polysaccharides,exclusionary,cleon,anurag,ravaging,dhanush,mitchells,granule,contemptuous,keisei,rolleston,atlantean,yorkist,daraa,wapping,micrometer,keeneland,comparably,baranja,oranje,schlafli,yogic,dinajpur,unimpressive,masashi,recreativo,alemannic,petersfield,naoko,vasudeva,autosport,rajat,marella,busko,wethersfield,ssris,soulcalibur,kobani,wildland,rookery,hoffenheim,kauri,aliphatic,balaclava,ferrite,publicise,victorias,theism,quimper,chapbook,functionalist,roadbed,ulyanovsk,cupen,purpurea,calthorpe,teofilo,mousavi,cochlea,linotype,detmold,ellerslie,gakkai,telkom,southsea,subcontractor,inguinal,philatelists,zeebrugge,piave,trochidae,dempo,spoilt,saharanpur,mihrab,parasympathetic,barbarous,chartering,antiqua,katsina,bugis,categorizes,altstadt,kandyan,pambansa,overpasses,miters,assimilating,finlandia,uneconomic,am/fm,harpsichordist,dresdner,luminescence,authentically,overpowers,magmatic,cliftonville,oilfields,skirted,berthe,cuman,oakham,frelimo,glockenspiel,confection,saxophonists,piaseczno,multilevel,antipater,levying,maltreatment,velho,opoczno,harburg,pedophilia,unfunded,palettes,plasterwork,breve,dharmendra,auchinleck,nonesuch,blackmun,libretti,rabbani,145th,hasselbeck,kinnock,malate,vanden,cloverdale,ashgabat,nares,radians,steelworkers,sabor,possums,catterick,hemispheric,ostra,outpaced,dungeness,almshouse,penryn,texians,1000m,franchitti,incumbency,texcoco,newar,tramcars,toroidal,meitetsu,spellbound,agronomist,vinifera,riata,bunko,pinas,ba'al,github,vasilyevich,obsolescent,geodesics,ancestries,tujue,capitalised,unassigned,throng,unpaired,psychometric,skegness,exothermic,buffered,kristiansund,tongued,berenger,basho,alitalia,prolongation,archaeologically,fractionation,cyprinid,echinoderms,agriculturally,justiciar,sonam,ilium,baits,danceable,grazer,ardahan,grassed,preemption,glassworks,hasina,ugric,umbra,wahhabi,vannes,tinnitus,capitaine,tikrit,lisieux,scree,hormuz,despenser,jagiellon,maisonneuve,gandaki,santarem,basilicas,lancing,landskrona,weilburg,fireside,elysian,isleworth,krishnamurthy,filton,cynon,tecmo,subcostal,scalars,triglycerides,hyperplane,farmingdale,unione,meydan,pilings,mercosur,reactivate,akiba,fecundity,jatra,natsume,zarqawi,preta,masao,presbyter,oakenfold,rhodri,ferran,ruizong,cloyne,nelvana,epiphanius,borde,scutes,strictures,troughton,whitestone,sholom,toyah,shingon,kutuzov,abelard,passant,lipno,cafeterias,residuals,anabaptists,paratransit,criollos,pleven,radiata,destabilizing,hadiths,bazaars,mannose,taiyo,crookes,welbeck,baoding,archelaus,nguesso,alberni,wingtips,herts,viasat,lankans,evreux,wigram,fassbinder,ryuichi,storting,reducible,olesnica,znojmo,hyannis,theophanes,flatiron,mustering,rajahmundry,kadir,wayang,prome,lethargy,zubin,illegality,conall,dramedy,beerbohm,hipparchus,ziarat,ryuji,shugo,glenorchy,microarchitecture,morne,lewinsky,cauvery,battenberg,hyksos,wayanad,hamilcar,buhari,brazo,bratianu,solms,aksaray,elamite,chilcotin,bloodstock,sagara,dolny,reunified,umlaut,proteaceae,camborne,calabrian,dhanbad,vaxjo,cookware,potez,rediffusion,semitones,lamentations,allgau,guernica,suntory,pleated,stationing,urgell,gannets,bertelsmann,entryway,raphitomidae,acetaldehyde,nephrology,categorizing,beiyang,permeate,tourney,geosciences,khana,masayuki,crucis,universitaria,slaskie,khaimah,finno,advani,astonishingly,tubulin,vampiric,jeolla,sociale,cleethorpes,badri,muridae,suzong,debater,decimation,kenyans,mutualism,pontifex,middlemen,insee,halevi,lamentation,psychopathy,brassey,wenders,kavya,parabellum,prolactin,inescapable,apses,malignancies,rinzai,stigmatized,menahem,comox,ateliers,welshpool,setif,centimetre,truthfulness,downfield,drusus,woden,glycosylation,emanated,agulhas,dalkeith,jazira,nucky,unifil,jobim,operon,oryzomys,heroically,seances,supernumerary,backhouse,hashanah,tatler,imago,invert,hayato,clockmaker,kingsmill,swiecie,analogously,golconda,poste,tacitly,decentralised,ge'ez,diplomatically,fossiliferous,linseed,mahavira,pedestals,archpriest,byelection,domiciled,jeffersonian,bombus,winegrowing,waukegan,uncultivated,haverfordwest,saumur,communally,disbursed,cleeve,zeljeznicar,speciosa,vacationers,sigur,vaishali,zlatko,iftikhar,cropland,transkei,incompleteness,bohra,subantarctic,slieve,physiologic,similis,klerk,replanted,'right,chafee,reproducible,bayburt,regicide,muzaffarpur,plurals,hanyu,orthologs,diouf,assailed,kamui,tarik,dodecanese,gorne,on/off,179th,shimoga,granaries,carlists,valar,tripolitania,sherds,simmern,dissociated,isambard,polytechnical,yuvraj,brabazon,antisense,pubmed,glans,minutely,masaaki,raghavendra,savoury,podcasting,tachi,bienville,gongsun,ridgely,deform,yuichi,binders,canna,carcetti,llobregat,implored,berri,njegos,intermingled,offload,athenry,motherhouse,corpora,kakinada,dannebrog,imperio,prefaces,musicologists,aerospatiale,shirai,nagapattinam,servius,cristoforo,pomfret,reviled,entebbe,stane,east/west,thermometers,matriarchal,siglo,bodil,legionnaire,ze'ev,theorizing,sangeetha,horticulturist,uncountable,lookalike,anoxic,ionospheric,genealogists,chicopee,imprinting,popish,crematoria,diamondback,cyathea,hanzhong,cameramen,halogaland,naklo,waclaw,storehouses,flexed,comuni,frits,glauca,nilgiris,compresses,nainital,continuations,albay,hypoxic,samajwadi,dunkerque,nanticoke,sarwar,interchanged,jubal,corba,jalgaon,derleth,deathstroke,magny,vinnytsia,hyphenated,rimfire,sawan,boehner,disrepute,normalize,aromanian,dualistic,approximant,chama,karimabad,barnacles,sanok,stipends,dyfed,rijksmuseum,reverberation,suncorp,fungicides,reverie,spectrograph,stereophonic,niazi,ordos,alcan,karaite,lautrec,tableland,lamellar,rieti,langmuir,russula,webern,tweaks,hawick,southerner,morphy,naturalisation,enantiomer,michinoku,barbettes,relieves,carburettors,redruth,oblates,vocabularies,mogilev,bagmati,galium,reasserted,extolled,symon,eurosceptic,inflections,tirtha,recompense,oruro,roping,gouverneur,pared,yayoi,watermills,retooled,leukocytes,jubilant,mazhar,nicolau,manheim,touraine,bedser,hambledon,kohat,powerhouses,tlemcen,reuven,sympathetically,afrikaners,interes,handcrafts,etcher,baddeley,wodonga,amaury,155th,vulgarity,pompadour,automorphisms,1540s,oppositions,prekmurje,deryni,fortifying,arcuate,mahila,bocage,uther,nozze,slashes,atlantica,hadid,rhizomatous,azeris,'with,osmena,lewisville,innervated,bandmaster,outcropping,parallelogram,dominicana,twang,ingushetia,extensional,ladino,sastry,zinoviev,relatable,nobilis,cbeebies,hitless,eulima,sporangia,synge,longlisted,criminalized,penitential,weyden,tubule,volyn,priestesses,glenbrook,kibbutzim,windshaft,canadair,falange,zsolt,bonheur,meine,archangels,safeguarded,jamaicans,malarial,teasers,badging,merseyrail,operands,pulsars,gauchos,biotin,bambara,necaxa,egmond,tillage,coppi,anxiolytic,preah,mausoleums,plautus,feroz,debunked,187th,belediyespor,mujibur,wantage,carboxyl,chettiar,murnau,vagueness,racemic,backstretch,courtland,municipio,palpatine,dezful,hyperbola,sreekumar,chalons,altay,arapahoe,tudors,sapieha,quilon,burdensome,kanya,xxviii,recension,generis,siphuncle,repressor,bitrate,mandals,midhurst,dioxin,democratique,upholds,rodez,cinematographic,epoque,jinping,rabelais,zhytomyr,glenview,rebooted,khalidi,reticulata,122nd,monnaie,passersby,ghazals,europaea,lippmann,earthbound,tadic,andorran,artvin,angelicum,banksy,epicentre,resemblances,shuttled,rathaus,bernt,stonemasons,balochi,siang,tynemouth,cygni,biosynthetic,precipitates,sharecroppers,d'annunzio,softbank,shiji,apeldoorn,polycyclic,wenceslas,wuchang,samnites,tamarack,silmarillion,madinah,palaeontology,kirchberg,sculpin,rohtak,aquabats,oviparous,thynne,caney,blimps,minimalistic,whatcom,palatalization,bardstown,direct3d,paramagnetic,kamboja,khash,globemaster,lengua,matej,chernigov,swanage,arsenals,cascadia,cundinamarca,tusculum,leavers,organics,warplanes,'three,exertions,arminius,gandharva,inquires,comercio,kuopio,chabahar,plotlines,mersenne,anquetil,paralytic,buckminster,ambit,acrolophus,quantifiers,clacton,ciliary,ansaldo,fergana,egoism,thracians,chicoutimi,northbrook,analgesia,brotherhoods,hunza,adriaen,fluoridation,snowfalls,soundboard,fangoria,cannibalistic,orthogonius,chukotka,dindigul,manzoni,chainz,macromedia,beltline,muruga,schistura,provable,litex,initio,pneumoniae,infosys,cerium,boonton,cannonballs,d'une,solvency,mandurah,houthis,dolmens,apologists,radioisotopes,blaxploitation,poroshenko,stawell,coosa,maximilien,tempelhof,espouse,declaratory,hambro,xalapa,outmoded,mihiel,benefitting,desirous,archeparchy,repopulated,telescoping,captor,mackaye,disparaged,ramanathan,crowne,tumbled,technetium,silted,chedi,nievre,hyeon,cartoonish,interlock,infocom,rediff.com,dioramas,timekeeping,concertina,kutaisi,cesky,lubomirski,unapologetic,epigraphic,stalactites,sneha,biofilm,falconry,miraflores,catena,'outstanding,prospekt,apotheosis,o'odham,pacemakers,arabica,gandhinagar,reminisces,iroquoian,ornette,tilling,neoliberalism,chameleons,pandava,prefontaine,haiyan,gneisenau,utama,bando,reconstitution,azaria,canola,paratroops,ayckbourn,manistee,stourton,manifestos,lympne,denouement,tractatus,rakim,bellflower,nanometer,sassanids,turlough,presbyterianism,varmland,20deg,phool,nyerere,almohad,manipal,vlaanderen,quickness,removals,makow,circumflex,eatery,morane,fondazione,alkylation,unenforceable,galliano,silkworm,junior/senior,abducts,phlox,konskie,lofoten,buuren,glyphosate,faired,naturae,cobbles,taher,skrulls,dostoevsky,walkout,wagnerian,orbited,methodically,denzil,sarat,extraterritorial,kohima,d'armor,brinsley,rostropovich,fengtian,comitatus,aravind,moche,wrangell,giscard,vantaa,viljandi,hakoah,seabees,muscatine,ballade,camanachd,sothern,mullioned,durad,margraves,maven,arete,chandni,garifuna,142nd,reading/literature,thickest,intensifies,trygve,khaldun,perinatal,asana,powerline,acetylation,nureyev,omiya,montesquieu,riverwalk,marly,correlating,intermountain,bulgar,hammerheads,underscores,wiretapping,quatrain,ruisseau,newsagent,tuticorin,polygyny,hemsworth,partisanship,banna,istrian,evaporator".split(","),
18243female_names:"mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,athena,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lettie,samatha,oralia,matilde,larissa,vesta,renita,delois,shanda,phillis,lorri,erlinda,cathrine,barb,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kesha,jeana,danelle,charline,chanel,valorie,dortha,cristal,sunny,leone,leilani,gerri,debi,andra,keshia,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,lyndsey,janina,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,yetta,verona,thomasina,sibyl,shannan,mechelle,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,chun,arcelia,zenobia,sharen,sharee,lavinia,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nakisha,maira,loreen,kizzy,fallon,christene,bobbye,ying,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,risa,rikki,particia,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yolande,vivien,vernetta,trudi,pearle,patrina,ossie,nicolle,loyce,letty,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,elodia,dorine,brunilda,brigid,ashli,ardella,twana,tarah,shavon,serina,rayna,ramonita,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jeni,gracia,glady,farah,enola,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,vivan,terresa,tanna,sudie,signe,salena,ronni,rebbecca,myrtie,malika,maida,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,ling,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,waneta,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,alita,yulanda,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,deedee,conception,clora,cherilyn,calandra,armandina,anisa,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kimi,keila,katelynn,jone,joane,jayna,janella,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,ming,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,eufemia,emely,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,xuan,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yajaira,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,xiao,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,shan,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","),surnames:"smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,black,daniels,palmer,mills,nichols,grant,knight,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,harvey,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,wolf,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,wiggins,mathews,mcclain,fischer,wall,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,duke,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,beach,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,villa,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,ivey,locke,haines,snell,hoskins,byrne,arias,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,waddell,ramey,cates,pollock,cummins,messer,heller,funk,cornett,palacios,galindo,cano,hathaway,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,gleason,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,dodge,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,tilley,schaffer,knutson,fenton,doran,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,huang,fagan,ezell,edmondson,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,stockton,stearns,lofton,coats,cavazos,beavers,barrios,tang,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,hudgins,gaskins,duckworth,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,kang,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cheng,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,bales,stepp,holm,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,bobo,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,stuckey,stine,porterfield,pauley,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,ricci,plunkett,pannell,ness,leger,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,conover,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,zhang,valerio,tellez,steffen,shumate,sauls,ripley,kemper,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,petrie,nowlin,navarrete,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tong,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,pape,null,mulkey,lightner,langer,hillard,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,danforth,cushing,cress,creed,cazares,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,pagano,mink,luker,leathers,joslin,hartzell,gambrell,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,boardman,alcaraz,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,mahler,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,caton,brunelle,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,eady,desmarais,decosta,dansby,cisco,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,valverde,valdivia,troupe,thrower,swindell,suttles,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,fick,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,wert,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pilgrim,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,rimmer,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,parmer,parke,pare,papa,palmieri,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,valente,turnbow,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,litchfield,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,silvas,shults,schexnayder,saez,rodas,rager,pulver,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,pepe,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hazard,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hatter,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,witmer,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,noles,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lollar,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,bobb,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,albino,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,boman,bohannan,beem,barre,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,amburgey,yeary,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,hunsicker,hornbuckle,holtzclaw,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,artrip,andujar,alkire,alder,zukowski,zuckerman,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,lirette,lesperance,lefkowitz,ledger,lauzon,lachapelle,klassen,keough,kempton,kaelin,jeffords,hsieh,hoyer,horwitz,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,bauder,barreras,aubuchon,anzalone,adamo,zerbe,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,nowakowski,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,licata,leonhardt,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hiebert,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mossman,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,kanter,houchin,hosley,hosler,hollon,holleman,heitman,haggins,gwaltney,goulding,gorden,geraci,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,monteith,milstead,milliner,mellen,mccardle,liptak,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,fuson,feldmann,everly,dyess,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,lamphere,laforge,jourdan,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,ehrhardt,eggen,dusek,durrant,dubay,dones,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,bodie,blosser,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wiebe,waguespack,vasser,upham,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,styron,stahlman,staab,skiba,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,kunze,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,grondin,grissett,greenawalt,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,birkholz,berardi,benda,behnke,barter,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,rogge,rettig,renwick,reidy,reider,redfield,premo,parente,paolucci,palmquist,ohler,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,letson,lechuga,lazenby,lauria,larimore,krupp,krupa,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,restrepo,ralls,ragusa,quiroga,papenfuss,oropeza,okane,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,linehan,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,kennett,kellett,kangas,janzen,hutter,huling,hofmeister,hewes,harjo,habib,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,orona,oberle,nocera,navas,nault,mullings,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leaks,lamarre,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hessler,hermanson,hepworth,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,berthiaume,beahm,batres,basnight,backes,axtell,atterberry,alvares,alegria,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,simkins,shuey,shaul,servin,serio,serafin,salguero,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,mcveigh,mcgrady,mcgaughey,mccurley,marchan,manske,lusby,linde,likens,licon,leroux,lemaire,legette,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,goodner,ginsburg,gerth,gerner,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,craine,chesnut,casady,carstens,carrick,carino,carignan,canchola,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabatini,ronan,rodiguez,riggleman,richins,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chivers,caudillo,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette".split(","),
18244us_tv_and_film:"you,i,to,that,it,me,what,this,know,i'm,no,have,my,don't,just,not,do,be,your,we,it's,so,but,all,well,oh,about,right,you're,get,here,out,going,like,yeah,if,can,up,want,think,that's,now,go,him,how,got,did,why,see,come,good,really,look,will,okay,back,can't,mean,tell,i'll,hey,he's,could,didn't,yes,something,because,say,take,way,little,make,need,gonna,never,we're,too,she's,i've,sure,our,sorry,what's,let,thing,maybe,down,man,very,there's,should,anything,said,much,any,even,off,please,doing,thank,give,thought,help,talk,god,still,wait,find,nothing,again,things,let's,doesn't,call,told,great,better,ever,night,away,believe,feel,everything,you've,fine,last,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,talking,guess,care,bad,mom,remember,getting,we'll,together,dad,leave,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,course,might,mind,every,enough,try,hell,came,someone,you'll,whole,yourself,idea,ask,must,coming,looking,woman,room,knew,tonight,real,son,hope,went,hmm,happy,pretty,saw,girl,sir,friend,already,saying,next,job,problem,minute,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,probably,happen,we've,hurt,boy,dead,gotta,alone,excuse,start,kill,hard,you'd,today,car,ready,without,wants,hold,wanna,yet,seen,deal,once,gone,morning,supposed,friends,head,stuff,worry,live,truth,face,forget,true,cause,soon,knows,telling,wife,who's,chance,run,move,anyone,person,bye,somebody,heart,miss,making,meet,anyway,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,anymore,least,aren't,working,makes,taking,means,brother,hate,ago,says,beautiful,gave,fact,crazy,sit,afraid,important,rest,fun,kid,word,watch,glad,everyone,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,break,promise,door,close,hand,easy,question,tried,far,walk,needs,mine,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,waiting,dinner,funny,husband,almost,pay,answer,cool,eyes,news,child,shouldn't,yours,moment,sleep,read,where's,sounds,sonny,pick,sometimes,bed,date,plan,hours,lose,hands,serious,shit,behind,inside,ahead,week,wonderful,fight,past,cut,quite,he'll,sick,it'll,eat,nobody,goes,save,seems,finally,lives,worried,upset,carly,met,brought,seem,sort,safe,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,parents,drink,absolutely,how's,daddy,sweet,alive,sense,meant,happens,bet,blood,ain't,kidding,lie,meeting,dear,seeing,sound,fault,ten,buy,hour,speak,lady,jen,thinks,christmas,outside,hang,possible,worse,mistake,ooh,handle,spend,totally,giving,here's,marriage,realize,unless,sex,send,needed,scared,picture,talked,ass,hundred,changed,completely,explain,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,marry,drop,cannot,dream,protect,twenty,surprise,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,hasn't,worth,sheridan,amazing,expect,swear,piece,busy,happening,movie,we'd,catch,perhaps,step,fall,watching,kept,darling,dog,honor,moving,till,admit,problems,murder,he'd,evil,definitely,feels,honest,eye,broke,missed,longer,dollars,tired,evening,starting,entire,trip,niles,suppose,calm,imagine,fair,caught,blame,sitting,favor,apartment,terrible,clean,learn,frasier,relax,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,mouth,pregnant,ring,careful,shall,dude,ride,figured,wear,shoot,stick,follow,angry,write,stopped,ran,standing,forgive,jail,wearing,ladies,kinda,lunch,cristian,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,count,boyfriend,proud,agree,birthday,they've,share,offer,hurry,feet,wondering,decision,ones,finish,voice,herself,would've,mess,deserve,evidence,cute,dress,interesting,hotel,enjoy,quiet,concerned,staying,beat,sweetie,mention,clothes,fell,neither,mmm,fix,respect,prison,attention,holding,calls,surprised,bar,keeping,gift,hadn't,putting,dark,owe,ice,helping,normal,aunt,lawyer,apart,plans,jax,girlfriend,floor,whether,everything's,box,judge,upstairs,sake,mommy,possibly,worst,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,difference,store,she'd,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,join,card,crime,gentlemen,willing,window,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,bother,seriously,cell,knowing,broken,advice,somehow,paid,losing,push,helped,killing,boss,liked,innocent,rules,learned,thirty,risk,letting,speaking,ridiculous,afternoon,apologize,nervous,charge,patient,boat,how'd,hide,detective,planning,huge,breakfast,horrible,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,visit,could've,c'mon,letter,decide,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,hearing,kitchen,ma'am,should've,realized,kick,grab,discuss,fifty,reading,idiot,suddenly,agent,destroy,bucks,shoes,peace,arms,demon,livvie,consider,papers,incredible,witch,drunk,attorney,tells,knock,ways,gives,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,outta,weekend,matters,gosh,opportunity,impossible,waste,pretend,jump,eating,proof,slept,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,divorce,begin,ourselves,closer,ruin,smile,laugh,treat,fear,what'd,otherwise,excited,mail,hiding,stole,pacey,noticed,fired,excellent,bringing,bottom,note,sudden,bathroom,honestly,sing,foot,remind,charges,witness,finding,tree,dare,hardly,that'll,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,reach,dirty,choose,emergency,dropped,butt,credit,obvious,locked,loving,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,crap,crying,belong,partner,trick,pressure,dressed,taste,neck,nurse,raise,lots,carry,whoever,drinking,they'd,breaking,file,lock,wine,spot,paying,assume,asleep,turning,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,freak,movies,folks,cream,wild,truly,desk,convince,client,threw,hurts,spending,answers,shirt,chair,rough,doin,sees,ought,empty,wind,aware,dealing,pack,tight,hurting,guest,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,bottle,beyond,whenever,pool,opinion,starts,jerk,secrets,falling,necessary,barely,dancing,tests,copy,cousin,ahem,twelve,tess,skin,fifteen,speech,orders,complicated,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,someplace,screw,everywhere,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,whoo,hole,memories,o'clock,teeth,ruined,bite,stenbeck,liar,showing,cards,desperate,search,pathetic,spoke,scare,marah,afford,settle,stayed,checking,hired,heads,concern,blew,alcazar,champagne,connection,tickets,happiness,saving,kissing,hated,personally,suggest,prepared,onto,downstairs,ticket,it'd,loose,holy,duty,convinced,throwing,kissed,legs,loud,saturday,babies,where'd,warning,miracle,carrying,blind,ugly,shopping,hates,sight,bride,coat,clearly,celebrate,brilliant,wanting,forrester,lips,custody,screwed,buying,toast,thoughts,reality,lexie,attitude,advantage,grandfather,sami,grandma,someday,roof,marrying,powerful,grown,grandmother,fake,must've,ideas,exciting,familiar,bomb,bout,harmony,schedule,capable,practically,correct,clue,forgotten,appointment,deserves,threat,bloody,lonely,shame,jacket,hook,scary,investigation,invite,shooting,lesson,criminal,victim,funeral,considering,burning,strength,harder,sisters,pushed,shock,pushing,heat,chocolate,miserable,corinthos,nightmare,brings,zander,crash,chances,sending,recognize,healthy,boring,feed,engaged,headed,treated,knife,drag,badly,hire,paint,pardon,behavior,closet,warn,gorgeous,milk,survive,ends,dump,rent,remembered,thanksgiving,rain,revenge,prefer,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,stood,affair,ours,depends,protecting,jury,brave,fingers,murdered,explanation,picking,blah,stronger,handsome,unbelievable,anytime,shake,oakdale,wherever,pulling,facts,waited,lousy,circumstances,disappointed,weak,trusted,license,nothin,trash,understanding,slip,sounded,awake,friendship,stomach,weapon,threatened,mystery,vegas,understood,basically,switch,frankly,cheap,lifetime,deny,clock,garbage,why'd,tear,ears,indeed,changing,singing,tiny,decent,avoid,messed,filled,touched,disappear,exact,pills,kicked,harm,fortune,pretending,insurance,fancy,drove,cared,belongs,nights,lorelai,lift,timing,guarantee,chest,woke,burned,watched,heading,selfish,drinks,doll,committed,elevator,freeze,noise,wasting,ceremony,uncomfortable,staring,files,bike,stress,permission,thrown,possibility,borrow,fabulous,doors,screaming,bone,xander,what're,meal,apology,anger,honeymoon,bail,parking,fixed,wash,stolen,sensitive,stealing,photo,chose,lets,comfort,worrying,pocket,mateo,bleeding,shoulder,ignore,talent,tied,garage,dies,demons,dumped,witches,rude,crack,bothering,radar,soft,meantime,gimme,kinds,fate,concentrate,throat,prom,messages,intend,ashamed,somethin,manage,guilt,interrupt,guts,tongue,shoe,basement,sentence,purse,glasses,cabin,universe,repeat,mirror,wound,travers,tall,engagement,therapy,emotional,jeez,decisions,soup,thrilled,stake,chef,moves,extremely,moments,expensive,counting,shots,kidnapped,cleaning,shift,plate,impressed,smells,trapped,aidan,knocked,charming,attractive,argue,puts,whip,embarrassed,package,hitting,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,terribly,friendly,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,disaster,bars,crossed,trap,talks,eggs,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,reputation,presents,chat,suffer,argument,talkin,crowd,homework,coincidence,cancel,pride,solve,hopefully,pounds,pine,mate,illegal,generous,outfit,maid,bath,punch,freaked,begging,recall,enjoying,prepare,wheel,defend,signs,painful,yourselves,maris,that'd,suspicious,cooking,button,warned,sixty,pity,yelling,awhile,confidence,offering,pleased,panic,hers,gettin,refuse,grandpa,testify,choices,cruel,mental,gentleman,coma,cutting,proteus,guests,expert,benefit,faces,jumped,toilet,sneak,halloween,privacy,smoking,reminds,twins,swing,solid,options,commitment,crush,ambulance,wallet,gang,eleven,option,laundry,assure,stays,skip,fail,discussion,clinic,betrayed,sticking,bored,mansion,soda,sheriff,suite,handled,busted,load,happier,studying,romance,procedure,commit,assignment,suicide,minds,swim,yell,llanview,chasing,proper,believes,humor,hopes,lawyers,giant,latest,escaped,parent,tricks,insist,dropping,cheer,medication,flesh,routine,sandwich,handed,false,beating,warrant,awfully,odds,treating,thin,suggesting,fever,sweat,silent,clever,sweater,mall,sharing,assuming,judgment,goodnight,divorced,surely,steps,confess,math,listened,comin,answered,vulnerable,bless,dreaming,chip,zero,pissed,nate,kills,tears,knees,chill,brains,unusual,packed,dreamed,cure,lookin,grave,cheating,breaks,locker,gifts,awkward,thursday,joking,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,delicious,closing,vampires,wore,tail,secure,salad,murderer,spit,offense,dust,conscience,bread,answering,lame,invitation,grief,smiling,pregnancy,prisoner,delivery,guards,virus,shrink,freezing,wreck,massimo,wire,technically,blown,anxious,cave,holidays,cleared,wishes,caring,candles,bound,charm,pulse,jumping,jokes,boom,occasion,silence,nonsense,frightened,slipped,dimera,blowing,relationships,kidnapping,spin,tool,roxy,packing,blaming,wrap,obsessed,fruit,torture,personality,there'll,fairy,necessarily,seventy,print,motel,underwear,grams,exhausted,believing,freaking,carefully,trace,touching,messing,recovery,intention,consequences,belt,sacrifice,courage,enjoyed,attracted,remove,testimony,intense,heal,defending,unfair,relieved,loyal,slowly,buzz,alcohol,surprises,psychiatrist,plain,attic,who'd,uniform,terrified,cleaned,zach,threaten,fella,enemies,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,badge,naturally,frozen,sakes,appropriate,trunk,dunno,costume,sixteen,impressive,kicking,junk,grabbed,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,surveillance,admire,questioning,dragged,barn,deeply,wrapped,wasted,tense,hoped,fellas,roommate,mortal,fascinating,stops,arrangements,agenda,literally,propose,honesty,underneath,sauce,promises,lecture,eighty,torn,shocked,backup,differently,ninety,deck,biological,pheebs,ease,creep,waitress,telephone,ripped,raising,scratch,rings,prints,thee,arguing,ephram,asks,oops,diner,annoying,taggert,sergeant,blast,towel,clown,habit,creature,bermuda,snap,react,paranoid,handling,eaten,therapist,comment,sink,reporter,nurses,beats,priority,interrupting,warehouse,loyalty,inspector,pleasant,excuses,threats,guessing,tend,praying,motive,unconscious,mysterious,unhappy,tone,switched,rappaport,sookie,neighbor,loaded,swore,piss,balance,toss,misery,thief,squeeze,lobby,goa'uld,geez,exercise,forth,booked,sandburg,poker,eighteen,d'you,bury,everyday,digging,creepy,wondered,liver,hmmm,magical,fits,discussed,moral,helpful,searching,flew,depressed,aisle,cris,amen,vows,neighbors,darn,cents,arrange,annulment,useless,adventure,resist,fourteen,celebrating,inch,debt,violent,sand,teal'c,celebration,reminded,phones,paperwork,emotions,stubborn,pound,tension,stroke,steady,overnight,chips,beef,suits,boxes,cassadine,collect,tragedy,spoil,realm,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,perspective,climb,punishment,finest,springfield,hint,furniture,blanket,twist,proceed,fries,worries,niece,gloves,soap,signature,disappoint,crawl,convicted,flip,counsel,doubts,crimes,accusing,shaking,remembering,hallway,halfway,bothered,madam,gather,cameras,blackmail,symptoms,rope,ordinary,imagined,cigarette,supportive,explosion,trauma,ouch,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,drawer,phony,interfere,catching,bargain,tragic,respond,punish,penthouse,thou,rach,ohhh,insult,bugs,beside,begged,absolute,strictly,socks,senses,sneaking,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,bitter,adorable,y'all,tested,suggestion,jewelry,alike,jacks,distracted,shelter,lessons,constable,circus,audition,tune,shoulders,mask,helpless,feeding,explains,sucked,robbery,objection,behave,valuable,shadows,courtroom,confusing,talented,smarter,mistaken,customer,bizarre,scaring,motherfucker,alert,vecchio,reverend,foolish,compliment,bastards,worker,wheelchair,protective,gentle,reverse,picnic,knee,cage,wives,wednesday,voices,toes,stink,scares,pour,cheated,slide,ruining,filling,exit,cottage,upside,proves,parked,diary,complaining,confessed,pipe,merely,massage,chop,spill,prayer,betray,waiter,scam,rats,fraud,brush,tables,sympathy,pill,filthy,seventeen,employee,bracelet,pays,fairly,deeper,arrive,tracking,spite,shed,recommend,oughta,nanny,menu,diet,corn,roses,patch,dime,devastated,subtle,bullets,beans,pile,confirm,strings,parade,borrowed,toys,straighten,steak,premonition,planted,honored,exam,convenient,traveling,laying,insisted,dish,aitoro,kindly,grandson,donor,temper,teenager,proven,mothers,denial,backwards,tent,swell,noon,happiest,drives,thinkin,spirits,potion,holes,fence,whatsoever,rehearsal,overheard,lemme,hostage,bench,tryin,taxi,shove,moron,impress,needle,intelligent,instant,disagree,stinks,rianna,recover,groom,gesture,constantly,bartender,suspects,sealed,legally,hears,dresses,sheet,psychic,teenage,knocking,judging,accidentally,waking,rumor,manners,homeless,hollow,desperately,tapes,referring,item,genoa,gear,majesty,cried,tons,spells,instinct,quote,motorcycle,convincing,fashioned,aids,accomplished,grip,bump,upsetting,needing,invisible,forgiveness,feds,compare,bothers,tooth,inviting,earn,compromise,cocktail,tramp,jabot,intimate,dignity,dealt,souls,informed,gods,dressing,cigarettes,alistair,leak,fond,corky,seduce,liquor,fingerprints,enchantment,butters,stuffed,stavros,emotionally,transplant,tips,oxygen,nicely,lunatic,drill,complain,announcement,unfortunate,slap,prayers,plug,opens,oath,o'neill,mutual,yacht,remembers,fried,extraordinary,bait,warton,sworn,stare,safely,reunion,burst,might've,dive,aboard,expose,buddies,trusting,booze,sweep,sore,scudder,properly,parole,ditch,canceled,speaks,glow,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,pancakes,harsh,flattered,ahhh,troubles,fights,favourite,eats,rage,undercover,spoiled,sloane,shine,destroying,deliberately,conspiracy,thoughtful,sandwiches,plates,nails,miracles,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,forgiven,bent,maciver,involve,dragging,cooked,pointing,foul,dull,beneath,heels,faking,deaf,stunt,jealousy,hopeless,fears,cuts,scenario,necklace,crashed,accuse,restraining,homicide,helicopter,firing,safer,auction,videotape,tore,reservations,pops,appetite,wounds,vanquish,ironic,fathers,excitement,anyhow,tearing,sends,rape,laughed,belly,dealer,cooperate,accomplish,wakes,spotted,sorts,reservation,ashes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,investigating,inappropriate,lipstick,lawn,compassion,cafeteria,scarf,precisely,obsession,loses,lighten,infection,granddaughter,explode,balcony,this'll,spying,publicity,depend,cracked,conscious,ally,absurd,vicious,invented,forbid,directions,defendant,bare,announce,screwing,salesman,robbed,leap,lakeview,insanity,reveal,possibilities,kidnap,gown,chairs,wishing,setup,punished,criminals,regrets,raped,quarters,lamp,dentist,anyways,anonymous,semester,risks,owes,lungs,explaining,delicate,tricked,eager,doomed,adoption,stab,sickness,scum,floating,envelope,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,stabbed,remarkable,brat,privilege,passionate,nerves,lawsuit,kidney,disturbed,cozy,tire,shirts,oven,ordering,delay,risky,monsters,honorable,grounded,closest,breakdown,bald,abandon,scar,collar,worthless,sucking,enormous,disturbing,disturb,distract,deals,conclusions,vodka,dishes,crawling,briefcase,wiped,whistle,sits,roast,rented,pigs,flirting,deposit,bottles,topic,riot,overreacting,logical,hostile,embarrass,casual,beacon,amusing,altar,claus,survival,skirt,shave,porch,ghosts,favors,drops,dizzy,chili,advise,strikes,rehab,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,cigar,weakness,ranch,practicing,examine,cranes,bribe,sail,prescription,hush,fragile,forensics,expense,drugged,cows,bells,visitor,suitcase,sorta,scan,manticore,insecure,imagining,hardest,clerk,wrist,what'll,starters,silk,pump,pale,nicer,haul,flies,boot,thumb,there'd,how're,elders,quietly,pulls,idiots,erase,denying,ankle,amnesia,accepting,heartbeat,devane,confront,minus,legitimate,fixing,arrogant,tuna,supper,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,snack,rational,minded,guessed,weddings,tumor,humiliated,aspirin,spray,picks,eyed,drowning,contacts,ritual,perfume,hiring,hating,docks,creatures,visions,thanking,thankful,sock,nineteen,fork,throws,teenagers,stressed,slice,rolls,plead,ladder,kicks,detectives,assured,tellin,shallow,responsibilities,repay,howdy,girlfriends,deadly,comforting,ceiling,verdict,insensitive,spilled,respected,messy,interrupted,halliwell,blond,bleed,wardrobe,takin,murders,backs,underestimate,justify,harmless,frustrated,fold,enzo,communicate,bugging,arson,whack,salary,rumors,obligation,liking,dearest,congratulate,vengeance,rack,puzzle,fires,courtesy,caller,blamed,tops,quiz,prep,curiosity,circles,barbecue,sunnydale,spinning,psychotic,cough,accusations,resent,laughs,freshman,envy,drown,bartlet,asses,sofa,poster,highness,dock,apologies,theirs,stat,stall,realizes,psych,mmmm,fools,understandable,treats,succeed,stir,relaxed,makin,gratitude,faithful,accent,witter,wandering,locate,inevitable,gretel,deed,crushed,controlling,smelled,robe,gossip,gambling,cosmetics,accidents,surprising,stiff,sincere,rushed,refrigerator,preparing,nightmares,mijo,ignoring,hunch,fireworks,drowned,brass,whispering,sophisticated,luggage,hike,explore,emotion,crashing,contacted,complications,shining,rolled,righteous,reconsider,goody,geek,frightening,ethics,creeps,courthouse,camping,affection,smythe,haircut,essay,baked,apologized,vibe,respects,receipt,mami,hats,destructive,adore,adopt,tracked,shorts,reminding,dough,creations,cabot,barrel,snuck,slight,reporters,pressing,magnificent,madame,lazy,glorious,fiancee,bits,visitation,sane,kindness,shoulda,rescued,mattress,lounge,lifted,importantly,glove,enterprises,disappointment,condo,beings,admitting,yelled,waving,spoon,screech,satisfaction,reads,nailed,worm,tick,resting,marvelous,fuss,cortlandt,chased,pockets,luckily,lilith,filing,conversations,consideration,consciousness,worlds,innocence,forehead,aggressive,trailer,slam,quitting,inform,delighted,daylight,danced,confidential,aunts,washing,tossed,spectra,marrow,lined,implying,hatred,grill,corpse,clues,sober,offended,morgue,infected,humanity,distraction,cart,wired,violation,promising,harassment,glue,d'angelo,cursed,brutal,warlocks,wagon,unpleasant,proving,priorities,mustn't,lease,flame,disappearance,depressing,thrill,sitter,ribs,flush,earrings,deadline,corporal,collapsed,update,snapped,smack,melt,figuring,delusional,coulda,burnt,tender,sperm,realise,pork,popped,interrogation,esteem,choosing,undo,pres,prayed,plague,manipulate,insulting,detention,delightful,coffeehouse,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,monsieur,faint,bake,distress,correctly,complaint,blocked,tortured,risking,pointless,handing,dumping,cups,alibi,struggling,shiny,risked,mummy,mint,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,rode,puppet,modeling,memo,irresponsible,humiliation,hiya,freakin,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,pledge,panicked,nursery,louder,jeans,investigator,homecoming,frustrating,buys,busting,buff,sleeve,irony,dope,declare,autopsy,workin,torch,prick,limb,hysterical,goddamnit,fetch,dimension,crowded,clip,climbing,bonding,woah,trusts,negotiate,lethal,iced,fantasies,deeds,bore,babysitter,questioned,outrageous,kiriakis,insulted,grudge,driveway,deserted,definite,beep,wires,suggestions,searched,owed,lend,drunken,demanding,costanza,conviction,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,meals,invitations,haunted,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,manny,fist,spectacular,hostages,heroin,havin,habits,encouraging,consult,burgers,boyfriends,bailed,baggage,watches,troubled,torturing,teasing,sweetest,qualities,postpone,overwhelmed,malkovich,impulse,classy,charging,amazed,policeman,hypocrite,humiliate,hideous,d'ya,costumes,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shrimp,shouting,pressed,nooo,grieving,gladly,fling,eliminate,cereal,aaah,sonofabitch,paralyzed,lotta,locks,guaranteed,dummy,despise,dental,briefing,bluff,batteries,whatta,sounding,servants,presume,handwriting,fainted,dried,allright,acknowledge,whacked,toxic,reliable,quicker,overwhelming,lining,harassing,fatal,endless,dolls,convict,whatcha,unlikely,shutting,positively,overcome,goddam,essence,dose,diagnosis,cured,bully,ahold,yearbook,tempting,shelf,prosecution,pouring,possessed,greedy,wonders,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,evidently,contempt,compromised,cans,weekends,urge,theft,suing,shipment,scissors,responding,proposition,noises,matching,hormones,hail,grandchildren,gently,smashed,sexually,sentimental,nicest,manipulated,intern,handcuffs,framed,errands,entertaining,crib,carriage,barge,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,headaches,float,embrace,corners,whining,sweating,skipped,mountie,motives,listens,cristobel,cleaner,cheerleader,balsom,unnecessary,stunning,scent,quartermaines,pose,montega,loosen,info,hottest,haunt,gracious,forgiving,errand,cakes,blames,abortion,sketch,shifts,plotting,perimeter,pals,mere,mattered,lonigan,interference,eyewitness,enthusiasm,diapers,strongest,shaken,punched,portal,catches,backyard,terrorists,sabotage,organs,needy,cuff,civilization,woof,who'll,prank,obnoxious,mates,hereby,gabby,faked,cellar,whitelighter,void,strangle,sour,muffins,interfering,demonic,clearing,boutique,barrington,terrace,smoked,righty,quack,petey,pact,knot,ketchup,disappearing,cordy,uptight,ticking,terrifying,tease,swamp,secretly,rejection,reflection,realizing,rays,mentally,marone,doubted,deception,congressman,cheesy,toto,stalling,scoop,ribbon,immune,expects,destined,bets,bathing,appreciation,accomplice,wander,shoved,sewer,scroll,retire,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,whoops,volunteered,talents,stinking,remotely,garlic,decency,cord,beds,altogether,uniforms,tremendous,popping,outa,observe,lung,hangs,feelin,dudes,donation,disguise,curb,bites,antique,toothbrush,realistic,predict,landlord,hourglass,hesitate,consolation,babbling,tipped,stranded,smartest,repeating,puke,psst,paycheck,overreacted,macho,juvenile,grocery,freshen,disposal,cuffs,caffeine,vanished,unfinished,ripping,pinch,flattering,expenses,dinners,colleague,ciao,belthazor,attorneys,woulda,whereabouts,waitin,truce,tripped,tasted,steer,poisoning,manipulative,immature,husbands,heel,granddad,delivering,condoms,addict,trashed,raining,pasta,needles,leaning,detector,coolest,batch,appointments,almighty,vegetables,spark,perfection,pains,momma,mole,meow,hairs,getaway,cracking,compliments,behold,verge,tougher,timer,tapped,taped,specialty,snooping,shoots,rendezvous,pentagon,leverage,jeopardize,janitor,grandparents,forbidden,clueless,bidding,ungrateful,unacceptable,tutor,serum,scuse,pajamas,mouths,lure,irrational,doom,cries,beautifully,arresting,approaching,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,jumps,inventory,darlin,committing,banging,asap,worms,violated,vent,traumatic,traced,sweaty,shaft,overboard,insight,healed,grasp,experiencing,crappy,crab,chunk,awww,stain,shack,reacted,pronounce,poured,moms,marriages,jabez,handful,flipped,fireplace,embarrassment,disappears,concussion,bruises,brakes,twisting,swept,summon,splitting,sloppy,settling,reschedule,notch,hooray,grabbing,exquisite,disrespect,thornhart,straw,slapped,shipped,shattered,ruthless,refill,payroll,numb,mourning,manly,hunk,entertain,drift,dreadful,doorstep,confirmation,chops,appreciates,vague,tires,stressful,stashed,stash,sensed,preoccupied,predictable,noticing,madly,gunshot,dozens,dork,confuse,cleaners,charade,chalk,cappuccino,bouquet,amulet,addiction,who've,warming,unlock,satisfy,sacrificed,relaxing,lone,blocking,blend,blankets,addicted,yuck,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,caution,backpack,agreeing,whale,taller,supervisor,sacrifices,phew,ounce,irrelevant,gran,felon,favorites,farther,fade,erased,easiest,convenience,compassionate,cane,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,immunity,hassle,goddamned,frighten,dearly,cease,ambition,wage,unstable,salvage,richer,refusing,raging,pumping,pressuring,mortals,lowlife,intimidated,intentionally,inspire,forgave,devotion,despicable,deciding,dash,comfy,breach,bark,aaaah,switching,swallowed,stove,screamed,scars,russians,pounding,poof,pipes,pawn,legit,invest,farewell,curtains,civilized,caviar,boost,token,superstition,supernatural,sadness,recorder,psyched,motivated,microwave,hallelujah,fraternity,dryer,cocoa,chewing,acceptable,unbelievably,smiled,smelling,simpler,respectable,remarks,khasinau,indication,gutter,grabs,fulfill,flashlight,ellenor,blooded,blink,blessings,beware,uhhh,turf,swings,slips,shovel,shocking,puff,mirrors,locking,heartless,fras,childish,cardiac,utterly,tuscany,ticked,stunned,statesville,sadly,purely,kiddin,jerks,hitch,flirt,fare,equals,dismiss,christening,casket,c'mere,breakup,biting,antibiotics,accusation,abducted,witchcraft,thread,runnin,punching,paramedics,newest,murdering,masks,lawndale,initials,grampa,choking,charms,careless,bushes,buns,bummed,shred,saves,saddle,rethink,regards,precinct,persuade,meds,manipulating,llanfair,leash,hearted,guarantees,fucks,disgrace,deposition,bookstore,boil,vitals,veil,trespassing,sidewalk,sensible,punishing,overtime,optimistic,obsessing,notify,mornin,jeopardy,jaffa,injection,hilarious,desires,confide,cautious,yada,where're,vindictive,vial,teeny,stroll,sittin,scrub,rebuild,posters,ordeal,nuns,intimacy,inheritance,exploded,donate,distracting,despair,crackers,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,platter,napkin,misplaced,merchandise,loony,jinx,heroic,frankenstein,ambitious,syrup,solitary,resemblance,reacting,premature,lavery,flashes,cheque,awright,acquainted,wrapping,untie,salute,realised,priceless,partying,lightly,lifting,kasnoff,insisting,glowing,generator,explosives,cutie,confronted,buts,blouse,ballistic,antidote,analyze,allowance,adjourned,unto,understatement,tucked,touchy,subconscious,screws,sarge,roommates,rambaldi,offend,nerd,knives,irresistible,incapable,hostility,goddammit,fuse,frat,curfew,blackmailed,walkin,starve,sleigh,sarcastic,recess,rebound,pinned,parlor,outfits,livin,heartache,haired,fundraiser,doorman,discreet,dilucca,cracks,considerate,climbed,catering,apophis,zoey,urine,strung,stitches,sordid,sark,protector,phoned,pets,hostess,flaw,flavor,deveraux,consumed,confidentiality,bourbon,straightened,specials,spaghetti,prettier,powerless,playin,playground,paranoia,instantly,havoc,exaggerating,eavesdropping,doughnuts,diversion,deepest,cutest,comb,bela,behaving,anyplace,accessory,workout,translate,stuffing,speeding,slime,royalty,polls,marital,lurking,lottery,imaginary,greetings,fairwinds,elegant,elbow,credibility,credentials,claws,chopped,bridal,bedside,babysitting,witty,unforgivable,underworld,tempt,tabs,sophomore,selfless,secrecy,restless,okey,movin,metaphor,messes,meltdown,lecter,incoming,gasoline,diefenbaker,buckle,admired,adjustment,warmth,throats,seduced,queer,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,wedded,verbal,unpredictable,tuned,stoop,slides,sinking,rigged,plumbing,lingerie,hankey,greed,everwood,elope,dresser,chauffeur,bulletin,bugged,bouncing,temptation,strangest,slammed,sarcasm,pending,packages,orderly,obsessive,murderers,meteor,inconvenience,glimpse,froze,execute,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,testifying,syringe,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,nutty,mentioning,mend,inspiring,impulsive,housekeeper,foam,fingernails,conditioning,baking,whine,thug,starved,sniffing,sedative,programmed,picket,paged,hound,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,choo,assignments,ants,vile,unreasonable,tossing,thanked,steals,souvenir,scratched,psychopath,outs,obstruction,obey,lump,insists,harass,gloat,filth,edgy,didn,coroner,confessing,bruise,betraying,bailing,appealing,adebisi,wrath,wandered,waist,vain,traps,stepfather,poking,obligated,heavenly,dilemma,crazed,contagious,coaster,cheering,bundle,vomit,thingy,speeches,robbing,raft,pumped,pillows,peep,packs,neglected,m'kay,loneliness,intrude,helluva,gardener,forresters,drooling,betcha,vase,supermarket,squat,spitting,rhyme,relieve,receipts,racket,pictured,pause,overdue,motivation,morgendorffer,kidnapper,insect,horns,feminine,eyeballs,dumps,disappointing,crock,convertible,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,suspense,summoned,spiders,reiber,raving,pushy,postponed,ohhhh,noooo,mold,laughter,incompetent,hugging,groceries,drip,communicating,auntie,adios,wraps,wiser,willingly,weirdest,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,prophecy,ledge,justified,insults,hateful,handles,doorway,chatting,buyer,buckaroo,bedrooms,askin,ammo,tutoring,subpoena,scratching,privileges,pager,mart,intriguing,idiotic,grape,enlighten,corrupt,brunch,bridesmaid,barking,applause,acquaintance,wretched,superficial,soak,smoothly,sensing,restraint,posing,pleading,payoff,oprah,nemo,morals,loaf,jumpy,ignorant,herbal,hangin,germs,generosity,flashing,doughnut,clumsy,chocolates,captive,behaved,apologise,vanity,stumbled,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,knots,interviewing,humour,grind,greasy,goons,drastic,coop,comparing,cocky,clearer,bruised,brag,bind,worthwhile,whoop,vanquishing,tabloids,sprung,spotlight,sentencing,racist,provoke,pining,overly,locket,imply,impatient,hovering,hotter,fest,endure,dots,doren,debts,crawled,chained,brit,breaths,weirdo,warmed,wand,troubling,tok'ra,strapped,soaked,skipping,scrambled,rattle,profound,musta,mocking,misunderstand,limousine,kacl,hustle,forensic,enthusiastic,duct,drawers,devastating,conquer,clarify,chores,cheerleaders,cheaper,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,teller,strangled,scheming,ropes,rescuing,rave,postcard,o'reily,morphine,lotion,lads,kidneys,judgement,itch,indefinitely,grenade,glamorous,genetically,freud,discretion,delusions,crate,competent,bakery,argh,ahhhh,wedge,wager,unfit,tripping,torment,superhero,stirring,spinal,sorority,seminar,scenery,rabble,pneumonia,perks,override,ooooh,mija,manslaughter,mailed,lime,lettuce,intimidate,guarded,grieve,grad,frustration,doorbell,chinatown,authentic,arraignment,annulled,allergies,wanta,verify,vegetarian,tighter,telegram,stalk,spared,shoo,satisfying,saddam,requesting,pens,overprotective,obstacles,notified,nasedo,grandchild,genuinely,flushed,fluids,floss,escaping,ditched,cramp,corny,bunk,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,sniff,shakes,salsa,retrieve,reassuring,pumps,neurotic,negotiating,needn't,monitors,millionaire,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,doubting,decaf,biopsy,whiz,voluntarily,ventilator,unpack,unload,toad,spooked,snitch,schillinger,reassure,persuasive,mystical,mysteries,matrimony,mails,jock,headline,explanations,dispatch,curly,cupid,condolences,comrade,cassadines,bulb,bragging,awaits,assaulted,ambush,adolescent,abort,yank,whit,vaguely,undermine,tying,swamped,stabbing,slippers,slash,sincerely,sigh,setback,secondly,rotting,precaution,pcpd,melting,liaison,hots,hooking,headlines,haha,ganz,fury,felicity,fangs,encouragement,earring,dreidel,dory,donut,dictate,decorating,cocktails,bumps,blueberry,believable,backfired,backfire,apron,adjusting,vous,vouch,vitamins,ummm,tattoos,slimy,sibling,shhhh,renting,peculiar,parasite,paddington,marries,mailbox,magically,lovebirds,knocks,informant,exits,drazen,distractions,disconnected,dinosaurs,dashwood,crooked,conveniently,wink,warped,underestimated,tacky,shoving,seizure,reset,pushes,opener,mornings,mash,invent,indulge,horribly,hallucinating,festive,eyebrows,enjoys,desperation,dealers,darkest,daph,boragora,belts,bagel,authorization,auditions,agitated,wishful,wimp,vanish,unbearable,tonic,suffice,suction,slaying,safest,rocking,relive,puttin,prettiest,noisy,newlyweds,nauseous,misguided,mildly,midst,liable,judgmental,indy,hunted,givin,fascinated,elephants,dislike,deluded,decorate,crummy,contractions,carve,bottled,bonded,bahamas,unavailable,twenties,trustworthy,surgeons,stupidity,skies,remorse,preferably,pies,nausea,napkins,mule,mourn,melted,mashed,inherit,greatness,golly,excused,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,chooses,checkup,boredom,bandages,alarms,windshield,who're,whaddya,transparent,surprisingly,sunglasses,slit,roar,reade,prognosis,probe,pitiful,persistent,peas,nosy,nagging,morons,masterpiece,martinis,limbo,liars,irritating,inclined,hump,hoynes,fiasco,eatin,cubans,concentrating,colorful,clam,cider,brochure,barto,bargaining,wiggle,welcoming,weighing,vanquished,stains,sooo,snacks,smear,sire,resentment,psychologist,pint,overhear,morality,landingham,kisser,hoot,holling,handshake,grilled,formality,elevators,depths,confirms,boathouse,accidental,westbridge,wacko,ulterior,thugs,thighs,tangled,stirred,snag,sling,sleaze,rumour,ripe,remarried,puddle,pins,perceptive,miraculous,longing,lockup,librarian,impressions,immoral,hypothetically,guarding,gourmet,gabe,faxed,extortion,downright,digest,cranberry,bygones,buzzing,burying,bikes,weary,taping,takeout,sweeping,stepmother,stale,senor,seaborn,pros,pepperoni,newborn,ludicrous,injected,geeks,forged,faults,drue,dire,dief,desi,deceiving,caterer,calmed,budge,ankles,vending,typing,tribbiani,there're,squared,snowing,shades,sexist,rewrite,regretted,raises,picky,orphan,mural,misjudged,miscarriage,memorize,leaking,jitters,invade,interruption,illegally,handicapped,glitch,gittes,finer,distraught,dispose,dishonest,digs,dads,cruelty,circling,canceling,butterflies,belongings,barbrady,amusement,alias,zombies,where've,unborn,swearing,stables,squeezed,sensational,resisting,radioactive,questionable,privileged,portofino,owning,overlook,orson,oddly,interrogate,imperative,impeccable,hurtful,hors,heap,graders,glance,disgust,devious,destruct,crazier,countdown,chump,cheeseburger,burglar,berries,ballroom,assumptions,annoyed,allergy,admirer,admirable,activate,underpants,twit,tack,strokes,stool,sham,scrap,retarded,resourceful,remarkably,refresh,pressured,precautions,pointy,nightclub,mustache,maui,lace,hunh,hubby,flare,dont,dokey,dangerously,crushing,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,amazingly,alas,what've,toilets,tacos,stairwell,spirited,sewing,rubbed,punches,protects,nuisance,motherfuckers,mingle,kynaston,knack,kinkle,impose,gullible,godmother,funniest,friggin,folding,fashions,eater,dysfunctional,drool,dripping,ditto,cruising,criticize,conceive,clone,cedars,caliber,brighter,blinded,birthdays,banquet,anticipate,annoy,whim,whichever,volatile,veto,vested,shroud,rests,reindeer,quarantine,pleases,painless,orphans,orphanage,offence,obliged,negotiation,narcotics,mistletoe,meddling,manifest,lookit,lilah,intrigued,injustice,homicidal,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,cheerful,buyers,brownies,beverage,basics,arvin,weighs,upsets,unethical,swollen,sweaters,stupidest,sensation,scalpel,props,prescribed,pompous,objections,mushrooms,mulwray,manipulation,lured,internship,insignificant,inmate,incentive,fulfilled,disagreement,crypt,cornered,copied,brightest,beethoven,attendant,amaze,yogurt,wyndemere,vocabulary,tulsa,tactic,stuffy,respirator,pretends,polygraph,pennies,ordinarily,olives,necks,morally,martyr,leftovers,joints,hopping,homey,hints,heartbroken,forge,florist,firsthand,fiend,dandy,crippled,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,wiring,wench,weaknesses,volunteering,violating,unlocked,tummy,surrogate,subid,stray,startle,specifics,slowing,scoot,robbers,rightful,richest,qfxmjrie,puffs,pierced,pencils,paralysis,makeover,luncheon,linksynergy,jerky,jacuzzi,hitched,hangover,fracture,flock,firemen,disgusted,darned,clams,borrowing,banged,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,retro,quits,pegged,painfully,paging,omelet,memorized,lawfully,jackets,intercept,ingredient,grownup,glued,fulfilling,enchanted,delusion,daring,compelling,carton,bridesmaids,bribed,boiling,bathrooms,bandage,awaiting,assign,arrogance,antiques,ainsley,turkeys,trashing,stockings,stalked,stabilized,skates,sedated,robes,respecting,psyche,presumptuous,prejudice,paragraph,mocha,mints,mating,mantan,lorne,loads,listener,itinerary,hepatitis,heave,guesses,fading,examining,dumbest,dishwasher,deceive,cunning,cripple,convictions,confided,compulsive,compromising,burglary,bumpy,brainwashed,benes,arnie,affirmative,adrenaline,adamant,watchin,waitresses,transgenic,toughest,tainted,surround,stormed,spree,spilling,spectacle,soaking,shreds,sewers,severed,scarce,scamming,scalp,rewind,rehearsing,pretentious,potions,overrated,obstacle,nerds,meems,mcmurphy,maternity,maneuver,loathe,fertility,eloping,ecstatic,ecstasy,divorcing,dignan,costing,clubhouse,clocks,candid,bursting,breather,braces,bending,arsonist,adored,absorb,valiant,uphold,unarmed,topolsky,thrilling,thigh,terminate,sustain,spaceship,snore,sneeze,smuggling,salty,quaint,patronize,patio,morbid,mamma,kettle,joyous,invincible,interpret,insecurities,impulses,illusions,holed,exploit,drivin,defenseless,dedicate,cradle,coupon,countless,conjure,cardboard,booking,backseat,accomplishment,wordsworth,wisely,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,scumbag,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,prospects,pronto,posse,polling,pedestal,palms,muddy,morty,microscope,merci,lecturing,inject,incriminate,hygiene,grapefruit,gazebo,funnier,cuter,bossy,booby,aides,zende,winthrop,warrants,valentines,undressed,underage,truthfully,tampered,suffers,speechless,sparkling,sidelines,shrek,railing,puberty,pesky,outrage,outdoors,motions,moods,lunches,litter,kidnappers,itching,intuition,imitation,humility,hassling,gallons,drugstore,dosage,disrupt,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,circumstantial,chimney,blinking,biscuits,admiring,weeping,triad,trashy,soothing,slumber,slayers,skirts,siren,shindig,sentiment,rosco,riddance,quaid,purity,proceeding,pretzels,panicking,mckechnie,lovin,leaked,intruding,impersonating,ignorance,hamburgers,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,deceived,creeping,craziest,corpses,conned,coincidences,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,zillion,watergate,wallpaper,telesave,sympathize,sweeter,startin,spades,sodas,snowed,sleepover,signor,seein,retainer,restroom,rested,repercussions,reliving,reconcile,prevail,preaching,overreact,o'neil,noose,moustache,manicure,maids,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,exhausting,everytime,disregard,cling,chevron,chaperone,blinding,bitty,beads,battling,badgering,anticipation,upstanding,unprofessional,unhealthy,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,shooters,senseless,rewarding,propane,preposterous,pigeons,pastry,overhearing,obscene,negotiable,loner,jogging,itchy,insinuating,insides,hospitality,hormone,hearst,forthcoming,fists,fifties,etiquette,endings,destroys,despises,deprived,cuddy,crust,cloak,circumstance,chewed,casserole,bidder,bearer,artoo,applaud,appalling,vowed,virgins,vigilante,undone,throttle,testosterone,tailor,symptom,swoop,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,refund,reclaim,raoul,puzzles,purposely,punks,prosecuted,plaid,picturing,pickin,parasites,mysteriously,multiply,mascara,jukebox,interruptions,gunfire,furnace,elbows,duplicate,drapes,deliberate,decoy,cryptic,coupla,condemn,complicate,colossal,clerks,clarity,brushed,banished,argon,alarmed,worships,versa,uncanny,technicality,sundae,stumble,stripping,shuts,schmuck,satin,saliva,robber,relentless,reconnect,recipes,rearrange,rainy,psychiatrists,policemen,plunge,plugged,patched,overload,o'malley,mindless,menus,lullaby,lotte,leavin,killin,karinsky,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,dread,degrassi,dealings,dangers,cushion,bowel,barged,abide,abandoning,wonderfully,wait'll,violate,suicidal,stayin,sorted,slamming,sketchy,shoplifting,raiser,quizmaster,prefers,needless,motherhood,momentarily,migraine,lifts,leukemia,leftover,keepin,hinks,hellhole,gowns,goodies,gallon,futures,entertained,eighties,conspiring,cheery,benign,apiece,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unidentified,trivial,transcripts,textbook,supervise,superstitious,stricken,stimulating,spielberg,slices,shelves,scratches,sabotaged,retrieval,repressed,rejecting,quickie,ponies,peeking,outraged,o'connell,moping,moaning,mausoleum,licked,kovich,klutz,interrogating,interfered,insulin,infested,incompetence,hyper,horrified,handedly,gekko,fraid,fractured,examiner,eloped,disoriented,dashing,crashdown,courier,cockroach,chipped,brushing,bombed,bolts,baths,baptized,astronaut,assurance,anemia,abuela,abiding,withholding,weave,wearin,weaker,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,scram,roasted,roaming,riviera,respectfully,repulsive,psychiatry,provoked,penitentiary,painkillers,ninotchka,mitzvah,milligrams,midge,marshmallows,looky,lapse,kubelik,intellect,improvise,implant,goa'ulds,giddy,geniuses,fruitcake,footing,fightin,drinkin,doork,detour,cuddle,crashes,combo,colonnade,cheats,cetera,bailiff,auditioning,assed,amused,alienate,aiding,aching,unwanted,topless,tongues,tiniest,superiors,soften,sheldrake,rawley,raisins,presses,plaster,nessa,narrowed,minions,merciful,lawsuits,intimidating,infirmary,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foolproof,folder,flattery,fingertips,exterminator,explodes,eccentric,dodging,disguised,crave,constructive,concealed,compartment,chute,chinpokomon,bodily,astronauts,alimony,accustomed,abdominal,wrinkle,wallow,valium,untrue,uncover,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,talker,succubus,smarts,sliding,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ratted,rationally,provenance,phonse,perky,pedal,overdose,nasal,nanites,mushy,movers,missus,midterm,merits,melodramatic,manure,knitting,invading,interpol,incapacitated,hotline,hauling,gunpoint,grail,ganza,framing,flannel,faded,eavesdrop,desserts,calories,breathtaking,bleak,blacked,batter,aggravated,yanked,wigand,whoah,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stared,slapping,sincerity,siding,shenanigans,shacking,sappy,samaritan,poorer,politely,paste,oysters,overruled,nightcap,mosquito,millimeter,merrier,manhood,lucked,kilos,ignition,hauled,harmed,goodwill,freshmen,fenmore,fasten,farce,exploding,erratic,drunks,ditching,d'artagnan,cramped,contacting,closets,clientele,chimp,bargained,arranging,anesthesia,amuse,altering,afternoons,accountable,abetting,wolek,waved,uneasy,toddy,tattooed,spauldings,sliced,sirens,schibetta,scatter,rinse,remedy,redemption,pleasures,optimism,oblige,mmmmm,masked,malicious,mailing,kosher,kiddies,judas,isolate,insecurity,incidentally,heals,headlights,growl,grilling,glazed,flunk,floats,fiery,fairness,exercising,excellency,disclosure,cupboard,counterfeit,condescending,conclusive,clicked,cleans,cholesterol,cashed,broccoli,brats,blueprints,blindfold,billing,attach,appalled,alrighty,wynant,unsolved,unreliable,toots,tighten,sweatshirt,steinbrenner,steamy,spouse,sonogram,slots,sleepless,shines,retaliate,rephrase,redeem,rambling,quilt,quarrel,prying,proverbial,priced,prescribe,prepped,pranks,possessive,plaintiff,pediatrics,overlooked,outcast,nightgown,mumbo,mediocre,mademoiselle,lunchtime,lifesaver,leaned,lambs,interns,hounding,hellmouth,hahaha,goner,ghoul,gardening,frenzy,foyer,extras,exaggerate,everlasting,enlightened,dialed,devote,deceitful,d'oeuvres,cosmetic,contaminated,conspired,conning,cavern,carving,butting,boiled,blurry,babysit,ascension,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,vacations,upfront,unresolved,tampering,stockholders,snaps,sleepwalking,shrunk,sermon,seduction,scams,revolve,phenomenal,patrolling,paranormal,ounces,omigod,nightfall,lashing,innocents,infierno,incision,humming,haunts,gloss,gloating,frannie,fetal,feeny,entrapment,discomfort,detonator,dependable,concede,complication,commotion,commence,chulak,caucasian,casually,brainer,bolie,ballpark,anwar,analyzing,accommodations,youse,wring,wallowing,transgenics,thrive,tedious,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,shattering,shabby,seams,scrawny,revoked,residue,reeks,recite,ranting,quoting,predicament,plugs,pinpoint,petrified,pathological,passports,oughtta,nighter,navigate,kippie,intrigue,intentional,insufferable,hunky,how've,horrifying,hearty,hamptons,grazie,funerals,forks,fetched,excruciating,enjoyable,endanger,dumber,drying,diabolical,crossword,corry,comprehend,clipped,classmates,candlelight,brutally,brutality,boarded,bathrobe,authorize,assemble,aerobics,wholesome,whiff,vermin,trophies,trait,tragically,toying,testy,tasteful,stocked,spinach,sipping,sidetracked,scrubbing,scraping,sanctity,robberies,ridin,retribution,refrain,realities,radiant,protesting,projector,plutonium,payin,parting,o'reilly,nooooo,motherfucking,measly,manic,lalita,juggling,jerking,intro,inevitably,hypnosis,huddle,horrendous,hobbies,heartfelt,harlin,hairdresser,gonorrhea,fussing,furtwangler,fleeting,flawless,flashed,fetus,eulogy,distinctly,disrespectful,denies,crossbow,cregg,crabs,cowardly,contraction,contingency,confirming,condone,coffins,cleansing,cheesecake,certainty,cages,c'est,briefed,bravest,bosom,boils,binoculars,bachelorette,appetizer,ambushed,alerted,woozy,withhold,vulgar,utmost,unleashed,unholy,unhappiness,unconditional,typewriter,typed,twists,supermodel,subpoenaed,stringing,skeptical,schoolgirl,romantically,rocked,revoir,reopen,puncture,preach,polished,planetarium,penicillin,peacefully,nurturing,more'n,mmhmm,midgets,marklar,lodged,lifeline,jellyfish,infiltrate,hutch,horseback,heist,gents,frickin,freezes,forfeit,flakes,flair,fathered,eternally,epiphany,disgruntled,discouraged,delinquent,decipher,danvers,cubes,credible,coping,chills,cherished,catastrophe,bombshell,birthright,billionaire,ample,affections,admiration,abbotts,whatnot,watering,vinegar,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,timeless,thump,thermometer,theoretically,tapping,tagged,swung,stares,spiked,solves,smuggle,scarier,saucer,quitter,prudent,powdered,poked,pointers,peril,penetrate,penance,opium,nudge,nostrils,neurological,mockery,mobster,medically,loudly,insights,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,gloom,freshly,francs,flunked,flawed,emptiness,drugging,dozer,derevko,deprive,deodorant,cryin,crocodile,coloring,colder,cognac,clocked,clippings,charades,chanting,certifiable,caterers,brute,brochures,botched,blinders,bitchin,banter,woken,ulcer,tread,thankfully,swine,swimsuit,swans,stressing,steaming,stamped,stabilize,squirm,snooze,shuffle,shredded,seafood,scratchy,savor,sadistic,rhetorical,revlon,realist,prosecuting,prophecies,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,muster,meningitis,matron,lockers,letterman,legged,indictment,hypnotized,housekeeping,hopelessly,hallucinations,grader,goldilocks,girly,flask,envelopes,downside,doves,dissolve,discourage,disapprove,diabetic,deliveries,decorator,crossfire,criminally,containment,comrades,complimentary,chatter,catchy,cashier,cartel,caribou,cardiologist,brawl,booted,barbershop,aryan,angst,administer,zellie,wreak,whistles,vandalism,vamps,uterus,upstate,unstoppable,understudy,tristin,transcript,tranquilizer,toxins,tonsils,stempel,spotting,spectator,spatula,softer,snotty,slinging,showered,sexiest,sensual,sadder,rimbaud,restrain,resilient,remission,reinstate,rehash,recollection,rabies,popsicle,plausible,pediatric,patronizing,ostrich,ortolani,oooooh,omelette,mistrial,marseilles,loophole,laughin,kevvy,irritated,infidelity,hypothermia,horrific,groupie,grinding,graceful,goodspeed,gestures,frantic,extradition,echelon,disks,dawnie,dared,damsel,curled,collateral,collage,chant,calculating,bumping,bribes,boardwalk,blinds,blindly,bleeds,bickering,beasts,backside,avenge,apprehended,anguish,abusing,youthful,yells,yanking,whomever,when'd,vomiting,vengeful,unpacking,unfamiliar,undying,tumble,trolls,treacherous,tipping,tantrum,tanked,summons,straps,stomped,stinkin,stings,staked,squirrels,sprinkles,speculate,sorting,skinned,sicko,sicker,shootin,shatter,seeya,schnapps,s'posed,ronee,respectful,regroup,regretting,reeling,reckoned,ramifications,puddy,projections,preschool,plissken,platonic,permalash,outdone,outburst,mutants,mugging,misfortune,miserably,miraculously,medications,margaritas,manpower,lovemaking,logically,leeches,latrine,kneel,inflict,impostor,hypocrisy,hippies,heterosexual,heightened,hecuba,healer,gunned,grooming,groin,gooey,gloomy,frying,friendships,fredo,firepower,fathom,exhaustion,evils,endeavor,eggnog,dreaded,d'arcy,crotch,coughing,coronary,cookin,consummate,congrats,companionship,caved,caspar,bulletproof,brilliance,breakin,brash,blasting,aloud,airtight,advising,advertise,adultery,aches,wronged,upbeat,trillion,thingies,tending,tarts,surreal,specs,specialize,spade,shrew,shaping,selves,schoolwork,roomie,recuperating,rabid,quart,provocative,proudly,pretenses,prenatal,pharmaceuticals,pacing,overworked,originals,nicotine,murderous,mileage,mayonnaise,massages,losin,interrogated,injunction,impartial,homing,heartbreaker,hacks,glands,giver,fraizh,flips,flaunt,englishman,electrocuted,dusting,ducking,drifted,donating,cylon,crutches,crates,cowards,comfortably,chummy,chitchat,childbirth,businesswoman,brood,blatant,bethy,barring,bagged,awakened,asbestos,airplanes,worshipped,winnings,why're,visualize,unprotected,unleash,trays,thicker,therapists,takeoff,streisand,storeroom,stethoscope,stacked,spiteful,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,ruptured,roaring,receptionist,recap,raditch,radiator,pushover,plastered,pharmacist,perverse,perpetrator,ornament,ointment,nineties,napping,nannies,mousse,moors,momentary,misunderstandings,manipulator,malfunction,laced,kivar,kickin,infuriating,impressionable,holdup,hires,hesitated,headphones,hammering,groundwork,grotesque,graces,gauze,gangsters,frivolous,freeing,fours,forwarding,ferrars,faulty,fantasizing,extracurricular,empathy,divorces,detonate,depraved,demeaning,deadlines,dalai,cursing,cufflink,crows,coupons,comforted,claustrophobic,casinos,camped,busboy,bluth,bennetts,baskets,attacker,aplastic,angrier,affectionate,zapped,wormhole,weaken,unrealistic,unravel,unimportant,unforgettable,twain,suspend,superbowl,stutter,stewardess,stepson,standin,spandex,souvenirs,sociopath,skeletons,shivering,sexier,selfishness,scrapbook,ritalin,ribbons,reunite,remarry,relaxation,rattling,rapist,psychosis,prepping,poses,pleasing,pisses,piling,persecuted,padded,operatives,negotiator,natty,menopause,mennihan,martimmys,loyalties,laynie,lando,justifies,intimately,inexperienced,impotent,immortality,horrors,hooky,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,ferragamo,feeble,eyesight,explosions,experimenting,enchanting,doubtful,dizziness,dismantle,detectors,deserving,defective,dangling,dancin,crumble,creamed,cramping,conceal,clockwork,chrissakes,chrissake,chopping,cabinets,brooding,bonfire,blurt,bloated,blackmailer,beforehand,bathed,bathe,barcode,banish,badges,babble,await,attentive,aroused,antibodies,animosity,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vigilant,upbringing,unselfish,uncles,trendy,trajectory,striped,stamina,stalled,staking,stacks,spoils,snuff,snooty,snide,shrinking,senora,secretaries,scoundrel,saline,salads,rundown,riddles,relapse,recommending,raspberry,plight,pecan,pantry,overslept,ornaments,niner,negligent,negligence,nailing,mucho,mouthed,monstrous,malpractice,lowly,loitering,logged,lingering,lettin,lattes,kamal,juror,jillefsky,jacked,irritate,intrusion,insatiable,infect,impromptu,icing,hmmmm,hefty,gasket,frightens,flapping,firstborn,faucet,estranged,envious,dopey,doesn,disposition,disposable,disappointments,dipped,dignified,deceit,dealership,deadbeat,curses,coven,counselors,concierge,clutches,casbah,callous,cahoots,brotherly,britches,brides,bethie,beige,autographed,attendants,attaboy,astonishing,appreciative,antibiotic,aneurysm,afterlife,affidavit,zoning,whats,whaddaya,vasectomy,unsuspecting,toula,topanga,tonio,toasted,tiring,terrorized,tenderness,tailing,sweats,suffocated,sucky,subconsciously,starvin,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,seventies,sedate,scented,sandals,rollers,retraction,resigning,recuperate,receptive,racketeering,queasy,provoking,priors,prerogative,premed,pinched,pendant,outsiders,orbing,opportunist,olanov,neurologist,nanobot,mommies,molested,misread,mannered,laundromat,intercom,inspect,insanely,infatuation,indulgent,indiscretion,inconsiderate,hurrah,howling,herpes,hasta,harassed,hanukkah,groveling,groosalug,gander,galactica,futile,fridays,flier,fixes,exploiting,exorcism,evasive,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,disobeyed,disneyland,disable,dehydrated,contemplating,coconuts,cockroaches,clogged,chilling,chaperon,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bluepoint,appetizers,appendix,antics,anointed,analogy,almonds,yammering,winch,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,travesty,transfusion,trainee,towelie,tiresome,straightening,staggering,sonar,socializing,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,ridiculously,ridicule,rents,reconciled,radios,publicist,pubes,prune,prude,precrime,postponing,pluck,perish,peppermint,peeled,overdo,nutshell,nostalgic,mulan,mouthing,mistook,meddle,maybourne,martimmy,lobotomy,livelihood,lippman,likeness,kindest,kaffee,jocks,jerked,jeopardizing,jazzed,insured,inquisition,inhale,ingenious,holier,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,goofing,godson,glare,finesse,figuratively,ferrie,endangerment,dreading,dozed,dorky,dmitri,divert,discredit,dialing,cufflinks,crutch,craps,corrupted,cocoon,cleavage,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,ballistics,astute,arroway,adventurous,adoptive,addicts,addictive,yadda,whitelighters,wematanye,weeds,wedlock,wallets,vulnerability,vroom,vents,upped,unsettling,unharmed,trippin,trifle,tracing,tormenting,thats,syphilis,subtext,stickin,spices,sores,smacked,slumming,sinks,signore,shitting,shameful,shacked,septic,seedy,righteousness,relish,rectify,ravishing,quickest,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,outnumbered,oregano,offender,nukes,nosed,nighty,nifty,mounties,motivate,moons,misinterpreted,mercenary,mentality,marsellus,lupus,lumbar,lovesick,lobsters,leaky,laundering,latch,jafar,instinctively,inspires,indoors,incarcerated,hundredth,handkerchief,gynecologist,guittierez,groundhog,grinning,goodbyes,geese,fullest,eyelashes,eyelash,enquirer,endlessly,elusive,disarm,detest,deluding,dangle,cotillion,corsage,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,cheeseburgers,chardonnay,celery,campfire,calming,burritos,brundle,broflovski,brighten,borderline,blinked,bling,beauties,bauers,battered,articulate,alienated,ahhhhh,agamemnon,accountants,y'see,wrongful,wrapper,workaholic,winnebago,whispered,warts,vacate,unworthy,unanswered,tonane,tolerated,throwin,throbbing,thrills,thorns,thereof,there've,tarot,sunscreen,stretcher,stereotype,soggy,sobbing,sizable,sightings,shucks,shrapnel,sever,senile,seaboard,scorned,saver,rebellious,rained,putty,prenup,pores,pinching,pertinent,peeping,paints,ovulating,opposites,occult,nutcracker,nutcase,newsstand,newfound,mocked,midterms,marshmallow,marbury,maclaren,leans,krudski,knowingly,keycard,junkies,juilliard,jolinar,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,incubator,illustrious,hunsecker,houseguest,homosexuals,homeroom,hernia,harming,handgun,hallways,hallucination,gunshots,groupies,groggy,goiter,gingerbread,giggling,frigging,fledged,fedex,fairies,exchanging,exaggeration,esteemed,enlist,drags,dispense,disloyal,disconnect,desks,dentists,delacroix,degenerate,daydreaming,cushions,cuddly,corroborate,complexion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,benefactor,ballgame,baiting,backstabbing,artifact,airspace,adversary,actin,accuses,accelerant,abundantly,abstinence,zissou,zandt,yapping,witchy,willows,whadaya,vilandra,veiled,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,toasting,tingling,tents,tempered,sulking,stunk,sponges,spills,softly,snipers,scourge,rooftop,riana,revolting,revisit,refreshments,redecorating,recapture,raysy,pretense,prejudiced,precogs,pouting,poofs,pimple,piles,pediatrician,padre,packets,paces,orvelle,oblivious,objectivity,nighttime,nervosa,mexicans,meurice,melts,matchmaker,maeby,lugosi,lipnik,leprechaun,kissy,kafka,introductions,intestines,inspirational,insightful,inseparable,injections,inadvertently,hussy,huckabees,hittin,hemorrhaging,headin,haystack,hallowed,grudges,granilith,grandkids,grading,gracefully,godsend,gobbles,fragrance,fliers,finchley,farts,eyewitnesses,expendable,existential,dorms,delaying,degrading,deduction,darlings,danes,cylons,counsellor,contraire,consciously,conjuring,congratulating,cokes,buffay,brooch,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,aptitude,amish,amazes,abomination,worldly,whispers,whadda,wayward,wailing,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,trite,transvestite,toupee,timid,timers,terrorizing,swana,stumped,strolling,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,spits,spins,soaps,sentiments,scramble,scone,rooftops,retract,reflexes,rawdon,ragged,quirky,quantico,psychologically,prodigal,pounce,potty,pleasantries,pints,petting,perceive,onstage,notwithstanding,nibble,newmans,neutralize,mutilated,millionaires,mayflower,masquerade,mangy,macreedy,lunatics,lovable,locating,limping,lasagna,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,incantation,hysteria,hypnotize,humping,happenin,griet,grasping,glorified,ganging,g'night,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fainting,eyebrow,exonerated,ether,electrician,egotistical,earthly,dusted,dignify,detonation,debrief,dazzling,dan'l,damnedest,daisies,crushes,crucify,contraband,confronting,collapsing,cocked,clicks,cliche,circled,chandelier,carburetor,callers,broads,breathes,bloodshed,blindsided,blabbing,bialystock,bashing,ballerina,aviva,arteries,anomaly,airstrip,agonizing,adjourn,aaaaa,yearning,wrecker,witnessing,whence,warhead,unsure,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,toddler,tiptoe,threesome,thirties,thermostat,swipe,surgically,subtlety,stung,stumbling,stubs,stride,strangling,sprayed,socket,smuggled,showering,shhhhh,sabotaging,rumson,rounding,risotto,repairman,rehearsed,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,prowl,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,peeked,peddle,panting,overweight,overrun,outing,outgrown,obsess,nursed,nodding,negativity,negatives,musketeers,mugger,motorcade,merrily,matured,masquerading,marvellous,maniacs,lovey,louse,linger,lilies,lawful,kudos,knuckle,juices,judgments,itches,intolerable,intermission,inept,incarceration,implication,imaginative,huckleberry,holster,heartburn,gunna,groomed,graciously,fulfillment,fugitives,forsaking,forgives,foreseeable,flavors,flares,fixation,fickle,fantasize,famished,fades,expiration,exclamation,erasing,eiffel,eerie,earful,duped,dulles,dissing,dissect,dispenser,dilated,detergent,desdemona,debriefing,damper,curing,crispina,crackpot,courting,cordial,conflicted,comprehension,commie,cleanup,chiropractor,charmer,chariot,cauldron,catatonic,bullied,buckets,brilliantly,breathed,booths,boardroom,blowout,blindness,blazing,biologically,bibles,biased,beseech,barbaric,balraj,audacity,anticipating,alcoholics,airhead,agendas,admittedly,absolution,youre,yippee,wittlesey,withheld,willful,whammy,weakest,washes,virtuous,videotapes,vials,unplugged,unpacked,unfairly,turbulence,tumbling,tricking,tremendously,traitors,torches,tinga,thyroid,teased,tawdry,taker,sympathies,swiped,sundaes,suave,strut,stepdad,spewing,spasm,socialize,slither,simulator,shutters,shrewd,shocks,semantics,schizophrenic,scans,savages,rya'c,runny,ruckus,royally,roadblocks,rewriting,revoke,repent,redecorate,recovers,recourse,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,problemo,praises,pouch,postcards,pooped,poised,piled,phoney,phobia,patching,parenthood,pardner,oozing,ohhhhh,numbing,nostril,nosey,neatly,nappa,nameless,mortuary,moronic,modesty,midwife,mcclane,matuka,maitre,lumps,lucid,loosened,loins,lawnmower,lamotta,kroehner,jinxy,jessep,jamming,jailhouse,jacking,intruders,inhuman,infatuated,indigestion,implore,implanted,hormonal,hoboken,hillbilly,heartwarming,headway,hatched,hartmans,harping,grapevine,gnome,forties,flyin,flirted,fingernail,exhilarating,enjoyment,embark,dumper,dubious,drell,docking,disillusioned,dishonor,disbarred,dicey,custodial,counterproductive,corned,cords,contemplate,concur,conceivable,cobblepot,chickened,checkout,carpe,cap'n,campers,buyin,bullies,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,beeped,bearable,autographs,alarming,wretch,wimps,widower,whirlwind,whirl,warms,vandelay,unveiling,undoing,unbecoming,turnaround,touche,togetherness,tickles,ticker,teensy,taunt,sweethearts,stitched,standpoint,staffers,spotless,soothe,smothered,sickening,shouted,shepherds,shawl,seriousness,schooled,schoolboy,s'mores,roped,reminders,raggedy,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,ohmigod,nosing,nicked,neanderthal,mosquitoes,mortified,milky,messin,mecha,markinson,marivellas,mannequin,manderley,madder,macready,lookie,locusts,lifetimes,lanna,lakhi,kholi,impersonate,hyperdrive,horrid,hopin,hogging,hearsay,harpy,harboring,hairdo,hafta,grasshopper,gobble,gatehouse,foosball,floozy,fished,firewood,finalize,felons,euphemism,entourage,elitist,elegance,drokken,drier,dredge,dossier,diseased,diarrhea,diagnose,despised,defuse,d'amour,contesting,conserve,conscientious,conjured,collars,clogs,chenille,chatty,chamomile,casing,calculator,brittle,breached,blurted,birthing,bikinis,astounding,assaulting,aroma,appliance,antsy,amnio,alienating,aliases,adolescence,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,unwelcome,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,ticks,tangible,tagging,swallowing,superheroes,studs,strep,stowed,stomping,steffy,sprain,spouting,sponsoring,sneezing,smeared,slink,shakin,sewed,seatbelt,scariest,scammed,sanctimonious,roasting,rightly,retinal,rethinking,resented,reruns,remover,racks,purest,progressing,presidente,preeclampsia,postponement,portals,poppa,pliers,pinning,pelvic,pampered,padding,overjoyed,ooooo,one'll,octavius,nonono,nicknames,neurosurgeon,narrows,misled,mislead,mishap,milltown,milking,meticulous,mediocrity,meatballs,machete,lurch,layin,knockin,khruschev,jurors,jumpin,jugular,jeweler,intellectually,inquiries,indulging,indestructible,indebted,imitate,ignores,hyperventilating,hyenas,hurrying,hermano,hellish,heheh,harshly,handout,grunemann,glances,giveaway,getup,gerome,furthest,frosting,frail,forwarded,forceful,flavored,flammable,flaky,fingered,fatherly,ethic,embezzlement,duffel,dotted,distressed,disobey,disappearances,dinky,diminish,diaphragm,deuces,creme,courteous,comforts,coerced,clots,clarification,chunks,chickie,chases,chaperoning,cartons,caper,calves,caged,bustin,bulging,bringin,boomhauer,blowin,blindfolded,biscotti,ballplayer,bagging,auster,assurances,aschen,arraigned,anonymity,alters,albatross,agreeable,adoring,abduct,wolfi,weirded,watchers,washroom,warheads,vincennes,urgency,understandably,uncomplicated,uhhhh,twitching,treadmill,thermos,tenorman,tangle,talkative,swarm,surrendering,summoning,strive,stilts,stickers,squashed,spraying,sparring,soaring,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,sharper,shamed,sadist,rydell,rusik,roulette,resumes,respiration,recount,reacts,purgatory,princesses,presentable,ponytail,plotted,pinot,pigtails,phillippe,peddling,paroled,orbed,offends,o'hara,moonlit,minefield,metaphors,malignant,mainframe,magicks,maggots,maclaine,loathing,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jakov,invoke,infantile,inadmissible,horoscope,hinting,hideaway,hesitating,heddy,heckles,hairline,gripe,gratifying,governess,goebbels,freddo,foresee,fascination,exemplary,executioner,etcetera,escorts,endearing,eaters,earplugs,draped,disrupting,disagrees,dimes,devastate,detain,depositions,delicacy,darklighter,cynicism,cyanide,cutters,cronus,continuance,conquering,confiding,compartments,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,buttle,burdened,bruenell,broomstick,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,bellboy,beaucoup,barkeep,awaken,astray,assailant,appease,aphrodisiac,alleys,yesss,wrecks,woodpecker,wondrous,wimpy,willpower,wheeling,weepy,waxing,waive,videotaped,veritable,untouched,unlisted,unfounded,unforeseen,twinge,triggers,traipsing,toxin,tombstone,thumping,therein,testicles,telephones,tarmac,talby,tackled,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,snipe,snagged,skimming,siddown,showroom,shovels,shotguns,shoelaces,shitload,shellfish,sharpest,shadowy,seizing,scrounge,scapegoat,sayonara,saddled,rummaging,roomful,renounce,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,practising,pours,poolhouse,poltergeist,pocketbook,plainly,picnics,pesto,pawing,passageway,partied,oneself,numero,nostalgia,nitwit,neuro,mixer,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,ingested,indignation,inconceivable,imposition,impersonal,imbecile,huddled,housewarming,horizons,homicides,hiccups,hearse,hardened,gushing,gushie,greased,goddamit,freelancer,forging,fondue,flustered,flung,flinch,flicker,fixin,festivus,fertilizer,farted,faggots,exonerate,evict,enormously,encrypted,emdash,embracing,duress,dupres,dowser,doormat,disfigured,disciplined,dibbs,depository,deathbed,dazzled,cuttin,cures,crowding,crepe,crammed,copycat,contradict,confidant,condemning,conceited,commute,comatose,clapping,circumference,chuppah,chore,choksondik,chestnuts,briault,bottomless,bonnet,blokes,berluti,beret,beggars,bankroll,bania,athos,arsenic,apperantly,ahhhhhh,afloat,accents,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,wisest,wipes,wield,whyn't,weirdos,wednesdays,vicksburg,upchuck,untraceable,unsupervised,unpleasantness,unhook,unconscionable,uncalled,trappings,tragedies,townie,thurgood,things'll,thine,tetanus,terrorize,temptations,tanning,tampons,swarming,straitjacket,steroid,startling,starry,squander,speculating,sollozzo,sneaked,slugs,skedaddle,sinker,silky,shortcomings,sellin,seasoned,scrubbed,screwup,scrapes,scarves,sandbox,salesmen,rooming,romances,revere,reproach,reprieve,rearranging,ravine,rationalize,raffle,punchy,psychobabble,provocation,profoundly,prescriptions,preferable,polishing,poached,pledges,pirelli,perverts,oversized,overdressed,outdid,nuptials,nefarious,mouthpiece,motels,mopping,mongrel,missin,metaphorically,mertin,memos,melodrama,melancholy,measles,meaner,mantel,maneuvering,mailroom,luring,listenin,lifeless,licks,levon,legwork,kneecaps,kippur,kiddie,kaput,justifiable,insistent,insidious,innuendo,innit,indecent,imaginable,horseshit,hemorrhoid,hella,healthiest,haywire,hamsters,hairbrush,grouchy,grisly,gratuitous,glutton,glimmer,gibberish,ghastly,gentler,generously,geeky,fuhrer,fronting,foolin,faxes,faceless,extinguisher,expel,etched,endangering,ducked,dodgeball,dives,dislocated,discrepancy,devour,derail,dementia,daycare,cynic,crumbling,cowardice,covet,cornwallis,corkscrew,cookbook,commandments,coincidental,cobwebs,clouded,clogging,clicking,clasp,chopsticks,chefs,chaps,cashing,carat,calmer,brazen,brainwashing,bradys,bowing,boned,bloodsucking,bleachers,bleached,bedpan,bearded,barrenger,bachelors,awwww,assures,assigning,asparagus,apprehend,anecdote,amoral,aggravation,afoot,acquaintances,accommodating,yakking,worshipping,wladek,willya,willies,wigged,whoosh,whisked,watered,warpath,volts,violates,valuables,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,tubby,trolling,toxicology,tormented,toothache,tingly,timmiihh,thursdays,thoreau,terrifies,temperamental,telegrams,talkie,takers,symbiote,swirl,suffocate,stupider,strapping,steckler,springing,someway,sleepyhead,sledgehammer,slant,slams,showgirl,shoveling,shmoopy,sharkbait,shan't,scrambling,schematics,sandeman,sabbatical,rummy,reykjavik,revert,responsive,rescheduled,requisition,relinquish,rejoice,reckoning,recant,rebadow,reassurance,rattlesnake,ramble,primed,pricey,prance,pothole,pocus,persist,perpetrated,pekar,peeling,pastime,parmesan,pacemaker,overdrive,ominous,observant,nothings,noooooo,nonexistent,nodded,nieces,neglecting,nauseating,mutated,musket,mumbling,mowing,mouthful,mooseport,monologue,mistrust,meetin,masseuse,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,liberating,lhasa,leniency,leering,laughable,lashes,lasagne,laceration,korben,katan,kalen,jittery,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,impolite,humbly,heroics,heigh,guillotine,guesthouse,grounding,grips,gossiping,goatee,gnomes,gellar,frutt,frobisher,freudian,foolishness,flagged,femme,fatso,fatherhood,fantasized,fairest,faintest,eyelids,extravagant,extraterrestrial,extraordinarily,escalator,elevate,drivel,dissed,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,convene,congresswoman,concocted,compromises,comprende,comma,coleslaw,clothed,clinically,chickenshit,checkin,cesspool,caskets,calzone,brothel,boomerang,bodega,blasphemy,bitsy,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,arrhythmia,arousing,arbitrator,antagonize,angling,anesthetic,altercation,aggressor,adversity,acathla,aaahhh,wreaking,workup,wonderin,wither,wielding,what'm,what'cha,waxed,vibrating,veterinarian,venting,vasey,valor,validate,upholstery,untied,unscathed,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,treatable,treasured,tranquility,townspeople,torso,tomei,tipsy,tinsel,tidings,thirtieth,tantrums,tamper,talky,swayed,swapping,suitor,stylist,stirs,standoff,sprinklers,sparkly,snobby,snatcher,smoother,sleepin,shrug,shoebox,sheesh,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,roadblock,riverbank,ridiculed,resentful,repellent,recreate,reconvene,rebuttal,realmedia,quizzes,questionnaire,punctured,pucker,prolong,professionalism,pleasantly,pigsty,penniless,paychecks,patiently,parading,overactive,ovaries,orderlies,oracles,oiled,offending,nudie,neonatal,neighborly,moops,moonlighting,mobilize,mmmmmm,milkshake,menial,meats,mayan,maxed,mangled,magua,lunacy,luckier,liters,lansbury,kooky,knowin,jeopardized,inkling,inhalation,inflated,infecting,incense,inbound,impractical,impenetrable,idealistic,i'mma,hypocrites,hurtin,humbled,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,genitals,gazillion,gammy,gamesphere,fugue,footwear,folly,flashlights,fives,filet,extenuating,estrogen,entails,embezzled,eloquent,egomaniac,ducts,drowsy,drones,doree,donovon,disguises,diggin,deserting,depriving,defying,deductible,decorum,decked,daylights,daybreak,dashboard,damnation,cuddling,crunching,crickets,crazies,councilman,coughed,conundrum,complimented,cohaagen,clutching,clued,clader,cheques,checkpoint,chats,channeling,ceases,carasco,capisce,cantaloupe,cancelling,campsite,burglars,breakfasts,bra'tac,blueprint,bleedin,blabbed,beneficiary,basing,avert,atone,arlyn,approves,apothecary,antiseptic,aleikuum,advisement,zadir,wobbly,withnail,whattaya,whacking,wedged,wanders,vaginal,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,treading,tranquilizers,toontown,thunk,suture,suppressing,strays,stonewall,stogie,stepdaughter,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sombrero,solemnly,softened,snobs,snippy,snare,smoothing,slump,slimeball,slaving,silently,shiller,shakedown,sensations,scrying,scrumptious,screamin,saucy,santoses,roundup,roughed,rosary,robechaux,retrospect,rescind,reprehensible,repel,remodeling,reconsidering,reciprocate,railroaded,psychics,promos,prob'ly,pristine,printout,priestess,prenuptial,precedes,pouty,phoning,peppy,pariah,parched,panes,overloaded,overdoing,nymphs,nother,notebooks,nearing,nearer,monstrosity,milady,mieke,mephesto,medicated,marshals,manilow,mammogram,m'lady,lotsa,loopy,lesion,lenient,learner,laszlo,kross,kinks,jinxed,involuntary,insubordination,ingrate,inflatable,incarnate,inane,hypoglycemia,huntin,humongous,hoodlum,honking,hemorrhage,helpin,hathor,hatching,grotto,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,flutter,flagpole,fetching,fatter,faithfully,exert,evasion,escalate,enticing,enchantress,elopement,drills,downtime,downloading,dorks,doorways,divulge,dissociative,disgraceful,disconcerting,deteriorate,destinies,depressive,dented,denim,decruz,decidedly,deactivate,daydreams,curls,culprit,cruelest,crippling,cranberries,corvis,copped,commend,coastguard,cloning,cirque,churning,chock,chivalry,catalogues,cartwheels,carols,canister,buttered,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,bores,badmouthing,autopilot,ascertain,aorta,ampata,allenby,accosted,absolve,aborted,aaagh,aaaaaah,yonder,yellin,wyndham,wrongdoing,woodsboro,wigging,wasteland,warranty,waltzed,walnuts,vividly,veggie,unnecessarily,unloaded,unicorns,understated,unclean,umbrellas,twirling,turpentine,tupperware,triage,treehouse,tidbit,tickled,threes,thousandth,thingie,terminally,teething,tassel,talkies,swoon,switchboard,swerved,suspiciously,subsequentlyne,subscribe,strudel,stroking,strictest,stensland,starin,stannart,squirming,squealing,sorely,softie,snookums,sniveling,smidge,sloth,skulking,simian,sightseeing,siamese,shudder,shoppers,sharpen,shannen,semtex,secondhand,seance,scowl,scorn,safekeeping,russe,rummage,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,rerun,reputations,rekall,refreshment,reenactment,recluse,ravioli,raves,raking,purses,punishable,punchline,puked,prosky,previews,poughkeepsie,poppins,polluted,placenta,pissy,petulant,perseverance,pears,pawns,pastries,partake,panky,palate,overzealous,orchids,obstructing,objectively,obituaries,obedient,nothingness,musty,motherly,mooning,momentous,mistaking,minutemen,milos,microchip,meself,merciless,menelaus,mazel,masturbate,mahogany,lysistrata,lillienfield,likable,liberate,leveled,letdown,larynx,lardass,lainey,lagged,klorel,kidnappings,keyed,karmic,jeebies,irate,invulnerable,intrusive,insemination,inquire,injecting,informative,informants,impure,impasse,imbalance,illiterate,hurled,hunts,hematoma,headstrong,handmade,handiwork,growling,gorky,getcha,gesundheit,gazing,galley,foolishly,fondness,floris,ferocious,feathered,fateful,fancies,fakes,faker,expire,ever'body,essentials,eskimos,enlightening,enchilada,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,doable,dislikes,dishonesty,disengage,discouraging,derailed,deformed,deflect,defer,deactivated,crips,constellations,congressmen,complimenting,clubbing,clawing,chromium,chimes,chews,cheatin,chaste,cellblock,caving,catered,catacombs,calamari,bucking,brulee,brits,brisk,breezes,bounces,boudoir,binks,better'n,bellied,behrani,behaves,bedding,balmy,badmouth,backers,avenging,aromatherapy,armpit,armoire,anythin,anonymously,anniversaries,aftershave,affliction,adrift,admissible,adieu,acquittal,yucky,yearn,whitter,whirlpool,wendigo,watchdog,wannabes,wakey,vomited,voicemail,valedictorian,uttered,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,turnoff,trampled,tramell,toads,timbuktu,throwback,thimble,tasteless,tarantula,tamale,takeovers,swish,supposing,streaking,stargher,stanzi,stabs,squeamish,splattered,spiritually,spilt,speciality,smacking,skywire,skips,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,shamelessly,serafine,sentimentality,seasick,schemer,scandalous,sainted,riedenschneider,rhyming,revel,retractor,retards,resurrect,remiss,reminiscing,remanded,reiben,regains,refuel,refresher,redoing,redheaded,reassured,rearranged,rapport,qumar,prowling,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,phlegm,perfected,pancreas,paley,ovary,outbursts,oppressed,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,millionth,migraines,midler,manicurist,mandelbaum,manageable,malfunctioned,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,komako,klute,kennel,justifying,irreversible,inventing,intergalactic,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,hyena,humperdinck,hubba,housework,hoffa,hither,hissy,hippy,hijacked,heparin,hellooo,hearth,hassles,hairstyle,hahahaha,hadda,guys'll,gutted,gulls,gritty,grievous,graft,gossamer,gooder,gambled,gadgets,fundamentals,frustrations,frolicking,frock,frilly,foreseen,footloose,fondly,flirtation,flinched,flatten,farthest,exposer,evading,escrow,empathize,embryos,embodiment,ellsberg,ebola,dulcinea,dreamin,drawbacks,doting,doose,doofy,disturbs,disorderly,disgusts,detox,denominator,demeanor,deliriously,decode,debauchery,croissant,cravings,cranked,coworkers,councilor,confuses,confiscate,confines,conduit,compress,combed,clouding,clamps,cinch,chinnery,celebratory,catalogs,carpenters,carnal,canin,bundys,bulldozer,buggers,bueller,brainy,booming,bookstores,bloodbath,bittersweet,bellhop,beeping,beanstalk,beady,baudelaire,bartenders,bargains,averted,armadillo,appreciating,appraised,antlers,aloof,allowances,alleyway,affleck,abject,zilch,youore,xanax,wrenching,wouldn,witted,wicca,whorehouse,whooo,whips,vouchers,victimized,vicodin,untested,unsolicited,unfocused,unfettered,unfeeling,unexplainable,understaffed,underbelly,tutorial,tryst,trampoline,towering,tirade,thieving,thang,swimmin,swayzak,suspecting,superstitions,stubbornness,streamers,strattman,stonewalling,stiffs,stacking,spout,splice,sonrisa,smarmy,slows,slicing,sisterly,shrill,shined,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,salieri,rustling,roxbury,rewire,revved,retriever,reputable,remodel,reins,reincarnation,rance,rafters,rackets,quail,pumbaa,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,pleasurable,pizzeria,pimps,penmanship,penchant,pelvis,overturn,overstepped,overcoat,ovens,outsmart,outed,ooohh,oncologist,omission,offhand,odour,nyazian,notarized,nobody'll,nightie,navel,nabbed,mystique,mover,mortician,morose,moratorium,mockingbird,mobsters,mingling,methinks,messengered,merde,masochist,martouf,martians,marinara,manray,majorly,magnifying,mackerel,lurid,lugging,lonnegan,loathsome,llantano,liberace,leprosy,latinos,lanterns,lamest,laferette,kraut,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,inconvenienced,inanimate,improbable,implode,hydrant,hustling,hustled,huevos,how'm,hooey,hoods,honcho,hinge,hijack,heimlich,hamunaptra,haladki,haiku,haggle,gutsy,grunting,grueling,gribbs,greevy,grandstanding,godparents,glows,glistening,gimmick,gaping,fraiser,formalities,foreigner,folders,foggy,fitty,fiends,fe'nos,favours,eyeing,extort,expedite,escalating,epinephrine,entitles,entice,eminence,eights,earthlings,eagerly,dunville,dugout,doublemeat,doling,dispensing,dispatcher,discoloration,diners,diddly,dictates,diazepam,derogatory,delights,defies,decoder,dealio,danson,cutthroat,crumbles,croissants,crematorium,craftsmanship,could'a,cordless,cools,conked,confine,concealing,complicates,communique,cockamamie,coasters,clobbered,clipping,clipboard,clemenza,cleanser,circumcision,chanukah,certainaly,cellmate,cancels,cadmium,buzzed,bumstead,bucko,browsing,broth,braver,boggling,bobbing,blurred,birkhead,benet,belvedere,bellies,begrudge,beckworth,banky,baldness,baggy,babysitters,aversion,astonished,assorted,appetites,angina,amiss,ambulances,alibis,airway,admires,adhesive,yoyou,xxxxxx,wreaked,wracking,woooo,wooing,wised,wilshire,wedgie,waging,violets,vincey,uplifting,untrustworthy,unmitigated,uneventful,undressing,underprivileged,unburden,umbilical,tweaking,turquoise,treachery,tosses,torching,toothpick,toasts,thickens,tereza,tenacious,teldar,taint,swill,sweatin,subtly,subdural,streep,stopwatch,stockholder,stillwater,stalkers,squished,squeegee,splinters,spliced,splat,spied,spackle,sophistication,snapshots,smite,sluggish,slithered,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,settin,sentinels,selfishly,scarcely,sangria,sanctum,sahjhan,rustle,roving,rousing,rosomorf,riddled,responsibly,renoir,remoray,remedial,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramelle,quivering,pyjamas,psychos,provocations,prouder,protestors,prodded,proctologist,primordial,pricks,prickly,precedents,pentangeli,pathetically,parka,parakeet,panicky,overthruster,outsmarted,orthopedic,oncoming,offing,nutritious,nuthouse,nourishment,nibbling,newlywed,narcissist,mutilation,mundane,mummies,mumble,mowed,morvern,mortem,mopes,molasses,misplace,miscommunication,miney,midlife,menacing,memorizing,massaging,masking,magnets,luxuries,lounging,lothario,liposuction,lidocaine,libbets,levitate,leeway,launcelot,larek,lackeys,kumbaya,kryptonite,knapsack,keyhole,katarangura,juiced,jakey,ironclad,invoice,intertwined,interlude,interferes,injure,infernal,indeedy,incur,incorrigible,incantations,impediment,igloo,hysterectomy,hounded,hollering,hindsight,heebie,havesham,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,firecrackers,figger,fetuses,fates,eyeliner,extremities,extradited,expires,exceedingly,evaporate,erupt,epileptic,entrails,emporium,egregious,eggshells,easing,duwayne,droll,dreyfuss,dovey,doubly,doozy,donkeys,donde,distrust,distressing,disintegrate,discreetly,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cushy,cupcakes,cuffed,croupier,croak,crapped,coursing,coolers,contaminate,consummated,construed,condos,concoction,compulsion,commish,coercion,clemency,clairvoyant,circulate,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,burdon,bullshitting,brewed,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleep,bleeder,blackouts,bisque,billboards,beatings,bayberry,bashed,bamboozled,balding,baklava,baffled,backfires,babak,awkwardness,attest,attachments,apologizes,anyhoo,antiquated,alcante,advisable,aahhh,aaahh,zatarc,yearbooks,wuddya,wringing,womanhood,witless,winging,whatsa,wetting,waterproof,wastin,vogelman,vocation,vindicated,vigilance,vicariously,venza,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,tweaked,turnips,trinkets,toughen,toting,topside,terrors,terrify,technologically,tarnish,tagliati,szpilman,surly,supple,summation,suckin,stepmom,squeaking,splashmore,souffle,solitaire,solicitation,solarium,smokers,slugged,slobbering,skylight,skimpy,sinuses,silenced,sideburns,shrinkage,shoddy,shhhhhh,shelled,shareef,shangri,seuss,serenade,scuffle,scoff,scanners,sauerkraut,sardines,sarcophagus,salvy,rusted,russells,rowboat,rolfsky,ringside,respectability,reparations,renegotiate,reminisce,reimburse,regimen,raincoat,quibble,puzzled,purposefully,pubic,proofing,prescribing,prelim,poisons,poaching,personalized,personable,peroxide,pentonville,payphone,payoffs,paleontology,overflowing,oompa,oddest,objecting,o'hare,o'daniel,notches,nobody'd,nightstand,neutralized,nervousness,nerdy,needlessly,naquadah,nappy,nantucket,nambla,mountaineer,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minivan,milligram,milkshakes,metamorphosis,medics,mattresses,mathesar,matchbook,matata,marys,malucci,magilla,lymphoma,lowers,lordy,linens,lindenmeyer,limelight,leapt,laxative,lather,lapel,lamppost,laguardia,kindling,kegger,kawalsky,juries,jokin,jesminder,interning,innermost,injun,infallible,industrious,indulgence,incinerator,impossibility,impart,illuminate,iguanas,hypnotic,hyped,hospitable,hoses,homemaker,hirschmuller,helpers,headset,guardianship,guapo,grubby,granola,granddaddy,goren,goblet,gluttony,globes,giorno,getter,geritol,gassed,gaggle,foxhole,fouled,foretold,floorboards,flippers,flaked,fireflies,feedings,fashionably,farragut,fallback,facials,exterminate,excites,everything'll,evenin,ethically,ensue,enema,empath,eluded,eloquently,eject,edema,dumpling,droppings,dolled,distasteful,disputing,displeasure,disdain,deterrent,dehydration,defied,decomposing,dawned,dailies,custodian,crusts,crucifix,crowning,crier,crept,craze,crawls,couldn,correcting,corkmaster,copperfield,cooties,contraption,consumes,conspire,consenting,consented,conquers,congeniality,complains,communicator,commendable,collide,coladas,colada,clout,clooney,classifieds,clammy,civility,cirrhosis,chink,catskills,carvers,carpool,carelessness,cardio,carbs,capades,butabi,busmalis,burping,burdens,bunks,buncha,bulldozers,browse,brockovich,breakthroughs,bravado,boogety,blossoms,blooming,bloodsucker,blight,betterton,betrayer,belittle,beeps,bawling,barts,bartending,bankbooks,babish,atropine,assertive,armbrust,anyanka,annoyance,anemic,anago,airwaves,aimlessly,aaargh,aaand,yoghurt,writhing,workable,winking,winded,widen,whooping,whiter,whatya,wazoo,voila,virile,vests,vestibule,versed,vanishes,urkel,uproot,unwarranted,unscheduled,unparalleled,undergrad,tweedle,turtleneck,turban,trickery,transponder,toyed,townhouse,thyself,thunderstorm,thinning,thawed,tether,technicalities,tau'ri,tarnished,taffeta,tacked,systolic,swerve,sweepstakes,swabs,suspenders,superwoman,sunsets,succulent,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,spicoli,sparing,soulless,sonnets,sockets,snatching,smothering,slush,sloman,slashing,sitters,simpleton,sighs,sidra,sickens,shunned,shrunken,showbiz,shopped,shimmering,shagging,semblance,segue,sedation,scuzzlebutt,scumbags,screwin,scoundrels,scarsdale,scabs,saucers,saintly,saddened,runaways,runaround,rheya,resenting,rehashing,rehabilitated,regrettable,refreshed,redial,reconnecting,ravenous,raping,rafting,quandary,pylea,putrid,puffing,psychopathic,prunes,probate,prayin,pomegranate,plummeting,planing,plagues,pinata,pithy,perversion,personals,perched,peeps,peckish,pavarotti,pajama,packin,pacifier,overstepping,okama,obstetrician,nutso,nuance,normalcy,nonnegotiable,nomak,ninny,nines,nicey,newsflash,neutered,nether,negligee,necrosis,navigating,narcissistic,mylie,muses,momento,moisturizer,moderation,misinformed,misconception,minnifield,mikkos,methodical,mebbe,meager,maybes,matchmaking,masry,markovic,malakai,luzhin,lusting,lumberjack,loopholes,loaning,lightening,leotard,launder,lamaze,kubla,kneeling,kibosh,jumpsuit,joliet,jogger,janover,jakovasaurs,irreparable,innocently,inigo,infomercial,inexplicable,indispensable,impregnated,impossibly,imitating,hunches,hummus,houmfort,hothead,hostiles,hooves,hooligans,homos,homie,hisself,heyyy,hesitant,hangout,handsomest,handouts,hairless,gwennie,guzzling,guinevere,grungy,goading,glaring,gavel,gardino,gangrene,fruitful,friendlier,freckle,freakish,forthright,forearm,footnote,flops,fixer,firecracker,finito,figgered,fezzik,fastened,farfetched,fanciful,familiarize,faire,fahrenheit,extravaganza,exploratory,explanatory,everglades,eunuch,estas,escapade,erasers,emptying,embarassing,dweeb,dutiful,dumplings,dries,drafty,dollhouse,dismissing,disgraced,discrepancies,disbelief,disagreeing,digestion,didnt,deviled,deviated,demerol,delectable,decaying,decadent,dears,dateless,d'algout,cultivating,cryto,crumpled,crumbled,cronies,crease,craves,cozying,corduroy,congratulated,confidante,compressions,complicating,compadre,coerce,classier,chums,chumash,chivalrous,chinpoko,charred,chafing,celibacy,carted,carryin,carpeting,carotid,cannibals,candor,butterscotch,busts,busier,bullcrap,buggin,brookside,brodski,brassiere,brainwash,brainiac,botrelle,bonbon,boatload,blimey,blaring,blackness,bipartisan,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,bedpans,bassinet,basking,barzini,barnyard,barfed,backups,audited,asinine,asalaam,arouse,applejack,annoys,anchovies,ampule,alameida,aggravate,adage,accomplices,yokel,y'ever,wringer,witwer,withdrawals,windward,willfully,whorfin,whimsical,whimpering,weddin,weathered,warmest,wanton,volant,visceral,vindication,veggies,urinate,uproar,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,turnin,tuatha,tropez,trellis,toppings,tootin,toodle,tinkering,thrives,thespis,theatrics,thatherton,tempers,tavington,tartar,tampon,swelled,sutures,sustenance,sunflowers,sublet,stubbins,strutting,strewn,stowaway,stoic,sternin,stabilizing,spiraling,spinster,speedometer,speakeasy,soooo,soiled,sneakin,smithereens,smelt,smacks,slaughterhouse,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,shouts,shorted,shoelace,sheeit,shards,shackled,sequestered,selmak,seduces,seclusion,seamstress,seabeas,scoops,scooped,scavenger,satch,s'more,rudeness,romancing,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,repaid,renewing,relaxes,rekindle,regrettably,regenerate,reels,reciting,reappear,readin,ratting,rapes,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,procrastinating,proactive,priss,postmortem,pompoms,poise,pickings,perfectionist,peretti,people'll,pecking,patrolman,paralegal,paragraphs,paparazzi,pankot,pampering,overstep,overpower,outweigh,omnipotent,odious,nuwanda,nurtured,newsroom,neeson,needlepoint,necklaces,neato,muggers,muffler,mousy,mourned,mosey,mopey,mongolians,moldy,misinterpret,minibar,microfilm,mendola,mended,melissande,masturbating,masbath,manipulates,maimed,mailboxes,magnetism,m'lord,m'honey,lymph,lunge,lovelier,lefferts,leezak,ledgers,larraby,laloosh,kundun,kozinski,knockoff,kissin,kiosk,kennedys,kellman,karlo,kaleidoscope,jeffy,jaywalking,instructing,infraction,informer,infarction,impulsively,impressing,impersonated,impeach,idiocy,hyperbole,hurray,humped,huhuh,hsing,hordes,hoodlums,honky,hitchhiker,hideously,heaving,heathcliff,headgear,headboard,hazing,harem,handprint,hairspray,gutiurrez,goosebumps,gondola,glitches,gasping,frolic,freeways,frayed,fortitude,forgetful,forefathers,fonder,foiled,foaming,flossing,flailing,fitzgeralds,firehouse,finders,fiftieth,fellah,fawning,farquaad,faraway,fancied,extremists,exorcist,exhale,ethros,entrust,ennui,energized,encephalitis,embezzling,elster,elixir,electrolytes,duplex,dryers,drexl,dredging,drawback,don'ts,dobisch,divorcee,disrespected,disprove,disobeying,disinfectant,dingy,digress,dieting,dictating,devoured,devise,detonators,desist,deserter,derriere,deron,deceptive,debilitating,deathwok,daffodils,curtsy,cursory,cuppa,cumin,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,contentment,consensual,compost,cluett,cleverly,cleansed,cleanliness,chopec,chomp,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,catchin,caress,camcorder,calorie,cackling,bystanders,buttoned,buttering,butted,buries,burgel,buffoon,brogna,bragged,boutros,bogeyman,blurting,blurb,blowup,bloodhound,blissful,birthmark,bigot,bestest,belted,belligerent,beggin,befall,beeswax,beatnik,beaming,barricade,baggoli,badness,awoke,artsy,artful,aroun,armpits,arming,annihilate,anise,angiogram,anaesthetic,amorous,ambiance,alligators,adoration,admittance,adama,abydos,zonked,zhivago,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,whoopie,wholeheartedly,whimper,which'll,wheelchairs,what'ya,warranted,wallop,wading,wacked,virginal,vermouth,vermeil,verger,ventriss,veneer,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unlocks,ungodly,undue,uncooperative,uncontrollably,unbeatable,twitchy,tumbler,truest,triumphs,triplicate,tribbey,tortures,tongaree,tightening,thorazine,theres,testifies,teenaged,tearful,taxing,taldor,syllabus,swoops,swingin,suspending,sunburn,stuttering,stupor,strides,strategize,strangulation,stooped,stipulation,stingy,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,spasms,spaniard,softener,sodding,soapbox,smoldering,smithbauer,skittish,sifting,sickest,sicilians,shuffling,shrivel,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schenkman,sawing,savin,satine,sapiens,salvaging,salmonella,sacrilege,rumpus,ruffle,roughing,rotted,rondall,ridding,rickshaw,rialto,rhinestone,restrooms,reroute,requisite,repress,rednecks,redeeming,rayed,ravell,raked,raincheck,raffi,racked,pushin,profess,prodding,procure,presuming,preppy,prednisone,potted,posttraumatic,poorhouse,podiatrist,plowed,pledging,playroom,plait,placate,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,pellets,peeved,peerless,payable,pauses,pathologist,pagliacci,overwrought,overreaction,overqualified,overheated,outcasts,otherworldly,opinionated,oodles,oftentimes,occured,obstinate,nutritionist,numbness,nubile,nooooooo,nobodies,nepotism,neanderthals,mushu,mucus,mothering,mothballs,monogrammed,molesting,misspoke,misspelled,misconstrued,miscalculated,minimums,mince,mildew,mighta,middleman,mementos,mellowed,mayol,mauled,massaged,marmalade,mardi,makings,lundegaard,lovingly,loudest,lotto,loosing,loompa,looming,longs,loathes,littlest,littering,lifelike,legalities,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,karras,jungles,jockeys,iranoff,invoices,invigorating,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infestation,individuality,indeterminate,incomprehensible,inadequacy,impropriety,importer,imaginations,illuminating,ignite,hysterics,hypodermic,hyperventilate,hyperactive,humoring,honeymooning,honed,hoist,hoarding,hitching,hiker,hightail,hemoglobin,hell'd,heinie,growin,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabbing,futon,fulla,frightful,freshener,fortuitous,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,feverish,favell,fattest,fattening,fallow,extraordinaire,evacuating,errant,envied,enchant,enamored,egocentric,dussander,dunwitty,dullest,dropout,dredged,dorsia,doornail,donot,dongs,dogged,dodgy,ditty,dishonorable,discriminating,discontinue,dings,dilly,dictation,dialysis,delly,delightfully,daryll,dandruff,cruddy,croquet,cringe,crimp,credo,crackling,courtside,counteroffer,counterfeiting,corrupting,copping,conveyor,contusions,contusion,conspirator,consoling,connoisseur,confetti,composure,compel,colic,coddle,cocksuckers,coattails,cloned,claustrophobia,clamoring,churn,chugga,chirping,chasin,chapped,chalkboard,centimeter,caymans,catheter,casings,caprica,capelli,cannolis,cannoli,camogli,camembert,butchers,butchered,busboys,bureaucrats,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,biocyte,betrays,bested,beryllium,beheading,beggar,begbie,beamed,bastille,barstool,barricades,barbecues,barbecued,bandwagon,backfiring,bacarra,avenged,autopsies,aunties,associating,artichoke,arrowhead,appendage,apostrophe,antacid,ansel,annul,amuses,amped,amicable,amberg,alluring,adversaries,admirers,adlai,acupuncture,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,wrinkly,wracked,withered,winks,windmills,whopping,wendle,weigart,waterworks,waterbed,watchful,wantin,wagging,waaah,vying,ventricle,varnish,vacuumed,unreachable,unprovoked,unmistakable,unfriendly,unfolding,underpaid,uncuff,unappealing,unabomber,typhoid,tuxedos,tushie,turds,tumnus,troubadour,trinium,treaters,treads,transpired,transgression,tought,thready,thins,thinners,techs,teary,tattaglia,tassels,tarzana,tanking,tablecloths,synchronize,symptomatic,sycophant,swimmingly,sweatshop,surfboard,superpowers,sunroom,sunblock,sugarplum,stupidly,strumpet,strapless,stooping,stools,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spectacularly,sorbet,socked,sociable,snubbed,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,slouch,slingshot,slaved,skimmed,sisterhood,silliest,sidarthur,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scagnetti,sawchuk,saugus,sasquatch,sandbag,saltines,s'pose,roston,rostle,riveting,ristle,rifling,revulsion,reverently,retrograde,restful,resents,reptilian,reorganize,renovating,reiterate,reinvent,reinmar,reibers,reechard,recuse,reconciling,recognizance,reclaiming,recitation,recieved,rebate,reacquainted,rascals,railly,quintuplets,quahog,pygmies,puzzling,punctuality,prosthetic,proms,probie,preys,preserver,preppie,poachers,plummet,plumbers,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,physique,pessimistic,persecute,perjure,percentile,pentothal,pensky,penises,peini,pazzi,pastels,parlour,paperweight,pamper,pained,overwhelm,overalls,outrank,outpouring,outhouse,outage,ouija,obstructed,obsessions,obeying,obese,o'riley,o'higgins,nosebleeds,norad,noooooooo,nononono,nonchalant,nippy,neurosis,nekhorvich,necronomicon,naquada,n'est,mystik,mystified,mumps,muddle,mothership,moped,monumentally,monogamous,mondesi,misogynistic,misinterpreting,mindlock,mending,megaphone,meeny,medicating,meanie,masseur,markstrom,marklars,margueritas,manifesting,maharajah,lukewarm,loveliest,loran,lizardo,liquored,lipped,lingers,limey,lemkin,leisurely,lathe,latched,lapping,ladle,krevlorneswath,kosygin,khakis,kenaru,keats,kaitlan,julliard,jollies,jaundice,jargon,jackals,invisibility,insipid,inflamed,inferiority,inexperience,incinerated,incinerate,incendiary,incan,inbred,implicating,impersonator,hunks,horsing,hooded,hippopotamus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,headstone,hayloft,harbucks,handguns,hallucinate,haldol,haggling,gynaecologist,gulag,guilder,guaranteeing,groundskeeper,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,gentlemanly,gelatin,gawking,ganged,fukes,fromby,frenchmen,foursome,forsley,forbids,footwork,foothold,floater,flinging,flicking,fittest,fistfight,fireballs,fillings,fiddling,fennyman,felonious,felonies,feces,favoritism,fatten,fanatics,faceman,excusing,excepted,entwined,entree,ensconced,eladio,ehrlichman,easterland,dueling,dribbling,drape,downtrodden,doused,dosed,dorleen,dokie,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,diperna,dined,diligent,dicaprio,depress,decoded,debatable,dealey,darsh,damsels,damning,dad'll,d'oeuvre,curlers,curie,cubed,crikey,crepes,countrymen,cornfield,coppers,copilot,copier,cooing,conspiracies,consigliere,condoning,commoner,commies,combust,comas,colds,clawed,clamped,choosy,chomping,chimps,chigorin,chianti,cheep,checkups,cheaters,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,candlesticks,canasta,cain't,burro,burnin,bunking,bumming,bullwinkle,brummel,brooms,brews,breathin,braslow,bracing,botulism,boorish,bloodless,blayne,blatantly,blankie,bedbugs,becuase,barmaid,bared,baracus,banal,bakes,backpacks,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,arnon,apprehension,applauding,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,alerting,afterthought,affront,affirm,actuality,abysmal,absentee,yeller,yakushova,wuzzy,wriggle,worrier,woogyman,womanizer,windpipe,windbag,willin,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,waaay,vouched,viznick,ventriloquist,vendettas,veils,vayhue,vamanos,vadimus,upstage,uppity,unsaid,unlocking,unintentionally,undetected,undecided,uncaring,unbearably,tween,tryout,trotting,trini,trimmings,trickier,treatin,treadstone,trashcan,transcendent,tramps,townsfolk,torturous,torrid,toothpicks,tolerable,tireless,tiptoeing,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,these'll,thatos,testicular,teriyaki,tenors,tenacity,tellers,telemetry,tarragon,switchblade,swicker,swells,sweatshirts,swatches,surging,supremely,sump'n,succumb,subsidize,stumbles,stuffs,stoppin,stipulate,stenographer,steamroll,stasis,stagger,squandered,splint,splendidly,splashy,splashing,specter,sorcerers,somewheres,somber,snuggled,snowmobile,sniffed,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,siree,siphoning,singed,sincerest,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,sheetrock,shawshank,shamu,sha're,servitude,sequins,seascape,scrapings,scoured,scorching,sandpaper,saluting,salud,ruffled,roughnecks,rougher,rosslyn,rosses,roost,roomy,romping,revolutionize,reprimanded,refute,refrigerated,reeled,redundancies,rectal,recklessly,receding,reassignment,reapers,readout,ration,raring,ramblings,raccoons,quarantined,purging,punters,psychically,premarital,pregnancies,predisposed,precautionary,pollute,podunk,plums,plaything,pixilated,pitting,piranhas,pieced,piddles,pickled,photogenic,phosphorous,pffft,pestilence,pessimist,perspiration,perps,penticoff,passageways,pardons,panics,pancamo,paleontologist,overwhelms,overstating,overpaid,overdid,outlive,orthodontist,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,nymph,novocaine,noooooooooo,nipping,nilly,nightstick,negate,neatness,natured,narcotic,narcissism,namun,nakatomi,murky,muchacho,mouthwash,motzah,morsel,morph,morlocks,mooch,moloch,molest,mohra,modus,modicum,mockolate,misdemeanors,miscalculation,middies,meringue,mercilessly,meditating,mayakovsky,maximillian,marlee,markovski,maniacal,maneuvered,magnificence,maddening,lutze,lunged,lovelies,lorry,loosening,lookee,littered,lilac,lightened,laces,kurzon,kurtzweil,kind've,kimono,kenji,kembu,keanu,kazuo,jonesing,jilted,jiggling,jewelers,jewbilee,jacqnoud,jacksons,ivories,insurmountable,innocuous,innkeeper,infantery,indulged,indescribable,incoherent,impervious,impertinent,imperfections,hunnert,huffy,horsies,horseradish,hollowed,hogwash,hockley,hissing,hiromitsu,hidin,hereafter,helpmann,hehehe,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,grossly,grope,grocer,grits,gripping,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,gairwyn,futterman,futility,fumigated,fruitless,friendless,freon,foregone,forego,floored,flighty,flapjacks,fizzled,ficus,festering,farbman,fabricate,eyghon,extricate,exalted,eventful,esophagus,enterprising,entail,endor,emphatically,embarrasses,electroshock,easel,duffle,drumsticks,dissection,dissected,disposing,disparaging,disorientation,disintegrated,disarming,devoting,dessaline,deprecating,deplorable,delve,degenerative,deduct,decomposed,deathly,dearie,daunting,dankova,cyclotron,cyberspace,cutbacks,culpable,cuddled,crumpets,cruelly,crouching,cranium,cramming,cowering,couric,cordesh,conversational,conclusively,clung,clotting,cleanest,chipping,chimpanzee,chests,cheapen,chainsaws,censure,catapult,caravaggio,carats,captivating,calrissian,butlers,busybody,bussing,bunion,bulimic,budging,brung,browbeat,brokenhearted,brecher,breakdowns,bracebridge,boning,blowhard,blisters,blackboard,bigotry,bialy,bhamra,bended,begat,battering,baste,basquiat,barricaded,barometer,balled,baited,badenweiler,backhand,ascenscion,argumentative,appendicitis,apparition,anxiously,antagonistic,angora,anacott,amniotic,ambience,alonna,aleck,akashic,ageless,abouts,aawwww,aaaaarrrrrrggghhh,aaaaaa,zendi,yuppies,yodel,y'hear,wrangle,wombosi,wittle,withstanding,wisecracks,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weakling,warfarin,waponis,wampum,wadn't,vorash,vizzini,virtucon,viridiana,veracity,ventilated,varicose,varcon,vandalized,vamos,vamoose,vaccinated,vacationing,usted,urinal,uppers,unwittingly,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unbreakable,unadvisedly,udall,tynacorp,tuxes,tussle,turati,tunic,tsavo,trussed,troublemakers,trollop,tremors,transsexual,transfusions,toothbrushes,toned,toddlers,tinted,tightened,thundering,thorpey,this'd,thespian,thaddius,tenuous,tenths,tenement,telethon,teleprompter,teaspoon,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,talcum,tacks,swivel,swaying,superpower,summarize,sumbitch,sultry,suburbia,styrofoam,stylings,strolls,strobe,stockpile,stewardesses,sterilized,sterilize,stealin,stakeouts,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,sparklers,spareribs,sowing,sororities,sonovabitch,solicit,softy,softness,softening,snuggling,snatchers,snarling,snarky,snacking,smears,slumped,slowest,slithering,sleazebag,slayed,slaughtering,skidded,skated,sivapathasundaram,sissies,silliness,silences,sidecar,sicced,shylock,shtick,shrugged,shriek,shoves,should'a,shortcake,shockingly,shirking,shaves,shatner,sharpener,shapely,shafted,sexless,septum,selflessness,seabea,scuff,screwball,scoping,scooch,scolding,schnitzel,schemed,scalper,santy,sankara,sanest,salesperson,sakulos,safehouse,sabers,runes,rumblings,rumbling,ruijven,ringers,righto,rhinestones,retrieving,reneging,remodelling,relentlessly,regurgitate,refills,reeking,reclusive,recklessness,recanted,ranchers,rafer,quaking,quacks,prophesied,propensity,profusely,problema,prided,prays,postmark,popsicles,poodles,pollyanna,polaroids,pokes,poconos,pocketful,plunging,plugging,pleeease,platters,pitied,pinetti,piercings,phooey,phonies,pestering,periscope,pentagram,pelts,patronized,paramour,paralyze,parachutes,pales,paella,paducci,owatta,overdone,overcrowded,overcompensating,ostracized,ordinate,optometrist,operandi,omens,okayed,oedipal,nuttier,nuptial,nunheim,noxious,nourish,notepad,nitroglycerin,nibblet,neuroses,nanosecond,nabbit,mythic,munchkins,multimillion,mulroney,mucous,muchas,mountaintop,morlin,mongorians,moneybags,mom'll,molto,mixup,misgivings,mindset,michalchuk,mesmerized,merman,mensa,meaty,mbwun,materialize,materialistic,masterminded,marginally,mapuhe,malfunctioning,magnify,macnamara,macinerney,machinations,macadamia,lysol,lurks,lovelorn,lopsided,locator,litback,litany,linea,limousines,limes,lighters,liebkind,levity,levelheaded,letterhead,lesabre,leron,lepers,lefts,leftenant,laziness,layaway,laughlan,lascivious,laryngitis,lapsed,landok,laminated,kurten,kobol,knucklehead,knowed,knotted,kirkeby,kinsa,karnovsky,jolla,jimson,jettison,jeric,jawed,jankis,janitors,jango,jalopy,jailbreak,jackers,jackasses,invalidate,intercepting,intercede,insinuations,infertile,impetuous,impaled,immerse,immaterial,imbeciles,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hurtling,hurried,hunchback,hullo,horsting,hoooo,homeboys,hollandaise,hoity,hijinks,hesitates,herrero,herndorff,helplessly,heeyy,heathen,hearin,headband,harrassment,harpies,halstrom,hahahahaha,hacer,grumbling,grimlocks,grift,greets,grandmothers,grander,grafts,gordievsky,gondorff,godorsky,glscripts,gaudy,gardeners,gainful,fuses,fukienese,frizzy,freshness,freshening,fraught,frantically,foxbooks,fortieth,forked,foibles,flunkies,fleece,flatbed,fisted,firefight,fingerpaint,filibuster,fhloston,fenceline,femur,fatigues,fanucci,fantastically,familiars,falafel,fabulously,eyesore,expedient,ewwww,eviscerated,erogenous,epidural,enchante,embarassed,embarass,embalming,elude,elspeth,electrocute,eigth,eggshell,echinacea,eases,earpiece,earlobe,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,dorma,doily,divvy,diverting,dissuade,disrespecting,displace,disorganized,disgustingly,discord,disapproving,diligence,didja,diced,devouring,detach,destructing,desolate,demerits,delude,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cussing,cryss,cripes,cretins,crackerjack,cower,coveting,couriers,countermission,cotswolds,convertibles,conversationalist,consorting,consoled,consarn,confides,confidentially,commited,commiserate,comme,comforter,comeuppance,combative,comanches,colosseum,colling,coexist,coaxing,cliffside,chutes,chucked,chokes,childlike,childhoods,chickening,chenowith,charmingly,changin,catsup,captioning,capsize,cappucino,capiche,candlewell,cakewalk,cagey,caddie,buxley,bumbling,bulky,buggered,brussel,brunettes,brumby,brotha,bronck,brisket,bridegroom,braided,bovary,bookkeeper,bluster,bloodline,blissfully,blase,billionaires,bicker,berrisford,bereft,berating,berate,bendy,belive,belated,beikoku,beens,bedspread,bawdy,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,awkwardly,auras,attuned,atheists,astaire,assuredly,arrivederci,appetit,appendectomy,apologetic,antihistamine,anesthesiologist,amulets,albie,alarmist,aiight,adstream,admirably,acquaint,abound,abominable,aaaaaaah,zekes,zatunica,wussy,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whisker,whims,whatiya,whadya,weirdly,weenies,waunt,washout,wanto,waning,victimless,verdad,veranda,vandaley,vancomycin,valise,vaguest,upshot,unzip,unwashed,untrained,unstuck,unprincipled,unmentionables,unjustly,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,tyndareus,turncoat,turlock,tulle,tryouts,trouper,triplette,trepkos,tremor,treeger,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,thumbprint,thankless,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tarred,tambourine,talentless,swooped,switcheroo,swirly,sweatpants,sunstroke,suitors,sugarcoat,subways,subterfuge,subservient,subletting,stunningly,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stifle,stealer,squeezes,squatter,squarely,sprouted,spool,spindly,speedos,soups,soundly,soulmates,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,skulk,skivvies,skewered,skewer,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,sharpened,shapeshifter,shadowing,shadoe,selectman,sefelt,seared,scrounging,scribbling,scooping,scintillating,schmoozing,scallops,sapphires,sanitarium,sanded,safes,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rewrote,revamp,retaliatory,reprimand,replicators,replaceable,remedied,relinquishing,rejoicing,reincarnated,reimbursed,reevaluate,redid,redefine,recreating,reconnected,rebelling,reassign,rearview,rayne,ravings,ratso,rambunctious,radiologist,quiver,quiero,queef,qualms,pyrotechnics,pulsating,psychosomatic,proverb,promiscuous,profanity,prioritize,preying,predisposition,precocious,precludes,prattling,prankster,povich,potting,postpartum,porridge,polluting,plowing,pistachio,pissin,pickpocket,physicals,peruse,pertains,personified,personalize,perjured,perfecting,pepys,pepperdine,pembry,peering,peels,pedophile,patties,passkey,paratrooper,paraphernalia,paralyzing,pandering,paltry,palpable,pagers,pachyderm,overstay,overestimated,overbite,outwit,outgrow,outbid,ooops,oomph,oohhh,oldie,obliterate,objectionable,nygma,notting,noches,nitty,nighters,newsstands,newborns,neurosurgery,nauseated,nastiest,narcolepsy,mutilate,muscled,murmur,mulva,mulling,mukada,muffled,morgues,moonbeams,monogamy,molester,molestation,molars,moans,misprint,mismatched,mirth,mindful,mimosas,millander,mescaline,menstrual,menage,mellowing,medevac,meddlesome,matey,manicures,malevolent,madmen,macaroons,lydell,lycra,lunchroom,lunching,lozenges,looped,litigious,liquidate,linoleum,lingk,limitless,limber,lilacs,ligature,liftoff,lemmiwinks,leggo,learnin,lazarre,lawyered,lactose,knelt,kenosha,kemosabe,jussy,junky,jordy,jimmies,jeriko,jakovasaur,issacs,isabela,irresponsibility,ironed,intoxication,insinuated,inherits,ingest,ingenue,inflexible,inflame,inevitability,inedible,inducement,indignant,indictments,indefensible,incomparable,incommunicado,improvising,impounded,illogical,ignoramus,hydrochloric,hydrate,hungover,humorless,humiliations,hugest,hoverdrone,hovel,hmmph,hitchhike,hibernating,henchman,helloooo,heirlooms,heartsick,headdress,hatches,harebrained,hapless,hanen,handsomer,hallows,habitual,guten,gummy,guiltier,guidebook,gstaad,gruff,griss,grieved,grata,gorignak,goosed,goofed,glowed,glitz,glimpses,glancing,gilmores,gianelli,geraniums,garroway,gangbusters,gamblers,galls,fuddy,frumpy,frowning,frothy,fro'tak,frere,fragrances,forgettin,follicles,flowery,flophouse,floatin,flirts,flings,flatfoot,fingerprinting,fingerprinted,fingering,finald,fillet,fianc,femoral,federales,fawkes,fascinates,farfel,fambly,falsified,fabricating,exterminators,expectant,excusez,excrement,excercises,evian,etins,esophageal,equivalency,equate,equalizer,entrees,enquire,endearment,empathetic,emailed,eggroll,earmuffs,dyslexic,duper,duesouth,drunker,druggie,dreadfully,dramatics,dragline,downplay,downers,dominatrix,doers,docket,docile,diversify,distracts,disloyalty,disinterested,discharging,disagreeable,dirtier,dinghy,dimwitted,dimoxinil,dimmy,diatribe,devising,deviate,detriment,desertion,depressants,depravity,deniability,delinquents,defiled,deepcore,deductive,decimate,deadbolt,dauthuille,dastardly,daiquiris,daggers,dachau,curiouser,curdled,cucamonga,cruller,cruces,crosswalk,crinkle,crescendo,cremate,counseled,couches,cornea,corday,copernicus,contrition,contemptible,constipated,conjoined,confounded,condescend,concoct,conch,compensating,committment,commandeered,comely,coddled,cockfight,cluttered,clunky,clownfish,cloaked,clenched,cleanin,civilised,circumcised,cimmeria,cilantro,chutzpah,chucking,chiseled,chicka,chattering,cervix,carrey,carpal,carnations,cappuccinos,candied,calluses,calisthenics,bushy,burners,budington,buchanans,brimming,braids,boycotting,bouncers,botticelli,botherin,bookkeeping,bogyman,bogged,bloodthirsty,blintzes,blanky,binturong,billable,bigboote,bewildered,betas,bequeath,behoove,befriend,bedpost,bedded,baudelaires,barreled,barboni,barbeque,bangin,baltus,bailout,backstabber,baccarat,awning,augie,arguillo,archway,apricots,apologising,annyong,anchorman,amenable,amazement,allspice,alannis,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,adrenal,acidosis,achoo,accessorizing,accentuate,abrasions,abductor,aaaahhh,aaaaaaaa,aaaaaaa,zeroing,zelner,zeldy,yevgeny,yeska,yellows,yeesh,yeahh,yamuri,wouldn't've,workmanship,woodsman,winnin,winked,wildness,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,westerburg,weeding,watermelons,washboard,waltzes,wafting,voulez,voluptuous,vitone,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,vasculitis,valets,upholstered,unwavering,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unglued,unequivocal,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,tugging,triads,trespasses,treehorn,traviata,trappers,transplants,trannie,tramping,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,thruster,thoughtfulness,thornwood,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surges,supermodels,superhighway,sunup,sun'll,sulfa,sugarless,sufficed,subside,strolled,stringy,strengthens,straightest,straightens,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stepladder,stepbrother,steers,steelheads,steakhouse,stathis,stankylecartmankennymr,standoffish,stalwart,squirted,spritz,sprig,sprawl,spousal,sphincter,spenders,spearmint,spatter,spangled,southey,soured,sonuvabitch,somethng,snuffed,sniffs,smokescreen,smilin,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skanks,sixed,siphoned,siphon,simpering,sigfried,sidearm,siddons,sickie,shuteye,shuffleboard,shrubberies,shrouded,showmanship,shouldn't've,shoplift,shiatsu,sentries,sentance,sensuality,seething,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schoolers,schmucks,scepters,scaly,scalps,scaffolding,sauces,sartorius,santen,salivating,sainthood,saget,saddens,rygalski,rusting,ruination,rueland,rudabaga,rottweiler,roofies,romantics,rollerblading,roldy,roadshow,rickets,rible,rheza,revisiting,retentive,resurface,restores,respite,resounding,resorting,resists,repulse,repressing,repaying,reneged,refunds,rediscover,redecorated,reconstructive,recommitted,recollect,receptacle,reassess,reanimation,realtors,razinin,rationalization,ratatouille,rashum,rasczak,rancheros,rampler,quizzing,quips,quartered,purring,pummeling,puede,proximo,prospectus,pronouncing,prolonging,procreation,proclamations,principled,prides,preoccupation,prego,precog,prattle,pounced,potshots,potpourri,porque,pomegranates,polenta,plying,pluie,plesac,playmates,plantains,pillowcase,piddle,pickers,photocopied,philistine,perpetuate,perpetually,perilous,pawned,pausing,pauper,parter,parlez,parlay,pally,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,outweighs,outings,ottos,orrin,orifice,orangutan,oopsy,ooooooooh,oooooo,ooohhhh,ocular,obstruct,obscenely,o'dwyer,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,nestled,nearsighted,ne'er,nastier,narco,nakedness,muted,mummified,mudda,mozzarella,moxica,motivator,motility,mothafucka,mortmain,mortgaged,mores,mongers,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mineshaft,millaney,microwaves,metzenbaum,mccovey,masterful,masochistic,marliston,marijawana,manya,mantumbi,malarkey,magnifique,madrona,madox,machida,m'hidi,lullabies,loveliness,lotions,looka,lompoc,litterbug,litigator,lithe,liquorice,linds,limericks,lightbulb,lewises,letch,lemec,layover,lavatory,laurels,lateness,laparotomy,laboring,kuato,kroff,krispy,krauts,knuckleheads,kitschy,kippers,kimbrow,keypad,keepsake,kebab,karloff,junket,judgemental,jointed,jezzie,jetting,jeeze,jeeter,jeesus,jeebs,janeane,jails,jackhammer,ixnay,irritates,irritability,irrevocable,irrefutable,irked,invoking,intricacies,interferon,intents,insubordinate,instructive,instinctive,inquisitive,inlay,injuns,inebriated,indignity,indecisive,incisors,incacha,inalienable,impresses,impregnate,impregnable,implosion,idolizes,hypothyroidism,hypoglycemic,huseni,humvee,huddling,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hikita,hikes,hightailed,hieroglyphics,heretofore,herbalist,hehey,hedriks,heartstrings,headmistress,headlight,hardheaded,happend,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,groan,greenbacks,gravedigger,grating,grasshoppers,grandiose,grandest,grafted,gooood,goood,gooks,godsakes,goaded,glamorama,giveth,gingham,ghostbusters,germane,georgy,gazzo,gazelles,gargle,garbled,galgenstein,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frighteningly,freebies,freakishly,forewarned,foreclose,forearms,fordson,fonics,flushes,flitting,flemmer,flabby,fishbowl,fidgeting,fevers,feigning,faxing,fatigued,fathoms,fatherless,fancier,fanatical,factored,eyelid,eyeglasses,expresso,expletive,expectin,excruciatingly,evidentiary,ever'thing,eurotrash,eubie,estrangement,erlich,epitome,entrap,enclose,emphysema,embers,emasculating,eighths,eardrum,dyslexia,duplicitous,dumpty,dumbledore,dufus,duddy,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,douggie,douchebag,dostoyevsky,doodling,don'tcha,domineering,doings,dogcatcher,doctoring,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,disavowed,dippy,diorama,dimmed,dilate,digitalis,diggory,dicing,diagnosing,devola,desolation,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,decrepit,deciphered,dawdle,dauphine,daresay,dangles,dampen,damndest,cucumbers,cucaracha,cryogenically,croaks,croaked,criticise,crisper,creepiest,creams,crackle,crackin,covertly,counterintelligence,corrosive,cordially,cops'll,convulsions,convoluted,conversing,conga,confrontational,confab,condolence,condiments,complicit,compiegne,commodus,comings,cometh,collusion,collared,cockeyed,clobber,clemonds,clarithromycin,cienega,christmasy,christmassy,chloroform,chippie,chested,cheeco,checklist,chauvinist,chandlers,chambermaid,chakras,cellophane,caveat,cataloguing,cartmanland,carples,carny,carded,caramels,cappy,caped,canvassing,callback,calibrated,calamine,buttermilk,butterfingers,bunsen,bulimia,bukatari,buildin,budged,brobich,bringer,brendell,brawling,bratty,braised,boyish,boundless,botch,boosh,bookies,bonbons,bodes,bobunk,bluntly,blossoming,bloomers,bloodstains,bloodhounds,blech,biter,biometric,bioethics,bijan,bigoted,bicep,bereaved,bellowing,belching,beholden,beached,batmobile,barcodes,barch,barbecuing,bandanna,backwater,backtrack,backdraft,augustino,atrophy,atrocity,atley,atchoo,asthmatic,assoc,armchair,arachnids,aptly,appetizing,antisocial,antagonizing,anorexia,anini,andersons,anagram,amputation,alleluia,airlock,aimless,agonized,agitate,aggravating,aerosol,acing,accomplishing,accidently,abuser,abstain,abnormally,aberration,aaaaahh,zlotys,zesty,zerzura,zapruder,zantopia,yelburton,yeess,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolchek,wishin,wiseguys,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,wherefore,wharvey,welts,wellstone,wedges,wavered,watchit,wastebasket,wango,waken,waitressed,wacquiem,vrykolaka,voula,vitally,visualizing,viciousness,vespers,vertes,verily,vegetarians,vater,vaporize,vannacutt,vallens,ussher,urinating,upping,unwitting,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undeserving,undermines,undergarments,unconcerned,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tribulations,tremont,tremoille,transcends,trafficker,touchin,tomfoolery,tinkered,tinfoil,tightrope,thousan,thoracotomy,thesaurus,thawing,thatta,tessio,temps,taxidermist,tator,tachycardia,t'akaya,swelco,sweetbreads,swatting,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,streetwalker,strategizing,straining,straightaway,stoli,stiffer,stickup,stens,steamroller,steadwell,steadfast,stateroom,stans,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spirals,speedboat,spectacles,speakerphone,southglen,souse,soundproof,soothsayer,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,snifter,sniffin,snickering,sneer,snarl,smila,slinking,slanted,slanderous,slammin,skimp,skilosh,siteid,sirloin,singe,sighing,sidekicks,sicken,showstopper,shoplifter,shimokawa,sherborne,shavadai,sharpshooters,sharking,shagged,shaddup,senorita,sesterces,sensuous,seahaven,scullery,scorcher,schotzie,schnoz,schmooze,schlep,schizo,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandstorm,sandalwood,salutations,sagman,s'okay,rsvp'd,rousted,rootin,romper,romanovs,rollercoaster,rolfie,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revoking,reverts,retrofit,retort,retinas,respirations,reprobate,replaying,repaint,renquist,renege,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,recriminations,rechecked,reassemble,rears,reamed,reacquaint,rayanne,ravish,rathole,raspail,rarest,rapists,rants,racketeer,quittin,quitters,quintessential,queremos,quellek,quelle,quasimodo,pyromaniac,puttanesca,puritanical,purer,puree,pungent,pummel,puedo,psychotherapist,prosecutorial,prosciutto,propositioning,procrastination,probationary,primping,preventative,prevails,preservatives,preachy,praetorians,practicality,powders,potus,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plummeted,plucking,plimpton,playthings,plastique,plainclothes,pinpointed,pinkus,pinks,pigskin,piffle,pictionary,piccata,photocopy,phobias,perignon,perfumes,pecks,pecked,patently,passable,parasailing,paramus,papier,paintbrush,pacer,paaiint,overtures,overthink,overstayed,overrule,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,orchestrate,oppress,opposable,oooohh,oomupwah,okeydokey,okaaay,ohashi,of'em,obscenities,oakie,o'gar,nurection,nostradamus,norther,norcom,nooch,nonsensical,nipped,nimbala,nervously,neckline,nebbleman,narwhal,nametag,n'n't,mycenae,muzak,muumuu,mumbled,mulvehill,muggings,muffet,mouthy,motivates,motaba,moocher,mongi,moley,moisturize,mohair,mocky,mmkay,mistuh,missis,misdeeds,mincemeat,miggs,miffed,methadone,messieur,menopausal,menagerie,mcgillicuddy,mayflowers,matrimonial,matick,masai,marzipan,maplewood,manzelle,mannequins,manhole,manhandle,malfunctions,madwoman,machiavelli,lynley,lynched,lurconis,lujack,lubricant,looove,loons,loofah,lonelyhearts,lollipops,lineswoman,lifers,lexter,lepner,lemony,leggy,leafy,leadeth,lazerus,lazare,lawford,languishing,lagoda,ladman,kundera,krinkle,krendler,kreigel,kowolski,knockdown,knifed,kneed,kneecap,kids'll,kennie,kenmore,keeled,kazootie,katzenmoyer,kasdan,karak,kapowski,kakistos,julyan,jockstrap,jobless,jiggly,jaunt,jarring,jabbering,irrigate,irrevocably,irrationally,ironies,invitro,intimated,intently,intentioned,intelligently,instill,instigator,instep,inopportune,innuendoes,inflate,infects,infamy,indiscretions,indiscreet,indio,indignities,indict,indecision,inconspicuous,inappropriately,impunity,impudent,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,idealist,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hunched,huffed,hubris,hubbub,hovercraft,houngan,hosed,horoscopes,hopelessness,hoodwinked,honorably,honeysuckle,homegirl,holiest,hippity,hildie,hieroglyphs,hexton,herein,heckle,heaping,healthilizer,headfirst,hatsue,harlot,hardwired,halothane,hairstyles,haagen,haaaaa,gutting,gummi,groundless,groaning,gristle,grills,graynamore,grabbin,goodes,goggle,glittering,glint,gleaming,glassy,girth,gimbal,giblets,gellers,geezers,geeze,garshaw,gargantuan,garfunkel,gangway,gandarium,gamut,galoshes,gallivanting,gainfully,gachnar,fusionlips,fusilli,furiously,frugal,fricking,frederika,freckling,frauds,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,fondling,fondled,fondle,folksy,fluttering,fluffing,floundering,flirtatious,flexing,flatterer,flaring,fixating,finchy,figurehead,fiendish,fertilize,ferment,fending,fellahs,feelers,fascinate,fantabulous,falsify,fallopian,faithless,fairer,fainter,failings,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,expelling,exorbitant,exhilarated,exertion,exerting,excercise,everbody,evaporated,escargot,escapee,erases,epizootics,epithelials,ephrum,entanglements,enslave,engrossed,emphatic,emeralds,ember,emancipated,elevates,ejaculate,effeminate,eccentricities,easygoing,earshot,dunks,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,donowitz,dominoes,diversions,distended,dissipate,disraeli,disqualify,disowned,dishwashing,disciplining,discerning,disappoints,dinged,digested,dicking,detonating,despising,depressor,depose,deport,dents,defused,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,deafening,dawning,dater,darkened,dappy,dallying,dagon,czechoslovakians,cuticles,cuteness,cupboards,culottes,cruisin,crosshairs,cronyn,criminalistics,creatively,creaming,crapping,cranny,cowed,contradicting,constipation,confining,confidences,conceiving,conceivably,concealment,compulsively,complainin,complacent,compels,communing,commode,comming,commensurate,columnists,colonoscopy,colchicine,coddling,clump,clubbed,clowning,cliffhanger,clang,cissy,choosers,choker,chiffon,channeled,chalet,cellmates,cathartic,caseload,carjack,canvass,canisters,candlestick,candlelit,camry,calzones,calitri,caldy,byline,butterball,bustier,burlap,bureaucrat,buffoons,buenas,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brays,brassieres,boysenberry,bowline,boooo,boonies,booklets,bookish,boogeyman,boogey,bogas,boardinghouse,bluuch,blundering,bluer,blowed,blotchy,blossomed,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,birdson,bings,bfmid,bfast,bettin,berkshires,benjamins,benevolence,benched,benatar,bellybutton,belabor,behooves,beddy,beaujolais,beattle,baxworth,baseless,barfing,bannish,bankrolled,banek,ballsy,ballpoint,baffling,badder,badda,bactine,backgammon,baako,aztreonam,authoritah,auctioning,arachtoids,apropos,aprons,apprised,apprehensive,anythng,antivenin,antichrist,anorexic,anoint,anguished,angioplasty,angio,amply,ampicillin,amphetamines,alternator,alcove,alabaster,airlifted,agrabah,affidavits,admonished,admonish,addled,addendum,accuser,accompli,absurdity,absolved,abrusso,abreast,aboot,abductions,abducting,aback,ababwa,aaahhhh,zorin,zinthar,zinfandel,zillions,zephyrs,zatarcs,zacks,youuu,yokels,yardstick,yammer,y'understand,wynette,wrung,wreaths,wowed,wouldn'ta,worming,wormed,workday,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,wenus,weirdoes,weaning,watusi,waponi,waistband,wackos,vouching,votre,vivica,viveca,vivant,vivacious,visor,visitin,visage,vicrum,vetted,ventriloquism,venison,varnsen,vaporized,vapid,vanstock,uuuuh,ushering,urologist,urination,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,uninsured,uninspired,unicycle,unhooked,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,understan,undershirt,underlings,underline,undercurrent,uncivilized,uncharacteristic,umpteenth,uglies,tuney,trumps,truckasaurus,trubshaw,trouser,tringle,trifling,trickster,trespassers,trespasser,traumas,trattoria,trashes,transgressions,trampling,tp'ed,toxoplasmosis,tounge,tortillas,topsy,topple,topnotch,tonsil,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,threepio,thoughtfully,thorkel,thommo,thing'll,thefts,that've,thanksgivings,tetherball,testikov,terraforming,tepid,tendonitis,tenboom,telex,teenybopper,tattered,tattaglias,tanneke,tailspin,tablecloth,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swaddling,swackhammer,svetkoff,supossed,superdad,sumptuous,sugary,sugai,subvert,substantiate,submersible,sublimating,subjugation,stymied,strychnine,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,steerage,steena,statuary,starlets,staggeringly,ssshhh,squaw,spurt,spungeon,spritzer,sprightly,sprays,sportswear,spoonful,splittin,splitsville,speedily,specialise,spastic,sparrin,souvlaki,southie,sourpuss,soupy,soundstage,soothes,somebody'd,softest,sociopathic,socialized,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,sloshed,sleight,skyrocket,skied,skewed,sixpence,sipowicz,singling,simulates,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shifu,shelve,shelbyville,sheepskin,sharpens,shaquille,shanshu,servings,sequined,seizes,seashells,scrambler,scopes,schnauzer,schmo,schizoid,scampered,savagely,saudis,santas,sandovals,sanding,saleswoman,sagging,s'cuse,rutting,ruthlessly,runneth,ruffians,rubes,rosalita,rollerblades,rohypnol,roasts,roadies,ritten,rippling,ripples,rigoletto,richardo,rethought,reshoot,reserving,reseda,rescuer,reread,requisitions,repute,reprogram,replenish,repetitious,reorganizing,reinventing,reinvented,reheat,refrigerators,reenter,recruiter,recliner,rawdy,rashes,rajeski,raison,raisers,rages,quinine,questscape,queller,pygmalion,pushers,pusan,purview,pumpin,pubescent,prudes,provolone,propriety,propped,procrastinate,processional,preyed,pretrial,portent,pooling,poofy,polloi,policia,poacher,pluses,pleasuring,platitudes,plateaued,plaguing,pittance,pinheads,pincushion,pimply,pimped,piggyback,piecing,phillipe,philipse,philby,pharaohs,petyr,petitioner,peshtigo,pesaram,persnickety,perpetrate,percolating,pepto,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,paltrow,palamon,padlock,paddling,oversleep,overheating,overdosed,overcharge,overblown,outrageously,ornery,opportune,oooooooooh,oohhhh,ohhhhhh,ogres,odorless,obliterated,nyong,nymphomaniac,ntozake,novocain,nough,nonnie,nonissue,nodules,nightmarish,nightline,niceties,newsman,needra,nedry,necking,navour,nauseam,nauls,narim,namath,nagged,naboo,n'sync,myslexia,mutator,mustafi,musketeer,murtaugh,murderess,munching,mumsy,muley,mouseville,mortifying,morgendorffers,moola,montel,mongoloid,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,millgate,mettle,metricconverter,meteors,menorah,mengele,melding,meanness,mcgruff,mcarnold,matzoh,matted,mastectomy,massager,marveling,marooned,marmaduke,marick,manhandled,manatees,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeovers,maiming,machismo,lumpectomy,lumbering,lucci,lording,lorca,lookouts,loogie,loners,loathed,lissen,lighthearted,lifer,lickin,lewen,levitation,lestercorp,lessee,lentils,legislate,legalizing,lederhosen,lawmen,lasskopf,lardner,lambeau,lamagra,ladonn,lactic,lacquer,labatier,krabappel,kooks,knickknacks,klutzy,kleynach,klendathu,kinross,kinkaid,kind'a,ketch,kesher,karikos,karenina,kanamits,junshi,jumbled,joust,jotted,jobson,jingling,jigalong,jerries,jellies,jeeps,javna,irresistable,internist,intercranial,inseminated,inquisitor,infuriate,inflating,infidelities,incessantly,incensed,incase,incapacitate,inasmuch,inaccuracies,imploding,impeding,impediments,immaturity,illegible,iditarod,icicles,ibuprofen,i'i'm,hymie,hydrolase,hunker,humps,humons,humidor,humdinger,humbling,huggin,huffing,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honks,honeymooners,homily,homeopathic,hitchhikers,hissed,hillnigger,hexavalent,hewwo,hershe,hermey,hergott,henny,hennigans,henhouse,hemolytic,helipad,heifer,hebrews,hebbing,heaved,headlock,harrowing,harnessed,hangovers,handi,handbasket,halfrek,hacene,gyges,guys're,gundersons,gumption,gruntmaster,grubs,grossie,groped,grins,greaseball,gravesite,gratuity,granma,grandfathers,grandbaby,gradski,gracing,gossips,gooble,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glares,givers,ginza,gimmie,gimmee,gennero,gemme,gazpacho,gazed,gassy,gargling,gandhiji,galvanized,gallbladder,gaaah,furtive,fumigation,fucka,fronkonsteen,frills,freezin,freewald,freeloader,frailty,forger,foolhardy,fondest,fomin,followin,follicle,flotation,flopping,floodgates,flogged,flicked,flenders,fleabag,fixings,fixable,fistful,firewater,firelight,fingerbang,finalizing,fillin,filipov,fiderer,felling,feldberg,feign,faunia,fatale,farkus,fallible,faithfulness,factoring,eyeful,extramarital,exterminated,exhume,exasperated,eviscerate,estoy,esmerelda,escapades,epoxy,enticed,enthused,entendre,engrossing,endorphins,emptive,emmys,eminently,embezzler,embarressed,embarrassingly,embalmed,eludes,eling,elated,eirie,egotitis,effecting,eerily,eecom,eczema,earthy,earlobes,eally,dyeing,dwells,duvet,duncans,dulcet,droves,droppin,drools,drey'auc,downriver,domesticity,dollop,doesnt,dobler,divulged,diversionary,distancing,dispensers,disorienting,disneyworld,dismissive,disingenuous,disheveled,disfiguring,dinning,dimming,diligently,dilettante,dilation,dickensian,diaphragms,devastatingly,destabilize,desecrate,deposing,deniece,demony,delving,delicates,deigned,defraud,deflower,defibrillator,defiantly,defenceless,defacing,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,darwinism,darnit,darks,danke,danieljackson,dangled,cytoxan,cutout,cutlery,curveball,curfews,cummerbund,crunches,crouched,crisps,cripples,crilly,cribs,crewman,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crackheads,coworker,couldn't've,corwins,coriander,copiously,convenes,contraceptives,contingencies,contaminating,conniption,condiment,concocting,comprehending,complacency,commendatore,comebacks,com'on,collarbone,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,closeted,cloistered,cleve,cleats,clarifying,clapped,cinnabar,chunnel,chumps,cholinesterase,choirboy,chocolatey,chlamydia,chigliak,cheesie,chauvinistic,chasm,chartreuse,charo,charnier,chapil,chalked,chadway,certifiably,cellulite,celled,cavalcade,cataloging,castrated,cassio,cashews,cartouche,carnivore,carcinogens,capulet,captivated,capt'n,cancellations,campin,callate,callar,caffeinated,cadavers,cacophony,cackle,buzzes,buttoning,busload,burglaries,burbs,buona,bunions,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,briefings,brewskies,breathalyzer,breakups,bratwurst,brania,braiding,brags,braggin,bradywood,bottomed,bossa,bordello,bookshelf,boogida,bondsman,bolder,boggles,bludgeoned,blowtorch,blotter,blips,blemish,bleaching,blainetologists,blading,blabbermouth,birdseed,bimmel,biloxi,biggly,bianchinni,betadine,berenson,belus,belloq,begets,befitting,beepers,beelzebub,beefed,bedridden,bedevere,beckons,beaded,baubles,bauble,battleground,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,bagman,baffles,backroom,babysat,baboons,averse,audiotape,auctioneer,atten,atcha,astonishment,arugula,arroz,antihistamines,annoyances,anesthesiology,anatomically,anachronism,amiable,amaretto,allahu,alight,aimin,ailment,afterglow,affronte,advil,adrenals,actualization,acrost,ached,accursed,accoutrements,absconded,aboveboard,abetted,aargh,aaaahh,zuwicky,zolda,ziploc,zakamatak,youve,yippie,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,y'mean,y'are,wuthering,wreaks,worrisome,workiiing,wooooooo,wonky,womanizing,wolodarsky,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,windthorne,windsurfing,windermere,wiggled,wiggen,whwhat,whodunit,whoaaa,whittling,whitesnake,whereof,wheezing,wheeze,whatd'ya,whataya,whammo,whackin,wellll,weightless,weevil,wedgies,webbing,weasly,wayside,waxes,waturi,washy,washrooms,wandell,waitaminute,waddya,waaaah,vornac,vishnoor,virulent,vindictiveness,vinceres,villier,vigeous,vestigial,ventilate,vented,venereal,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,urethra,upstaged,uploading,unwrapping,unwieldy,untapped,unsatisfied,unquenchable,unnerved,unmentionable,unlovable,unknowns,uninformed,unimpressed,unhappily,unguarded,unexplored,undergarment,undeniably,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,ululd,uhhhm,tweeze,tutsami,tushy,tuscarora,turkle,turghan,turbinium,tubers,trucoat,troxa,tropicana,triquetra,trimmers,triceps,trespassed,traya,traumatizing,transvestites,trainors,tradin,trackers,townies,tourelles,toucha,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tizzy,tippers,timmi,thwap,thusly,ththe,thrusts,throwers,throwed,throughway,thickening,thermonuclear,thelwall,thataway,terrifically,tendons,teleportation,telepathically,telekinetic,teetering,teaspoons,tarantulas,tapas,tanned,tangling,tamales,tailors,tahitian,tactful,tachy,tablespoon,syrah,synchronicity,synch,synapses,swooning,switchman,swimsuits,sweltering,sweetly,suvolte,suslov,surfed,supposition,suppertime,supervillains,superfluous,superego,sunspots,sunning,sunless,sundress,suckah,succotash,sublevel,subbasement,studious,striping,strenuously,straights,stonewalled,stillness,stilettos,stevesy,steno,steenwyck,stargates,stammering,staedert,squiggly,squiggle,squashing,squaring,spreadsheet,spramp,spotters,sporto,spooking,splendido,spittin,spirulina,spiky,spate,spartacus,spacerun,soonest,something'll,someth,somepin,someone'll,sofas,soberly,sobered,snowmen,snowbank,snowballing,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,slumlord,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skeptic,sitarides,sistah,sipped,sindell,simpletons,simony,silkwood,silks,silken,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,sheeny,shapetype,shaming,shallows,shackle,shabbily,shabbas,seppuku,senility,semite,semiautomatic,selznick,secretarial,sebacio,scuzzy,scummy,scrutinized,scrunchie,scribbled,scotches,scolded,scissor,schlub,scavenging,scarin,scarfing,scallions,scald,savour,savored,saute,sarcoidosis,sandbar,saluted,salish,saith,sailboats,sagittarius,sacre,saccharine,sacamano,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotisserie,rootie,roofy,roofie,romanticize,rittle,ristorante,rippin,rinsing,ringin,rincess,rickety,reveling,retest,retaliating,restorative,reston,restaurateur,reshoots,resetting,resentments,reprogramming,repossess,repartee,renzo,remore,remitting,remeber,relaxants,rejuvenate,rejections,regenerated,refocus,referrals,reeno,recycles,recrimination,reclining,recanting,reattach,reassigning,razgul,raved,rattlesnakes,rattles,rashly,raquetball,ransack,raisinettes,raheem,radisson,radishes,raban,quoth,qumari,quints,quilts,quilting,quien,quarreled,purty,purblind,punchbowl,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protectin,propping,proportioned,prophylactic,proofed,prompter,procreate,proclivities,prioritizing,prinze,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,pralines,pragmatist,powerbar,pottie,pottersville,potsie,potholes,posses,posies,portkey,porterhouse,pornographers,poring,poppycock,poppers,pomponi,pokin,poitier,podiatry,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pistachios,pirated,pinochle,pineapples,pinafore,pimples,piggly,piddling,picon,pickpockets,picchu,physiologically,physic,phobic,philandering,phenomenally,pheasants,pewter,petticoat,petronis,petitioning,perturbed,perpetuating,permutat,perishable,perimeters,perfumed,percocet,per'sus,pepperjack,penalize,pelting,pellet,peignoir,pedicures,peckers,pecans,pawning,paulsson,pattycake,patrolmen,patois,pathos,pasted,parishioner,parcheesi,parachuting,papayas,pantaloons,palpitations,palantine,paintballing,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlast,outlander,out've,orphey,orchestrating,openers,ooooooo,okies,ohhhhhhhhh,ohhhhhhhh,ogling,offbeat,obsessively,obeyed,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuances,nourishing,nosedive,norbu,nomlies,nomine,nixed,nihilist,nightshift,newmeat,neglectful,neediness,needin,naphthalene,nanocytes,nanite,naivete,n'yeah,mystifying,myhnegon,mutating,musing,mulled,muggy,muerto,muckraker,muchachos,mountainside,motherless,mosquitos,morphed,mopped,moodoo,moncho,mollem,moisturiser,mohicans,mocks,mistresses,misspent,misinterpretation,miscarry,minuses,mindee,mimes,millisecond,milked,mightn't,mightier,mierzwiak,microchips,meyerling,mesmerizing,mershaw,meecrob,medicate,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,matzah,matriarch,masturbated,masselin,martialed,marlboros,marksmanship,marinate,marchin,manicured,malnourished,malign,majorek,magnon,magnificently,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lydells,lusts,lucite,lubricants,lopper,lopped,loneliest,lonelier,lomez,lojack,loath,liquefy,lippy,limps,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,leotards,leanin,laxatives,lavished,latka,lanyard,lanky,landmines,lameness,laddies,lacerated,labored,l'amour,kreskin,kovitch,kournikova,kootchy,konoss,knknow,knickety,knackety,kmart,klicks,kiwanis,kissable,kindergartners,kilter,kidnet,kid'll,kicky,kickbacks,kickback,kholokov,kewpie,kendo,katra,kareoke,kafelnikov,kabob,junjun,jumba,julep,jordie,jondy,jolson,jenoff,jawbone,janitorial,janiro,ipecac,invigorated,intruded,intros,intravenously,interruptus,interrogations,interject,interfacing,interestin,insuring,instilled,insensitivity,inscrutable,inroads,innards,inlaid,injector,ingratitude,infuriates,infra,infliction,indelicate,incubators,incrimination,inconveniencing,inconsolable,incestuous,incas,incarcerate,inbreeding,impudence,impressionists,impeached,impassioned,imipenem,idling,idiosyncrasies,icebergs,hypotensive,hydrochloride,hushed,humus,humph,hummm,hulking,hubcaps,hubald,howya,howbout,how'll,housebroken,hotwire,hotspots,hotheaded,horrace,hopsfield,honto,honkin,honeymoons,homewrecker,hombres,hollers,hollerin,hoedown,hoboes,hobbling,hobble,hoarse,hinky,highlighters,hexes,heru'ur,hernias,heppleman,hell're,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,hayseed,haveo,hauls,hasten,harridan,harpoons,hardens,harcesis,harbouring,hangouts,halkein,haleh,halberstam,hairnet,hairdressers,hacky,haaaa,h'yah,gusta,gushy,gurgling,guilted,gruel,grudging,grrrrrr,grosses,groomsmen,griping,gravest,gratified,grated,goulash,goopy,goona,goodly,godliness,godawful,godamn,glycerin,glutes,glowy,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gilbey,gigglepuss,ghora,gestating,gelato,geishas,gearshift,gayness,gasped,gaslighting,garretts,garba,gablyczyck,g'head,fumigating,fumbling,fudged,fuckwad,fuck're,fuchsia,fretting,freshest,frenchies,freezers,fredrica,fraziers,fraidy,foxholes,fourty,fossilized,forsake,forfeits,foreclosed,foreal,footsies,florists,flopped,floorshow,floorboard,flinching,flecks,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fiver,fitzy,fishsticks,finetti,finelli,finagle,filko,fieldstone,fibber,ferrini,feedin,feasting,favore,fathering,farrouhk,farmin,fairytale,fairservice,factoid,facedown,fabled,eyeballin,extortionist,exquisitely,expedited,exorcise,existentialist,execs,exculpatory,exacerbate,everthing,eventuality,evander,euphoric,euphemisms,estamos,erred,entitle,enquiries,enormity,enfants,endive,encyclopedias,emulating,embittered,effortless,ectopic,ecirc,easely,earphones,earmarks,dweller,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,druthers,druggist,drossos,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dozing,dotes,dorkface,doorknobs,doohickey,donnatella,doncha,domicile,dokos,dobermans,dizzying,divola,ditsy,distaste,disservice,dislodged,dislodge,disinherit,disinformation,discounting,dinka,dimly,digesting,diello,diddling,dictatorships,dictators,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,derris,deplore,deplete,demure,demolitions,demean,delish,delbruck,delaford,degaulle,deftly,deformity,deflate,definatly,defector,decrypted,decontamination,decapitate,decanter,dardis,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechoslovakian,cymbal,cyberdyne,cutoffs,cuticle,curvaceous,curiousity,crowing,crowed,croutons,cropped,criminy,crescentis,crashers,cranwell,coverin,courtrooms,countenance,cosmically,cosign,corroboration,coroners,cornflakes,copperpot,copperhead,copacetic,coordsize,convulsing,consults,conjures,congenial,concealer,compactor,commercialism,cokey,cognizant,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clods,clocking,clings,clavicle,classless,clashing,clanking,clanging,clamping,civvies,citywide,circulatory,circuited,chronisters,chromic,choos,chloroformed,chillun,cheesed,chatterbox,chaperoned,channukah,cerebellum,centerpieces,centerfold,ceecee,ccedil,cavorting,cavemen,cauterized,cauldwell,catting,caterine,cassiopeia,carves,cartwheel,carpeted,carob,caressing,carelessly,careening,capricious,capitalistic,capillaries,candidly,camaraderie,callously,calfskin,caddies,buttholes,busywork,busses,burps,burgomeister,bunkhouse,bungchow,bugler,buffets,buffed,brutish,brusque,bronchitis,bromden,brolly,broached,brewskis,brewin,brean,breadwinner,brana,bountiful,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bombosity,bolting,boilerplate,bluey,blowback,blouses,bloodsuckers,bloodstained,bloat,bleeth,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,biltmore,bilked,big'uns,bidet,besotted,bernheim,benegas,bendiga,belushi,bellboys,belittling,behinds,begone,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,bathes,batak,baser,baseballs,barbella,bankrolling,bandaged,baerly,backlog,backin,babying,azkaban,awwwww,aviary,authorizes,austero,aunty,attics,atreus,astounded,astonish,artemus,arses,arintero,appraiser,apathetic,anybody'd,anxieties,anticlimactic,antar,anglos,angleman,anesthetist,androscoggin,andolini,andale,amway,amuck,amniocentesis,amnesiac,americano,amara,alvah,altruism,alternapalooza,alphabetize,alpaca,allus,allergist,alexandros,alaikum,akimbo,agoraphobia,agides,aggrhh,aftertaste,adoptions,adjuster,addictions,adamantium,activator,accomplishes,aberrant,aaaaargh,aaaaaaaaaaaaa,a'ight,zzzzzzz,zucchini,zookeeper,zirconia,zippers,zequiel,zellary,zeitgeist,zanuck,zagat,you'n,ylang,yes'm,yenta,yecchh,yecch,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,worshiping,wormy,wormtail,wormholes,woosh,wollsten,wolfing,woefully,wobbling,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whistled,whist,whinny,wheelies,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whacks,wewell,wetsuit,welluh,weeps,waylander,wavin,wassail,wasnt,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vorhees,voldemort,vivre,vittles,vindaloo,videogames,vichyssoise,vicarious,vesuvius,verguenza,ven't,velveteen,velour,velociraptor,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,vacuums,usurp,usernum,us'll,urinals,unyielding,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unpretentious,unnerstand,unmade,unimpeachable,unfashionable,underwrite,underlining,underling,underestimates,underappreciated,uncouth,uncork,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,ughuh,typewriters,twitches,twitched,twirly,twinkling,twinges,twiddling,turners,turnabout,tumblin,tryed,trowel,trousseau,trivialize,trifles,tribianni,trenchcoat,trembled,traumatize,transitory,transients,transfuse,transcribing,tranq,trampy,traipsed,trainin,trachea,traceable,touristy,toughie,toscanini,tortola,tortilla,torreon,toreador,tommorrow,tollbooth,tollans,toidy,togas,tofurkey,toddling,toddies,toasties,toadstool,to've,tingles,timin,timey,timetables,tightest,thuggee,thrusting,thrombus,throes,thrifty,thornharts,thinnest,thicket,thetas,thesulac,tethered,testaburger,tersenadine,terrif,terdlington,tepui,temping,tector,taxidermy,tastebuds,tartlets,tartabull,tar'd,tantamount,tangy,tangles,tamer,tabula,tabletops,tabithia,szechwan,synthedyne,svenjolly,svengali,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,superstore,supercilious,suntac,sunburned,summercliff,sullied,sugared,suckle,subtleties,substantiated,subsides,subliminal,subhuman,strowman,stroked,stroganoff,streetlight,straying,strainer,straighter,straightener,stoplight,stirrups,stewing,stereotyping,stepmommy,stephano,stashing,starshine,stairwells,squatsie,squandering,squalid,squabbling,squab,sprinkling,spreader,spongy,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,spearchucker,spatulas,southtown,soused,soshi,sorter,sorrowful,sooth,some'in,soliloquy,soiree,sodomized,sobriki,soaping,snows,snowcone,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smarten,smallish,slushy,slurring,sluman,slithers,slippin,sleuthing,sleeveless,skinless,skillfully,sketchbook,skagnetti,sista,sinning,singularly,sinewy,silverlake,siguto,signorina,sieve,sidearms,shying,shunning,shtud,shrieks,shorting,shortbread,shopkeepers,shmancy,shizzit,shitheads,shitfaced,shipmates,shiftless,shelving,shedlow,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,serviceable,sepsis,senores,sendin,semis,semanski,selflessly,seinfelds,seers,seeps,seductress,secaucus,sealant,scuttling,scusa,scrunched,scissorhands,schreber,schmancy,scamps,scalloped,savoir,savagery,sarong,sarnia,santangel,samool,sallow,salino,safecracker,sadism,sacrilegious,sabrini,sabath,s'aright,ruttheimer,rudest,rubbery,rousting,rotarian,roslin,roomed,romari,romanica,rolltop,rolfski,rockettes,roared,ringleader,riffing,ribcage,rewired,retrial,reting,resuscitated,restock,resale,reprogrammed,replicant,repentant,repellant,repays,repainting,renegotiating,rendez,remem,relived,relinquishes,relearn,relaxant,rekindling,rehydrate,refueled,refreshingly,refilling,reexamine,reeseman,redness,redeemable,redcoats,rectangles,recoup,reciprocated,reassessing,realy,realer,reachin,re'kali,rawlston,ravages,rappaports,ramoray,ramming,raindrops,rahesh,radials,racists,rabartu,quiches,quench,quarreling,quaintly,quadrants,putumayo,put'em,purifier,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,pterodactyl,psychodrama,psats,protestations,protectee,prosaic,propositioned,proclivity,probed,printouts,prevision,pressers,preset,preposition,preempt,preemie,preconceptions,prancan,powerpuff,potties,potpie,poseur,porthole,poops,pooping,pomade,polyps,polymerized,politeness,polisher,polack,pocketknife,poatia,plebeian,playgroup,platonically,platitude,plastering,plasmapheresis,plaids,placemats,pizzazz,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pileup,pilates,pigmen,pieeee,phrased,photocopies,phoebes,philistines,philanderer,pheromone,phasers,pfeffernuesse,pervs,perspire,personify,perservere,perplexed,perpetrating,perkiness,perjurer,periodontist,perfunctory,perdido,percodan,pentameter,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,paxcow,paused,patted,parkishoff,parkers,pardoning,paraplegic,paraphrasing,paperers,papered,pangs,paneling,palooza,palmed,palmdale,palatable,pacify,pacified,owwwww,oversexed,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outmaneuver,outfoxed,oughtn't,ostentatious,oshun,orthopedist,or'derves,ophthalmologist,operagirl,oozes,oooooooh,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrical,obeys,obeah,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,nourished,nonspecific,noing,noinch,nohoho,nobler,nitwits,newsprint,newspaperman,newscaster,neuropathy,netherworld,neediest,navasky,narcissists,napped,nafta,mache,mykonos,mutilating,mutherfucker,mutha,mutates,mutate,musn't,murchy,multitasking,mujeeb,mudslinging,muckraking,mousetrap,mourns,mournful,motherf,mostro,morphing,morphate,moralistic,moochy,mooching,monotonous,monopolize,monocle,molehill,moland,mofet,mockup,mobilizing,mmmmmmm,mitzvahs,mistreating,misstep,misjudge,misinformation,misdirected,miscarriages,miniskirt,mindwarped,minced,milquetoast,miguelito,mightily,midstream,midriff,mideast,microbe,methuselah,mesdames,mescal,men'll,memma,megaton,megara,megalomaniac,meeee,medulla,medivac,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,mateys,marshack,markles,marketable,mansiere,manservant,manse,manhandling,mallomars,malcontent,malaise,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,machu,macado,m'boy,m'appelle,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,loincloth,lofts,lodgers,lobbing,loaner,livered,liqueur,ligourin,lifesaving,lifeguards,lifeblood,liaisons,let'em,lesbianism,lence,lemonlyman,legitimize,leadin,lazars,lazarro,lawyering,laugher,laudanum,latrines,lations,laters,lapels,lakefront,lahit,lafortunata,lachrymose,l'italien,kwaini,kruczynski,kramerica,kowtow,kovinsky,korsekov,kopek,knowakowski,knievel,knacks,kiowas,killington,kickball,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,karajan,kamerev,kaggs,jujyfruit,jostled,jonestown,jokey,joists,jocko,jimmied,jiggled,jests,jenzen,jenko,jellyman,jedediah,jealitosis,jaunty,jarmel,jankle,jagoff,jagielski,jackrabbits,jabbing,jabberjaw,izzat,irresponsibly,irrepressible,irregularity,irredeemable,inuvik,intuitions,intubated,intimates,interminable,interloper,intercostal,instyle,instigate,instantaneously,ining,ingrown,ingesting,infusing,infringe,infinitum,infact,inequities,indubitably,indisputable,indescribably,indentation,indefinable,incontrovertible,inconsequential,incompletes,incoherently,inclement,incidentals,inarticulate,inadequacies,imprudent,improprieties,imprison,imprinted,impressively,impostors,importante,imperious,impale,immodest,immobile,imbedded,imbecilic,illegals,idn't,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,hotbed,hosing,hosers,horsehair,homebody,homebake,holing,holies,hoisting,hogwallop,hocks,hobbits,hoaxes,hmmmmm,hisses,hippest,hillbillies,hilarity,heurh,herniated,hermaphrodite,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heeey,hedda,heartbeats,heaped,healers,headstart,headsets,headlong,hawkland,havta,haulin,harvey'll,hanta,hansom,hangnail,handstand,handrail,handoff,hallucinogen,hallor,halitosis,haberdashery,gypped,guy'll,gumbel,guerillas,guava,guardrail,grunther,grunick,groppi,groomer,grodin,gripes,grinds,grifters,gretch,greevey,greasing,graveyards,grandkid,grainy,gouging,gooney,googly,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,glues,gloriously,glengarry,glassware,glamor,gimmicks,giggly,giambetti,ghoulish,ghettos,ghali,gether,geriatrics,gerbils,geosynchronous,georgio,gente,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,gantu,gangy,gangly,gangland,galling,gadda,furrowed,funnies,funkytown,fugimotto,fudging,fuckeen,frustrates,froufrou,froot,fromberge,frizzies,fritters,frightfully,friendliest,freeloading,freelancing,freakazoid,fraternization,framers,fornication,fornicating,forethought,footstool,foisting,focussing,focking,flurries,fluffed,flintstones,fledermaus,flayed,flawlessly,flatters,flashbang,flapped,fishies,firmer,fireproof,firebug,fingerpainting,finessed,findin,financials,finality,fillets,fiercest,fiefdom,fibbing,fervor,fentanyl,fenelon,fedorchuk,feckless,feathering,faucets,farewells,fantasyland,fanaticism,faltered,faggy,faberge,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,excels,exasperating,exacting,everybody'd,evasions,espressos,esmail,errrr,erratically,eroding,ernswiler,epcot,enthralled,ensenada,enriching,enrage,enhancer,endear,encrusted,encino,empathic,embezzle,emanates,electricians,eking,egomaniacal,egging,effacing,ectoplasm,eavesdropped,dummkopf,dugray,duchaisne,drunkard,drudge,droop,droids,drips,dripped,dribbles,drazens,downy,downsize,downpour,dosages,doppelganger,dopes,doohicky,dontcha,doneghy,divining,divest,diuretics,diuretic,distrustful,disrupts,dismemberment,dismember,disinfect,disillusionment,disheartening,discourteous,discotheque,discolored,dirtiest,diphtheria,dinks,dimpled,didya,dickwad,diatribes,diathesis,diabetics,deviants,detonates,detests,detestable,detaining,despondent,desecration,derision,derailing,deputized,depressors,dependant,dentures,denominators,demur,demonology,delts,dellarte,delacour,deflated,defib,defaced,decorators,deaqon,davola,datin,darwinian,darklighters,dandelions,dampened,damaskinos,dalrimple,d'peshu,d'hoffryn,d'astier,cynics,cutesy,cutaway,curmudgeon,curdle,culpability,cuisinart,cuffing,crypts,cryptid,crunched,crumblers,crudely,crosscheck,croon,crissake,crevasse,creswood,creepo,creases,creased,creaky,cranks,crabgrass,coveralls,couple'a,coughs,coslaw,corporeal,cornucopia,cornering,corks,cordoned,coolly,coolin,cookbooks,contrite,contented,constrictor,confound,confit,confiscating,condoned,conditioners,concussions,comprendo,comers,combustible,combusted,collingswood,coldness,coitus,codicil,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleanses,claymores,clammed,chugging,chronically,christsakes,choque,chompers,chiseling,chirpy,chirp,chinks,chingachgook,chickenpox,chickadee,chewin,chessboard,chargin,chanteuse,chandeliers,chamdo,chagrined,chaff,certs,certainties,cerreno,cerebrum,censured,cemetary,caterwauling,cataclysmic,casitas,cased,carvel,carting,carrear,carolling,carolers,carnie,cardiogram,carbuncle,capulets,canines,candaules,canape,caldecott,calamitous,cadillacs,cachet,cabeza,cabdriver,buzzards,butai,businesswomen,bungled,bumpkins,bummers,bulldoze,buffybot,bubut,bubbies,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,briskly,briefcases,bricked,breezing,breeher,breakable,breadstick,bravenet,braved,brandies,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boutonniere,bossed,bosomy,borans,boosts,bookshelves,bookends,boneless,bombarding,bollo,boinked,boink,bluest,bluebells,bloodshot,blockhead,blockbusters,blithely,blather,blankly,bladders,blackbeard,bitte,bippy,biogenetics,bilge,bigglesworth,bicuspids,beususe,betaseron,besmirch,bernece,bereavement,bentonville,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,behrle,beginnin,begining,beenie,beefs,beechwood,becau,beaverhausen,beakers,bazillion,baudouin,barrytown,barringtons,barneys,barbs,barbers,barbatus,bankrupted,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,automatics,authenticate,aught,aubyn,attired,attagirl,atrophied,asystole,astroturf,assertiveness,artichokes,arquillians,aright,archenemy,appraise,appeased,antin,anspaugh,anesthetics,anaphylactic,amscray,ambivalence,amalio,alriiight,alphabetized,alpena,alouette,allora,alliteration,allenwood,allegiances,algerians,alcerro,alastor,ahaha,agitators,aforethought,advertises,admonition,adirondacks,adenoids,acupuncturist,acula,actuarial,activators,actionable,achingly,accusers,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","),
18245male_names:"james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,sammy,kristopher,levi,marcos,gustavo,jake,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,benedict,mose,hong,isreal,garret,fausto,arlen,zack,modesto,francesco,manual,gaylord,gaston,filiberto,deangelo,michale,granville,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,hosea,shad,santo,rudolf,rolf,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,elden,darell,broderick,alonso".split(",")},module.exports=frequency_lists;
18246
18247},{}],4:[function(require,module,exports){
18248var feedback,matching,scoring,time,time_estimates,zxcvbn;matching=require("./matching"),scoring=require("./scoring"),time_estimates=require("./time_estimates"),feedback=require("./feedback"),time=function(){return(new Date).getTime()},zxcvbn=function(e,t){var i,n,c,s,a,r,m,o,u,g,_;for(null==t&&(t=[]),g=time(),u=[],c=0,s=t.length;c<s;c++)i=t[c],"string"!=(m=typeof i)&&"number"!==m&&"boolean"!==m||u.push(i.toString().toLowerCase());matching.set_user_input_dictionary(u),a=matching.omnimatch(e),o=scoring.most_guessable_match_sequence(e,a),o.calc_time=time()-g,n=time_estimates.estimate_attack_times(o.guesses);for(r in n)_=n[r],o[r]=_;return o.feedback=feedback.get_feedback(o.score,o.sequence),o},module.exports=zxcvbn;
18249
18250},{"./feedback":2,"./matching":5,"./scoring":6,"./time_estimates":7}],5:[function(require,module,exports){
18251var DATE_MAX_YEAR,DATE_MIN_YEAR,DATE_SPLITS,GRAPHS,L33T_TABLE,RANKED_DICTIONARIES,REGEXEN,adjacency_graphs,build_ranked_dict,frequency_lists,lst,matching,name,scoring;frequency_lists=require("./frequency_lists"),adjacency_graphs=require("./adjacency_graphs"),scoring=require("./scoring"),build_ranked_dict=function(e){var t,n,r,i,a;for(i={},t=1,r=0,n=e.length;r<n;r++)a=e[r],i[a]=t,t+=1;return i},RANKED_DICTIONARIES={};for(name in frequency_lists)lst=frequency_lists[name],RANKED_DICTIONARIES[name]=build_ranked_dict(lst);GRAPHS={qwerty:adjacency_graphs.qwerty,dvorak:adjacency_graphs.dvorak,keypad:adjacency_graphs.keypad,mac_keypad:adjacency_graphs.mac_keypad},L33T_TABLE={a:["4","@"],b:["8"],c:["(","{","[","<"],e:["3"],g:["6","9"],i:["1","!","|"],l:["1","|","7"],o:["0"],s:["$","5"],t:["+","7"],x:["%"],z:["2"]},REGEXEN={recent_year:/19\d\d|200\d|201\d/g},DATE_MAX_YEAR=2050,DATE_MIN_YEAR=1e3,DATE_SPLITS={4:[[1,2],[2,3]],5:[[1,3],[2,3]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]},matching={empty:function(e){var t;return 0===function(){var n;n=[];for(t in e)n.push(t);return n}().length},extend:function(e,t){return e.push.apply(e,t)},translate:function(e,t){var n;return function(){var r,i,a,s;for(a=e.split(""),s=[],i=0,r=a.length;i<r;i++)n=a[i],s.push(t[n]||n);return s}().join("")},mod:function(e,t){return(e%t+t)%t},sorted:function(e){return e.sort(function(e,t){return e.i-t.i||e.j-t.j})},omnimatch:function(e){var t,n,r,i,a;for(i=[],r=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match],a=0,t=r.length;a<t;a++)n=r[a],this.extend(i,n.call(this,e));return this.sorted(i)},dictionary_match:function(e,t){var n,r,i,a,s,o,h,u,c,l,_,f,d,p;null==t&&(t=RANKED_DICTIONARIES),s=[],a=e.length,u=e.toLowerCase();for(n in t)for(l=t[n],r=o=0,_=a;0<=_?o<_:o>_;r=0<=_?++o:--o)for(i=h=f=r,d=a;f<=d?h<d:h>d;i=f<=d?++h:--h)u.slice(r,+i+1||9e9)in l&&(p=u.slice(r,+i+1||9e9),c=l[p],s.push({pattern:"dictionary",i:r,j:i,token:e.slice(r,+i+1||9e9),matched_word:p,rank:c,dictionary_name:n,reversed:!1,l33t:!1}));return this.sorted(s)},reverse_dictionary_match:function(e,t){var n,r,i,a,s,o;for(null==t&&(t=RANKED_DICTIONARIES),o=e.split("").reverse().join(""),i=this.dictionary_match(o,t),a=0,n=i.length;a<n;a++)r=i[a],r.token=r.token.split("").reverse().join(""),r.reversed=!0,s=[e.length-1-r.j,e.length-1-r.i],r.i=s[0],r.j=s[1];return this.sorted(i)},set_user_input_dictionary:function(e){return RANKED_DICTIONARIES.user_inputs=build_ranked_dict(e.slice())},relevant_l33t_subtable:function(e,t){var n,r,i,a,s,o,h,u,c,l;for(s={},o=e.split(""),a=0,r=o.length;a<r;a++)n=o[a],s[n]=!0;l={};for(i in t)c=t[i],h=function(){var e,t,n;for(n=[],t=0,e=c.length;t<e;t++)u=c[t],u in s&&n.push(u);return n}(),h.length>0&&(l[i]=h);return l},enumerate_l33t_subs:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;a=function(){var t;t=[];for(i in e)t.push(i);return t}(),p=[[]],n=function(e){var t,n,r,a,s,o,h,u;for(n=[],s={},o=0,a=e.length;o<a;o++)h=e[o],t=function(){var e,t,n;for(n=[],u=t=0,e=h.length;t<e;u=++t)i=h[u],n.push([i,u]);return n}(),t.sort(),r=function(){var e,n,r;for(r=[],u=n=0,e=t.length;n<e;u=++n)i=t[u],r.push(i+","+u);return r}().join("-"),r in s||(s[r]=!0,n.push(h));return n},r=function(t){var i,a,s,o,h,u,c,l,_,f,d,g,m,A,E,y;if(t.length){for(a=t[0],m=t.slice(1),c=[],d=e[a],l=0,h=d.length;l<h;l++)for(o=d[l],_=0,u=p.length;_<u;_++){for(A=p[_],i=-1,s=f=0,g=A.length;0<=g?f<g:f>g;s=0<=g?++f:--f)if(A[s][0]===o){i=s;break}i===-1?(y=A.concat([[o,a]]),c.push(y)):(E=A.slice(0),E.splice(i,1),E.push([o,a]),c.push(A),c.push(E))}return p=n(c),r(m)}},r(a),d=[];for(u=0,o=p.length;u<o;u++){for(_=p[u],f={},c=0,h=_.length;c<h;c++)l=_[c],s=l[0],t=l[1],f[s]=t;d.push(f)}return d},l33t_match:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A;for(null==t&&(t=RANKED_DICTIONARIES),null==n&&(n=L33T_TABLE),u=[],_=this.enumerate_l33t_subs(this.relevant_l33t_subtable(e,n)),c=0,a=_.length;c<a&&(d=_[c],!this.empty(d));c++)for(g=this.translate(e,d),f=this.dictionary_match(g,t),l=0,s=f.length;l<s;l++)if(o=f[l],m=e.slice(o.i,+o.j+1||9e9),m.toLowerCase()!==o.matched_word){h={};for(p in d)r=d[p],m.indexOf(p)!==-1&&(h[p]=r);o.l33t=!0,o.token=m,o.sub=h,o.sub_display=function(){var e;e=[];for(i in h)A=h[i],e.push(i+" -> "+A);return e}().join(", "),u.push(o)}return this.sorted(u.filter(function(e){return e.token.length>1}))},spatial_match:function(e,t){var n,r,i;null==t&&(t=GRAPHS),i=[];for(r in t)n=t[r],this.extend(i,this.spatial_match_helper(e,n,r));return this.sorted(i)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/,spatial_match_helper:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m;for(f=[],u=0;u<e.length-1;)for(c=u+1,l=null,m=0,g="qwerty"!==n&&"dvorak"!==n||!this.SHIFTED_RX.exec(e.charAt(u))?0:1;;){if(p=e.charAt(c-1),o=!1,h=-1,s=-1,i=t[p]||[],c<e.length)for(a=e.charAt(c),d=0,_=i.length;d<_;d++)if(r=i[d],s+=1,r&&r.indexOf(a)!==-1){o=!0,h=s,1===r.indexOf(a)&&(g+=1),l!==h&&(m+=1,l=h);break}if(!o){c-u>2&&f.push({pattern:"spatial",i:u,j:c-1,token:e.slice(u,c),graph:n,turns:m,shifted_count:g}),u=c;break}c+=1}return f},repeat_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;for(d=[],a=/(.+)\1+/g,c=/(.+?)\1+/g,l=/^(.+?)\1+$/,u=0;u<e.length&&(a.lastIndex=c.lastIndex=u,s=a.exec(e),_=c.exec(e),null!=s);)s[0].length>_[0].length?(f=s,i=l.exec(f[0])[1]):(f=_,i=f[1]),p=[f.index,f.index+f[0].length-1],o=p[0],h=p[1],t=scoring.most_guessable_match_sequence(i,this.omnimatch(i)),r=t.sequence,n=t.guesses,d.push({pattern:"repeat",i:o,j:h,token:f[0],base_token:i,base_guesses:n,base_matches:r,repeat_count:f[0].length/i.length}),u=h+1;return d},MAX_DELTA:5,sequence_match:function(e){var t,n,r,i,a,s,o,h,u;if(1===e.length)return[];for(u=function(t){return function(n,r,i){var a,s,o,u;if((r-n>1||1===Math.abs(i))&&0<(a=Math.abs(i))&&a<=t.MAX_DELTA)return u=e.slice(n,+r+1||9e9),/^[a-z]+$/.test(u)?(s="lower",o=26):/^[A-Z]+$/.test(u)?(s="upper",o=26):/^\d+$/.test(u)?(s="digits",o=10):(s="unicode",o=26),h.push({pattern:"sequence",i:n,j:r,token:e.slice(n,+r+1||9e9),sequence_name:s,sequence_space:o,ascending:i>0})}}(this),h=[],n=0,a=null,i=s=1,o=e.length;1<=o?s<o:s>o;i=1<=o?++s:--s)t=e.charCodeAt(i)-e.charCodeAt(i-1),null==a&&(a=t),t!==a&&(r=i-1,u(n,r,a),n=r,a=t);return u(n,e.length-1,a),h},regex_match:function(e,t){var n,r,i,a;null==t&&(t=REGEXEN),n=[];for(name in t)for(r=t[name],r.lastIndex=0;i=r.exec(e);)a=i[0],n.push({pattern:"regex",token:a,i:i.index,j:i.index+i[0].length-1,regex_name:name,regex_match:i});return this.sorted(n)},date_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A,E,y,v,I,R,T,D,k,x,j,b,N,S,q,L,M;for(_=[],f=/^\d{4,8}$/,d=/^(\d{1,4})([\s\/\\_.-])(\d{1,2})\2(\d{1,4})$/,s=m=0,v=e.length-4;0<=v?m<=v:m>=v;s=0<=v?++m:--m)for(o=A=I=s+3,R=s+7;(I<=R?A<=R:A>=R)&&!(o>=e.length);o=I<=R?++A:--A)if(M=e.slice(s,+o+1||9e9),f.exec(M)){for(r=[],T=DATE_SPLITS[M.length],E=0,c=T.length;E<c;E++)D=T[E],h=D[0],u=D[1],a=this.map_ints_to_dmy([parseInt(M.slice(0,h)),parseInt(M.slice(h,u)),parseInt(M.slice(u))]),null!=a&&r.push(a);if(r.length>0){for(t=r[0],p=function(e){return Math.abs(e.year-scoring.REFERENCE_YEAR)},g=p(r[0]),k=r.slice(1),y=0,l=k.length;y<l;y++)n=k[y],i=p(n),i<g&&(x=[n,i],t=x[0],g=x[1]);_.push({pattern:"date",token:M,i:s,j:o,separator:"",year:t.year,month:t.month,day:t.day})}}for(s=q=0,j=e.length-6;0<=j?q<=j:q>=j;s=0<=j?++q:--q)for(o=L=b=s+5,N=s+9;(b<=N?L<=N:L>=N)&&!(o>=e.length);o=b<=N?++L:--L)M=e.slice(s,+o+1||9e9),S=d.exec(M),null!=S&&(a=this.map_ints_to_dmy([parseInt(S[1]),parseInt(S[3]),parseInt(S[4])]),null!=a&&_.push({pattern:"date",token:M,i:s,j:o,separator:S[2],year:a.year,month:a.month,day:a.day}));return this.sorted(_.filter(function(e){var t,n,r,i;for(t=!1,i=0,n=_.length;i<n;i++)if(r=_[i],e!==r&&r.i<=e.i&&r.j>=e.j){t=!0;break}return!t}))},map_ints_to_dmy:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g;if(!(e[1]>31||e[1]<=0)){for(o=0,h=0,p=0,s=0,r=e.length;s<r;s++){if(n=e[s],99<n&&n<DATE_MIN_YEAR||n>DATE_MAX_YEAR)return;n>31&&(h+=1),n>12&&(o+=1),n<=0&&(p+=1)}if(!(h>=2||3===o||p>=2)){for(c=[[e[2],e.slice(0,2)],[e[0],e.slice(1,3)]],u=0,i=c.length;u<i;u++)if(_=c[u],g=_[0],d=_[1],DATE_MIN_YEAR<=g&&g<=DATE_MAX_YEAR)return t=this.map_ints_to_dm(d),null!=t?{year:g,month:t.month,day:t.day}:void 0;for(l=0,a=c.length;l<a;l++)if(f=c[l],g=f[0],d=f[1],t=this.map_ints_to_dm(d),null!=t)return g=this.two_to_four_digit_year(g),{year:g,month:t.month,day:t.day}}}},map_ints_to_dm:function(e){var t,n,r,i,a,s;for(a=[e,e.slice().reverse()],i=0,n=a.length;i<n;i++)if(s=a[i],t=s[0],r=s[1],1<=t&&t<=31&&1<=r&&r<=12)return{day:t,month:r}},two_to_four_digit_year:function(e){return e>99?e:e>50?e+1900:e+2e3}},module.exports=matching;
18252
18253},{"./adjacency_graphs":1,"./frequency_lists":3,"./scoring":6}],6:[function(require,module,exports){
18254var BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs,calc_average_degree,k,scoring,v;adjacency_graphs=require("./adjacency_graphs"),calc_average_degree=function(e){var t,r,n,s,a,u;t=0;for(n in e)a=e[n],t+=function(){var e,t,r;for(r=[],t=0,e=a.length;t<e;t++)s=a[t],s&&r.push(s);return r}().length;return t/=function(){var t;t=[];for(r in e)u=e[r],t.push(r);return t}().length},BRUTEFORCE_CARDINALITY=10,MIN_GUESSES_BEFORE_GROWING_SEQUENCE=1e4,MIN_SUBMATCH_GUESSES_SINGLE_CHAR=10,MIN_SUBMATCH_GUESSES_MULTI_CHAR=50,scoring={nCk:function(e,t){var r,n,s,a;if(t>e)return 0;if(0===t)return 1;for(s=1,r=n=1,a=t;1<=a?n<=a:n>=a;r=1<=a?++n:--n)s*=e,s/=r,e-=1;return s},log10:function(e){return Math.log(e)/Math.log(10)},log2:function(e){return Math.log(e)/Math.log(2)},factorial:function(e){var t,r,n,s;if(e<2)return 1;for(t=1,r=n=2,s=e;2<=s?n<=s:n>=s;r=2<=s?++n:--n)t*=r;return t},most_guessable_match_sequence:function(e,t,r){var n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S,R,v,I,M,N,C,U,T;for(null==r&&(r=!1),l=e.length,f=function(){var e,t,r;for(r=[],n=e=0,t=l;0<=t?e<t:e>t;n=0<=t?++e:--e)r.push([]);return r}(),p=0,_=t.length;p<_;p++)c=t[p],f[c.j].push(c);for(v=0,o=f.length;v<o;v++)E=f[v],E.sort(function(e,t){return e.i-t.i});for(A={m:function(){var e,t,r;for(t=[],n=r=0,e=l;0<=e?r<e:r>e;n=0<=e?++r:--r)t.push({});return t}(),pi:function(){var e,t,r;for(t=[],n=r=0,e=l;0<=e?r<e:r>e;n=0<=e?++r:--r)t.push({});return t}(),g:function(){var e,t,r;for(t=[],n=r=0,e=l;0<=e?r<e:r>e;n=0<=e?++r:--r)t.push({});return t}()},U=function(t){return function(n,s){var a,u,i,_,o,h;_=n.j,o=t.estimate_guesses(n,e),s>1&&(o*=A.pi[n.i-1][s-1]),i=t.factorial(s)*o,r||(i+=Math.pow(MIN_GUESSES_BEFORE_GROWING_SEQUENCE,s-1)),h=A.g[_];for(u in h)if(a=h[u],!(u>s)&&a<=i)return;return A.g[_][s]=i,A.m[_][s]=n,A.pi[_][s]=o}}(this),s=function(e){return function(e){var t,r,n,s,a,u;for(c=g(0,e),U(c,1),a=[],t=u=1,s=e;1<=s?u<=s:u>=s;t=1<=s?++u:--u)c=g(t,e),a.push(function(){var e,s;e=A.m[t-1],s=[];for(r in e)n=e[r],r=parseInt(r),"bruteforce"!==n.pattern&&s.push(U(c,r+1));return s}());return a}}(this),g=function(t){return function(t,r){return{pattern:"bruteforce",token:e.slice(t,+r+1||9e9),i:t,j:r}}}(this),C=function(e){return function(e){var t,r,n,s,a,u,i;u=[],s=e-1,a=void 0,n=1/0,i=A.g[s];for(r in i)t=i[r],t<n&&(a=r,n=t);for(;s>=0;)c=A.m[s][a],u.unshift(c),s=c.i-1,a--;return u}}(this),u=N=0,I=l;0<=I?N<I:N>I;u=0<=I?++N:--N){for(M=f[u],T=0,h=M.length;T<h;T++)if(c=M[T],c.i>0)for(i in A.m[c.i-1])i=parseInt(i),U(c,i+1);else U(c,1);s(u)}return R=C(l),S=R.length,a=0===e.length?1:A.g[l-1][S],{password:e,guesses:a,guesses_log10:this.log10(a),sequence:R}},estimate_guesses:function(e,t){var r,n,s;return null!=e.guesses?e.guesses:(s=1,e.token.length<t.length&&(s=1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR:MIN_SUBMATCH_GUESSES_MULTI_CHAR),r={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses},n=r[e.pattern].call(this,e),e.guesses=Math.max(n,s),e.guesses_log10=this.log10(e.guesses),e.guesses)},bruteforce_guesses:function(e){var t,r;return t=Math.pow(BRUTEFORCE_CARDINALITY,e.token.length),r=1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR+1:MIN_SUBMATCH_GUESSES_MULTI_CHAR+1,Math.max(t,r)},repeat_guesses:function(e){return e.base_guesses*e.repeat_count},sequence_guesses:function(e){var t,r;return r=e.token.charAt(0),t="a"===r||"A"===r||"z"===r||"Z"===r||"0"===r||"1"===r||"9"===r?4:r.match(/\d/)?10:26,e.ascending||(t*=2),t*e.token.length},MIN_YEAR_SPACE:20,REFERENCE_YEAR:2016,regex_guesses:function(e){var t,r;if(t={alpha_lower:26,alpha_upper:26,alpha:52,alphanumeric:62,digits:10,symbols:33},e.regex_name in t)return Math.pow(t[e.regex_name],e.token.length);switch(e.regex_name){case"recent_year":return r=Math.abs(parseInt(e.regex_match[0])-this.REFERENCE_YEAR),r=Math.max(r,this.MIN_YEAR_SPACE)}},date_guesses:function(e){var t,r;return r=Math.max(Math.abs(e.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t=365*r,e.separator&&(t*=4),t},KEYBOARD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.qwerty),KEYPAD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.keypad),KEYBOARD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.qwerty,t=[];for(k in e)v=e[k],t.push(k);return t}().length,KEYPAD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.keypad,t=[];for(k in e)v=e[k],t.push(k);return t}().length,spatial_guesses:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S;for("qwerty"===(E=e.graph)||"dvorak"===E?(l=this.KEYBOARD_STARTING_POSITIONS,s=this.KEYBOARD_AVERAGE_DEGREE):(l=this.KEYPAD_STARTING_POSITIONS,s=this.KEYPAD_AVERAGE_DEGREE),a=0,t=e.token.length,A=e.turns,u=_=2,c=t;2<=c?_<=c:_>=c;u=2<=c?++_:--_)for(o=Math.min(A,u-1),i=h=1,g=o;1<=g?h<=g:h>=g;i=1<=g?++h:--h)a+=this.nCk(u-1,i-1)*l*Math.pow(s,i);if(e.shifted_count)if(r=e.shifted_count,n=e.token.length-e.shifted_count,0===r||0===n)a*=2;else{for(p=0,u=S=1,f=Math.min(r,n);1<=f?S<=f:S>=f;u=1<=f?++S:--S)p+=this.nCk(r+n,u);a*=p}return a},dictionary_guesses:function(e){var t;return e.base_guesses=e.rank,e.uppercase_variations=this.uppercase_variations(e),e.l33t_variations=this.l33t_variations(e),t=e.reversed&&2||1,e.base_guesses*e.uppercase_variations*e.l33t_variations*t},START_UPPER:/^[A-Z][^A-Z]+$/,END_UPPER:/^[^A-Z]+[A-Z]$/,ALL_UPPER:/^[^a-z]+$/,ALL_LOWER:/^[^A-Z]+$/,uppercase_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c;if(c=e.token,c.match(this.ALL_LOWER)||c.toLowerCase()===c)return 1;for(_=[this.START_UPPER,this.END_UPPER,this.ALL_UPPER],u=0,a=_.length;u<a;u++)if(h=_[u],c.match(h))return 2;for(r=function(){var e,t,r,s;for(r=c.split(""),s=[],t=0,e=r.length;t<e;t++)n=r[t],n.match(/[A-Z]/)&&s.push(n);return s}().length,t=function(){var e,t,r,s;for(r=c.split(""),s=[],t=0,e=r.length;t<e;t++)n=r[t],n.match(/[a-z]/)&&s.push(n);return s}().length,E=0,s=i=1,o=Math.min(r,t);1<=o?i<=o:i>=o;s=1<=o?++i:--i)E+=this.nCk(r+t,s);return E},l33t_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g;if(!e.l33t)return 1;g=1,o=e.sub;for(E in o)if(c=o[E],s=e.token.toLowerCase().split(""),t=function(){var e,t,r;for(r=[],t=0,e=s.length;t<e;t++)n=s[t],n===E&&r.push(n);return r}().length,r=function(){var e,t,r;for(r=[],t=0,e=s.length;t<e;t++)n=s[t],n===c&&r.push(n);return r}().length,0===t||0===r)g*=2;else{for(i=Math.min(r,t),_=0,a=u=1,h=i;1<=h?u<=h:u>=h;a=1<=h?++u:--u)_+=this.nCk(r+t,a);g*=_}return g}},module.exports=scoring;
18255
18256},{"./adjacency_graphs":1}],7:[function(require,module,exports){
18257var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o;n={online_throttling_100_per_hour:e/(100/3600),online_no_throttling_10_per_second:e/10,offline_slow_hashing_1e4_per_second:e/1e4,offline_fast_hashing_1e10_per_second:e/1e10},t={};for(s in n)o=n[s],t[s]=this.display_time(o);return{crack_times_seconds:n,crack_times_display:t,score:this.guesses_to_score(e)}},guesses_to_score:function(e){var t;return t=5,e<1e3+t?0:e<1e6+t?1:e<1e8+t?2:e<1e10+t?3:4},display_time:function(e){var t,n,s,o,_,r,i,a,u,c;return i=60,r=60*i,s=24*r,a=31*s,c=12*a,n=100*c,u=e<1?[null,"less than a second"]:e<i?(t=Math.round(e),[t,t+" second"]):e<r?(t=Math.round(e/i),[t,t+" minute"]):e<s?(t=Math.round(e/r),[t,t+" hour"]):e<a?(t=Math.round(e/s),[t,t+" day"]):e<c?(t=Math.round(e/a),[t,t+" month"]):e<n?(t=Math.round(e/c),[t,t+" year"]):[null,"centuries"],o=u[0],_=u[1],null!=o&&1!==o&&(_+="s"),_}},module.exports=time_estimates;
18258
18259},{}]},{},[4])(4)
18260});
18261//# sourceMappingURL=zxcvbn.js.map
18262</script>
18263 <script>/*
18264 * Detects entropy from a string.
18265 *
18266 * Formats include:
18267 * binary [0-1]
18268 * base 6 [0-5]
18269 * dice 6 [1-6]
18270 * decimal [0-9]
18271 * hexadecimal [0-9A-F]
9e97eb76 18272 * card [A2-9TJQK][CDHS]
95f04905
IC
18273 *
18274 * Automatically uses lowest entropy to avoid issues such as interpretting 0101
18275 * as hexadecimal which would be 16 bits when really it's only 4 bits of binary
18276 * entropy.
18277 */
18278
18279window.Entropy = new (function() {
18280
78b8d604
IC
18281 var TWO = new BigInteger(2);
18282
95f04905
IC
18283 // matchers returns an array of the matched events for each type of entropy.
18284 // eg
18285 // matchers.binary("010") returns ["0", "1", "0"]
18286 // matchers.binary("a10") returns ["1", "0"]
18287 // matchers.hex("a10") returns ["a", "1", "0"]
18288 var matchers = {
18289 binary: function(str) {
18290 return str.match(/[0-1]/gi) || [];
18291 },
18292 base6: function(str) {
18293 return str.match(/[0-5]/gi) || [];
18294 },
18295 dice: function(str) {
18296 return str.match(/[1-6]/gi) || []; // ie dice numbers
18297 },
18298 base10: function(str) {
18299 return str.match(/[0-9]/gi) || [];
18300 },
18301 hex: function(str) {
18302 return str.match(/[0-9A-F]/gi) || [];
18303 },
18304 card: function(str) {
18305 // Format is NumberSuit, eg
18306 // AH ace of hearts
18307 // 8C eight of clubs
18308 // TD ten of diamonds
18309 // JS jack of spades
18310 // QH queen of hearts
18311 // KC king of clubs
18312 return str.match(/([A2-9TJQK][CDHS])/gi) || [];
18313 }
18314 }
18315
18316 // Convert array of cards from ["ac", "4d", "ks"]
18317 // to numbers between 0 and 51 [0, 16, 51]
18318 function convertCardsToInts(cards) {
18319 var ints = [];
18320 var values = "a23456789tjqk";
18321 var suits = "cdhs";
18322 for (var i=0; i<cards.length; i++) {
18323 var card = cards[i].toLowerCase();
18324 var value = card[0];
18325 var suit = card[1];
18326 var asInt = 13 * suits.indexOf(suit) + values.indexOf(value);
18327 ints.push(asInt);
18328 }
18329 return ints;
18330 }
18331
18332 this.fromString = function(rawEntropyStr) {
18333 // Find type of entropy being used (binary, hex, dice etc)
18334 var base = getBase(rawEntropyStr);
18335 // Convert dice to base6 entropy (ie 1-6 to 0-5)
18336 // This is done by changing all 6s to 0s
18337 if (base.str == "dice") {
18338 var newParts = [];
18339 var newInts = [];
18340 for (var i=0; i<base.parts.length; i++) {
18341 var c = base.parts[i];
18342 if ("12345".indexOf(c) > -1) {
18343 newParts[i] = base.parts[i];
18344 newInts[i] = base.ints[i];
18345 }
18346 else {
18347 newParts[i] = "0";
18348 newInts[i] = 0;
18349 }
18350 }
18351 base.str = "base 6 (dice)";
18352 base.ints = newInts;
18353 base.parts = newParts;
18354 base.matcher = matchers.base6;
18355 }
18356 // Detect empty entropy
18357 if (base.parts.length == 0) {
18358 return {
18359 binaryStr: "",
18360 cleanStr: "",
18361 cleanHtml: "",
18362 base: base,
18363 };
18364 }
18365 // Convert base.ints to BigInteger.
18366 // Due to using unusual bases, eg cards of base52, this is not as simple as
18367 // using BigInteger.parse()
18368 var entropyInt = BigInteger.ZERO;
18369 for (var i=base.ints.length-1; i>=0; i--) {
18370 var thisInt = BigInteger.parse(base.ints[i]);
18371 var power = (base.ints.length - 1) - i;
18372 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
18373 entropyInt = entropyInt.add(additionalEntropy);
18374 }
18375 // Convert entropy to binary
18376 var entropyBin = entropyInt.toString(2);
18377 // If the first integer is small, it must be padded with zeros.
18378 // Otherwise the chance of the first bit being 1 is 100%, which is
18379 // obviously incorrect.
18380 // This is not perfect for non-2^n bases.
18381 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
18382 while (entropyBin.length < expectedBits) {
18383 entropyBin = "0" + entropyBin;
18384 }
94959756
IC
18385 // Calculate the number of bits per event
18386 var bitsPerEvent = Math.log2(base.asInt);
ea87f1d3 18387 // Cards binary must be handled differently, since they're not replaced
9e97eb76 18388 if (base.asInt == 52) {
94959756
IC
18389 var cardEntropy = processCardEntropy(base.parts);
18390 entropyBin = cardEntropy.binaryStr;
18391 bitsPerEvent = cardEntropy.bitsPerEvent;
9e97eb76 18392 }
95f04905
IC
18393 // Supply a 'filtered' entropy string for display purposes
18394 var entropyClean = base.parts.join("");
18395 var entropyHtml = base.parts.join("");
18396 if (base.asInt == 52) {
18397 entropyClean = base.parts.join(" ").toUpperCase();
18398 entropyClean = entropyClean.replace(/C/g, "\u2663");
18399 entropyClean = entropyClean.replace(/D/g, "\u2666");
18400 entropyClean = entropyClean.replace(/H/g, "\u2665");
18401 entropyClean = entropyClean.replace(/S/g, "\u2660");
18402 entropyHtml = base.parts.join(" ").toUpperCase();
18403 entropyHtml = entropyHtml.replace(/C/g, "<span class='card-suit club'>\u2663</span>");
18404 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'>\u2666</span>");
18405 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'>\u2665</span>");
18406 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'>\u2660</span>");
18407 }
9e97eb76 18408 // Return the result
95f04905
IC
18409 var e = {
18410 binaryStr: entropyBin,
18411 cleanStr: entropyClean,
18412 cleanHtml: entropyHtml,
94959756 18413 bitsPerEvent: bitsPerEvent,
95f04905
IC
18414 base: base,
18415 }
18416 return e;
18417 }
18418
78b8d604
IC
18419 function getSortedDeck() {
18420 var s = [];
18421 var suits = "CDHS";
18422 var values = "A23456789TJQK";
18423 for (var i=0; i<suits.length; i++) {
18424 for (var j=0; j<values.length; j++) {
18425 s.push(values[j]+suits[i]);
18426 }
18427 }
18428 return s;
18429 }
18430
95f04905
IC
18431 function getBase(str) {
18432 // Need to get the lowest base for the supplied entropy.
18433 // This prevents interpreting, say, dice rolls as hexadecimal.
18434 var binaryMatches = matchers.binary(str);
18435 var hexMatches = matchers.hex(str);
18436 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
18437 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
18438 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
18439 return {
18440 ints: ints,
18441 parts: binaryMatches,
18442 matcher: matchers.binary,
18443 asInt: 2,
18444 str: "binary",
18445 }
18446 }
18447 var cardMatches = matchers.card(str);
18448 if (cardMatches.length >= hexMatches.length / 2) {
18449 var ints = convertCardsToInts(cardMatches);
18450 return {
18451 ints: ints,
18452 parts: cardMatches,
18453 matcher: matchers.card,
18454 asInt: 52,
18455 str: "card",
18456 }
18457 }
18458 var diceMatches = matchers.dice(str);
18459 if (diceMatches.length == hexMatches.length && hexMatches.length > 0) {
18460 var ints = diceMatches.map(function(i) { return parseInt(i) });
18461 return {
18462 ints: ints,
18463 parts: diceMatches,
18464 matcher: matchers.dice,
18465 asInt: 6,
18466 str: "dice",
18467 }
18468 }
18469 var base6Matches = matchers.base6(str);
18470 if (base6Matches.length == hexMatches.length && hexMatches.length > 0) {
18471 var ints = base6Matches.map(function(i) { return parseInt(i) });
18472 return {
18473 ints: ints,
18474 parts: base6Matches,
18475 matcher: matchers.base6,
18476 asInt: 6,
18477 str: "base 6",
18478 }
18479 }
18480 var base10Matches = matchers.base10(str);
18481 if (base10Matches.length == hexMatches.length && hexMatches.length > 0) {
18482 var ints = base10Matches.map(function(i) { return parseInt(i) });
18483 return {
18484 ints: ints,
18485 parts: base10Matches,
18486 matcher: matchers.base10,
18487 asInt: 10,
18488 str: "base 10",
18489 }
18490 }
18491 var ints = hexMatches.map(function(i) { return parseInt(i, 16) });
18492 return {
18493 ints: ints,
18494 parts: hexMatches,
18495 matcher: matchers.hex,
18496 asInt: 16,
18497 str: "hexadecimal",
18498 }
18499 }
18500
ea87f1d3
IC
18501 // Assume cards are NOT replaced.
18502 // Additional entropy decreases as more cards are used. This means
18503 // total possible entropy is measured using n!, not base^n.
18504 // eg the second last card can be only one of two, not one of fifty two
18505 // so the added entropy for that card is only one bit at most
94959756 18506 function processCardEntropy(cards) {
ea87f1d3
IC
18507 // Track how many instances of each card have been used, and thus
18508 // how many decks are in use.
18509 var cardCounts = {};
18510 var numberOfDecks = 0;
18511 // Work out number of decks by max(duplicates)
18512 for (var i=0; i<cards.length; i++) {
18513 // Get the card that was drawn
18514 var cardLower = cards[i];
18515 var card = cardLower.toUpperCase();
18516 // Initialize the count for this card if needed
18517 if (!(card in cardCounts)) {
18518 cardCounts[card] = 0;
18519 }
18520 cardCounts[card] += 1;
18521 // See if this is max(duplicates)
18522 if (cardCounts[card] > numberOfDecks) {
18523 numberOfDecks = cardCounts[card];
18524 }
18525 }
18526 // Work out the total number of bits for this many decks
18527 // See http://crypto.stackexchange.com/q/41886
fc7c248f
IC
18528 var gainedBits = 0;
18529 // Equivalent of Math.log2(factorial(52*numberOfDecks))
18530 // which becomes infinity for numberOfDecks > 4
18531 for (var i=1; i<=52*numberOfDecks; i++) {
18532 gainedBits = gainedBits + Math.log2(i);
18533 }
ea87f1d3
IC
18534 var lostBits = 52 * Math.log2(factorial(numberOfDecks));
18535 var maxBits = gainedBits - lostBits;
18536 // Convert the drawn cards to a binary representation.
18537 // The exact technique for doing this is unclear.
18538 // See
18539 // http://crypto.stackexchange.com/a/41896
18540 // "I even doubt that this is well defined (only the average entropy
18541 // is, I believe)."
18542 // See
18543 // https://github.com/iancoleman/bip39/issues/33#issuecomment-263021856
18544 // "The binary representation can be the first log(permutations,2) bits
18545 // of the sha-2 hash of the normalized deck string."
18546 //
18547 // In this specific implementation, the first N bits of the hash of the
18548 // normalized cards string is being used. Uppercase, no spaces; eg
18549 // sha256("AH8DQSTC2H")
18550 var totalCards = numberOfDecks * 52;
18551 var percentUsed = cards.length / totalCards;
18552 // Calculate the average number of bits of entropy for the number of
18553 // cards drawn.
18554 var numberOfBits = Math.floor(maxBits * percentUsed);
18555 // Create a normalized string of the selected cards
18556 var normalizedCards = cards.join("").toUpperCase();
18557 // Convert to binary using the SHA256 hash of the normalized cards.
18558 // If the number of bits is more than 256, multiple rounds of hashing
18559 // are used until the required number of bits is reached.
18560 var entropyBin = "";
18561 var iterations = 0;
18562 while (entropyBin.length < numberOfBits) {
18563 var hashedCards = sjcl.hash.sha256.hash(normalizedCards);
18564 for (var j=0; j<iterations; j++) {
18565 hashedCards = sjcl.hash.sha256.hash(hashedCards);
18566 }
18567 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
18568 for (var i=0; i<hashHex.length; i++) {
18569 var decimal = parseInt(hashHex[i], 16);
18570 var binary = decimal.toString(2);
18571 while (binary.length < 4) {
18572 binary = "0" + binary;
18573 }
18574 entropyBin = entropyBin + binary;
18575 }
18576 iterations = iterations + 1;
18577 }
18578 // Truncate to the appropriate number of bits.
18579 entropyBin = entropyBin.substring(0, numberOfBits);
94959756
IC
18580 // Get the number of bits per event
18581 bitsPerEvent = maxBits / totalCards;
18582 return {
18583 binaryStr: entropyBin,
18584 bitsPerEvent: bitsPerEvent,
18585 }
ea87f1d3
IC
18586 }
18587
95f04905
IC
18588 // Polyfill for Math.log2
18589 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
18590 Math.log2 = Math.log2 || function(x) {
18591 // The polyfill isn't good enough because of the poor accuracy of
18592 // Math.LOG2E
18593 // log2(8) gave 2.9999999999999996 which when floored causes issues.
18594 // So instead use the BigInteger library to get it right.
18595 return BigInteger.log(x) / BigInteger.log(2);
18596 };
18597
9e97eb76
IC
18598 // Depends on BigInteger
18599 function factorial(n) {
18600 if (n == 0) {
18601 return 1;
18602 }
18603 f = BigInteger.ONE;
18604 for (var i=1; i<=n; i++) {
18605 f = f.multiply(new BigInteger(i));
18606 }
18607 return f;
18608 }
18609
95f04905 18610})();
c6624d51
IC
18611</script>
18612 <script>(function() {
18613
18614 // mnemonics is populated as required by getLanguage
18615 var mnemonics = { "english": new Mnemonic("english") };
18616 var mnemonic = mnemonics["english"];
18617 var seed = null
18618 var bip32RootKey = null;
18619 var bip32ExtendedKey = null;
18620 var network = bitcoin.networks.bitcoin;
18621 var addressRowTemplate = $("#address-row-template");
18622
18623 var showIndex = true;
18624 var showAddress = true;
18625 var showPubKey = true;
18626 var showPrivKey = true;
e00964cc 18627 var showQr = true;
c6624d51
IC
18628
18629 var entropyChangeTimeoutEvent = null;
18630 var phraseChangeTimeoutEvent = null;
18631 var rootKeyChangedTimeoutEvent = null;
18632
18633 var DOM = {};
18634 DOM.network = $(".network");
18635 DOM.phraseNetwork = $("#network-phrase");
18636 DOM.useEntropy = $(".use-entropy");
18637 DOM.entropyContainer = $(".entropy-container");
18638 DOM.entropy = $(".entropy");
2a6dd137
IC
18639 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
18640 DOM.entropyType = DOM.entropyContainer.find(".type");
18641 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
18642 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
18643 DOM.entropyBits = DOM.entropyContainer.find(".bits");
18644 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
18645 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
18646 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
18647 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
c6624d51
IC
18648 DOM.phrase = $(".phrase");
18649 DOM.passphrase = $(".passphrase");
18650 DOM.generateContainer = $(".generate-container");
18651 DOM.generate = $(".generate");
18652 DOM.seed = $(".seed");
18653 DOM.rootKey = $(".root-key");
18654 DOM.extendedPrivKey = $(".extended-priv-key");
18655 DOM.extendedPubKey = $(".extended-pub-key");
18656 DOM.bip32tab = $("#bip32-tab");
18657 DOM.bip44tab = $("#bip44-tab");
18658 DOM.bip32panel = $("#bip32");
18659 DOM.bip44panel = $("#bip44");
18660 DOM.bip32path = $("#bip32-path");
18661 DOM.bip44path = $("#bip44-path");
18662 DOM.bip44purpose = $("#bip44 .purpose");
18663 DOM.bip44coin = $("#bip44 .coin");
18664 DOM.bip44account = $("#bip44 .account");
20083ab9
IC
18665 DOM.bip44accountXprv = $("#bip44 .account-xprv");
18666 DOM.bip44accountXpub = $("#bip44 .account-xpub");
c6624d51 18667 DOM.bip44change = $("#bip44 .change");
18abe53b 18668 DOM.generatedStrength = $(".generate-container .strength");
c6624d51
IC
18669 DOM.hardenedAddresses = $(".hardened-addresses");
18670 DOM.addresses = $(".addresses");
18671 DOM.rowsToAdd = $(".rows-to-add");
18672 DOM.more = $(".more");
18673 DOM.feedback = $(".feedback");
18674 DOM.tab = $(".derivation-type a");
18675 DOM.indexToggle = $(".index-toggle");
18676 DOM.addressToggle = $(".address-toggle");
18677 DOM.publicKeyToggle = $(".public-key-toggle");
18678 DOM.privateKeyToggle = $(".private-key-toggle");
18679 DOM.languages = $(".languages a");
e00964cc
IC
18680 DOM.qrContainer = $(".qr-container");
18681 DOM.qrImage = DOM.qrContainer.find(".qr-image");
18682 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
18683 DOM.showQrEls = $("[data-show-qr]");
c6624d51
IC
18684
18685 function init() {
18686 // Events
18687 DOM.network.on("change", networkChanged);
18688 DOM.useEntropy.on("change", setEntropyVisibility);
18689 DOM.entropy.on("input", delayedEntropyChanged);
18abe53b 18690 DOM.entropyMnemonicLength.on("change", entropyChanged);
c6624d51
IC
18691 DOM.phrase.on("input", delayedPhraseChanged);
18692 DOM.passphrase.on("input", delayedPhraseChanged);
18693 DOM.generate.on("click", generateClicked);
18694 DOM.more.on("click", showMore);
18695 DOM.rootKey.on("input", delayedRootKeyChanged);
18696 DOM.bip32path.on("input", calcForDerivationPath);
18697 DOM.bip44purpose.on("input", calcForDerivationPath);
18698 DOM.bip44coin.on("input", calcForDerivationPath);
18699 DOM.bip44account.on("input", calcForDerivationPath);
18700 DOM.bip44change.on("input", calcForDerivationPath);
18701 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
18702 DOM.hardenedAddresses.on("change", calcForDerivationPath);
18703 DOM.indexToggle.on("click", toggleIndexes);
18704 DOM.addressToggle.on("click", toggleAddresses);
18705 DOM.publicKeyToggle.on("click", togglePublicKeys);
18706 DOM.privateKeyToggle.on("click", togglePrivateKeys);
18707 DOM.languages.on("click", languageChanged);
e00964cc 18708 setQrEvents(DOM.showQrEls);
c6624d51
IC
18709 disableForms();
18710 hidePending();
18711 hideValidationError();
18712 populateNetworkSelect();
18713 }
18714
18715 // Event handlers
18716
18717 function networkChanged(e) {
18718 var networkIndex = e.target.value;
18719 networks[networkIndex].onSelect();
18720 if (seed != null) {
18721 phraseChanged();
18722 }
18723 else {
18724 rootKeyChanged();
18725 }
18726 }
18727
18728 function setEntropyVisibility() {
18729 if (isUsingOwnEntropy()) {
18730 DOM.entropyContainer.removeClass("hidden");
18731 DOM.generateContainer.addClass("hidden");
18732 DOM.phrase.prop("readonly", true);
18733 DOM.entropy.focus();
18734 entropyChanged();
18735 }
18736 else {
18737 DOM.entropyContainer.addClass("hidden");
18738 DOM.generateContainer.removeClass("hidden");
18739 DOM.phrase.prop("readonly", false);
18abe53b 18740 hidePending();
c6624d51
IC
18741 }
18742 }
18743
18744 function delayedPhraseChanged() {
18745 hideValidationError();
18746 showPending();
18747 if (phraseChangeTimeoutEvent != null) {
18748 clearTimeout(phraseChangeTimeoutEvent);
18749 }
18750 phraseChangeTimeoutEvent = setTimeout(phraseChanged, 400);
18751 }
18752
18753 function phraseChanged() {
18754 showPending();
18755 hideValidationError();
18756 setMnemonicLanguage();
18757 // Get the mnemonic phrase
18758 var phrase = DOM.phrase.val();
18759 var errorText = findPhraseErrors(phrase);
18760 if (errorText) {
18761 showValidationError(errorText);
18762 return;
18763 }
18764 // Calculate and display
18765 var passphrase = DOM.passphrase.val();
18766 calcBip32RootKeyFromSeed(phrase, passphrase);
18767 calcForDerivationPath();
18768 hidePending();
18769 }
18770
18771 function delayedEntropyChanged() {
18772 hideValidationError();
18773 showPending();
18774 if (entropyChangeTimeoutEvent != null) {
18775 clearTimeout(entropyChangeTimeoutEvent);
18776 }
18777 entropyChangeTimeoutEvent = setTimeout(entropyChanged, 400);
18778 }
18779
18780 function entropyChanged() {
18abe53b
IC
18781 // If blank entropy, clear mnemonic, addresses, errors
18782 if (DOM.entropy.val().trim().length == 0) {
18783 clearDisplay();
2a6dd137 18784 clearEntropyFeedback();
18abe53b
IC
18785 DOM.phrase.val("");
18786 showValidationError("Blank entropy");
18787 return;
18788 }
18789 // Get the current phrase to detect changes
18790 var phrase = DOM.phrase.val();
18791 // Set the phrase from the entropy
c6624d51 18792 setMnemonicFromEntropy();
18abe53b
IC
18793 // Recalc addresses if the phrase has changed
18794 var newPhrase = DOM.phrase.val();
18795 if (newPhrase != phrase) {
18796 if (newPhrase.length == 0) {
18797 clearDisplay();
18798 }
18799 else {
18800 phraseChanged();
18801 }
18802 }
18803 else {
18804 hidePending();
18805 }
c6624d51
IC
18806 }
18807
18808 function delayedRootKeyChanged() {
18809 // Warn if there is an existing mnemonic or passphrase.
18810 if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
18811 if (!confirm("This will clear existing mnemonic and passphrase")) {
18812 DOM.rootKey.val(bip32RootKey);
18813 return
18814 }
18815 }
18816 hideValidationError();
18817 showPending();
18818 // Clear existing mnemonic and passphrase
18819 DOM.phrase.val("");
18820 DOM.passphrase.val("");
18821 seed = null;
18822 if (rootKeyChangedTimeoutEvent != null) {
18823 clearTimeout(rootKeyChangedTimeoutEvent);
18824 }
18825 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged, 400);
18826 }
18827
18828 function rootKeyChanged() {
18829 showPending();
18830 hideValidationError();
18831 // Validate the root key TODO
18832 var rootKeyBase58 = DOM.rootKey.val();
18833 var errorText = validateRootKey(rootKeyBase58);
18834 if (errorText) {
18835 showValidationError(errorText);
18836 return;
18837 }
18838 // Calculate and display
18839 calcBip32RootKeyFromBase58(rootKeyBase58);
18840 calcForDerivationPath();
18841 hidePending();
18842 }
18843
18844 function calcForDerivationPath() {
18845 showPending();
18846 hideValidationError();
18847 // Get the derivation path
18848 var derivationPath = getDerivationPath();
18849 var errorText = findDerivationPathErrors(derivationPath);
18850 if (errorText) {
18851 showValidationError(errorText);
18852 return;
18853 }
20083ab9
IC
18854 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
18855 if (bip44TabSelected()) {
18856 displayBip44Info();
18857 }
c6624d51
IC
18858 displayBip32Info();
18859 hidePending();
18860 }
18861
18862 function generateClicked() {
18863 if (isUsingOwnEntropy()) {
18864 return;
18865 }
18866 clearDisplay();
18867 showPending();
18868 setTimeout(function() {
18869 setMnemonicLanguage();
18870 var phrase = generateRandomPhrase();
18871 if (!phrase) {
18872 return;
18873 }
18874 phraseChanged();
18875 }, 50);
18876 }
18877
18878 function languageChanged() {
18879 setTimeout(function() {
18880 setMnemonicLanguage();
18881 if (DOM.phrase.val().length > 0) {
18882 var newPhrase = convertPhraseToNewLanguage();
18883 DOM.phrase.val(newPhrase);
18884 phraseChanged();
18885 }
18886 else {
18887 DOM.generate.trigger("click");
18888 }
18889 }, 50);
18890 }
18891
18892 function toggleIndexes() {
18893 showIndex = !showIndex;
18894 $("td.index span").toggleClass("invisible");
18895 }
18896
18897 function toggleAddresses() {
18898 showAddress = !showAddress;
18899 $("td.address span").toggleClass("invisible");
18900 }
18901
18902 function togglePublicKeys() {
18903 showPubKey = !showPubKey;
18904 $("td.pubkey span").toggleClass("invisible");
18905 }
18906
18907 function togglePrivateKeys() {
18908 showPrivKey = !showPrivKey;
18909 $("td.privkey span").toggleClass("invisible");
18910 }
18911
18912 // Private methods
18913
18914 function generateRandomPhrase() {
18915 if (!hasStrongRandom()) {
18916 var errorText = "This browser does not support strong randomness";
18917 showValidationError(errorText);
18918 return;
18919 }
18abe53b 18920 var numWords = parseInt(DOM.generatedStrength.val());
c6624d51
IC
18921 var strength = numWords / 3 * 32;
18922 var words = mnemonic.generate(strength);
18923 DOM.phrase.val(words);
18924 return words;
18925 }
18926
18927 function calcBip32RootKeyFromSeed(phrase, passphrase) {
18928 seed = mnemonic.toSeed(phrase, passphrase);
18929 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
18930 }
18931
18932 function calcBip32RootKeyFromBase58(rootKeyBase58) {
18933 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
18934 }
18935
18936 function calcBip32ExtendedKey(path) {
20083ab9 18937 var extendedKey = bip32RootKey;
c6624d51
IC
18938 // Derive the key from the path
18939 var pathBits = path.split("/");
ebd8d4e8
IC
18940 for (var i=0; i<pathBits.length; i++) {
18941 var bit = pathBits[i];
18942 var index = parseInt(bit);
18943 if (isNaN(index)) {
18944 continue;
18945 }
18946 var hardened = bit[bit.length-1] == "'";
18947 if (hardened) {
20083ab9 18948 extendedKey = extendedKey.deriveHardened(index);
ebd8d4e8
IC
18949 }
18950 else {
20083ab9 18951 extendedKey = extendedKey.derive(index);
ebd8d4e8
IC
18952 }
18953 }
20083ab9 18954 return extendedKey
ebd8d4e8
IC
18955 }
18956
18957 function showValidationError(errorText) {
18958 DOM.feedback
18959 .text(errorText)
18960 .show();
18961 }
18962
18963 function hideValidationError() {
18964 DOM.feedback
18965 .text("")
18966 .hide();
18967 }
18968
18969 function findPhraseErrors(phrase) {
ebd8d4e8 18970 // Preprocess the words
783981de 18971 phrase = mnemonic.normalizeString(phrase);
0515eeec 18972 var words = phraseToWordArray(phrase);
18abe53b
IC
18973 // Detect blank phrase
18974 if (words.length == 0) {
18975 return "Blank mnemonic";
18976 }
563e401a 18977 // Check each word
0515eeec
IC
18978 for (var i=0; i<words.length; i++) {
18979 var word = words[i];
18980 var language = getLanguage();
18981 if (WORDLISTS[language].indexOf(word) == -1) {
563e401a
IC
18982 console.log("Finding closest match to " + word);
18983 var nearestWord = findNearestWord(word);
18984 return word + " not in wordlist, did you mean " + nearestWord + "?";
18985 }
18986 }
ebd8d4e8 18987 // Check the words are valid
0515eeec 18988 var properPhrase = wordArrayToPhrase(words);
ebd8d4e8
IC
18989 var isValid = mnemonic.check(properPhrase);
18990 if (!isValid) {
18991 return "Invalid mnemonic";
18992 }
18993 return false;
18994 }
18995
efe41586
IC
18996 function validateRootKey(rootKeyBase58) {
18997 try {
18998 bitcoin.HDNode.fromBase58(rootKeyBase58);
18999 }
19000 catch (e) {
19001 return "Invalid root key";
19002 }
19003 return "";
19004 }
19005
38523d36 19006 function getDerivationPath() {
20083ab9 19007 if (bip44TabSelected()) {
38523d36
IC
19008 var purpose = parseIntNoNaN(DOM.bip44purpose.val(), 44);
19009 var coin = parseIntNoNaN(DOM.bip44coin.val(), 0);
19010 var account = parseIntNoNaN(DOM.bip44account.val(), 0);
19011 var change = parseIntNoNaN(DOM.bip44change.val(), 0);
19012 var path = "m/";
19013 path += purpose + "'/";
19014 path += coin + "'/";
19015 path += account + "'/";
19016 path += change;
19017 DOM.bip44path.val(path);
19018 var derivationPath = DOM.bip44path.val();
19019 console.log("Using derivation path from BIP44 tab: " + derivationPath);
19020 return derivationPath;
19021 }
20083ab9 19022 else if (bip32TabSelected()) {
38523d36
IC
19023 var derivationPath = DOM.bip32path.val();
19024 console.log("Using derivation path from BIP32 tab: " + derivationPath);
19025 return derivationPath;
19026 }
19027 else {
19028 console.log("Unknown derivation path");
19029 }
19030 }
19031
ebd8d4e8 19032 function findDerivationPathErrors(path) {
30c9e79d
IC
19033 // TODO is not perfect but is better than nothing
19034 // Inspired by
19035 // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#test-vectors
19036 // and
19037 // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#extended-keys
19038 var maxDepth = 255; // TODO verify this!!
19039 var maxIndexValue = Math.pow(2, 31); // TODO verify this!!
19040 if (path[0] != "m") {
19041 return "First character must be 'm'";
19042 }
19043 if (path.length > 1) {
19044 if (path[1] != "/") {
19045 return "Separator must be '/'";
19046 }
19047 var indexes = path.split("/");
19048 if (indexes.length > maxDepth) {
19049 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
19050 }
19051 for (var depth = 1; depth<indexes.length; depth++) {
19052 var index = indexes[depth];
19053 var invalidChars = index.replace(/^[0-9]+'?$/g, "")
19054 if (invalidChars.length > 0) {
19055 return "Invalid characters " + invalidChars + " found at depth " + depth;
19056 }
19057 var indexValue = parseInt(index.replace("'", ""));
19058 if (isNaN(depth)) {
19059 return "Invalid number at depth " + depth;
19060 }
19061 if (indexValue > maxIndexValue) {
19062 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
19063 }
19064 }
19065 }
ebd8d4e8
IC
19066 return false;
19067 }
19068
20083ab9
IC
19069 function displayBip44Info() {
19070 // Get the derivation path for the account
19071 var purpose = parseIntNoNaN(DOM.bip44purpose.val(), 44);
19072 var coin = parseIntNoNaN(DOM.bip44coin.val(), 0);
19073 var account = parseIntNoNaN(DOM.bip44account.val(), 0);
19074 var path = "m/";
19075 path += purpose + "'/";
19076 path += coin + "'/";
19077 path += account + "'/";
19078 // Calculate the account extended keys
19079 var accountExtendedKey = calcBip32ExtendedKey(path);
19080 var accountXprv = accountExtendedKey.toBase58();
19081 var accountXpub = accountExtendedKey.toBase58(false);
19082 // Display the extended keys
19083 DOM.bip44accountXprv.val(accountXprv);
19084 DOM.bip44accountXpub.val(accountXpub);
19085 }
19086
ebd8d4e8
IC
19087 function displayBip32Info() {
19088 // Display the key
73161a92 19089 DOM.seed.val(seed);
ebd8d4e8
IC
19090 var rootKey = bip32RootKey.toBase58();
19091 DOM.rootKey.val(rootKey);
19092 var extendedPrivKey = bip32ExtendedKey.toBase58();
19093 DOM.extendedPrivKey.val(extendedPrivKey);
19094 var extendedPubKey = bip32ExtendedKey.toBase58(false);
19095 DOM.extendedPubKey.val(extendedPubKey);
19096 // Display the addresses and privkeys
19097 clearAddressesList();
19098 displayAddresses(0, 20);
19099 }
19100
19101 function displayAddresses(start, total) {
19102 for (var i=0; i<total; i++) {
80c4dd2a
IC
19103 var index = i + start;
19104 new TableRow(index);
19105 }
19106 }
19107
19108 function TableRow(index) {
19109
1975bfbc
IC
19110 var useHardenedAddresses = DOM.hardenedAddresses.prop("checked");
19111
80c4dd2a
IC
19112 function init() {
19113 calculateValues();
19114 }
19115
19116 function calculateValues() {
19117 setTimeout(function() {
1975bfbc
IC
19118 var key = "";
19119 if (useHardenedAddresses) {
19120 key = bip32ExtendedKey.deriveHardened(index);
19121 }
19122 else {
19123 key = bip32ExtendedKey.derive(index);
19124 }
80c4dd2a
IC
19125 var address = key.getAddress().toString();
19126 var privkey = key.privKey.toWIF(network);
1b12b2f5 19127 var pubkey = key.pubKey.toHex();
38523d36 19128 var indexText = getDerivationPath() + "/" + index;
1975bfbc
IC
19129 if (useHardenedAddresses) {
19130 indexText = indexText + "'";
19131 }
1b12b2f5 19132 addAddressToList(indexText, address, pubkey, privkey);
80c4dd2a 19133 }, 50)
ebd8d4e8 19134 }
80c4dd2a
IC
19135
19136 init();
19137
ebd8d4e8
IC
19138 }
19139
19140 function showMore() {
19141 var start = DOM.addresses.children().length;
19142 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
19143 if (isNaN(rowsToAdd)) {
19144 rowsToAdd = 20;
19145 DOM.rowsToAdd.val("20");
19146 }
19147 if (rowsToAdd > 200) {
19148 var msg = "Generating " + rowsToAdd + " rows could take a while. ";
19149 msg += "Do you want to continue?";
19150 if (!confirm(msg)) {
19151 return;
19152 }
19153 }
ebd8d4e8 19154 displayAddresses(start, rowsToAdd);
ebd8d4e8
IC
19155 }
19156
19157 function clearDisplay() {
19158 clearAddressesList();
19159 clearKey();
19160 hideValidationError();
19161 }
19162
19163 function clearAddressesList() {
19164 DOM.addresses.empty();
19165 }
19166
19167 function clearKey() {
19168 DOM.rootKey.val("");
19169 DOM.extendedPrivKey.val("");
19170 DOM.extendedPubKey.val("");
19171 }
19172
1b12b2f5 19173 function addAddressToList(indexText, address, pubkey, privkey) {
ebd8d4e8 19174 var row = $(addressRowTemplate.html());
80c4dd2a
IC
19175 // Elements
19176 var indexCell = row.find(".index span");
19177 var addressCell = row.find(".address span");
1b12b2f5 19178 var pubkeyCell = row.find(".pubkey span");
80c4dd2a
IC
19179 var privkeyCell = row.find(".privkey span");
19180 // Content
ae30fed8 19181 indexCell.text(indexText);
80c4dd2a 19182 addressCell.text(address);
1b12b2f5 19183 pubkeyCell.text(pubkey);
80c4dd2a
IC
19184 privkeyCell.text(privkey);
19185 // Visibility
19186 if (!showIndex) {
19187 indexCell.addClass("invisible");
19188 }
19189 if (!showAddress) {
19190 addressCell.addClass("invisible");
19191 }
1b12b2f5
IC
19192 if (!showPubKey) {
19193 pubkeyCell.addClass("invisible");
19194 }
80c4dd2a 19195 if (!showPrivKey) {
6d628db7 19196 privkeyCell.addClass("invisible");
80c4dd2a 19197 }
ebd8d4e8 19198 DOM.addresses.append(row);
e00964cc
IC
19199 var rowShowQrEls = row.find("[data-show-qr]");
19200 setQrEvents(rowShowQrEls);
ebd8d4e8
IC
19201 }
19202
19203 function hasStrongRandom() {
19204 return 'crypto' in window && window['crypto'] !== null;
19205 }
19206
19207 function disableForms() {
19208 $("form").on("submit", function(e) {
19209 e.preventDefault();
19210 });
19211 }
19212
ebd8d4e8
IC
19213 function parseIntNoNaN(val, defaultVal) {
19214 var v = parseInt(val);
19215 if (isNaN(v)) {
19216 return defaultVal;
19217 }
19218 return v;
19219 }
19220
19221 function showPending() {
19222 DOM.feedback
19223 .text("Calculating...")
19224 .show();
19225 }
19226
563e401a 19227 function findNearestWord(word) {
0515eeec
IC
19228 var language = getLanguage();
19229 var words = WORDLISTS[language];
563e401a
IC
19230 var minDistance = 99;
19231 var closestWord = words[0];
19232 for (var i=0; i<words.length; i++) {
19233 var comparedTo = words[i];
19234 var distance = Levenshtein.get(word, comparedTo);
19235 if (distance < minDistance) {
19236 closestWord = comparedTo;
19237 minDistance = distance;
19238 }
19239 }
19240 return closestWord;
19241 }
19242
ebd8d4e8
IC
19243 function hidePending() {
19244 DOM.feedback
19245 .text("")
19246 .hide();
19247 }
19248
ab78acc6
IC
19249 function populateNetworkSelect() {
19250 for (var i=0; i<networks.length; i++) {
19251 var network = networks[i];
19252 var option = $("<option>");
19253 option.attr("value", i);
19254 option.text(network.name);
19255 DOM.phraseNetwork.append(option);
19256 }
19257 }
19258
0515eeec
IC
19259 function getLanguage() {
19260 var defaultLanguage = "english";
19261 // Try to get from existing phrase
19262 var language = getLanguageFromPhrase();
19263 // Try to get from url if not from phrase
19264 if (language.length == 0) {
19265 language = getLanguageFromUrl();
19266 }
19267 // Default to English if no other option
19268 if (language.length == 0) {
19269 language = defaultLanguage;
19270 }
19271 return language;
19272 }
19273
19274 function getLanguageFromPhrase(phrase) {
19275 // Check if how many words from existing phrase match a language.
19276 var language = "";
19277 if (!phrase) {
19278 phrase = DOM.phrase.val();
19279 }
19280 if (phrase.length > 0) {
19281 var words = phraseToWordArray(phrase);
19282 var languageMatches = {};
19283 for (l in WORDLISTS) {
19284 // Track how many words match in this language
19285 languageMatches[l] = 0;
19286 for (var i=0; i<words.length; i++) {
19287 var wordInLanguage = WORDLISTS[l].indexOf(words[i]) > -1;
19288 if (wordInLanguage) {
19289 languageMatches[l]++;
19290 }
19291 }
19292 // Find languages with most word matches.
19293 // This is made difficult due to commonalities between Chinese
19294 // simplified vs traditional.
19295 var mostMatches = 0;
19296 var mostMatchedLanguages = [];
19297 for (var l in languageMatches) {
19298 var numMatches = languageMatches[l];
19299 if (numMatches > mostMatches) {
19300 mostMatches = numMatches;
19301 mostMatchedLanguages = [l];
19302 }
19303 else if (numMatches == mostMatches) {
19304 mostMatchedLanguages.push(l);
19305 }
19306 }
19307 }
19308 if (mostMatchedLanguages.length > 0) {
19309 // Use first language and warn if multiple detected
19310 language = mostMatchedLanguages[0];
19311 if (mostMatchedLanguages.length > 1) {
19312 console.warn("Multiple possible languages");
19313 console.warn(mostMatchedLanguages);
19314 }
19315 }
19316 }
19317 return language;
19318 }
19319
19320 function getLanguageFromUrl() {
c6624d51
IC
19321 for (var language in WORDLISTS) {
19322 if (window.location.hash.indexOf(language) > -1) {
19323 return language;
19324 }
19325 }
19326 return "";
0515eeec
IC
19327 }
19328
19329 function setMnemonicLanguage() {
19330 var language = getLanguage();
19331 // Load the bip39 mnemonic generator for this language if required
19332 if (!(language in mnemonics)) {
19333 mnemonics[language] = new Mnemonic(language);
19334 }
19335 mnemonic = mnemonics[language];
19336 }
19337
19338 function convertPhraseToNewLanguage() {
19339 var oldLanguage = getLanguageFromPhrase();
19340 var newLanguage = getLanguageFromUrl();
19341 var oldPhrase = DOM.phrase.val();
19342 var oldWords = phraseToWordArray(oldPhrase);
19343 var newWords = [];
19344 for (var i=0; i<oldWords.length; i++) {
19345 var oldWord = oldWords[i];
19346 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
19347 var newWord = WORDLISTS[newLanguage][index];
19348 newWords.push(newWord);
19349 }
19350 newPhrase = wordArrayToPhrase(newWords);
19351 return newPhrase;
19352 }
19353
19354 // TODO look at jsbip39 - mnemonic.splitWords
19355 function phraseToWordArray(phrase) {
19356 var words = phrase.split(/\s/g);
19357 var noBlanks = [];
19358 for (var i=0; i<words.length; i++) {
19359 var word = words[i];
19360 if (word.length > 0) {
19361 noBlanks.push(word);
19362 }
19363 }
19364 return noBlanks;
19365 }
19366
19367 // TODO look at jsbip39 - mnemonic.joinWords
19368 function wordArrayToPhrase(words) {
19369 var phrase = words.join(" ");
19370 var language = getLanguageFromPhrase(phrase);
19371 if (language == "japanese") {
19372 phrase = words.join("\u3000");
19373 }
19374 return phrase;
19375 }
19376
c6624d51
IC
19377 function isUsingOwnEntropy() {
19378 return DOM.useEntropy.prop("checked");
19379 }
19380
19381 function setMnemonicFromEntropy() {
2a6dd137 19382 clearEntropyFeedback();
18abe53b 19383 // Get entropy value
c6624d51 19384 var entropyStr = DOM.entropy.val();
18abe53b 19385 // Work out minimum base for entropy
c6624d51 19386 var entropy = Entropy.fromString(entropyStr);
18abe53b 19387 if (entropy.binaryStr.length == 0) {
c6624d51
IC
19388 return;
19389 }
19390 // Show entropy details
18abe53b
IC
19391 showEntropyFeedback(entropy);
19392 // Use entropy hash if not using raw entropy
19393 var bits = entropy.binaryStr;
19394 var mnemonicLength = DOM.entropyMnemonicLength.val();
19395 if (mnemonicLength != "raw") {
19396 // Get bits by hashing entropy with SHA256
19397 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
19398 var hex = sjcl.codec.hex.fromBits(hash);
19399 bits = BigInteger.parse(hex, 16).toString(2);
19400 for (var i=0; i<256-bits.length; i++) {
19401 bits = "0" + bits;
19402 }
19403 // Truncate hash to suit number of words
19404 mnemonicLength = parseInt(mnemonicLength);
19405 var numberOfBits = 32 * mnemonicLength / 3;
19406 bits = bits.substring(0, numberOfBits);
c6624d51 19407 }
c6624d51 19408 // Discard trailing entropy
18abe53b 19409 var bitsToUse = Math.floor(bits.length / 32) * 32;
2a6dd137
IC
19410 var start = bits.length - bitsToUse;
19411 var binaryStr = bits.substring(start);
c6624d51
IC
19412 // Convert entropy string to numeric array
19413 var entropyArr = [];
18abe53b
IC
19414 for (var i=0; i<binaryStr.length / 8; i++) {
19415 var byteAsBits = binaryStr.substring(i*8, i*8+8);
19416 var entropyByte = parseInt(byteAsBits, 2);
c6624d51
IC
19417 entropyArr.push(entropyByte)
19418 }
19419 // Convert entropy array to mnemonic
19420 var phrase = mnemonic.toMnemonic(entropyArr);
19421 // Set the mnemonic in the UI
19422 DOM.phrase.val(phrase);
19423 }
19424
2a6dd137
IC
19425 function clearEntropyFeedback() {
19426 DOM.entropyStrength.text("...");
18abe53b 19427 DOM.entropyType.text("");
2a6dd137
IC
19428 DOM.entropyWordCount.text("0");
19429 DOM.entropyEventCount.text("0");
19430 DOM.entropyBitsPerEvent.text("0");
19431 DOM.entropyBits.text("0");
19432 DOM.entropyFiltered.html("&nbsp;");
19433 DOM.entropyBinary.html("&nbsp;");
c6624d51
IC
19434 }
19435
18abe53b 19436 function showEntropyFeedback(entropy) {
9e97eb76 19437 var numberOfBits = entropy.binaryStr.length;
18abe53b 19438 var strength = "extremely weak";
9e97eb76 19439 if (numberOfBits >= 64) {
18abe53b
IC
19440 strength = "very weak";
19441 }
9e97eb76 19442 if (numberOfBits >= 96) {
18abe53b
IC
19443 strength = "weak";
19444 }
9e97eb76 19445 if (numberOfBits >= 128) {
18abe53b
IC
19446 strength = "strong";
19447 }
9e97eb76 19448 if (numberOfBits >= 160) {
18abe53b
IC
19449 strength = "very strong";
19450 }
9e97eb76 19451 if (numberOfBits >= 192) {
18abe53b
IC
19452 strength = "extremely strong";
19453 }
19454 // If time to crack is less than one day, and password is considered
19455 // strong or better based on the number of bits, rename strength to
19456 // 'easily cracked'.
95f04905
IC
19457 try {
19458 var z = zxcvbn(entropy.base.parts.join(""));
19459 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
19460 if (timeToCrack < 86400 && entropy.binaryStr.length >= 128) {
19461 strength = "easily cracked";
19462 if (z.feedback.warning != "") {
19463 strength = strength + " - " + z.feedback.warning;
19464 };
19465 }
18abe53b 19466 }
95f04905
IC
19467 catch (e) {
19468 strength = "unknown";
19469 console.log("Error detecting entropy strength with zxcvbn:");
19470 console.log(e);
19471 }
95f04905 19472 var entropyTypeStr = getEntropyTypeStr(entropy);
9e97eb76 19473 var wordCount = Math.floor(numberOfBits / 32) * 3;
94959756 19474 var bitsPerEvent = entropy.bitsPerEvent.toFixed(2);
2a6dd137 19475 DOM.entropyFiltered.html(entropy.cleanHtml);
95f04905 19476 DOM.entropyType.text(entropyTypeStr);
18abe53b
IC
19477 DOM.entropyStrength.text(strength);
19478 DOM.entropyEventCount.text(entropy.base.ints.length);
9e97eb76 19479 DOM.entropyBits.text(numberOfBits);
2a6dd137
IC
19480 DOM.entropyWordCount.text(wordCount);
19481 DOM.entropyBinary.text(entropy.binaryStr);
9e97eb76 19482 DOM.entropyBitsPerEvent.text(bitsPerEvent);
95f04905
IC
19483 }
19484
19485 function getEntropyTypeStr(entropy) {
19486 var typeStr = entropy.base.str;
19487 // Add some detail if these are cards
19488 if (entropy.base.asInt == 52) {
19489 var cardDetail = []; // array of message strings
19490 // Detect duplicates
19491 var dupes = [];
19492 var dupeTracker = {};
19493 for (var i=0; i<entropy.base.parts.length; i++) {
19494 var card = entropy.base.parts[i];
9e97eb76
IC
19495 var cardUpper = card.toUpperCase();
19496 if (cardUpper in dupeTracker) {
95f04905
IC
19497 dupes.push(card);
19498 }
9e97eb76 19499 dupeTracker[cardUpper] = true;
95f04905
IC
19500 }
19501 if (dupes.length > 0) {
19502 var dupeWord = "duplicates";
19503 if (dupes.length == 1) {
19504 dupeWord = "duplicate";
19505 }
19506 var msg = dupes.length + " " + dupeWord + ": " + dupes.slice(0,3).join(" ");
19507 if (dupes.length > 3) {
19508 msg += "...";
19509 }
19510 cardDetail.push(msg);
19511 }
19512 // Detect full deck
19513 var uniqueCards = [];
19514 for (var uniqueCard in dupeTracker) {
19515 uniqueCards.push(uniqueCard);
19516 }
19517 if (uniqueCards.length == 52) {
19518 cardDetail.unshift("full deck");
19519 }
9e97eb76
IC
19520 // Detect missing cards
19521 var values = "A23456789TJQK";
19522 var suits = "CDHS";
19523 var missingCards = [];
19524 for (var i=0; i<suits.length; i++) {
19525 for (var j=0; j<values.length; j++) {
19526 var card = values[j] + suits[i];
19527 if (!(card in dupeTracker)) {
19528 missingCards.push(card);
19529 }
19530 }
19531 }
19532 // Display missing cards if six or less, ie clearly going for full deck
19533 if (missingCards.length > 0 && missingCards.length <= 6) {
19534 var msg = missingCards.length + " missing: " + missingCards.slice(0,3).join(" ");
19535 if (missingCards.length > 3) {
19536 msg += "...";
19537 }
19538 cardDetail.push(msg);
19539 }
95f04905
IC
19540 // Add card details to typeStr
19541 if (cardDetail.length > 0) {
19542 typeStr += " (" + cardDetail.join(", ") + ")";
19543 }
19544 }
19545 return typeStr;
19546 }
19547
e00964cc
IC
19548 function setQrEvents(els) {
19549 els.on("mouseenter", createQr);
19550 els.on("mouseleave", destroyQr);
19551 els.on("click", toggleQr);
19552 }
19553
19554 function createQr(e) {
19555 var content = e.target.textContent || e.target.value;
19556 if (content) {
19557 var size = 130;
19558 DOM.qrImage.qrcode({width: size, height: size, text: content});
19559 if (!showQr) {
19560 DOM.qrImage.addClass("hidden");
19561 }
19562 DOM.qrContainer.removeClass("hidden");
19563 }
19564 }
19565
19566 function destroyQr() {
19567 DOM.qrImage.text("");
19568 DOM.qrContainer.addClass("hidden");
19569 }
19570
19571 function toggleQr() {
19572 showQr = !showQr;
19573 DOM.qrImage.toggleClass("hidden");
19574 DOM.qrHint.toggleClass("hidden");
19575 }
19576
20083ab9
IC
19577 function bip44TabSelected() {
19578 return DOM.bip44tab.hasClass("active");
19579 }
19580
19581 function bip32TabSelected() {
19582 return DOM.bip32tab.hasClass("active");
19583 }
19584
ab78acc6
IC
19585 var networks = [
19586 {
19587 name: "Bitcoin",
19588 onSelect: function() {
19589 network = bitcoin.networks.bitcoin;
19590 DOM.bip44coin.val(0);
ab78acc6
IC
19591 },
19592 },
19593 {
19594 name: "Bitcoin Testnet",
19595 onSelect: function() {
19596 network = bitcoin.networks.testnet;
19597 DOM.bip44coin.val(1);
ab78acc6
IC
19598 },
19599 },
19600 {
19601 name: "Litecoin",
19602 onSelect: function() {
19603 network = bitcoin.networks.litecoin;
19604 DOM.bip44coin.val(2);
19605 },
19606 },
19607 {
19608 name: "Dogecoin",
19609 onSelect: function() {
19610 network = bitcoin.networks.dogecoin;
19611 DOM.bip44coin.val(3);
19612 },
19613 },
d5dc92fd
IC
19614 {
19615 name: "ShadowCash",
19616 onSelect: function() {
19617 network = bitcoin.networks.shadow;
19618 DOM.bip44coin.val(35);
19619 },
19620 },
19621 {
19622 name: "ShadowCash Testnet",
19623 onSelect: function() {
19624 network = bitcoin.networks.shadowtn;
19625 DOM.bip44coin.val(1);
19626 },
19627 },
a3baa26e
IC
19628 {
19629 name: "Viacoin",
19630 onSelect: function() {
19631 network = bitcoin.networks.viacoin;
19632 DOM.bip44coin.val(14);
19633 },
19634 },
19635 {
19636 name: "Viacoin Testnet",
19637 onSelect: function() {
19638 network = bitcoin.networks.viacointestnet;
19639 DOM.bip44coin.val(1);
19640 },
19641 },
19642 {
19643 name: "Jumbucks",
19644 onSelect: function() {
19645 network = bitcoin.networks.jumbucks;
19646 DOM.bip44coin.val(26);
19647 },
19648 },
5c434a8a
CM
19649 {
19650 name: "CLAM",
19651 onSelect: function() {
19652 network = bitcoin.networks.clam;
19653 DOM.bip44coin.val(23);
19654 },
19655 },
5493efc3 19656 {
19657 name: "DASH",
19658 onSelect: function() {
19659 network = bitcoin.networks.dash;
19660 DOM.bip44coin.val(5);
19661 },
19662 },
07ac4350 19663 {
19664 name: "Namecoin",
19665 onSelect: function() {
19666 network = bitcoin.networks.namecoin;
19667 DOM.bip44coin.val(7);
19668 },
19669 },
19670 {
19671 name: "Peercoin",
19672 onSelect: function() {
19673 network = bitcoin.networks.peercoin;
19674 DOM.bip44coin.val(6);
19675 },
19676 },
ab78acc6
IC
19677 ]
19678
ebd8d4e8
IC
19679 init();
19680
19681})();
dc55c6b0 19682</script>
ebd8d4e8
IC
19683 </body>
19684</html>