mirror of
https://github.com/paritytech/banana_split.git
synced 2026-09-12 19:51:03 +05:00
1 line
109 KiB
JavaScript
1 line
109 KiB
JavaScript
(function(e){function r(r){for(var t,s,o=r[0],l=r[1],c=r[2],u=0,p=[];u<o.length;u++)s=o[u],Object.prototype.hasOwnProperty.call(i,s)&&i[s]&&p.push(i[s][0]),i[s]=0;for(t in l)Object.prototype.hasOwnProperty.call(l,t)&&(e[t]=l[t]);d&&d(r);while(p.length)p.shift()();return n.push.apply(n,c||[]),a()}function a(){for(var e,r=0;r<n.length;r++){for(var a=n[r],t=!0,o=1;o<a.length;o++){var l=a[o];0!==i[l]&&(t=!1)}t&&(n.splice(r--,1),e=s(s.s=a[0]))}return e}var t={},i={app:0},n=[];function s(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,s),a.l=!0,a.exports}s.m=e,s.c=t,s.d=function(e,r,a){s.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},s.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,r){if(1&r&&(e=s(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(s.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var t in e)s.d(a,t,function(r){return e[r]}.bind(null,t));return a},s.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(r,"a",r),r},s.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},s.p="/";var o=window["webpackJsonp"]=window["webpackJsonp"]||[],l=o.push.bind(o);o.push=r,o=o.slice();for(var c=0;c<o.length;c++)r(o[c]);var d=l;n.push([0,"chunk-vendors"]),a()})({0:function(e,r,a){e.exports=a("cd49")},"034f":function(e,r,a){"use strict";a("3ebb")},"074e":function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".general-info{display:block;padding-bottom:30px}p{line-height:1.5em}li{padding-bottom:.5em}",""]),e.exports=r},1:function(e,r){},10:function(e,r){},11:function(e,r){},"11f3":function(e,r,a){var t=a("074e");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("696e6232",t,!0,{sourceMap:!1,shadowMode:!1})},12:function(e,r){},13:function(e,r){},1437:function(e,r,a){"use strict";a("b561")},"1b7a":function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".warning{background:#ffbbb3;border:7px solid #e87f73}",""]),e.exports=r},2:function(e,r){},"26d2":function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,'#forkongithub{position:fixed;bottom:0;right:0;z-index:9999}#forkongithub a{background-color:var(--c_bg-emphasis-main);color:var(--c_text-onEmphasis);text-decoration:none;text-align:center;font-weight:700;padding:.5rem 0 1rem;font-size:1.5rem;width:240px;position:absolute;bottom:40px;right:-50px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-o-transform:rotate(-45deg);-webkit-box-shadow:4px 4px 10px rgba(0,0,0,.8);box-shadow:4px 4px 10px rgba(0,0,0,.8);-webkit-transition:background-color .3s;transition:background-color .3s}#forkongithub a:hover{background:var(--c_bg-emphasis-dark)}#forkongithub a:after,#forkongithub a:before{content:"";width:100%;display:block;position:absolute;top:1px;left:0;height:1px;background:#fff}#forkongithub a:after{bottom:1px;top:auto}',""]),e.exports=r},3:function(e,r){},"34b5":function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,"textarea.tooLong{border:5px solid red}input[type=number]{width:64px;text-align:center}.error-text{color:red}",""]),e.exports=r},3646:function(e,r,a){var t=a("e9f1");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("230d5c10",t,!0,{sourceMap:!1,shadowMode:!1})},"3ebb":function(e,r,a){var t=a("e31a");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("61bc0355",t,!0,{sourceMap:!1,shadowMode:!1})},4:function(e,r){},"437b":function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,"@media screen{.print-only{display:none}}@media print{.screen-only{display:none}.qr-tile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100vw;height:100vh;text-align:center;page-break-after:always}canvas{height:min(80vw,80vh);width:min(80vw,80vh)!important}@page{margin:0;padding:0}}h3,h4{font-weight:400;margin:.25em 0 0 0}.recovery-field{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:2em;text-transform:uppercase}.recovery-blank{width:100%;border-bottom:1px solid #000}.version{font-weight:500;font-size:75%;color:#a9a9a9}",""]),e.exports=r},5:function(e,r){},5924:function(e,r,a){var t=a("437b");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("cae90ac4",t,!0,{sourceMap:!1,shadowMode:!1})},6:function(e,r){},6173:function(e,r,a){var t=a("acb7");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("b78b5c04",t,!0,{sourceMap:!1,shadowMode:!1})},"695a":function(e,r,a){"use strict";a("11f3")},7:function(e,r){},"73ed":function(e,r,a){"use strict";a("c742")},"7d66":function(e,r,a){var t=a("34b5");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("3faffbd0",t,!0,{sourceMap:!1,shadowMode:!1})},8:function(e,r){},"82ad":function(e,r,a){var t=a("ae2f");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("7552c310",t,!0,{sourceMap:!1,shadowMode:!1})},9:function(e,r){},"9ea2":function(e,r,a){"use strict";(function(e){const t=a("1fb5"),i=a("58a4"),n=a("fdc3"),s=a("3e7f"),o=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function l(e){return(new TextEncoder).encode(e)}function c(e){return new TextDecoder("utf-8").decode(e)}function d(e){return i.hash(l(e))}function u(e){let r="";for(let a=0;a<e.length;a++){const t=e[a];r+=o[t>>>4],r+=o[15&t]}return r}function p(e){const r=new Uint8Array(e.length/2);for(let a=0;a<r.length;a++)r[a]=parseInt(e.slice(2*a,2*a+2),16);return r}function g(r,a,t){const s=n(t,e.from(a),32768,8,1,32),o=i.randomBytes(24);return{nonce:o,salt:a,value:i.secretbox(l(r),o,s)}}function m(r,a,t,s){const o=n(t,e.from(a.buffer),32768,8,1,32);return i.secretbox.open(r,s,o)}function h(e,r,a,i,n){const o=d(r),l=g(e,o,a),c=t.fromByteArray(l.nonce),m=u(l.value);return s.share(m,i,n).map((function(e){const a=e[0]+t.fromByteArray(p(e.slice(1)));return JSON.stringify({v:1,t:r,r:n,d:a,n:c}).replace(/[\u007F-\uFFFF]/g,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4)}))}))}function b(e){let r=JSON.parse(e);return{version:r.v||0,title:r.t,requiredShards:r.r,data:r.d,nonce:r.n}}function f(e,r){const a=e.map(e=>e.requiredShards);if(!a.every(e=>e===a[0]))throw"Mismatching min shards requirement among shards!";if(e.length<a[0])throw`Not enough shards, need ${a[0]} but only ${e.length} provided`;const i=e.map(e=>e.nonce);if(!i.every(e=>e===i[0]))throw"Nonces mismatch among shards!";const n=e.map(e=>e.title);if(!n.every(e=>e===n[0]))throw"Titles mismatch among shards!";const o=e.map(e=>e.version);if(!o.every(e=>e===o[0]))throw"Versions mismatch along shards!";let l;switch(o[0]){case 0:{const a=e.map(e=>e.data),t=s.combine(a),o=p(t),c=p(i[0]),u=d(n[0]);l=m(o,u,r,c);break}case 1:{const a=e.map(e=>e.data[0]+u(t.toByteArray(e.data.slice(1)))),o=s.combine(a),c=p(o),g=t.toByteArray(i[0]),h=d(n[0]);l=m(c,h,r,g);break}default:throw"Version is not supported!"}if(!l)throw"Unable to decrypt the secret";return c(l)}r["a"]={share:h,parse:b,reconstruct:f}}).call(this,a("1c35").Buffer)},a8a5:function(e,r,a){"use strict";a("5924")},acb7:function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".alert{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;border-radius:1rem;padding:1.5rem;border:1px solid}.alert.warn{border-color:#e8b173;background-color:#ffe7b3;color:#8b6400}.alert.error{border-color:#e87f73;background-color:#ffbbb3;color:#8b0000}.alert__text{margin:0;width:100%}",""]),e.exports=r},ad01:function(e,r,a){"use strict";a("b67f")},ae2f:function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".remaining{-webkit-filter:blur(5px);filter:blur(5px);opacity:.5}.qrcode-stream{-webkit-transform:scaleX(-1);transform:scaleX(-1);border-radius:8px;overflow:hidden}",""]),e.exports=r},afbd:function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".card.warning{background:#ffbbb3;border:7px solid #e87f73}",""]),e.exports=r},b561:function(e,r,a){var t=a("afbd");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("57ad1bc4",t,!0,{sourceMap:!1,shadowMode:!1})},b67f:function(e,r,a){var t=a("1b7a");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("fb5e70d0",t,!0,{sourceMap:!1,shadowMode:!1})},be35:function(e,r,a){"use strict";a("3646")},c742:function(e,r,a){var t=a("26d2");t.__esModule&&(t=t.default),"string"===typeof t&&(t=[[e.i,t,""]]),t.locals&&(e.exports=t.locals);var i=a("499e").default;i("7b91a2c4",t,!0,{sourceMap:!1,shadowMode:!1})},cd49:function(e,r,a){"use strict";a.r(r);var t,i=a("2b0e"),n=a("6112"),s=a.n(n),o=a("9a3e"),l=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",[a("div",{staticClass:"measure",attrs:{id:"app"}},[a("ForkMe",{attrs:{url:"https://github.com/paritytech/banana_split"}}),a("nav",[a("router-link",{attrs:{id:"logo",to:"/"}},[a("span",{staticClass:"logo-text"},[e._v(" Banana Split ")]),a("span",{staticClass:"logo-icon"},[e._v(" 🍌 ")])]),a("Alert")],1),e.secure?a("router-view"):e.localFile?e.isOnline?a("GoOfflineInfo"):e._e():a("SavePageInfo"),a("div",{staticClass:"version-footer"},[e._v(" "+e._s(e.gitRevision)+" ")])],1),a("div",{staticClass:"measure flex",attrs:{id:"print"}})])},c=[],d=function(){var e=this,r=e.$createElement,a=e._self._c||r;return e.message?a("div",{staticClass:"alert measure",class:e.level},[a("p",{staticClass:"alert__text"},[e._v(" "+e._s(e.message)+" ")])]):e._e()},u=[];(function(e){e["Error"]="error",e["Warn"]="warn"})(t||(t={}));var p,g,m=i["a"].extend({name:"Alert",data:function(){return{message:null,level:t.Error}},created:function(){this.$eventHub.$on("showError",e=>{this.level=t.Error,this.message=e}),this.$eventHub.$on("showWarn",e=>{this.level=t.Warn,this.message=e}),this.$eventHub.$on("clearAlerts",()=>{this.message=null})}}),h=m,b=(a("dec5"),a("2877")),f=Object(b["a"])(h,d,u,!1,null,null,null),y=f.exports,v=function(){var e=this,r=e.$createElement;e._self._c;return e._m(0)},k=[function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",{staticClass:"card warning"},[a("h2",[e._v("Please go offline, so your secrets won't leak accidentally")]),a("p",[e._v(" This application doesn't require Internet access, and you shouldn't be using it from a brower which has one. ")]),a("p",[e._v(" It's really trivial to accidentally upload your unencrypted secrets somewhere, with a help of your browser spellchecker, webpage translation extension and such. ")]),a("p",[e._v("In Firefox, please go to Menu→More→Work Offline.")]),a("p",[e._v(" In Chrome, you'll have to open DevTools (Ctrl+Shift+I), then in the Network tab there check the \"Offline\" checkbox. (DON'T CLOSE DEVELOPER TOOLS AFTER THAT!) ")])])}],w={name:"GoOfflineInfo"},x=w,z=(a("ad01"),Object(b["a"])(x,v,k,!1,null,null,null)),_=z.exports,q=function(){var e=this,r=e.$createElement;e._self._c;return e._m(0)},j=[function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",{staticClass:"warning card"},[a("h2",[e._v("Please save this page to your local drive before use")]),a("p",[e._v(" Please "),a("a",{attrs:{href:".",download:"BananaSplit.html"}},[e._v("save this html file")]),e._v(" to a folder on your local drive, and then open the file from there. ")])])}],S={name:"SavePageInfo"},C=S,$=(a("1437"),Object(b["a"])(C,q,j,!1,null,null,null)),M=$.exports,E=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("span",{attrs:{id:"forkongithub"}},[a("a",{attrs:{href:e.url}},[e._v("🥄 Fork me on GitHub")])])},O=[],A={name:"ForkMe",props:{url:{type:String,required:!0}}},P=A,H=(a("73ed"),Object(b["a"])(P,E,O,!1,null,null,null)),T=H.exports,I=i["a"].extend({name:"App",components:{Alert:y,GoOfflineInfo:_,SavePageInfo:M,ForkMe:T},computed:{localFile(){return"file:"===window.location.protocol},secure(){return this.localFile&&!this.isOnline},gitRevision:function(){return"v0.3.0-9-gc8d11ea\n"}}}),R=I,B=(a("034f"),Object(b["a"])(R,l,c,!1,null,null,null)),L=B.exports,N=a("8c4f"),D=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",[a("GeneralInfo"),a("div",{staticClass:"measure"},[a("div",[a("router-link",{staticClass:"button-nav",attrs:{id:"shareNav",to:"/share"}},[e._v(" Create ")]),a("router-link",{staticClass:"button-nav",attrs:{id:"combineNav",to:"/combine"}},[e._v(" Restore ")]),a("router-link",{staticClass:"button-nav",attrs:{id:"printNav",to:"/print"}},[e._v(" Print ")])],1)])],1)},F=[],Q=function(){var e=this,r=e.$createElement;e._self._c;return e._m(0)},G=[function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",{staticClass:"general-info"},[a("h2",[e._v("What is this?")]),a("p",[e._v(" Banana Split is a self-contained HTML page, which makes your paper backups more resilient and secure using "),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing",target:"_blank"}},[e._v(" Shamir's secret sharing scheme")]),e._v(". You can encrypt and split particularly sensitive information so that it's not physically stored in one place — your master password, seed phrase, etc. ")]),a("h2",[e._v("How does it work?")]),a("p",[e._v(" After you type in your secret into Banana Split, it will be encrypted with an autogenerated passphrase and split into N QR-codes, ready to be printed out. You'll need N/2+1 of those printouts to reconstruct the secret, and then the passphrase to decrypt it. ")]),a("p",[e._v(" Banana Split tries to protect your secret from the attack vectors like \"attacker is able to intercept everything you're sending to your printer\", and that's why you'll have to write down the passphrase on your printouts by hand. ")]),a("p",[e._v(" Of course you should seal your printouts in non-transparent envelopes and distribute among different locations as soon as you're done writing your seed phrase — Banana Split is only more secure than a single paper with your secret as long as the secrets can't be lost/stolen altogether. ")]),a("p",[e._v(" All operations must be performed in Offline mode. Recovery can be done on any device with a webcam — just show your QR codes to the webcam and follow the notifications on screen in the process. ")]),a("h2",[e._v("How to use it?")]),a("ol",[a("li",[e._v("Save this HTML page into your local Documents folder")]),a("li",[e._v("Turn off Wi-Fi, Bluetooth and any other connectivity on your device")]),a("li",[e._v("Open the downloaded HTML page and follow the instructions")])]),a("p",[e._v(" This way the risk of compromise will be minimal. ")])])}],U=i["a"].extend({name:"GeneralInfo"}),W=U,Y=(a("695a"),Object(b["a"])(W,Q,G,!1,null,null,null)),J=Y.exports,V=i["a"].extend({name:"Info",components:{GeneralInfo:J}}),X=V,K=Object(b["a"])(X,D,F,!1,null,null,null),Z=K.exports,ee=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",[a("div",{staticClass:"card",attrs:{transparent:!e.encryptionMode}},[a("h2",{staticClass:"card-title"},[e._v(" Create a secret split ")]),a("p",[a("label",[e._v("1. Name of your split")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.title,expression:"title"}],attrs:{id:"secretTitle",type:"text",disabled:e.encryptionMode,placeholder:"Ex: 'My Bitcoin seed phrase'",autofocus:""},domProps:{value:e.title},on:{input:function(r){r.target.composing||(e.title=r.target.value)}}})]),a("p",[a("label",[e._v("2. Secret")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:e.secret,expression:"secret"}],class:{tooLong:e.secretTooLong},attrs:{id:"secret",disabled:e.encryptionMode,placeholder:"Your secret goes here"},domProps:{value:e.secret},on:{input:function(r){r.target.composing||(e.secret=r.target.value)}}}),e._v(" "),e.secretTooLong?a("span",{staticClass:"error-text"},[e._v(" Inputs longer than 1024 characters make QR codes illegible ")]):e._e()]),a("p",[a("label",[e._v("3. Shards")]),a("br"),e._v(" Will require any "+e._s(e.requiredShards)+" shards out of "),a("input",{directives:[{name:"model",rawName:"v-model.number",value:e.totalShards,expression:"totalShards",modifiers:{number:!0}}],attrs:{id:"totalShards",disabled:e.encryptionMode,type:"number",min:"3",max:"255"},domProps:{value:e.totalShards},on:{input:function(r){r.target.composing||(e.totalShards=e._n(r.target.value))},blur:function(r){return e.$forceUpdate()}}}),e._v(" to reconstruct ")]),a("button",{staticClass:"button-card",attrs:{id:"generateBtn",disabled:e.secretTooLong,hidden:e.encryptionMode},on:{click:e.toggleMode}},[e._v(" Generate QR codes! ")]),a("button",{staticClass:"button-card",attrs:{id:"backToEditBtn",disabled:e.secretTooLong,hidden:!e.encryptionMode},on:{click:e.toggleMode}},[e._v(" Back to editing data ")])]),e.encryptionMode?a("div",[a("div",{staticClass:"card",attrs:{framed:"true",transparent:"true"}},[a("label",[e._v("4. Your passphrase for the recovery is:")]),a("div",{staticClass:"flex justify-between align-center"},[a("canvas-text",{attrs:{text:e.recoveryPassphrase}}),a("button",{staticClass:"button-icon",on:{click:e.regenPassphrase}},[e._v(" ↺ ")])],1)]),a("div",{staticClass:"card",attrs:{transparent:"true"}},[a("button",{staticClass:"button-card",attrs:{id:"printBtn"},on:{click:e.print}},[e._v(" Print us! ")]),e._l(e.shards,(function(r){return a("shard-info",{key:r,attrs:{shard:r,"required-shards":e.requiredShards,title:e.title}})}))],2)]):e._e()])},re=[],ae={wordlist:["abacus","abdomen","abdominal","abide","abiding","ability","ablaze","able","abnormal","abrasion","abrasive","abreast","abridge","abroad","abruptly","absence","absentee","absently","absinthe","absolute","absolve","abstain","abstract","absurd","accent","acclaim","acclimate","accompany","account","accuracy","accurate","accustom","acetone","achiness","aching","acid","acorn","acquaint","acquire","acre","acrobat","acronym","acting","action","activate","activator","active","activism","activist","activity","actress","acts","acutely","acuteness","aeration","aerobics","aerosol","aerospace","afar","affair","affected","affecting","affection","affidavit","affiliate","affirm","affix","afflicted","affluent","afford","affront","aflame","afloat","aflutter","afoot","afraid","afterglow","afterlife","aftermath","aftermost","afternoon","aged","ageless","agency","agenda","agent","aggregate","aghast","agile","agility","aging","agnostic","agonize","agonizing","agony","agreeable","agreeably","agreed","agreeing","agreement","aground","ahead","ahoy","aide","aids","aim","ajar","alabaster","alarm","albatross","album","alfalfa","algebra","algorithm","alias","alibi","alienable","alienate","aliens","alike","alive","alkaline","alkalize","almanac","almighty","almost","aloe","aloft","aloha","alone","alongside","aloof","alphabet","alright","although","altitude","alto","aluminum","alumni","always","amaretto","amaze","amazingly","amber","ambiance","ambiguity","ambiguous","ambition","ambitious","ambulance","ambush","amendable","amendment","amends","amenity","amiable","amicably","amid","amigo","amino","amiss","ammonia","ammonium","amnesty","amniotic","among","amount","amperage","ample","amplifier","amplify","amply","amuck","amulet","amusable","amused","amusement","amuser","amusing","anaconda","anaerobic","anagram","anatomist","anatomy","anchor","anchovy","ancient","android","anemia","anemic","aneurism","anew","angelfish","angelic","anger","angled","angler","angles","angling","angrily","angriness","anguished","angular","animal","animate","animating","animation","animator","anime","animosity","ankle","annex","annotate","announcer","annoying","annually","annuity","anointer","another","answering","antacid","antarctic","anteater","antelope","antennae","anthem","anthill","anthology","antibody","antics","antidote","antihero","antiquely","antiques","antiquity","antirust","antitoxic","antitrust","antiviral","antivirus","antler","antonym","antsy","anvil","anybody","anyhow","anymore","anyone","anyplace","anything","anytime","anyway","anywhere","aorta","apache","apostle","appealing","appear","appease","appeasing","appendage","appendix","appetite","appetizer","applaud","applause","apple","appliance","applicant","applied","apply","appointee","appraisal","appraiser","apprehend","approach","approval","approve","apricot","april","apron","aptitude","aptly","aqua","aqueduct","arbitrary","arbitrate","ardently","area","arena","arguable","arguably","argue","arise","armadillo","armband","armchair","armed","armful","armhole","arming","armless","armoire","armored","armory","armrest","army","aroma","arose","around","arousal","arrange","array","arrest","arrival","arrive","arrogance","arrogant","arson","art","ascend","ascension","ascent","ascertain","ashamed","ashen","ashes","ashy","aside","askew","asleep","asparagus","aspect","aspirate","aspire","aspirin","astonish","astound","astride","astrology","astronaut","astronomy","astute","atlantic","atlas","atom","atonable","atop","atrium","atrocious","atrophy","attach","attain","attempt","attendant","attendee","attention","attentive","attest","attic","attire","attitude","attractor","attribute","atypical","auction","audacious","audacity","audible","audibly","audience","audio","audition","augmented","august","authentic","author","autism","autistic","autograph","automaker","automated","automatic","autopilot","available","avalanche","avatar","avenge","avenging","avenue","average","aversion","avert","aviation","aviator","avid","avoid","await","awaken","award","aware","awhile","awkward","awning","awoke","awry","axis","babble","babbling","babied","baboon","backache","backboard","backboned","backdrop","backed","backer","backfield","backfire","backhand","backing","backlands","backlash","backless","backlight","backlit","backlog","backpack","backpedal","backrest","backroom","backshift","backside","backslid","backspace","backspin","backstab","backstage","backtalk","backtrack","backup","backward","backwash","backwater","backyard","bacon","bacteria","bacterium","badass","badge","badland","badly","badness","baffle","baffling","bagel","bagful","baggage","bagged","baggie","bagginess","bagging","baggy","bagpipe","baguette","baked","bakery","bakeshop","baking","balance","balancing","balcony","balmy","balsamic","bamboo","banana","banish","banister","banjo","bankable","bankbook","banked","banker","banking","banknote","bankroll","banner","bannister","banshee","banter","barbecue","barbed","barbell","barber","barcode","barge","bargraph","barista","baritone","barley","barmaid","barman","barn","barometer","barrack","barracuda","barrel","barrette","barricade","barrier","barstool","bartender","barterer","bash","basically","basics","basil","basin","basis","basket","batboy","batch","bath","baton","bats","battalion","battered","battering","battery","batting","battle","bauble","bazooka","blabber","bladder","blade","blah","blame","blaming","blanching","blandness","blank","blaspheme","blasphemy","blast","blatancy","blatantly","blazer","blazing","bleach","bleak","bleep","blemish","blend","bless","blighted","blimp","bling","blinked","blinker","blinking","blinks","blip","blissful","blitz","blizzard","bloated","bloating","blob","blog","bloomers","blooming","blooper","blot","blouse","blubber","bluff","bluish","blunderer","blunt","blurb","blurred","blurry","blurt","blush","blustery","boaster","boastful","boasting","boat","bobbed","bobbing","bobble","bobcat","bobsled","bobtail","bodacious","body","bogged","boggle","bogus","boil","bok","bolster","bolt","bonanza","bonded","bonding","bondless","boned","bonehead","boneless","bonelike","boney","bonfire","bonnet","bonsai","bonus","bony","boogeyman","boogieman","book","boondocks","booted","booth","bootie","booting","bootlace","bootleg","boots","boozy","borax","boring","borough","borrower","borrowing","boss","botanical","botanist","botany","botch","both","bottle","bottling","bottom","bounce","bouncing","bouncy","bounding","boundless","bountiful","bovine","boxcar","boxer","boxing","boxlike","boxy","breach","breath","breeches","breeching","breeder","breeding","breeze","breezy","brethren","brewery","brewing","briar","bribe","brick","bride","bridged","brigade","bright","brilliant","brim","bring","brink","brisket","briskly","briskness","bristle","brittle","broadband","broadcast","broaden","broadly","broadness","broadside","broadways","broiler","broiling","broken","broker","bronchial","bronco","bronze","bronzing","brook","broom","brought","browbeat","brownnose","browse","browsing","bruising","brunch","brunette","brunt","brush","brussels","brute","brutishly","bubble","bubbling","bubbly","buccaneer","bucked","bucket","buckle","buckshot","buckskin","bucktooth","buckwheat","buddhism","buddhist","budding","buddy","budget","buffalo","buffed","buffer","buffing","buffoon","buggy","bulb","bulge","bulginess","bulgur","bulk","bulldog","bulldozer","bullfight","bullfrog","bullhorn","bullion","bullish","bullpen","bullring","bullseye","bullwhip","bully","bunch","bundle","bungee","bunion","bunkbed","bunkhouse","bunkmate","bunny","bunt","busboy","bush","busily","busload","bust","busybody","buzz","cabana","cabbage","cabbie","cabdriver","cable","caboose","cache","cackle","cacti","cactus","caddie","caddy","cadet","cadillac","cadmium","cage","cahoots","cake","calamari","calamity","calcium","calculate","calculus","caliber","calibrate","calm","caloric","calorie","calzone","camcorder","cameo","camera","camisole","camper","campfire","camping","campsite","campus","canal","canary","cancel","candied","candle","candy","cane","canine","canister","cannabis","canned","canning","cannon","cannot","canola","canon","canopener","canopy","canteen","canyon","capable","capably","capacity","cape","capillary","capital","capitol","capped","capricorn","capsize","capsule","caption","captivate","captive","captivity","capture","caramel","carat","caravan","carbon","cardboard","carded","cardiac","cardigan","cardinal","cardstock","carefully","caregiver","careless","caress","caretaker","cargo","caring","carless","carload","carmaker","carnage","carnation","carnival","carnivore","carol","carpenter","carpentry","carpool","carport","carried","carrot","carrousel","carry","cartel","cartload","carton","cartoon","cartridge","cartwheel","carve","carving","carwash","cascade","case","cash","casing","casino","casket","cassette","casually","casualty","catacomb","catalog","catalyst","catalyze","catapult","cataract","catatonic","catcall","catchable","catcher","catching","catchy","caterer","catering","catfight","catfish","cathedral","cathouse","catlike","catnap","catnip","catsup","cattail","cattishly","cattle","catty","catwalk","caucasian","caucus","causal","causation","cause","causing","cauterize","caution","cautious","cavalier","cavalry","caviar","cavity","cedar","celery","celestial","celibacy","celibate","celtic","cement","census","ceramics","ceremony","certainly","certainty","certified","certify","cesarean","cesspool","chafe","chaffing","chain","chair","chalice","challenge","chamber","chamomile","champion","chance","change","channel","chant","chaos","chaperone","chaplain","chapped","chaps","chapter","character","charbroil","charcoal","charger","charging","chariot","charity","charm","charred","charter","charting","chase","chasing","chaste","chastise","chastity","chatroom","chatter","chatting","chatty","cheating","cheddar","cheek","cheer","cheese","cheesy","chef","chemicals","chemist","chemo","cherisher","cherub","chess","chest","chevron","chevy","chewable","chewer","chewing","chewy","chief","chihuahua","childcare","childhood","childish","childless","childlike","chili","chill","chimp","chip","chirping","chirpy","chitchat","chivalry","chive","chloride","chlorine","choice","chokehold","choking","chomp","chooser","choosing","choosy","chop","chosen","chowder","chowtime","chrome","chubby","chuck","chug","chummy","chump","chunk","churn","chute","cider","cilantro","cinch","cinema","cinnamon","circle","circling","circular","circulate","circus","citable","citadel","citation","citizen","citric","citrus","city","civic","civil","clad","claim","clambake","clammy","clamor","clamp","clamshell","clang","clanking","clapped","clapper","clapping","clarify","clarinet","clarity","clash","clasp","class","clatter","clause","clavicle","claw","clay","clean","clear","cleat","cleaver","cleft","clench","clergyman","clerical","clerk","clever","clicker","client","climate","climatic","cling","clinic","clinking","clip","clique","cloak","clobber","clock","clone","cloning","closable","closure","clothes","clothing","cloud","clover","clubbed","clubbing","clubhouse","clump","clumsily","clumsy","clunky","clustered","clutch","clutter","coach","coagulant","coastal","coaster","coasting","coastland","coastline","coat","coauthor","cobalt","cobbler","cobweb","cocoa","coconut","cod","coeditor","coerce","coexist","coffee","cofounder","cognition","cognitive","cogwheel","coherence","coherent","cohesive","coil","coke","cola","cold","coleslaw","coliseum","collage","collapse","collar","collected","collector","collide","collie","collision","colonial","colonist","colonize","colony","colossal","colt","coma","come","comfort","comfy","comic","coming","comma","commence","commend","comment","commerce","commode","commodity","commodore","common","commotion","commute","commuting","compacted","compacter","compactly","compactor","companion","company","compare","compel","compile","comply","component","composed","composer","composite","compost","composure","compound","compress","comprised","computer","computing","comrade","concave","conceal","conceded","concept","concerned","concert","conch","concierge","concise","conclude","concrete","concur","condense","condiment","condition","condone","conducive","conductor","conduit","cone","confess","confetti","confidant","confident","confider","confiding","configure","confined","confining","confirm","conflict","conform","confound","confront","confused","confusing","confusion","congenial","congested","congrats","congress","conical","conjoined","conjure","conjuror","connected","connector","consensus","consent","console","consoling","consonant","constable","constant","constrain","constrict","construct","consult","consumer","consuming","contact","container","contempt","contend","contented","contently","contents","contest","context","contort","contour","contrite","control","contusion","convene","convent","copartner","cope","copied","copier","copilot","coping","copious","copper","copy","coral","cork","cornball","cornbread","corncob","cornea","corned","corner","cornfield","cornflake","cornhusk","cornmeal","cornstalk","corny","coronary","coroner","corporal","corporate","corral","correct","corridor","corrode","corroding","corrosive","corsage","corset","cortex","cosigner","cosmetics","cosmic","cosmos","cosponsor","cost","cottage","cotton","couch","cough","could","countable","countdown","counting","countless","country","county","courier","covenant","cover","coveted","coveting","coyness","cozily","coziness","cozy","crabbing","crabgrass","crablike","crabmeat","cradle","cradling","crafter","craftily","craftsman","craftwork","crafty","cramp","cranberry","crane","cranial","cranium","crank","crate","crave","craving","crawfish","crawlers","crawling","crayfish","crayon","crazed","crazily","craziness","crazy","creamed","creamer","creamlike","crease","creasing","creatable","create","creation","creative","creature","credible","credibly","credit","creed","creme","creole","crepe","crept","crescent","crested","cresting","crestless","crevice","crewless","crewman","crewmate","crib","cricket","cried","crier","crimp","crimson","cringe","cringing","crinkle","crinkly","crisped","crisping","crisply","crispness","crispy","criteria","critter","croak","crock","crook","croon","crop","cross","crouch","crouton","crowbar","crowd","crown","crucial","crudely","crudeness","cruelly","cruelness","cruelty","crumb","crummiest","crummy","crumpet","crumpled","cruncher","crunching","crunchy","crusader","crushable","crushed","crusher","crushing","crust","crux","crying","cryptic","crystal","cubbyhole","cube","cubical","cubicle","cucumber","cuddle","cuddly","cufflink","culinary","culminate","culpable","culprit","cultivate","cultural","culture","cupbearer","cupcake","cupid","cupped","cupping","curable","curator","curdle","cure","curfew","curing","curled","curler","curliness","curling","curly","curry","curse","cursive","cursor","curtain","curtly","curtsy","curvature","curve","curvy","cushy","cusp","cussed","custard","custodian","custody","customary","customer","customize","customs","cut","cycle","cyclic","cycling","cyclist","cylinder","cymbal","cytoplasm","cytoplast","dab","dad","daffodil","dagger","daily","daintily","dainty","dairy","daisy","dallying","dance","dancing","dandelion","dander","dandruff","dandy","danger","dangle","dangling","daredevil","dares","daringly","darkened","darkening","darkish","darkness","darkroom","darling","darn","dart","darwinism","dash","dastardly","data","datebook","dating","daughter","daunting","dawdler","dawn","daybed","daybreak","daycare","daydream","daylight","daylong","dayroom","daytime","dazzler","dazzling","deacon","deafening","deafness","dealer","dealing","dealmaker","dealt","dean","debatable","debate","debating","debit","debrief","debtless","debtor","debug","debunk","decade","decaf","decal","decathlon","decay","deceased","deceit","deceiver","deceiving","december","decency","decent","deception","deceptive","decibel","decidable","decimal","decimeter","decipher","deck","declared","decline","decode","decompose","decorated","decorator","decoy","decrease","decree","dedicate","dedicator","deduce","deduct","deed","deem","deepen","deeply","deepness","deface","defacing","defame","default","defeat","defection","defective","defendant","defender","defense","defensive","deferral","deferred","defiance","defiant","defile","defiling","define","definite","deflate","deflation","deflator","deflected","deflector","defog","deforest","defraud","defrost","deftly","defuse","defy","degraded","degrading","degrease","degree","dehydrate","deity","dejected","delay","delegate","delegator","delete","deletion","delicacy","delicate","delicious","delighted","delirious","delirium","deliverer","delivery","delouse","delta","deluge","delusion","deluxe","demanding","demeaning","demeanor","demise","democracy","democrat","demote","demotion","demystify","denatured","deniable","denial","denim","denote","dense","density","dental","dentist","denture","deny","deodorant","deodorize","departed","departure","depict","deplete","depletion","deplored","deploy","deport","depose","depraved","depravity","deprecate","depress","deprive","depth","deputize","deputy","derail","deranged","derby","derived","desecrate","deserve","deserving","designate","designed","designer","designing","deskbound","desktop","deskwork","desolate","despair","despise","despite","destiny","destitute","destruct","detached","detail","detection","detective","detector","detention","detergent","detest","detonate","detonator","detoxify","detract","deuce","devalue","deviancy","deviant","deviate","deviation","deviator","device","devious","devotedly","devotee","devotion","devourer","devouring","devoutly","dexterity","dexterous","diabetes","diabetic","diabolic","diagnoses","diagnosis","diagram","dial","diameter","diaper","diaphragm","diary","dice","dicing","dictate","dictation","dictator","difficult","diffused","diffuser","diffusion","diffusive","dig","dilation","diligence","diligent","dill","dilute","dime","diminish","dimly","dimmed","dimmer","dimness","dimple","diner","dingbat","dinghy","dinginess","dingo","dingy","dining","dinner","diocese","dioxide","diploma","dipped","dipper","dipping","directed","direction","directive","directly","directory","direness","dirtiness","disabled","disagree","disallow","disarm","disarray","disaster","disband","disbelief","disburse","discard","discern","discharge","disclose","discolor","discount","discourse","discover","discuss","disdain","disengage","disfigure","disgrace","dish","disinfect","disjoin","disk","dislike","disliking","dislocate","dislodge","disloyal","dismantle","dismay","dismiss","dismount","disobey","disorder","disown","disparate","disparity","dispatch","dispense","dispersal","dispersed","disperser","displace","display","displease","disposal","dispose","disprove","dispute","disregard","disrupt","dissuade","distance","distant","distaste","distill","distinct","distort","distract","distress","district","distrust","ditch","ditto","ditzy","dividable","divided","dividend","dividers","dividing","divinely","diving","divinity","divisible","divisibly","division","divisive","divorcee","dizziness","dizzy","doable","docile","dock","doctrine","document","dodge","dodgy","doily","doing","dole","dollar","dollhouse","dollop","dolly","dolphin","domain","domelike","domestic","dominion","dominoes","donated","donation","donator","donor","donut","doodle","doorbell","doorframe","doorknob","doorman","doormat","doornail","doorpost","doorstep","doorstop","doorway","doozy","dork","dormitory","dorsal","dosage","dose","dotted","doubling","douche","dove","down","dowry","doze","drab","dragging","dragonfly","dragonish","dragster","drainable","drainage","drained","drainer","drainpipe","dramatic","dramatize","drank","drapery","drastic","draw","dreaded","dreadful","dreadlock","dreamboat","dreamily","dreamland","dreamless","dreamlike","dreamt","dreamy","drearily","dreary","drench","dress","drew","dribble","dried","drier","drift","driller","drilling","drinkable","drinking","dripping","drippy","drivable","driven","driver","driveway","driving","drizzle","drizzly","drone","drool","droop","drop-down","dropbox","dropkick","droplet","dropout","dropper","drove","drown","drowsily","drudge","drum","dry","dubbed","dubiously","duchess","duckbill","ducking","duckling","ducktail","ducky","duct","dude","duffel","dugout","duh","duke","duller","dullness","duly","dumping","dumpling","dumpster","duo","dupe","duplex","duplicate","duplicity","durable","durably","duration","duress","during","dusk","dust","dutiful","duty","duvet","dwarf","dweeb","dwelled","dweller","dwelling","dwindle","dwindling","dynamic","dynamite","dynasty","dyslexia","dyslexic","each","eagle","earache","eardrum","earflap","earful","earlobe","early","earmark","earmuff","earphone","earpiece","earplugs","earring","earshot","earthen","earthlike","earthling","earthly","earthworm","earthy","earwig","easeful","easel","easiest","easily","easiness","easing","eastbound","eastcoast","easter","eastward","eatable","eaten","eatery","eating","eats","ebay","ebony","ebook","ecard","eccentric","echo","eclair","eclipse","ecologist","ecology","economic","economist","economy","ecosphere","ecosystem","edge","edginess","edging","edgy","edition","editor","educated","education","educator","eel","effective","effects","efficient","effort","eggbeater","egging","eggnog","eggplant","eggshell","egomaniac","egotism","egotistic","either","eject","elaborate","elastic","elated","elbow","eldercare","elderly","eldest","electable","election","elective","elephant","elevate","elevating","elevation","elevator","eleven","elf","eligible","eligibly","eliminate","elite","elitism","elixir","elk","ellipse","elliptic","elm","elongated","elope","eloquence","eloquent","elsewhere","elude","elusive","elves","email","embargo","embark","embassy","embattled","embellish","ember","embezzle","emblaze","emblem","embody","embolism","emboss","embroider","emcee","emerald","emergency","emission","emit","emote","emoticon","emotion","empathic","empathy","emperor","emphases","emphasis","emphasize","emphatic","empirical","employed","employee","employer","emporium","empower","emptier","emptiness","empty","emu","enable","enactment","enamel","enchanted","enchilada","encircle","enclose","enclosure","encode","encore","encounter","encourage","encroach","encrust","encrypt","endanger","endeared","endearing","ended","ending","endless","endnote","endocrine","endorphin","endorse","endowment","endpoint","endurable","endurance","enduring","energetic","energize","energy","enforced","enforcer","engaged","engaging","engine","engorge","engraved","engraver","engraving","engross","engulf","enhance","enigmatic","enjoyable","enjoyably","enjoyer","enjoying","enjoyment","enlarged","enlarging","enlighten","enlisted","enquirer","enrage","enrich","enroll","enslave","ensnare","ensure","entail","entangled","entering","entertain","enticing","entire","entitle","entity","entomb","entourage","entrap","entree","entrench","entrust","entryway","entwine","enunciate","envelope","enviable","enviably","envious","envision","envoy","envy","enzyme","epic","epidemic","epidermal","epidermis","epidural","epilepsy","epileptic","epilogue","epiphany","episode","equal","equate","equation","equator","equinox","equipment","equity","equivocal","eradicate","erasable","erased","eraser","erasure","ergonomic","errand","errant","erratic","error","erupt","escalate","escalator","escapable","escapade","escapist","escargot","eskimo","esophagus","espionage","espresso","esquire","essay","essence","essential","establish","estate","esteemed","estimate","estimator","estranged","estrogen","etching","eternal","eternity","ethanol","ether","ethically","ethics","euphemism","evacuate","evacuee","evade","evaluate","evaluator","evaporate","evasion","evasive","even","everglade","evergreen","everybody","everyday","everyone","evict","evidence","evident","evil","evoke","evolution","evolve","exact","exalted","example","excavate","excavator","exceeding","exception","excess","exchange","excitable","exciting","exclaim","exclude","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","excuse","exemplary","exemplify","exemption","exerciser","exert","exes","exfoliate","exhale","exhaust","exhume","exile","existing","exit","exodus","exonerate","exorcism","exorcist","expand","expanse","expansion","expansive","expectant","expedited","expediter","expel","expend","expenses","expensive","expert","expire","expiring","explain","expletive","explicit","explode","exploit","explore","exploring","exponent","exporter","exposable","expose","exposure","express","expulsion","exquisite","extended","extending","extent","extenuate","exterior","external","extinct","extortion","extradite","extras","extrovert","extrude","extruding","exuberant","fable","fabric","fabulous","facebook","facecloth","facedown","faceless","facelift","faceplate","faceted","facial","facility","facing","facsimile","faction","factoid","factor","factsheet","factual","faculty","fade","fading","failing","falcon","fall","false","falsify","fame","familiar","family","famine","famished","fanatic","fancied","fanciness","fancy","fanfare","fang","fanning","fantasize","fantastic","fantasy","fascism","fastball","faster","fasting","fastness","faucet","favorable","favorably","favored","favoring","favorite","fax","feast","federal","fedora","feeble","feed","feel","feisty","feline","felt-tip","feminine","feminism","feminist","feminize","femur","fence","fencing","fender","ferment","fernlike","ferocious","ferocity","ferret","ferris","ferry","fervor","fester","festival","festive","festivity","fetal","fetch","fever","fiber","fiction","fiddle","fiddling","fidelity","fidgeting","fidgety","fifteen","fifth","fiftieth","fifty","figment","figure","figurine","filing","filled","filler","filling","film","filter","filth","filtrate","finale","finalist","finalize","finally","finance","financial","finch","fineness","finer","finicky","finished","finisher","finishing","finite","finless","finlike","fiscally","fit","five","flaccid","flagman","flagpole","flagship","flagstick","flagstone","flail","flakily","flaky","flame","flammable","flanked","flanking","flannels","flap","flaring","flashback","flashbulb","flashcard","flashily","flashing","flashy","flask","flatbed","flatfoot","flatly","flatness","flatten","flattered","flatterer","flattery","flattop","flatware","flatworm","flavored","flavorful","flavoring","flaxseed","fled","fleshed","fleshy","flick","flier","flight","flinch","fling","flint","flip","flirt","float","flock","flogging","flop","floral","florist","floss","flounder","flyable","flyaway","flyer","flying","flyover","flypaper","foam","foe","fog","foil","folic","folk","follicle","follow","fondling","fondly","fondness","fondue","font","food","fool","footage","football","footbath","footboard","footer","footgear","foothill","foothold","footing","footless","footman","footnote","footpad","footpath","footprint","footrest","footsie","footsore","footwear","footwork","fossil","foster","founder","founding","fountain","fox","foyer","fraction","fracture","fragile","fragility","fragment","fragrance","fragrant","frail","frame","framing","frantic","fraternal","frayed","fraying","frays","freckled","freckles","freebase","freebee","freebie","freedom","freefall","freehand","freeing","freeload","freely","freemason","freeness","freestyle","freeware","freeway","freewill","freezable","freezing","freight","french","frenzied","frenzy","frequency","frequent","fresh","fretful","fretted","friction","friday","fridge","fried","friend","frighten","frightful","frigidity","frigidly","frill","fringe","frisbee","frisk","fritter","frivolous","frolic","from","front","frostbite","frosted","frostily","frosting","frostlike","frosty","froth","frown","frozen","fructose","frugality","frugally","fruit","frustrate","frying","gab","gaffe","gag","gainfully","gaining","gains","gala","gallantly","galleria","gallery","galley","gallon","gallows","gallstone","galore","galvanize","gambling","game","gaming","gamma","gander","gangly","gangrene","gangway","gap","garage","garbage","garden","gargle","garland","garlic","garment","garnet","garnish","garter","gas","gatherer","gathering","gating","gauging","gauntlet","gauze","gave","gawk","gazing","gear","gecko","geek","geiger","gem","gender","generic","generous","genetics","genre","gentile","gentleman","gently","gents","geography","geologic","geologist","geology","geometric","geometry","geranium","gerbil","geriatric","germicide","germinate","germless","germproof","gestate","gestation","gesture","getaway","getting","getup","giant","gibberish","giblet","giddily","giddiness","giddy","gift","gigabyte","gigahertz","gigantic","giggle","giggling","giggly","gigolo","gilled","gills","gimmick","girdle","giveaway","given","giver","giving","gizmo","gizzard","glacial","glacier","glade","gladiator","gladly","glamorous","glamour","glance","glancing","glandular","glare","glaring","glass","glaucoma","glazing","gleaming","gleeful","glider","gliding","glimmer","glimpse","glisten","glitch","glitter","glitzy","gloater","gloating","gloomily","gloomy","glorified","glorifier","glorify","glorious","glory","gloss","glove","glowing","glowworm","glucose","glue","gluten","glutinous","glutton","gnarly","gnat","goal","goatskin","goes","goggles","going","goldfish","goldmine","goldsmith","golf","goliath","gonad","gondola","gone","gong","good","gooey","goofball","goofiness","goofy","google","goon","gopher","gore","gorged","gorgeous","gory","gosling","gossip","gothic","gotten","gout","gown","grab","graceful","graceless","gracious","gradation","graded","grader","gradient","grading","gradually","graduate","graffiti","grafted","grafting","grain","granddad","grandkid","grandly","grandma","grandpa","grandson","granite","granny","granola","grant","granular","grape","graph","grapple","grappling","grasp","grass","gratified","gratify","grating","gratitude","gratuity","gravel","graveness","graves","graveyard","gravitate","gravity","gravy","gray","grazing","greasily","greedily","greedless","greedy","green","greeter","greeting","grew","greyhound","grid","grief","grievance","grieving","grievous","grill","grimace","grimacing","grime","griminess","grimy","grinch","grinning","grip","gristle","grit","groggily","groggy","groin","groom","groove","grooving","groovy","grope","ground","grouped","grout","grove","grower","growing","growl","grub","grudge","grudging","grueling","gruffly","grumble","grumbling","grumbly","grumpily","grunge","grunt","guacamole","guidable","guidance","guide","guiding","guileless","guise","gulf","gullible","gully","gulp","gumball","gumdrop","gumminess","gumming","gummy","gurgle","gurgling","guru","gush","gusto","gusty","gutless","guts","gutter","guy","guzzler","gyration","habitable","habitant","habitat","habitual","hacked","hacker","hacking","hacksaw","had","haggler","haiku","half","halogen","halt","halved","halves","hamburger","hamlet","hammock","hamper","hamster","hamstring","handbag","handball","handbook","handbrake","handcart","handclap","handclasp","handcraft","handcuff","handed","handful","handgrip","handgun","handheld","handiness","handiwork","handlebar","handled","handler","handling","handmade","handoff","handpick","handprint","handrail","handsaw","handset","handsfree","handshake","handstand","handwash","handwork","handwoven","handwrite","handyman","hangnail","hangout","hangover","hangup","hankering","hankie","hanky","haphazard","happening","happier","happiest","happily","happiness","happy","harbor","hardcopy","hardcore","hardcover","harddisk","hardened","hardener","hardening","hardhat","hardhead","hardiness","hardly","hardness","hardship","hardware","hardwired","hardwood","hardy","harmful","harmless","harmonica","harmonics","harmonize","harmony","harness","harpist","harsh","harvest","hash","hassle","haste","hastily","hastiness","hasty","hatbox","hatchback","hatchery","hatchet","hatching","hatchling","hate","hatless","hatred","haunt","haven","hazard","hazelnut","hazily","haziness","hazing","hazy","headache","headband","headboard","headcount","headdress","headed","header","headfirst","headgear","heading","headlamp","headless","headlock","headphone","headpiece","headrest","headroom","headscarf","headset","headsman","headstand","headstone","headway","headwear","heap","heat","heave","heavily","heaviness","heaving","hedge","hedging","heftiness","hefty","helium","helmet","helper","helpful","helping","helpless","helpline","hemlock","hemstitch","hence","henchman","henna","herald","herbal","herbicide","herbs","heritage","hermit","heroics","heroism","herring","herself","hertz","hesitancy","hesitant","hesitate","hexagon","hexagram","hubcap","huddle","huddling","huff","hug","hula","hulk","hull","human","humble","humbling","humbly","humid","humiliate","humility","humming","hummus","humongous","humorist","humorless","humorous","humpback","humped","humvee","hunchback","hundredth","hunger","hungrily","hungry","hunk","hunter","hunting","huntress","huntsman","hurdle","hurled","hurler","hurling","hurray","hurricane","hurried","hurry","hurt","husband","hush","husked","huskiness","hut","hybrid","hydrant","hydrated","hydration","hydrogen","hydroxide","hyperlink","hypertext","hyphen","hypnoses","hypnosis","hypnotic","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","ice","iciness","icing","icky","icon","icy","idealism","idealist","idealize","ideally","idealness","identical","identify","identity","ideology","idiocy","idiom","idly","igloo","ignition","ignore","iguana","illicitly","illusion","illusive","image","imaginary","imagines","imaging","imbecile","imitate","imitation","immature","immerse","immersion","imminent","immobile","immodest","immorally","immortal","immovable","immovably","immunity","immunize","impaired","impale","impart","impatient","impeach","impeding","impending","imperfect","imperial","impish","implant","implement","implicate","implicit","implode","implosion","implosive","imply","impolite","important","importer","impose","imposing","impotence","impotency","impotent","impound","imprecise","imprint","imprison","impromptu","improper","improve","improving","improvise","imprudent","impulse","impulsive","impure","impurity","iodine","iodize","ion","ipad","iphone","ipod","irate","irk","iron","irregular","irrigate","irritable","irritably","irritant","irritate","islamic","islamist","isolated","isolating","isolation","isotope","issue","issuing","italicize","italics","item","itinerary","itunes","ivory","ivy","jab","jackal","jacket","jackknife","jackpot","jailbird","jailbreak","jailer","jailhouse","jalapeno","jam","janitor","january","jargon","jarring","jasmine","jaundice","jaunt","java","jawed","jawless","jawline","jaws","jaybird","jaywalker","jazz","jeep","jeeringly","jellied","jelly","jersey","jester","jet","jiffy","jigsaw","jimmy","jingle","jingling","jinx","jitters","jittery","job","jockey","jockstrap","jogger","jogging","john","joining","jokester","jokingly","jolliness","jolly","jolt","jot","jovial","joyfully","joylessly","joyous","joyride","joystick","jubilance","jubilant","judge","judgingly","judicial","judiciary","judo","juggle","juggling","jugular","juice","juiciness","juicy","jujitsu","jukebox","july","jumble","jumbo","jump","junction","juncture","june","junior","juniper","junkie","junkman","junkyard","jurist","juror","jury","justice","justifier","justify","justly","justness","juvenile","kabob","kangaroo","karaoke","karate","karma","kebab","keenly","keenness","keep","keg","kelp","kennel","kept","kerchief","kerosene","kettle","kick","kiln","kilobyte","kilogram","kilometer","kilowatt","kilt","kimono","kindle","kindling","kindly","kindness","kindred","kinetic","kinfolk","king","kinship","kinsman","kinswoman","kissable","kisser","kissing","kitchen","kite","kitten","kitty","kiwi","kleenex","knapsack","knee","knelt","knickers","knoll","koala","kooky","kosher","krypton","kudos","kung","labored","laborer","laboring","laborious","labrador","ladder","ladies","ladle","ladybug","ladylike","lagged","lagging","lagoon","lair","lake","lance","landed","landfall","landfill","landing","landlady","landless","landline","landlord","landmark","landmass","landmine","landowner","landscape","landside","landslide","language","lankiness","lanky","lantern","lapdog","lapel","lapped","lapping","laptop","lard","large","lark","lash","lasso","last","latch","late","lather","latitude","latrine","latter","latticed","launch","launder","laundry","laurel","lavender","lavish","laxative","lazily","laziness","lazy","lecturer","left","legacy","legal","legend","legged","leggings","legible","legibly","legislate","lego","legroom","legume","legwarmer","legwork","lemon","lend","length","lens","lent","leotard","lesser","letdown","lethargic","lethargy","letter","lettuce","level","leverage","levers","levitate","levitator","liability","liable","liberty","librarian","library","licking","licorice","lid","life","lifter","lifting","liftoff","ligament","likely","likeness","likewise","liking","lilac","lilly","lily","limb","limeade","limelight","limes","limit","limping","limpness","line","lingo","linguini","linguist","lining","linked","linoleum","linseed","lint","lion","lip","liquefy","liqueur","liquid","lisp","list","litigate","litigator","litmus","litter","little","livable","lived","lively","liver","livestock","lividly","living","lizard","lubricant","lubricate","lucid","luckily","luckiness","luckless","lucrative","ludicrous","lugged","lukewarm","lullaby","lumber","luminance","luminous","lumpiness","lumping","lumpish","lunacy","lunar","lunchbox","luncheon","lunchroom","lunchtime","lung","lurch","lure","luridness","lurk","lushly","lushness","luster","lustfully","lustily","lustiness","lustrous","lusty","luxurious","luxury","lying","lyrically","lyricism","lyricist","lyrics","macarena","macaroni","macaw","mace","machine","machinist","magazine","magenta","maggot","magical","magician","magma","magnesium","magnetic","magnetism","magnetize","magnifier","magnify","magnitude","magnolia","mahogany","maimed","majestic","majesty","majorette","majority","makeover","maker","makeshift","making","malformed","malt","mama","mammal","mammary","mammogram","manager","managing","manatee","mandarin","mandate","mandatory","mandolin","manger","mangle","mango","mangy","manhandle","manhole","manhood","manhunt","manicotti","manicure","manifesto","manila","mankind","manlike","manliness","manly","manmade","manned","mannish","manor","manpower","mantis","mantra","manual","many","map","marathon","marauding","marbled","marbles","marbling","march","mardi","margarine","margarita","margin","marigold","marina","marine","marital","maritime","marlin","marmalade","maroon","married","marrow","marry","marshland","marshy","marsupial","marvelous","marxism","mascot","masculine","mashed","mashing","massager","masses","massive","mastiff","matador","matchbook","matchbox","matcher","matching","matchless","material","maternal","maternity","math","mating","matriarch","matrimony","matrix","matron","matted","matter","maturely","maturing","maturity","mauve","maverick","maximize","maximum","maybe","mayday","mayflower","moaner","moaning","mobile","mobility","mobilize","mobster","mocha","mocker","mockup","modified","modify","modular","modulator","module","moisten","moistness","moisture","molar","molasses","mold","molecular","molecule","molehill","mollusk","mom","monastery","monday","monetary","monetize","moneybags","moneyless","moneywise","mongoose","mongrel","monitor","monkhood","monogamy","monogram","monologue","monopoly","monorail","monotone","monotype","monoxide","monsieur","monsoon","monstrous","monthly","monument","moocher","moodiness","moody","mooing","moonbeam","mooned","moonlight","moonlike","moonlit","moonrise","moonscape","moonshine","moonstone","moonwalk","mop","morale","morality","morally","morbidity","morbidly","morphine","morphing","morse","mortality","mortally","mortician","mortified","mortify","mortuary","mosaic","mossy","most","mothball","mothproof","motion","motivate","motivator","motive","motocross","motor","motto","mountable","mountain","mounted","mounting","mourner","mournful","mouse","mousiness","moustache","mousy","mouth","movable","move","movie","moving","mower","mowing","much","muck","mud","mug","mulberry","mulch","mule","mulled","mullets","multiple","multiply","multitask","multitude","mumble","mumbling","mumbo","mummified","mummify","mummy","mumps","munchkin","mundane","municipal","muppet","mural","murkiness","murky","murmuring","muscular","museum","mushily","mushiness","mushroom","mushy","music","musket","muskiness","musky","mustang","mustard","muster","mustiness","musty","mutable","mutate","mutation","mute","mutilated","mutilator","mutiny","mutt","mutual","muzzle","myself","myspace","mystified","mystify","myth","nacho","nag","nail","name","naming","nanny","nanometer","nape","napkin","napped","napping","nappy","narrow","nastily","nastiness","national","native","nativity","natural","nature","naturist","nautical","navigate","navigator","navy","nearby","nearest","nearly","nearness","neatly","neatness","nebula","nebulizer","nectar","negate","negation","negative","neglector","negligee","negligent","negotiate","nemeses","nemesis","neon","nephew","nerd","nervous","nervy","nest","net","neurology","neuron","neurosis","neurotic","neuter","neutron","never","next","nibble","nickname","nicotine","niece","nifty","nimble","nimbly","nineteen","ninetieth","ninja","nintendo","ninth","nuclear","nuclei","nucleus","nugget","nullify","number","numbing","numbly","numbness","numeral","numerate","numerator","numeric","numerous","nuptials","nursery","nursing","nurture","nutcase","nutlike","nutmeg","nutrient","nutshell","nuttiness","nutty","nuzzle","nylon","oaf","oak","oasis","oat","obedience","obedient","obituary","object","obligate","obliged","oblivion","oblivious","oblong","obnoxious","oboe","obscure","obscurity","observant","observer","observing","obsessed","obsession","obsessive","obsolete","obstacle","obstinate","obstruct","obtain","obtrusive","obtuse","obvious","occultist","occupancy","occupant","occupier","occupy","ocean","ocelot","octagon","octane","october","octopus","ogle","oil","oink","ointment","okay","old","olive","olympics","omega","omen","ominous","omission","omit","omnivore","onboard","oncoming","ongoing","onion","online","onlooker","only","onscreen","onset","onshore","onslaught","onstage","onto","onward","onyx","oops","ooze","oozy","opacity","opal","open","operable","operate","operating","operation","operative","operator","opium","opossum","opponent","oppose","opposing","opposite","oppressed","oppressor","opt","opulently","osmosis","other","otter","ouch","ought","ounce","outage","outback","outbid","outboard","outbound","outbreak","outburst","outcast","outclass","outcome","outdated","outdoors","outer","outfield","outfit","outflank","outgoing","outgrow","outhouse","outing","outlast","outlet","outline","outlook","outlying","outmatch","outmost","outnumber","outplayed","outpost","outpour","output","outrage","outrank","outreach","outright","outscore","outsell","outshine","outshoot","outsider","outskirts","outsmart","outsource","outspoken","outtakes","outthink","outward","outweigh","outwit","oval","ovary","oven","overact","overall","overarch","overbid","overbill","overbite","overblown","overboard","overbook","overbuilt","overcast","overcoat","overcome","overcook","overcrowd","overdraft","overdrawn","overdress","overdrive","overdue","overeager","overeater","overexert","overfed","overfeed","overfill","overflow","overfull","overgrown","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overjoyed","overkill","overlabor","overlaid","overlap","overlay","overload","overlook","overlord","overlying","overnight","overpass","overpay","overplant","overplay","overpower","overprice","overrate","overreach","overreact","override","overripe","overrule","overrun","overshoot","overshot","oversight","oversized","oversleep","oversold","overspend","overstate","overstay","overstep","overstock","overstuff","oversweet","overtake","overthrow","overtime","overtly","overtone","overture","overturn","overuse","overvalue","overview","overwrite","owl","oxford","oxidant","oxidation","oxidize","oxidizing","oxygen","oxymoron","oyster","ozone","paced","pacemaker","pacific","pacifier","pacifism","pacifist","pacify","padded","padding","paddle","paddling","padlock","pagan","pager","paging","pajamas","palace","palatable","palm","palpable","palpitate","paltry","pampered","pamperer","pampers","pamphlet","panama","pancake","pancreas","panda","pandemic","pang","panhandle","panic","panning","panorama","panoramic","panther","pantomime","pantry","pants","pantyhose","paparazzi","papaya","paper","paprika","papyrus","parabola","parachute","parade","paradox","paragraph","parakeet","paralegal","paralyses","paralysis","paralyze","paramedic","parameter","paramount","parasail","parasite","parasitic","parcel","parched","parchment","pardon","parish","parka","parking","parkway","parlor","parmesan","parole","parrot","parsley","parsnip","partake","parted","parting","partition","partly","partner","partridge","party","passable","passably","passage","passcode","passenger","passerby","passing","passion","passive","passivism","passover","passport","password","pasta","pasted","pastel","pastime","pastor","pastrami","pasture","pasty","patchwork","patchy","paternal","paternity","path","patience","patient","patio","patriarch","patriot","patrol","patronage","patronize","pauper","pavement","paver","pavestone","pavilion","paving","pawing","payable","payback","paycheck","payday","payee","payer","paying","payment","payphone","payroll","pebble","pebbly","pecan","pectin","peculiar","peddling","pediatric","pedicure","pedigree","pedometer","pegboard","pelican","pellet","pelt","pelvis","penalize","penalty","pencil","pendant","pending","penholder","penknife","pennant","penniless","penny","penpal","pension","pentagon","pentagram","pep","perceive","percent","perch","percolate","perennial","perfected","perfectly","perfume","periscope","perish","perjurer","perjury","perkiness","perky","perm","peroxide","perpetual","perplexed","persecute","persevere","persuaded","persuader","pesky","peso","pessimism","pessimist","pester","pesticide","petal","petite","petition","petri","petroleum","petted","petticoat","pettiness","petty","petunia","phantom","phobia","phoenix","phonebook","phoney","phonics","phoniness","phony","phosphate","photo","phrase","phrasing","placard","placate","placidly","plank","planner","plant","plasma","plaster","plastic","plated","platform","plating","platinum","platonic","platter","platypus","plausible","plausibly","playable","playback","player","playful","playgroup","playhouse","playing","playlist","playmaker","playmate","playoff","playpen","playroom","playset","plaything","playtime","plaza","pleading","pleat","pledge","plentiful","plenty","plethora","plexiglas","pliable","plod","plop","plot","plow","ploy","pluck","plug","plunder","plunging","plural","plus","plutonium","plywood","poach","pod","poem","poet","pogo","pointed","pointer","pointing","pointless","pointy","poise","poison","poker","poking","polar","police","policy","polio","polish","politely","polka","polo","polyester","polygon","polygraph","polymer","poncho","pond","pony","popcorn","pope","poplar","popper","poppy","popsicle","populace","popular","populate","porcupine","pork","porous","porridge","portable","portal","portfolio","porthole","portion","portly","portside","poser","posh","posing","possible","possibly","possum","postage","postal","postbox","postcard","posted","poster","posting","postnasal","posture","postwar","pouch","pounce","pouncing","pound","pouring","pout","powdered","powdering","powdery","power","powwow","pox","praising","prance","prancing","pranker","prankish","prankster","prayer","praying","preacher","preaching","preachy","preamble","precinct","precise","precision","precook","precut","predator","predefine","predict","preface","prefix","preflight","preformed","pregame","pregnancy","pregnant","preheated","prelaunch","prelaw","prelude","premiere","premises","premium","prenatal","preoccupy","preorder","prepaid","prepay","preplan","preppy","preschool","prescribe","preseason","preset","preshow","president","presoak","press","presume","presuming","preteen","pretended","pretender","pretense","pretext","pretty","pretzel","prevail","prevalent","prevent","preview","previous","prewar","prewashed","prideful","pried","primal","primarily","primary","primate","primer","primp","princess","print","prior","prism","prison","prissy","pristine","privacy","private","privatize","prize","proactive","probable","probably","probation","probe","probing","probiotic","problem","procedure","process","proclaim","procreate","procurer","prodigal","prodigy","produce","product","profane","profanity","professed","professor","profile","profound","profusely","progeny","prognosis","program","progress","projector","prologue","prolonged","promenade","prominent","promoter","promotion","prompter","promptly","prone","prong","pronounce","pronto","proofing","proofread","proofs","propeller","properly","property","proponent","proposal","propose","props","prorate","protector","protegee","proton","prototype","protozoan","protract","protrude","proud","provable","proved","proven","provided","provider","providing","province","proving","provoke","provoking","provolone","prowess","prowler","prowling","proximity","proxy","prozac","prude","prudishly","prune","pruning","pry","psychic","public","publisher","pucker","pueblo","pug","pull","pulmonary","pulp","pulsate","pulse","pulverize","puma","pumice","pummel","punch","punctual","punctuate","punctured","pungent","punisher","punk","pupil","puppet","puppy","purchase","pureblood","purebred","purely","pureness","purgatory","purge","purging","purifier","purify","purist","puritan","purity","purple","purplish","purposely","purr","purse","pursuable","pursuant","pursuit","purveyor","pushcart","pushchair","pusher","pushiness","pushing","pushover","pushpin","pushup","pushy","putdown","putt","puzzle","puzzling","pyramid","pyromania","python","quack","quadrant","quail","quaintly","quake","quaking","qualified","qualifier","qualify","quality","qualm","quantum","quarrel","quarry","quartered","quarterly","quarters","quartet","quench","query","quicken","quickly","quickness","quicksand","quickstep","quiet","quill","quilt","quintet","quintuple","quirk","quit","quiver","quizzical","quotable","quotation","quote","rabid","race","racing","racism","rack","racoon","radar","radial","radiance","radiantly","radiated","radiation","radiator","radio","radish","raffle","raft","rage","ragged","raging","ragweed","raider","railcar","railing","railroad","railway","raisin","rake","raking","rally","ramble","rambling","ramp","ramrod","ranch","rancidity","random","ranged","ranger","ranging","ranked","ranking","ransack","ranting","rants","rare","rarity","rascal","rash","rasping","ravage","raven","ravine","raving","ravioli","ravishing","reabsorb","reach","reacquire","reaction","reactive","reactor","reaffirm","ream","reanalyze","reappear","reapply","reappoint","reapprove","rearrange","rearview","reason","reassign","reassure","reattach","reawake","rebalance","rebate","rebel","rebirth","reboot","reborn","rebound","rebuff","rebuild","rebuilt","reburial","rebuttal","recall","recant","recapture","recast","recede","recent","recess","recharger","recipient","recital","recite","reckless","reclaim","recliner","reclining","recluse","reclusive","recognize","recoil","recollect","recolor","reconcile","reconfirm","reconvene","recopy","record","recount","recoup","recovery","recreate","rectal","rectangle","rectified","rectify","recycled","recycler","recycling","reemerge","reenact","reenter","reentry","reexamine","referable","referee","reference","refill","refinance","refined","refinery","refining","refinish","reflected","reflector","reflex","reflux","refocus","refold","reforest","reformat","reformed","reformer","reformist","refract","refrain","refreeze","refresh","refried","refueling","refund","refurbish","refurnish","refusal","refuse","refusing","refutable","refute","regain","regalia","regally","reggae","regime","region","register","registrar","registry","regress","regretful","regroup","regular","regulate","regulator","rehab","reheat","rehire","rehydrate","reimburse","reissue","reiterate","rejoice","rejoicing","rejoin","rekindle","relapse","relapsing","relatable","related","relation","relative","relax","relay","relearn","release","relenting","reliable","reliably","reliance","reliant","relic","relieve","relieving","relight","relish","relive","reload","relocate","relock","reluctant","rely","remake","remark","remarry","rematch","remedial","remedy","remember","reminder","remindful","remission","remix","remnant","remodeler","remold","remorse","remote","removable","removal","removed","remover","removing","rename","renderer","rendering","rendition","renegade","renewable","renewably","renewal","renewed","renounce","renovate","renovator","rentable","rental","rented","renter","reoccupy","reoccur","reopen","reorder","repackage","repacking","repaint","repair","repave","repaying","repayment","repeal","repeated","repeater","repent","rephrase","replace","replay","replica","reply","reporter","repose","repossess","repost","repressed","reprimand","reprint","reprise","reproach","reprocess","reproduce","reprogram","reps","reptile","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","request","require","requisite","reroute","rerun","resale","resample","rescuer","reseal","research","reselect","reseller","resemble","resend","resent","reset","reshape","reshoot","reshuffle","residence","residency","resident","residual","residue","resigned","resilient","resistant","resisting","resize","resolute","resolved","resonant","resonate","resort","resource","respect","resubmit","result","resume","resupply","resurface","resurrect","retail","retainer","retaining","retake","retaliate","retention","rethink","retinal","retired","retiree","retiring","retold","retool","retorted","retouch","retrace","retract","retrain","retread","retreat","retrial","retrieval","retriever","retry","return","retying","retype","reunion","reunite","reusable","reuse","reveal","reveler","revenge","revenue","reverb","revered","reverence","reverend","reversal","reverse","reversing","reversion","revert","revisable","revise","revision","revisit","revivable","revival","reviver","reviving","revocable","revoke","revolt","revolver","revolving","reward","rewash","rewind","rewire","reword","rework","rewrap","rewrite","rhyme","ribbon","ribcage","rice","riches","richly","richness","rickety","ricotta","riddance","ridden","ride","riding","rifling","rift","rigging","rigid","rigor","rimless","rimmed","rind","rink","rinse","rinsing","riot","ripcord","ripeness","ripening","ripping","ripple","rippling","riptide","rise","rising","risk","risotto","ritalin","ritzy","rival","riverbank","riverbed","riverboat","riverside","riveter","riveting","roamer","roaming","roast","robbing","robe","robin","robotics","robust","rockband","rocker","rocket","rockfish","rockiness","rocking","rocklike","rockslide","rockstar","rocky","rogue","roman","romp","rope","roping","roster","rosy","rotten","rotting","rotunda","roulette","rounding","roundish","roundness","roundup","roundworm","routine","routing","rover","roving","royal","rubbed","rubber","rubbing","rubble","rubdown","ruby","ruckus","rudder","rug","ruined","rule","rumble","rumbling","rummage","rumor","runaround","rundown","runner","running","runny","runt","runway","rupture","rural","ruse","rush","rust","rut","sabbath","sabotage","sacrament","sacred","sacrifice","sadden","saddlebag","saddled","saddling","sadly","sadness","safari","safeguard","safehouse","safely","safeness","saffron","saga","sage","sagging","saggy","said","saint","sake","salad","salami","salaried","salary","saline","salon","saloon","salsa","salt","salutary","salute","salvage","salvaging","salvation","same","sample","sampling","sanction","sanctity","sanctuary","sandal","sandbag","sandbank","sandbar","sandblast","sandbox","sanded","sandfish","sanding","sandlot","sandpaper","sandpit","sandstone","sandstorm","sandworm","sandy","sanitary","sanitizer","sank","santa","sapling","sappiness","sappy","sarcasm","sarcastic","sardine","sash","sasquatch","sassy","satchel","satiable","satin","satirical","satisfied","satisfy","saturate","saturday","sauciness","saucy","sauna","savage","savanna","saved","savings","savior","savor","saxophone","say","scabbed","scabby","scalded","scalding","scale","scaling","scallion","scallop","scalping","scam","scandal","scanner","scanning","scant","scapegoat","scarce","scarcity","scarecrow","scared","scarf","scarily","scariness","scarring","scary","scavenger","scenic","schedule","schematic","scheme","scheming","schilling","schnapps","scholar","science","scientist","scion","scoff","scolding","scone","scoop","scooter","scope","scorch","scorebook","scorecard","scored","scoreless","scorer","scoring","scorn","scorpion","scotch","scoundrel","scoured","scouring","scouting","scouts","scowling","scrabble","scraggly","scrambled","scrambler","scrap","scratch","scrawny","screen","scribble","scribe","scribing","scrimmage","script","scroll","scrooge","scrounger","scrubbed","scrubber","scruffy","scrunch","scrutiny","scuba","scuff","sculptor","sculpture","scurvy","scuttle","secluded","secluding","seclusion","second","secrecy","secret","sectional","sector","secular","securely","security","sedan","sedate","sedation","sedative","sediment","seduce","seducing","segment","seismic","seizing","seldom","selected","selection","selective","selector","self","seltzer","semantic","semester","semicolon","semifinal","seminar","semisoft","semisweet","senate","senator","send","senior","senorita","sensation","sensitive","sensitize","sensually","sensuous","sepia","september","septic","septum","sequel","sequence","sequester","series","sermon","serotonin","serpent","serrated","serve","service","serving","sesame","sessions","setback","setting","settle","settling","setup","sevenfold","seventeen","seventh","seventy","severity","shabby","shack","shaded","shadily","shadiness","shading","shadow","shady","shaft","shakable","shakily","shakiness","shaking","shaky","shale","shallot","shallow","shame","shampoo","shamrock","shank","shanty","shape","shaping","share","sharpener","sharper","sharpie","sharply","sharpness","shawl","sheath","shed","sheep","sheet","shelf","shell","shelter","shelve","shelving","sherry","shield","shifter","shifting","shiftless","shifty","shimmer","shimmy","shindig","shine","shingle","shininess","shining","shiny","ship","shirt","shivering","shock","shone","shoplift","shopper","shopping","shoptalk","shore","shortage","shortcake","shortcut","shorten","shorter","shorthand","shortlist","shortly","shortness","shorts","shortwave","shorty","shout","shove","showbiz","showcase","showdown","shower","showgirl","showing","showman","shown","showoff","showpiece","showplace","showroom","showy","shrank","shrapnel","shredder","shredding","shrewdly","shriek","shrill","shrimp","shrine","shrink","shrivel","shrouded","shrubbery","shrubs","shrug","shrunk","shucking","shudder","shuffle","shuffling","shun","shush","shut","shy","siamese","siberian","sibling","siding","sierra","siesta","sift","sighing","silenced","silencer","silent","silica","silicon","silk","silliness","silly","silo","silt","silver","similarly","simile","simmering","simple","simplify","simply","sincere","sincerity","singer","singing","single","singular","sinister","sinless","sinner","sinuous","sip","siren","sister","sitcom","sitter","sitting","situated","situation","sixfold","sixteen","sixth","sixties","sixtieth","sixtyfold","sizable","sizably","size","sizing","sizzle","sizzling","skater","skating","skedaddle","skeletal","skeleton","skeptic","sketch","skewed","skewer","skid","skied","skier","skies","skiing","skilled","skillet","skillful","skimmed","skimmer","skimming","skimpily","skincare","skinhead","skinless","skinning","skinny","skintight","skipper","skipping","skirmish","skirt","skittle","skydiver","skylight","skyline","skype","skyrocket","skyward","slab","slacked","slacker","slacking","slackness","slacks","slain","slam","slander","slang","slapping","slapstick","slashed","slashing","slate","slather","slaw","sled","sleek","sleep","sleet","sleeve","slept","sliceable","sliced","slicer","slicing","slick","slider","slideshow","sliding","slighted","slighting","slightly","slimness","slimy","slinging","slingshot","slinky","slip","slit","sliver","slobbery","slogan","sloped","sloping","sloppily","sloppy","slot","slouching","slouchy","sludge","slug","slum","slurp","slush","sly","small","smartly","smartness","smasher","smashing","smashup","smell","smelting","smile","smilingly","smirk","smite","smith","smitten","smock","smog","smoked","smokeless","smokiness","smoking","smoky","smolder","smooth","smother","smudge","smudgy","smuggler","smuggling","smugly","smugness","snack","snagged","snaking","snap","snare","snarl","snazzy","sneak","sneer","sneeze","sneezing","snide","sniff","snippet","snipping","snitch","snooper","snooze","snore","snoring","snorkel","snort","snout","snowbird","snowboard","snowbound","snowcap","snowdrift","snowdrop","snowfall","snowfield","snowflake","snowiness","snowless","snowman","snowplow","snowshoe","snowstorm","snowsuit","snowy","snub","snuff","snuggle","snugly","snugness","speak","spearfish","spearhead","spearman","spearmint","species","specimen","specked","speckled","specks","spectacle","spectator","spectrum","speculate","speech","speed","spellbind","speller","spelling","spendable","spender","spending","spent","spew","sphere","spherical","sphinx","spider","spied","spiffy","spill","spilt","spinach","spinal","spindle","spinner","spinning","spinout","spinster","spiny","spiral","spirited","spiritism","spirits","spiritual","splashed","splashing","splashy","splatter","spleen","splendid","splendor","splice","splicing","splinter","splotchy","splurge","spoilage","spoiled","spoiler","spoiling","spoils","spoken","spokesman","sponge","spongy","sponsor","spoof","spookily","spooky","spool","spoon","spore","sporting","sports","sporty","spotless","spotlight","spotted","spotter","spotting","spotty","spousal","spouse","spout","sprain","sprang","sprawl","spray","spree","sprig","spring","sprinkled","sprinkler","sprint","sprite","sprout","spruce","sprung","spry","spud","spur","sputter","spyglass","squabble","squad","squall","squander","squash","squatted","squatter","squatting","squeak","squealer","squealing","squeamish","squeegee","squeeze","squeezing","squid","squiggle","squiggly","squint","squire","squirt","squishier","squishy","stability","stabilize","stable","stack","stadium","staff","stage","staging","stagnant","stagnate","stainable","stained","staining","stainless","stalemate","staleness","stalling","stallion","stamina","stammer","stamp","stand","stank","staple","stapling","starboard","starch","stardom","stardust","starfish","stargazer","staring","stark","starless","starlet","starlight","starlit","starring","starry","starship","starter","starting","startle","startling","startup","starved","starving","stash","state","static","statistic","statue","stature","status","statute","statutory","staunch","stays","steadfast","steadier","steadily","steadying","steam","steed","steep","steerable","steering","steersman","stegosaur","stellar","stem","stench","stencil","step","stereo","sterile","sterility","sterilize","sterling","sternness","sternum","stew","stick","stiffen","stiffly","stiffness","stifle","stifling","stillness","stilt","stimulant","stimulate","stimuli","stimulus","stinger","stingily","stinging","stingray","stingy","stinking","stinky","stipend","stipulate","stir","stitch","stock","stoic","stoke","stole","stomp","stonewall","stoneware","stonework","stoning","stony","stood","stooge","stool","stoop","stoplight","stoppable","stoppage","stopped","stopper","stopping","stopwatch","storable","storage","storeroom","storewide","storm","stout","stove","stowaway","stowing","straddle","straggler","strained","strainer","straining","strangely","stranger","strangle","strategic","strategy","stratus","straw","stray","streak","stream","street","strength","strenuous","strep","stress","stretch","strewn","stricken","strict","stride","strife","strike","striking","strive","striving","strobe","strode","stroller","strongbox","strongly","strongman","struck","structure","strudel","struggle","strum","strung","strut","stubbed","stubble","stubbly","stubborn","stucco","stuck","student","studied","studio","study","stuffed","stuffing","stuffy","stumble","stumbling","stump","stung","stunned","stunner","stunning","stunt","stupor","sturdily","sturdy","styling","stylishly","stylist","stylized","stylus","suave","subarctic","subatomic","subdivide","subdued","subduing","subfloor","subgroup","subheader","subject","sublease","sublet","sublevel","sublime","submarine","submerge","submersed","submitter","subpanel","subpar","subplot","subprime","subscribe","subscript","subsector","subside","subsiding","subsidize","subsidy","subsoil","subsonic","substance","subsystem","subtext","subtitle","subtly","subtotal","subtract","subtype","suburb","subway","subwoofer","subzero","succulent","such","suction","sudden","sudoku","suds","sufferer","suffering","suffice","suffix","suffocate","suffrage","sugar","suggest","suing","suitable","suitably","suitcase","suitor","sulfate","sulfide","sulfite","sulfur","sulk","sullen","sulphate","sulphuric","sultry","superbowl","superglue","superhero","superior","superjet","superman","supermom","supernova","supervise","supper","supplier","supply","support","supremacy","supreme","surcharge","surely","sureness","surface","surfacing","surfboard","surfer","surgery","surgical","surging","surname","surpass","surplus","surprise","surreal","surrender","surrogate","surround","survey","survival","survive","surviving","survivor","sushi","suspect","suspend","suspense","sustained","sustainer","swab","swaddling","swagger","swampland","swan","swapping","swarm","sway","swear","sweat","sweep","swell","swept","swerve","swifter","swiftly","swiftness","swimmable","swimmer","swimming","swimsuit","swimwear","swinger","swinging","swipe","swirl","switch","swivel","swizzle","swooned","swoop","swoosh","swore","sworn","swung","sycamore","sympathy","symphonic","symphony","symptom","synapse","syndrome","synergy","synopses","synopsis","synthesis","synthetic","syrup","system","t-shirt","tabasco","tabby","tableful","tables","tablet","tableware","tabloid","tackiness","tacking","tackle","tackling","tacky","taco","tactful","tactical","tactics","tactile","tactless","tadpole","taekwondo","tag","tainted","take","taking","talcum","talisman","tall","talon","tamale","tameness","tamer","tamper","tank","tanned","tannery","tanning","tantrum","tapeless","tapered","tapering","tapestry","tapioca","tapping","taps","tarantula","target","tarmac","tarnish","tarot","tartar","tartly","tartness","task","tassel","taste","tastiness","tasting","tasty","tattered","tattle","tattling","tattoo","taunt","tavern","thank","that","thaw","theater","theatrics","thee","theft","theme","theology","theorize","thermal","thermos","thesaurus","these","thesis","thespian","thicken","thicket","thickness","thieving","thievish","thigh","thimble","thing","think","thinly","thinner","thinness","thinning","thirstily","thirsting","thirsty","thirteen","thirty","thong","thorn","those","thousand","thrash","thread","threaten","threefold","thrift","thrill","thrive","thriving","throat","throbbing","throng","throttle","throwaway","throwback","thrower","throwing","thud","thumb","thumping","thursday","thus","thwarting","thyself","tiara","tibia","tidal","tidbit","tidiness","tidings","tidy","tiger","tighten","tightly","tightness","tightrope","tightwad","tigress","tile","tiling","till","tilt","timid","timing","timothy","tinderbox","tinfoil","tingle","tingling","tingly","tinker","tinkling","tinsel","tinsmith","tint","tinwork","tiny","tipoff","tipped","tipper","tipping","tiptoeing","tiptop","tiring","tissue","trace","tracing","track","traction","tractor","trade","trading","tradition","traffic","tragedy","trailing","trailside","train","traitor","trance","tranquil","transfer","transform","translate","transpire","transport","transpose","trapdoor","trapeze","trapezoid","trapped","trapper","trapping","traps","trash","travel","traverse","travesty","tray","treachery","treading","treadmill","treason","treat","treble","tree","trekker","tremble","trembling","tremor","trench","trend","trespass","triage","trial","triangle","tribesman","tribunal","tribune","tributary","tribute","triceps","trickery","trickily","tricking","trickle","trickster","tricky","tricolor","tricycle","trident","tried","trifle","trifocals","trillion","trilogy","trimester","trimmer","trimming","trimness","trinity","trio","tripod","tripping","triumph","trivial","trodden","trolling","trombone","trophy","tropical","tropics","trouble","troubling","trough","trousers","trout","trowel","truce","truck","truffle","trump","trunks","trustable","trustee","trustful","trusting","trustless","truth","try","tubby","tubeless","tubular","tucking","tuesday","tug","tuition","tulip","tumble","tumbling","tummy","turban","turbine","turbofan","turbojet","turbulent","turf","turkey","turmoil","turret","turtle","tusk","tutor","tutu","tux","tweak","tweed","tweet","tweezers","twelve","twentieth","twenty","twerp","twice","twiddle","twiddling","twig","twilight","twine","twins","twirl","twistable","twisted","twister","twisting","twisty","twitch","twitter","tycoon","tying","tyke","udder","ultimate","ultimatum","ultra","umbilical","umbrella","umpire","unabashed","unable","unadorned","unadvised","unafraid","unaired","unaligned","unaltered","unarmored","unashamed","unaudited","unawake","unaware","unbaked","unbalance","unbeaten","unbend","unbent","unbiased","unbitten","unblended","unblessed","unblock","unbolted","unbounded","unboxed","unbraided","unbridle","unbroken","unbuckled","unbundle","unburned","unbutton","uncanny","uncapped","uncaring","uncertain","unchain","unchanged","uncharted","uncheck","uncivil","unclad","unclaimed","unclamped","unclasp","uncle","unclip","uncloak","unclog","unclothed","uncoated","uncoiled","uncolored","uncombed","uncommon","uncooked","uncork","uncorrupt","uncounted","uncouple","uncouth","uncover","uncross","uncrown","uncrushed","uncured","uncurious","uncurled","uncut","undamaged","undated","undaunted","undead","undecided","undefined","underage","underarm","undercoat","undercook","undercut","underdog","underdone","underfed","underfeed","underfoot","undergo","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underpay","underrate","undertake","undertone","undertook","undertow","underuse","underwear","underwent","underwire","undesired","undiluted","undivided","undocked","undoing","undone","undrafted","undress","undrilled","undusted","undying","unearned","unearth","unease","uneasily","uneasy","uneatable","uneaten","unedited","unelected","unending","unengaged","unenvied","unequal","unethical","uneven","unexpired","unexposed","unfailing","unfair","unfasten","unfazed","unfeeling","unfiled","unfilled","unfitted","unfitting","unfixable","unfixed","unflawed","unfocused","unfold","unfounded","unframed","unfreeze","unfrosted","unfrozen","unfunded","unglazed","ungloved","unglue","ungodly","ungraded","ungreased","unguarded","unguided","unhappily","unhappy","unharmed","unhealthy","unheard","unhearing","unheated","unhelpful","unhidden","unhinge","unhitched","unholy","unhook","unicorn","unicycle","unified","unifier","uniformed","uniformly","unify","unimpeded","uninjured","uninstall","uninsured","uninvited","union","uniquely","unisexual","unison","unissued","unit","universal","universe","unjustly","unkempt","unkind","unknotted","unknowing","unknown","unlaced","unlatch","unlawful","unleaded","unlearned","unleash","unless","unleveled","unlighted","unlikable","unlimited","unlined","unlinked","unlisted","unlit","unlivable","unloaded","unloader","unlocked","unlocking","unlovable","unloved","unlovely","unloving","unluckily","unlucky","unmade","unmanaged","unmanned","unmapped","unmarked","unmasked","unmasking","unmatched","unmindful","unmixable","unmixed","unmolded","unmoral","unmovable","unmoved","unmoving","unnamable","unnamed","unnatural","unneeded","unnerve","unnerving","unnoticed","unopened","unopposed","unpack","unpadded","unpaid","unpainted","unpaired","unpaved","unpeeled","unpicked","unpiloted","unpinned","unplanned","unplanted","unpleased","unpledged","unplowed","unplug","unpopular","unproven","unquote","unranked","unrated","unraveled","unreached","unread","unreal","unreeling","unrefined","unrelated","unrented","unrest","unretired","unrevised","unrigged","unripe","unrivaled","unroasted","unrobed","unroll","unruffled","unruly","unrushed","unsaddle","unsafe","unsaid","unsalted","unsaved","unsavory","unscathed","unscented","unscrew","unsealed","unseated","unsecured","unseeing","unseemly","unseen","unselect","unselfish","unsent","unsettled","unshackle","unshaken","unshaved","unshaven","unsheathe","unshipped","unsightly","unsigned","unskilled","unsliced","unsmooth","unsnap","unsocial","unsoiled","unsold","unsolved","unsorted","unspoiled","unspoken","unstable","unstaffed","unstamped","unsteady","unsterile","unstirred","unstitch","unstopped","unstuck","unstuffed","unstylish","unsubtle","unsubtly","unsuited","unsure","unsworn","untagged","untainted","untaken","untamed","untangled","untapped","untaxed","unthawed","unthread","untidy","untie","until","untimed","untimely","untitled","untoasted","untold","untouched","untracked","untrained","untreated","untried","untrimmed","untrue","untruth","unturned","untwist","untying","unusable","unused","unusual","unvalued","unvaried","unvarying","unveiled","unveiling","unvented","unviable","unvisited","unvocal","unwanted","unwarlike","unwary","unwashed","unwatched","unweave","unwed","unwelcome","unwell","unwieldy","unwilling","unwind","unwired","unwitting","unwomanly","unworldly","unworn","unworried","unworthy","unwound","unwoven","unwrapped","unwritten","unzip","upbeat","upchuck","upcoming","upcountry","update","upfront","upgrade","upheaval","upheld","uphill","uphold","uplifted","uplifting","upload","upon","upper","upright","uprising","upriver","uproar","uproot","upscale","upside","upstage","upstairs","upstart","upstate","upstream","upstroke","upswing","uptake","uptight","uptown","upturned","upward","upwind","uranium","urban","urchin","urethane","urgency","urgent","urging","urologist","urology","usable","usage","useable","used","uselessly","user","usher","usual","utensil","utility","utilize","utmost","utopia","utter","vacancy","vacant","vacate","vacation","vagabond","vagrancy","vagrantly","vaguely","vagueness","valiant","valid","valium","valley","valuables","value","vanilla","vanish","vanity","vanquish","vantage","vaporizer","variable","variably","varied","variety","various","varmint","varnish","varsity","varying","vascular","vaseline","vastly","vastness","veal","vegan","veggie","vehicular","velcro","velocity","velvet","vendetta","vending","vendor","veneering","vengeful","venomous","ventricle","venture","venue","venus","verbalize","verbally","verbose","verdict","verify","verse","version","versus","vertebrae","vertical","vertigo","very","vessel","vest","veteran","veto","vexingly","viability","viable","vibes","vice","vicinity","victory","video","viewable","viewer","viewing","viewless","viewpoint","vigorous","village","villain","vindicate","vineyard","vintage","violate","violation","violator","violet","violin","viper","viral","virtual","virtuous","virus","visa","viscosity","viscous","viselike","visible","visibly","vision","visiting","visitor","visor","vista","vitality","vitalize","vitally","vitamins","vivacious","vividly","vividness","vixen","vocalist","vocalize","vocally","vocation","voice","voicing","void","volatile","volley","voltage","volumes","voter","voting","voucher","vowed","vowel","voyage","wackiness","wad","wafer","waffle","waged","wager","wages","waggle","wagon","wake","waking","walk","walmart","walnut","walrus","waltz","wand","wannabe","wanted","wanting","wasabi","washable","washbasin","washboard","washbowl","washcloth","washday","washed","washer","washhouse","washing","washout","washroom","washstand","washtub","wasp","wasting","watch","water","waviness","waving","wavy","whacking","whacky","wham","wharf","wheat","whenever","whiff","whimsical","whinny","whiny","whisking","whoever","whole","whomever","whoopee","whooping","whoops","why","wick","widely","widen","widget","widow","width","wieldable","wielder","wife","wifi","wikipedia","wildcard","wildcat","wilder","wildfire","wildfowl","wildland","wildlife","wildly","wildness","willed","willfully","willing","willow","willpower","wilt","wimp","wince","wincing","wind","wing","winking","winner","winnings","winter","wipe","wired","wireless","wiring","wiry","wisdom","wise","wish","wisplike","wispy","wistful","wizard","wobble","wobbling","wobbly","wok","wolf","wolverine","womanhood","womankind","womanless","womanlike","womanly","womb","woof","wooing","wool","woozy","word","work","worried","worrier","worrisome","worry","worsening","worshiper","worst","wound","woven","wow","wrangle","wrath","wreath","wreckage","wrecker","wrecking","wrench","wriggle","wriggly","wrinkle","wrinkly","wrist","writing","written","wrongdoer","wronged","wrongful","wrongly","wrongness","wrought","xbox","xerox","yahoo","yam","yanking","yapping","yard","yarn","yeah","yearbook","yearling","yearly","yearning","yeast","yelling","yelp","yen","yesterday","yiddish","yield","yin","yippee","yo-yo","yodel","yoga","yogurt","yonder","yoyo","yummy","zap","zealous","zebra","zen","zeppelin","zero","zestfully","zesty","zigzagged","zipfile","zipping","zippy","zips","zit","zodiac","zombie","zone","zoning","zookeeper","zoologist","zoology","zoom"],generate:function(e){const r=window.crypto||window.msCrypto,a=new Uint16Array(e);r.getRandomValues(a);const t=this.wordlist;return Array.from(a.map(e=>e%2048)).map(e=>t[e]).join("-")}},te=a("9ea2"),ie=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",{staticClass:"qr-tile"},[a("div",{staticClass:"print-only"},[a("h1",[e._v(e._s(e.title))]),a("h3",[e._v(" You need "+e._s(e.requiredShards-1)+" more QR "+e._s(e.pluralizeCode)+" like this to reconstruct the secret ")])]),a("qriously",{staticClass:"qr-code print-only",attrs:{value:e.shard,size:600}}),a("qriously",{staticClass:"screen-only card-qr",attrs:{value:e.shard,size:200}}),a("div",{staticClass:"print-only"},[e._m(0),a("p",{staticClass:"version"},[e._v(" Please go to "),a("a",{attrs:{href:"https://bs.parity.io"}},[e._v("bs.parity.io")]),e._v(" to download the reconstruction webapp, if you don't have one already. "),a("br"),e._v(" This has been generated by BananaSplit version "+e._s(e.gitRevision)+" "),a("br"),e._v(" ipfs cid: "+e._s(e.ipfsCid)+" ")])])],1)},ne=[function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",{staticClass:"recovery-field"},[a("div",{staticClass:"recovery-title"},[e._v(" Recovery passphrase is ")]),a("div",{staticClass:"recovery-blank"})])}],se=i["a"].extend({name:"ShardQrCode",props:{title:{type:String,required:!0},shard:{type:String,required:!0},requiredShards:{type:Number,required:!0}},computed:{pluralizeCode:function(){return this.requiredShards-1===1?"code":"codes"},gitRevision:function(){return"v0.3.0-9-gc8d11ea\n"},ipfsCid:function(){return this.cid}}}),oe=se,le=(a("a8a5"),Object(b["a"])(oe,ie,ne,!1,null,null,null)),ce=le.exports,de=i["a"].extend({name:"ShardInfo",components:{ShardQrCode:ce},props:{title:{type:String,required:!0},shard:{type:String,required:!0},requiredShards:{type:Number,required:!0}},beforeDestroy:function(){this.vm.$el.remove(),this.vm.$destroy()},render:function(){const e=document.createElement("div"),r=document.getElementById("print");r?r.appendChild(e):console.warn("Failed to find `print` element");const a=this.$props;return this.vm=new i["a"]({el:e,render:function(e){return e(ce,{props:a})}}),this.vm.$vnode}}),ue=de,pe=Object(b["a"])(ue,p,g,!1,null,null,null),ge=pe.exports,me=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("canvas",{directives:[{name:"canvas-message",rawName:"v-canvas-message",value:e.text,expression:"text"}],staticClass:"canvasText",attrs:{width:"0",height:"28px"}})},he=[],be=i["a"].extend({name:"CanvasText",directives:{canvasMessage:function(e,r){const a=e,t=a.getContext("2d");if(!t)return void console.warn("Failed to find canvasElement context");t.clearRect(0,0,a.width,a.height),t.fillStyle="black",t.font="20px Arial";const i=t.measureText(r.value).width||450,n=15;a.setAttribute("width",i+n+"px"),t.font="20px Arial",t.fillText(r.value,n,20)}},props:{text:{type:String,required:!0}}}),fe=be,ye=Object(b["a"])(fe,me,he,!1,null,null,null),ve=ye.exports,ke=i["a"].extend({name:"Share",components:{ShardInfo:ge,CanvasText:ve},data(){return{title:"",secret:"",totalShards:3,recoveryPassphrase:"",encryptionMode:!1}},computed:{secretTooLong(){return this.secret.length>1024},requiredShards(){return Math.floor(this.totalShards/2)+1},shards(){if(this.$eventHub.$emit("clearAlerts"),!this.encryptionMode)return[];try{return te["a"].share(this.secret,this.title,this.recoveryPassphrase,this.totalShards,this.requiredShards)}catch(e){this.$eventHub.$emit("showError",e),this.toggleMode()}return[]}},created:function(){this.regenPassphrase()},mounted:function(){this.$eventHub.$emit("foldGeneralInfo"),this.$eventHub.$emit("clearAlerts")},methods:{regenPassphrase:function(){this.recoveryPassphrase=ae.generate(4)},print:function(){window.print()},toggleMode:function(){this.encryptionMode=!this.encryptionMode}}}),we=ke,xe=(a("e5c6"),Object(b["a"])(we,ee,re,!1,null,null,null)),ze=xe.exports,_e=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",[a("div",{staticClass:"card measure",attrs:{transparent:!e.recoveredSecret}},[a("h2",{staticClass:"card-title"},[e._v(" Combine shards "),e.title?a("span",[e._v(" for "),e.title?a("em",[e._v(" "+e._s(e.title))]):e._e()]):e._e()]),e.needMoreShards?a("div",[a("qrcode-stream",{on:{decode:e.onDecode}})],1):a("div",[a("p",[a("label",[e._v("1. Secret Phrase")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.passphrase,expression:"passphrase"}],attrs:{id:"passphrase",type:"text",placeholder:"type your passphrase",autofocus:""},domProps:{value:e.passphrase},on:{keyup:function(r){return!r.type.indexOf("key")&&e._k(r.keyCode,"enter",13,r.key,"Enter")?null:e.reconstruct.apply(null,arguments)},input:function(r){r.target.composing||(e.passphrase=r.target.value)}}})]),a("p",[a("label",[e._v("2. Secret")]),e.recoveredSecret?a("textarea",{directives:[{name:"model",rawName:"v-model",value:e.recoveredSecret,expression:"recoveredSecret"}],attrs:{id:"recoveredSecret",readonly:""},domProps:{value:e.recoveredSecret},on:{input:function(r){r.target.composing||(e.recoveredSecret=r.target.value)}}}):a("textarea",{attrs:{readonly:"",disabled:""}})]),e.recoveredSecret?e._e():a("div",[a("button",{staticClass:"button-card",attrs:{id:"reconstructBtn"},on:{click:e.reconstruct}},[e._v(" Reconstruct Secret ")])])])]),a("div",{staticClass:"card flex",attrs:{transparent:"true",framed:e.recoveredSecret&&!0}},[e._l(e.qrCodes,(function(e){return a("qriously",{key:e,staticClass:"card-qr",attrs:{value:e,size:200}})})),e._l(e.remainingCodes,(function(r){return a("qriously",{key:r,staticClass:"remaining card-qr",attrs:{value:e.PLACEHOLDER_QR_DATA,size:200}})}))],2)])},qe=[],je=i["a"].extend({name:"Combine",data(){return{title:"",nonce:"",shards:[],qrCodes:new Set,requiredShards:void 0,passphrase:"",recoveredSecret:void 0,PLACEHOLDER_QR_DATA:""}},computed:{needMoreShards(){return!this.requiredShards||this.shards.length<this.requiredShards},remainingCodes(){return this.requiredShards?this.requiredShards-this.shards.length:0}},mounted:function(){this.$eventHub.$emit("foldGeneralInfo"),this.$eventHub.$emit("clearAlerts")},methods:{onDecode:function(e){if(this.$eventHub.$emit("clearAlerts"),""===e)return;if(this.qrCodes.has(e))return void this.$eventHub.$emit("showWarn","Shard already seen");let r;try{r=te["a"].parse(e)}catch(a){return void this.$eventHub.$emit("showError",a)}this.title&&this.title!==r.title?this.$eventHub.$emit("showError","title mismatch!"):(this.title=r.title,this.nonce&&this.nonce!==r.nonce?this.$eventHub.$emit("showError","nonce mismatch!"):(this.nonce=r.nonce,this.requiredShards&&this.requiredShards!==r.requiredShards?this.$eventHub.$emit("showError","requiredShards mismatch"):(this.requiredShards=r.requiredShards,this.qrCodes.add(e),this.shards.push(r))))},reconstruct:function(){if(!this.passphrase)return;this.passphrase=this.passphrase.split(" ").filter(e=>e).join("-");const e=Array.from(this.shards);try{this.recoveredSecret=te["a"].reconstruct(e,this.passphrase)}catch(r){this.$eventHub.$emit("showError",r)}}}}),Se=je,Ce=(a("be35"),Object(b["a"])(Se,_e,qe,!1,null,null,null)),$e=Ce.exports,Me=function(){var e=this,r=e.$createElement,a=e._self._c||r;return a("div",[a("div",{staticClass:"card measure",attrs:{transparent:e.needMoreShards}},[a("h2",{staticClass:"card-title"},[e._v(" Print shards "),e.numberEntered?e._e():a("div",[a("p",[a("label",[e._v("Shards")]),a("br"),e._v(" How many shards have you generated? "),a("br"),a("input",{directives:[{name:"model",rawName:"v-model.number",value:e.requiredShards,expression:"requiredShards",modifiers:{number:!0}}],attrs:{id:"totalShards",type:"number",min:"3",max:"255"},domProps:{value:e.requiredShards},on:{input:function(r){r.target.composing||(e.requiredShards=e._n(r.target.value))},blur:function(r){return e.$forceUpdate()}}})]),a("button",{staticClass:"button-card",attrs:{id:"generateBtn"},on:{click:e.handleShardsInput}},[e._v(" Import QR codes! ")])]),e.title?a("span",[e._v(" for "),e.title?a("em",[e._v(" "+e._s(e.title))]):e._e()]):e._e()]),e.numberEntered&&e.needMoreShards?a("div",[a("qrcode-stream",{on:{decode:e.onDecode}})],1):e.numberEntered?a("div",[a("button",{staticClass:"button-card",attrs:{id:"printBtn"},on:{click:e.print}},[e._v(" Print us! ")]),e._l(e.qrCodes,(function(r){return a("shard-info",{key:r,attrs:{shard:r,"required-shards":parseInt(e.requiredShards/2)+2,title:e.title}})}))],2):e._e()]),e.numberEntered&&e.needMoreShards?a("div",[a("div",{staticClass:"card flex",attrs:{transparent:"true"}},[e._l(e.qrCodes,(function(e){return a("qriously",{key:e,staticClass:"card-qr",attrs:{value:e,size:200}})})),e._l(e.remainingCodes,(function(r){return a("qriously",{key:r,staticClass:"remaining card-qr",attrs:{value:e.PLACEHOLDER_QR_DATA,size:200}})}))],2)]):e._e()])},Ee=[],Oe=i["a"].extend({name:"Print",components:{ShardInfo:ge},data(){return{title:"",nonce:"",shards:[],qrCodes:new Set,requiredShards:void 0,numberEntered:!1,PLACEHOLDER_QR_DATA:""}},computed:{needMoreShards(){return void 0!==this.requiredShards&&this.shards.length!==this.requiredShards},remainingCodes(){return this.requiredShards?this.requiredShards-this.shards.length:0}},mounted:function(){this.$eventHub.$emit("foldGeneralInfo"),this.$eventHub.$emit("clearAlerts")},methods:{onDecode:function(e){if(this.$eventHub.$emit("clearAlerts"),""===e)return;if(this.qrCodes.has(e))return;let r;try{r=te["a"].parse(e)}catch(a){return void this.$eventHub.$emit("showError",a)}this.title&&this.title!==r.title?this.$eventHub.$emit("showError","title mismatch!"):(this.title=r.title,this.nonce&&this.nonce!==r.nonce?this.$eventHub.$emit("showError","nonce mismatch!"):(this.nonce=r.nonce,this.qrCodes.add(e),this.shards.push(r)))},print:function(){window.print()},handleShardsInput:function(){this.requiredShards&&this.requiredShards>=3&&this.requiredShards<=255?this.numberEntered=!0:this.$eventHub.$emit("showError","Please enter a valid number of shards between 3 and 255.")},toggleMode:function(){this.numberEntered=!this.numberEntered}}}),Ae=Oe,Pe=(a("d340"),Object(b["a"])(Ae,Me,Ee,!1,null,null,null)),He=Pe.exports;i["a"].use(N["a"]);var Te=new N["a"]({routes:[{path:"/",name:"info",component:Z},{path:"/share",name:"share",component:ze},{path:"/combine",name:"combine",component:$e},{path:"/print",name:"print",component:He}]});const Ie={install(e){const r=new e({data:{online:window.navigator.onLine}});window.addEventListener("online",(function(){r.$data.online=!0})),window.addEventListener("offline",(function(){r.$data.online=!1})),e.mixin({computed:{isOnline(){return r.$data.online}}})}};var Re=Ie;const Be=a("e3a2"),Le={install(e){const r=new e({data:{cid:"UNKNOWN"}});fetch(window.location.href).then(e=>e.text()).then(e=>{Be.of(e).then(e=>{r.$data.cid=e})}).catch(e=>console.error(e)),e.mixin({computed:{cid(){return r.$data.cid}}})}};var Ne=Le;i["a"].use(s.a),i["a"].use(o["default"]),i["a"].use(Re),i["a"].use(Ne),i["a"].config.productionTip=!1,i["a"].prototype.$eventHub=new i["a"],new i["a"]({router:Te,render:function(e){return e(L)}}).$mount("#app")},d340:function(e,r,a){"use strict";a("82ad")},dec5:function(e,r,a){"use strict";a("6173")},e31a:function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,':root{--c_bg-app:#f2f1f0;--c_bg-card:#fff;--c_bg-emphasis-main:#353535;--c_bg-emphasis-dark:#000;--c_border-main:#d6d6d6;--c_border-light:#ebebeb;--c_text-main:#222;--c_text-secondary:#606060;--c_text-onEmphasis:#fff;--c_accent:#ff1864;--w_app:620px;--f_main:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:var(--f_main);font-size:9px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:2rem 0;color:var(--c_text-main);background:var(--c_bg-app);font-size:1.8rem}.measure{width:var(--w_app);max-width:calc(100vw - 2rem)}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}#app,#print{margin:auto}@media print{#app{display:none}#print{display:block;width:auto}}nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card,.card-alt,.card-qr{border-radius:1rem;margin:1rem 0}.card,.card-alt{padding:1rem 3rem}.card,.card-qr{-webkit-box-shadow:0 0 3rem var(--c_border-main);box-shadow:0 0 3rem var(--c_border-main);background-color:var(--c_bg-card)}.card-qr{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin:.5rem}.card-qr canvas{width:100%;max-width:200px}.card-qr:not(.remaining){-webkit-animation:unblur 1s ease;animation:unblur 1s ease}@-webkit-keyframes unblur{0%{-webkit-filter:brightness(150%);filter:brightness(150%)}to{-webkit-filter:none;filter:none}}@keyframes unblur{0%{-webkit-filter:brightness(150%);filter:brightness(150%)}to{-webkit-filter:none;filter:none}}.card-alt{background-color:var(--c_bg-emphasis-main);color:var(--c_text-onEmphasis)}.card[framed=true]{border:1px solid var(--c_border-main)}.card[transparent=true]{background:transparent;-webkit-box-shadow:none;box-shadow:none}.card[transparent=true] .card-title{border-bottom-color:transparent}.card[transparent=true] .button-card{background-color:var(--c_bg-emphasis-main);color:var(--c_text-onEmphasis);text-decoration:none}.card[transparent=true] .button-card:hover{background-color:var(--c_bg-emphasis-dark)}.card-title{width:calc(100% + 6rem);margin:-1rem 0 0 -3rem;padding:1rem 3rem;text-align:center;border-bottom:1px solid var(--c_border-light)}.button-card{width:100%;background:inherit;text-decoration:underline}.button-card,.button-icon{color:var(--c_text-secondary)}.button-card:hover,.button-icon:hover{color:var(--c_text-main)}h1{font-weight:600;font-size:3.5rem;line-height:.9em;letter-spacing:-.02em}h2{font-size:2.5rem;font-weight:500}a{color:var(--c_accent)}label{font-size:1.6rem;color:var(--c_text-secondary)}input,textarea{width:100%;background:var(--c_bg-card);border:1px solid var(--c_border-main);padding:1rem;border-radius:.5rem;font-size:2rem;font-family:var(--f_main)}textarea{min-height:120px}input:disabled,textarea:disabled{background:transparent;opacity:.5}#logo{text-decoration:none;font-weight:700;font-size:250%;margin:10px auto 0;color:var(--c_text-main)}#logo:hover>.logo-text{text-decoration:underline}#logo>.logo-icon{position:relative;top:5px;left:5px;font-size:140%}.button-nav{display:inline-block;font-weight:600;font-size:1.4em;border:1px solid transparent;padding:1rem 3rem 1.2rem;margin:0 1rem 0 0;border-radius:1rem;background-color:var(--c_bg-emphasis-main);color:var(--c_text-onEmphasis);text-decoration:none}.button-nav.router-link-exact-active,.button-nav:hover{border-color:var(--c_border-main)}.button-nav.router-link-exact-active{background-color:var(--c_bg-app);color:var(--c_text-main)}button{padding:1.5rem 3rem;border-radius:1rem;border:none;font-size:2.3rem;font-weight:600;cursor:pointer}.button-icon{padding:1rem;font-size:4rem;line-height:.8em;background:transparent}.version-footer{padding-top:30px;font-size:80%;font-style:italic;color:#a9a9a9;text-align:center}@media screen and (max-width:415px){.fold input:checked~.fold-content{margin-bottom:100px}}',""]),e.exports=r},e5c6:function(e,r,a){"use strict";a("7d66")},e9f1:function(e,r,a){var t=a("24fb");r=t(!1),r.push([e.i,".remaining{-webkit-filter:blur(5px);filter:blur(5px);opacity:.5}.qrcode-stream{-webkit-transform:scaleX(-1);transform:scaleX(-1);border-radius:8px;overflow:hidden}",""]),e.exports=r}}); |