UNPKG

gpt-tokenizer

Version:

A pure JavaScript implementation of a BPE tokenizer (Encoder/Decoder) for GPT-2 / GPT-3 / GPT-4 and other OpenAI models

1 lines 496 kB
!function(e,i){"object"==typeof exports&&"object"==typeof module?module.exports=i():"function"==typeof define&&define.amd?define("GPTTokenizer_p50k_edit",[],i):"object"==typeof exports?exports.GPTTokenizer_p50k_edit=i():e.GPTTokenizer_p50k_edit=i()}(globalThis,(()=>(()=>{"use strict";var e={626:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BytePairEncodingCore=i.decoder=void 0;const r=a(242),n=a(995),t=a(462),s=new Uint8Array(0);i.decoder=new TextDecoder("utf8"),i.BytePairEncodingCore=class{mergeableBytePairRankCount;bytePairRankDecoder;bytePairNonUtfRankDecoder=new Map;bytePairNonUtfSortedEncoder;bytePairStringRankEncoder;tokenSplitRegex;specialTokensEncoder;specialTokensDecoder;specialTokenPatternRegex;textEncoder=new TextEncoder;mergeCache;mergeCacheSize;constructor({bytePairRankDecoder:e,specialTokensEncoder:i,tokenSplitRegex:a,mergeCacheSize:s=r.DEFAULT_MERGE_CACHE_SIZE}){this.bytePairRankDecoder=e,this.bytePairStringRankEncoder=new Map,this.mergeCacheSize=s,s>0&&(this.mergeCache=new Map),this.mergeableBytePairRankCount=Object.keys(e).length;const o=[];e.forEach(((e,i)=>{if("string"==typeof e)return void this.bytePairStringRankEncoder.set(e,i);const a=new Uint8Array(e);o.push([a,i]),this.bytePairNonUtfRankDecoder.set(i,a)})),this.bytePairNonUtfSortedEncoder=o.sort(((e,i)=>(0,n.compareUint8Arrays)(e[0],i[0]))),this.specialTokensEncoder=i??new Map,this.specialTokensDecoder=i?new Map([...i].map((([e,i])=>[i,e]))):new Map,this.tokenSplitRegex=a;const l=[...this.specialTokensEncoder.keys()].map(t.escapeRegExp).join("|");try{this.specialTokenPatternRegex=new RegExp(l,"y")}catch{throw new Error("Invalid regular expression pattern.")}}setMergeCacheSize(e){0===this.mergeCacheSize&&e>0&&(this.mergeCache=new Map),this.mergeCacheSize=e,0===e&&(this.mergeCache=void 0)}clearMergeCache(){this.mergeCache?.clear()}*encodeNativeGenerator(e,i){let a=0,r=0;for(;;){const n=this.findNextSpecialToken(e,i,a),t=n?.[0],s=t??e.length,o=0===a&&s===e.length?e:e.slice(a,s);for(const[e]of o.matchAll(this.tokenSplitRegex)){const i=this.getBpeRankFromString(e);if(void 0!==i){r=1,yield[i];continue}const a=this.bytePairEncode(e);r=a.length,yield a}if(void 0===t)break;{const e=n[1],i=this.specialTokensEncoder.get(e);if(void 0===i)throw new Error(`Special token "${e}" is not in the special token encoder.`);yield[i],a=t+e.length,r=1}}return r}encodeNative(e,i){let a=0;const r=[];for(;;){const n=this.findNextSpecialToken(e,i,a),t=n?.[0],s=t??e.length,o=0===a&&s===e.length?e:e.slice(a,s);for(const[e]of o.matchAll(this.tokenSplitRegex)){const i=this.getBpeRankFromString(e);if(void 0!==i){r.push(i);continue}const a=this.bytePairEncode(e);r.push(...a)}if(void 0===t)break;{const e=n[1],i=this.specialTokensEncoder.get(e);if(void 0===i)throw new Error(`Special token "${e}" is not in the special token encoder.`);r.push(i),a=t+e.length}}return r}countNative(e,i){let a=0,r=0;for(;;){const n=this.findNextSpecialToken(e,i,a),t=n?.[0],s=t??e.length,o=0===a&&s===e.length?e:e.slice(a,s);for(const[e]of o.matchAll(this.tokenSplitRegex))void 0===this.getBpeRankFromString(e)?r+=this.bytePairEncode(e).length:r++;if(void 0===t)break;{const e=n[1];if(void 0===this.specialTokensEncoder.get(e))throw new Error(`Special token "${e}" is not in the special token encoder.`);r++,a=t+e.length}}return r}*decodeNativeGenerator(e){for(const i of e){const e=this.tryDecodeToken(i);e&&(yield e)}}decodeNative(e){let a="",r=s;for(const n of e){const e=this.tryDecodeToken(n);if(void 0===e)throw new Error(`Token ${n} is not in the byte pair encoder.`);if("string"==typeof e)r!==s&&(a+=i.decoder.decode(r,{stream:!0}),r=s),a+=e;else{const i=new Uint8Array(r.length+e.length);i.set(r),i.set(e,r.length),r=i}}return r!==s&&(a+=i.decoder.decode(r,{stream:!0})),a}async*decodeNativeAsyncIterable(e){for await(const i of e){const e=this.tryDecodeToken(i);e&&(yield e)}}getBpeRankFromString(e){return this.bytePairStringRankEncoder.get(e)}getBpeRankFromStringOrThrow(e){const i=this.getBpeRankFromString(e);if(void 0===i)throw new Error(`The byte-pair encoding does not contain a value for: ${e}`);return i}getBpeRankFromBytes(e){const i=(0,n.tryConvertToString)(e);if(void 0!==i)return this.getBpeRankFromString(i);const a=this.binarySearch(e);return-1!==a?this.bytePairNonUtfSortedEncoder[a][1]:void 0}getBpeRankFromBytesOrThrow(e){const i=this.getBpeRankFromBytes(e);if(void 0===i)throw new Error(`The byte-pair encoding does not contain a value for: ${e.toString()}`);return i}binarySearch(e){let i=0,a=this.bytePairNonUtfSortedEncoder.length-1;for(;i<=a;){const r=i+a>>>1,n=this.bytePairNonUtfSortedEncoder[r][0];let t=0;const s=Math.min(n.length,e.length);for(let i=0;i<s&&(t=n[i]-e[i],0===t);i++);if(0===t&&(t=n.length-e.length),0===t)return r;t<0?i=r+1:a=r-1}return-1}findNextSpecialToken(e,i,a){let r=a;for(;;){this.specialTokenPatternRegex.lastIndex=r;const a=this.specialTokenPatternRegex.exec(e);if(!a)return;const n=a[0];if(i?.has(n))return[a.index+r,n];r=a.index+r+1}}tryDecodeToken(e){const i=this.bytePairRankDecoder[e];if("string"==typeof i)return i;if("object"==typeof i){const i=this.bytePairNonUtfRankDecoder.get(e);if(i)return i}return this.specialTokensDecoder.get(e)}addToMergeCache(e,i){if(this.mergeCache){if(this.mergeCache.size>=this.mergeCacheSize){const e=this.mergeCache.keys().next().value;this.mergeCache.delete(e)}this.mergeCache.set(e,i)}}bytePairEncode(e){if(1===e.length&&(0,n.isAscii)(e.codePointAt(0)))return[this.getBpeRankFromStringOrThrow(e)];if(this.mergeCache?.has(e)){const i=this.mergeCache.get(e);return this.mergeCache.delete(e),this.mergeCache.set(e,i),i}const i=this.textEncoder.encode(e),a=this.bytePairMerge(i);return this.addToMergeCache(e,a),a}bytePairMerge(e){const i=[],a=[],r=(a,r=i[a],n=i[a+2])=>{if(void 0===n)return Number.POSITIVE_INFINITY;const t=e.subarray(r,n);return this.getBpeRankFromBytes(t)??Number.POSITIVE_INFINITY};for(let n=0;n<=e.length;n++)i.push(n),n<e.length-1?a.push(r(n,n,n+2)):a.push(Number.POSITIVE_INFINITY);for(;i.length>1;){let e=Number.POSITIVE_INFINITY,n=-1;for(let i=0;i<a.length-1;i++){const r=a[i];r<e&&(e=r,n=i)}if(e===Number.POSITIVE_INFINITY||-1===n)break;i.splice(n+1,1),a.splice(n,1),a[n]=r(n),n>0&&(a[n-1]=r(n-1))}const n=[];for(let a=0;a<i.length-1;a++){const r=i[a],t=i[a+1],s=this.getBpeRankFromBytesOrThrow(e.subarray(r,t));n.push(s)}return n}}},945:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.GptEncoding=void 0;const r=a(626),n=a(242),t=a(179),s=a(177),o=a(795),l=a(995),c=a(462);class d{static EndOfPrompt=o.EndOfPrompt;static EndOfText=o.EndOfText;static FimMiddle=o.FimMiddle;static FimPrefix=o.FimPrefix;static FimSuffix=o.FimSuffix;modelName;modelSpec;bytePairEncodingCoreProcessor;specialTokensEncoder;specialTokensSet;allSpecialTokenRegex;defaultSpecialTokenConfig;vocabularySize;constructor({bytePairRankDecoder:e,specialTokensEncoder:i,expectedVocabularySize:a,modelName:n,modelSpec:t,...s}){this.specialTokensEncoder=i,this.specialTokensSet=new Set(this.specialTokensEncoder.keys()),this.allSpecialTokenRegex=(0,c.getSpecialTokenRegex)(this.specialTokensSet),this.bytePairEncodingCoreProcessor=new r.BytePairEncodingCore({bytePairRankDecoder:e,specialTokensEncoder:i,...s}),this.defaultSpecialTokenConfig=this.processSpecialTokens();const o=Math.max(e.length-1,(0,c.getMaxValueFromMap)(i));if(this.vocabularySize=this.bytePairEncodingCoreProcessor.mergeableBytePairRankCount+i.size,void 0!==a){if(this.vocabularySize!==a)throw new Error("The number of mergeable tokens and special tokens must be equal to expectedVocabularySize.");if(o!==a-1)throw new Error(`The model encodings are invalid. The maximum token value must be equal to expectedVocabularySize - 1. Currently ${o}, expected ${a-1}`)}this.encode=this.encode.bind(this),this.decode=this.decode.bind(this),this.encodeGenerator=this.encodeGenerator.bind(this),this.decodeGenerator=this.decodeGenerator.bind(this),this.decodeAsyncGenerator=this.decodeAsyncGenerator.bind(this),this.decodeAsync=this.decodeAsync.bind(this),this.isWithinTokenLimit=this.isWithinTokenLimit.bind(this),this.encodeChat=this.encodeChat.bind(this),this.encodeChatGenerator=this.encodeChatGenerator.bind(this),this.countTokens=this.countTokens.bind(this),this.setMergeCacheSize=this.setMergeCacheSize.bind(this),this.clearMergeCache=this.clearMergeCache.bind(this),this.estimateCost=this.estimateCost.bind(this),this.modelName=n,this.modelSpec=t}static getEncodingApi(e,i){const a=(0,s.getEncodingParams)(e,i);return new d(a)}static getEncodingApiForModel(e,i,a){const r=t.modelToEncodingMap[e]??t.DEFAULT_ENCODING,n=(0,s.getEncodingParams)(r,i);return new d({...n,modelName:e,modelSpec:a})}processSpecialTokens({allowedSpecial:e,disallowedSpecial:i}={}){let a;if(e===n.ALL_SPECIAL_TOKENS||e?.has(n.ALL_SPECIAL_TOKENS)){const a=e=new Set(this.specialTokensSet);if(i===n.ALL_SPECIAL_TOKENS)throw new Error('allowedSpecial and disallowedSpecial cannot both be set to "all".');"object"==typeof i?i.forEach((e=>a.delete(e))):i=new Set}if(!i||i===n.ALL_SPECIAL_TOKENS||i.has(n.ALL_SPECIAL_TOKENS)){const r=i=new Set(this.specialTokensSet);e?.size?(e.forEach((e=>r.delete(e))),i.forEach((i=>e.delete(i))),i.size>0&&(a=(0,c.getSpecialTokenRegex)(i))):a=this.allSpecialTokenRegex}return{allowedSpecial:e,regexPattern:a}}encodeGenerator(e,i){const a=i?this.processSpecialTokens(i):this.defaultSpecialTokenConfig;if(a.regexPattern){const i=e.match(a.regexPattern);if(null!==i)throw new Error(`Disallowed special token found: ${i[0]}`)}return this.bytePairEncodingCoreProcessor.encodeNativeGenerator(e,a.allowedSpecial)}encode(e,i){const a=i?this.processSpecialTokens(i):this.defaultSpecialTokenConfig;if(a.regexPattern){const i=e.match(a.regexPattern);if(null!==i)throw new Error(`Disallowed special token found: ${i[0]}`)}return this.bytePairEncodingCoreProcessor.encodeNative(e,a.allowedSpecial)}*encodeChatGenerator(e,i=this.modelName){if(!i)throw new Error("Model name must be provided either during initialization or passed in to the method.");const a=t.chatModelParams[i],r=this.specialTokensEncoder.get(o.ImStart),n=this.specialTokensEncoder.get(o.ImEnd);if(!a||void 0===r||void 0===n)throw new Error(`Model '${i}' does not support chat.`);const s=new Set([o.ImSep]),{messageSeparator:l,roleSeparator:c}=a,d=l.length>0?this.encode(l):[],u=c.length>0?this.encode(c,{allowedSpecial:s}):[],p=new Map;for(const{role:i="system",name:a=i,content:t}of e){if(void 0===t)throw new Error("Content must be defined for all messages.");yield[r];const e=p.get(a)??this.encode(a);p.set(a,e),yield e,u.length>0&&(yield u),yield*this.encodeGenerator(t),yield[n],yield d}yield[r],yield*this.encodeGenerator("assistant"),u.length>0&&(yield u)}encodeChat(e,i=this.modelName){return[...this.encodeChatGenerator(e,i)].flat()}isWithinTokenLimit(e,i){const a="string"==typeof e?this.encodeGenerator(e):this.encodeChatGenerator(e);let r=0;for(const e of a)if(r+=e.length,r>i)return!1;return r}countTokens(e,i){if("string"==typeof e){const a=i?this.processSpecialTokens(i):this.defaultSpecialTokenConfig;if(a.regexPattern){const i=e.match(a.regexPattern);if(null!==i)throw new Error(`Disallowed special token found: ${i[0]}`)}return this.bytePairEncodingCoreProcessor.countNative(e,a.allowedSpecial)}const a=this.encodeChatGenerator(e);let r=0;for(const e of a)r+=e.length;return r}setMergeCacheSize(e){this.bytePairEncodingCoreProcessor.setMergeCacheSize(e)}clearMergeCache(){this.bytePairEncodingCoreProcessor.clearMergeCache()}decode(e){return this.bytePairEncodingCoreProcessor.decodeNative(e)}*decodeGenerator(e){const i=this.bytePairEncodingCoreProcessor.decodeNativeGenerator(e);let a="";for(const e of i)a+="string"==typeof e?e:r.decoder.decode(e,{stream:!0}),0===a.length||(0,l.endsWithIncompleteUtfPairSurrogate)(a)||(yield a,a="");a.length>0&&(yield a)}async*decodeAsyncGenerator(e){const i=this.bytePairEncodingCoreProcessor.decodeNativeAsyncIterable(e);let a="";for await(const e of i)a+="string"==typeof e?e:r.decoder.decode(e,{stream:!0}),0===a.length||(0,l.endsWithIncompleteUtfPairSurrogate)(a)||(yield a,a="");a.length>0&&(yield a)}async decodeAsync(e){const i=this.bytePairEncodingCoreProcessor.decodeNativeAsyncIterable(e);let a="";for await(const e of i)a+="string"==typeof e?e:r.decoder.decode(e,{stream:!0});return a}estimateCost(e,i=this.modelSpec){if(!i)throw new Error("Model spec must be provided either during initialization or passed in to the method.");if(!i.price_data)throw new Error(`No cost information available for model: ${i.name}`);const a=i.price_data,r={},n=e/1e6;return a.main&&(r.main={input:a.main.input&&a.main.input*n,output:a.main.output&&a.main.output*n,cached_input:a.main.cached_input&&a.main.cached_input*n,cached_output:a.main.cached_output&&a.main.cached_output*n}),a.batch&&(r.batch={input:a.batch.input&&a.batch.input*n,output:a.batch.output&&a.batch.output*n,cached_input:a.batch.cached_input&&a.batch.cached_input*n,cached_output:a.batch.cached_output&&a.batch.cached_output*n}),r}}i.GptEncoding=d},242:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_MERGE_CACHE_SIZE=i.ALL_SPECIAL_TOKENS=void 0,i.ALL_SPECIAL_TOKENS="all",i.DEFAULT_MERGE_CACHE_SIZE=1e5},679:function(e,i,a){var r=this&&this.__createBinding||(Object.create?function(e,i,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(i,a);n&&!("get"in n?!i.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(e,r,n)}:function(e,i,a,r){void 0===r&&(r=a),e[r]=i[a]}),n=this&&this.__exportStar||function(e,i){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(i,a)||r(i,e,a)};Object.defineProperty(i,"__esModule",{value:!0}),i.vocabularySize=i.setMergeCacheSize=i.isWithinTokenLimit=i.estimateCost=i.encodeGenerator=i.encodeChatGenerator=i.encodeChat=i.encode=i.decodeGenerator=i.decodeAsyncGenerator=i.decode=i.countTokens=i.clearMergeCache=void 0;const t=a(703),s=a(945);n(a(242),i),n(a(795),i);const o=s.GptEncoding.getEncodingApi("p50k_edit",(()=>t.default)),{decode:l,decodeAsyncGenerator:c,decodeGenerator:d,encode:u,encodeGenerator:p,isWithinTokenLimit:m,countTokens:g,encodeChat:h,encodeChatGenerator:y,vocabularySize:b,setMergeCacheSize:f,clearMergeCache:v,estimateCost:k}=o;i.decode=l,i.decodeAsyncGenerator=c,i.decodeGenerator=d,i.encode=u,i.encodeGenerator=p,i.isWithinTokenLimit=m,i.countTokens=g,i.encodeChat=h,i.encodeChatGenerator=y,i.vocabularySize=b,i.setMergeCacheSize=f,i.clearMergeCache=v,i.estimateCost=k,i.default=o},120:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Cl100KBase=function(e){const i=new Map([[r.EndOfText,100257],[r.FimPrefix,100258],[r.FimMiddle,100259],[r.FimSuffix,100260],[r.ImStart,100264],[r.ImEnd,100265],[r.ImSep,100266],[r.EndOfPrompt,100276]]);return{tokenSplitRegex:n.CL_AND_O_TOKEN_SPLIT_PATTERN,bytePairRankDecoder:e,specialTokensEncoder:i}};const r=a(795),n=a(417)},417:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CL_AND_O_TOKEN_SPLIT_PATTERN=i.R50K_TOKEN_SPLIT_REGEX=void 0,i.R50K_TOKEN_SPLIT_REGEX=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,i.CL_AND_O_TOKEN_SPLIT_PATTERN=/(?:'s|'t|'re|'ve|'m|'ll|'d)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}{1,3}| ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+/giu},955:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.O200KBase=function(e){const i=new Map([[r.EndOfText,199999],[r.FimPrefix,2e5],[r.FimMiddle,200001],[r.FimSuffix,200002],[r.ImStart,200003],[r.ImEnd,200004],[r.ImSep,200005],[r.EndOfPrompt,200006]]);return{tokenSplitRegex:n.CL_AND_O_TOKEN_SPLIT_PATTERN,bytePairRankDecoder:e,specialTokensEncoder:i}};const r=a(795),n=a(417)},398:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.P50KBase=function(e){return{expectedVocabularySize:50281,tokenSplitRegex:n.R50K_TOKEN_SPLIT_REGEX,bytePairRankDecoder:e,specialTokensEncoder:new Map([[r.EndOfText,50256]])}},a(177);const r=a(795),n=a(417)},517:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.P50KEdit=function(e){const i=new Map([[r.EndOfText,50256],[r.FimPrefix,50281],[r.FimMiddle,50282],[r.FimSuffix,50283]]);return{tokenSplitRegex:n.R50K_TOKEN_SPLIT_REGEX,bytePairRankDecoder:e,specialTokensEncoder:i}},a(177);const r=a(795),n=a(417)},401:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.R50KBase=function(e){return{expectedVocabularySize:50257,tokenSplitRegex:n.R50K_TOKEN_SPLIT_REGEX,bytePairRankDecoder:e,specialTokensEncoder:new Map([[r.EndOfText,50256]])}},a(177);const r=a(795),n=a(417)},179:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.chatModelParams=i.modelToEncodingMap=i.encodingNames=i.DEFAULT_ENCODING=i.o200k_base=i.r50k_base=i.p50k_edit=i.p50k_base=i.cl100k_base=void 0;const r=a(228),n=a(653),t=a(795);i.cl100k_base="cl100k_base",i.p50k_base="p50k_base",i.p50k_edit="p50k_edit",i.r50k_base="r50k_base",i.o200k_base="o200k_base",i.DEFAULT_ENCODING=i.o200k_base,i.encodingNames=[i.p50k_base,i.r50k_base,i.p50k_edit,i.cl100k_base,i.o200k_base],i.modelToEncodingMap=Object.fromEntries(Object.entries(n).flatMap((([e,i])=>i.map((i=>[i,e])))));const s={messageSeparator:"\n",roleSeparator:"\n"},o={messageSeparator:"",roleSeparator:t.ImSep};i.chatModelParams=Object.fromEntries(r.chatEnabledModels.flatMap((e=>e.startsWith("gpt-3.5")?[[e,s]]:[[e,o]])))},177:(e,i,a)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getEncodingParams=function(e,i){const a=i(e);switch(e.toLowerCase()){case"r50k_base":return(0,o.R50KBase)(a);case"p50k_base":return(0,t.P50KBase)(a);case"p50k_edit":return(0,s.P50KEdit)(a);case"cl100k_base":return(0,r.Cl100KBase)(a);case"o200k_base":return(0,n.O200KBase)(a);default:throw new Error(`Unknown encoding name: ${e}`)}};const r=a(120),n=a(955),t=a(398),s=a(517),o=a(401)},228:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.chatEnabledModels=void 0,i.chatEnabledModels=["chatgpt-4o-latest","codex-mini-latest","computer-use-preview","computer-use-preview-2025-03-11","gpt-3.5","gpt-3.5-0301","gpt-3.5-turbo","gpt-3.5-turbo-0125","gpt-3.5-turbo-0613","gpt-3.5-turbo-1106","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-instruct","gpt-4","gpt-4-0125-preview","gpt-4-0314","gpt-4-0613","gpt-4-1106-preview","gpt-4-1106-vision-preview","gpt-4-32k","gpt-4-turbo","gpt-4-turbo-2024-04-09","gpt-4-turbo-preview","gpt-4.1","gpt-4.1-2025-04-14","gpt-4.1-mini","gpt-4.1-mini-2025-04-14","gpt-4.1-nano","gpt-4.1-nano-2025-04-14","gpt-4.5-preview","gpt-4.5-preview-2025-02-27","gpt-4o","gpt-4o-2024-05-13","gpt-4o-2024-08-06","gpt-4o-2024-11-20","gpt-4o-audio-preview","gpt-4o-audio-preview-2024-10-01","gpt-4o-audio-preview-2024-12-17","gpt-4o-audio-preview-2025-06-03","gpt-4o-mini","gpt-4o-mini-2024-07-18","gpt-4o-mini-audio-preview","gpt-4o-mini-audio-preview-2024-12-17","gpt-4o-mini-search-preview","gpt-4o-mini-search-preview-2025-03-11","gpt-4o-search-preview","gpt-4o-search-preview-2025-03-11","o1","o1-2024-12-17","o1-mini","o1-mini-2024-09-12","o1-preview","o1-preview-2024-09-12","o1-pro","o1-pro-2025-03-19","o3","o3-2025-04-16","o3-mini","o3-mini-2025-01-31","o3-pro","o3-pro-2025-06-10","o4-mini","o4-mini-2025-04-16"]},653:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.o200k_base=i.cl100k_base=i.p50k_edit=i.r50k_base=i.p50k_base=void 0,i.p50k_base=["text-davinci-002","text-davinci-003","code-davinci-001","code-davinci-002","davinci-codex","code-cushman-001","code-cushman-002","cushman-codex"],i.r50k_base=["text-ada-001","text-babbage-001","text-curie-001","text-davinci-001","ada","babbage","curie","davinci","code-search-ada-code-001","code-search-ada-text-001","text-similarity-ada-001","text-search-ada-doc-001","text-search-ada-query-001","text-similarity-babbage-001","text-search-babbage-doc-001","text-search-babbage-query-001","code-search-babbage-code-001","code-search-babbage-text-001","text-similarity-curie-001","text-search-curie-doc-001","text-search-curie-query-001","text-similarity-davinci-001","text-search-davinci-doc-001","text-search-davinci-query-001"],i.p50k_edit=["code-davinci-edit-001","text-davinci-edit-001"],i.cl100k_base=["gpt-3.5","gpt-3.5-0301","gpt-3.5-turbo","gpt-3.5-turbo-0125","gpt-3.5-turbo-0613","gpt-3.5-turbo-1106","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-instruct","gpt-4","gpt-4-0125-preview","gpt-4-0314","gpt-4-0613","gpt-4-1106-preview","gpt-4-1106-vision-preview","gpt-4-32k","gpt-4-turbo","gpt-4-turbo-2024-04-09","gpt-4-turbo-preview","text-embedding-3-large","text-embedding-3-small","text-embedding-ada-002","babbage-002","davinci-002"],i.o200k_base=[]},795:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.EndOfPrompt=i.ImSep=i.ImEnd=i.ImStart=i.FimSuffix=i.FimMiddle=i.FimPrefix=i.EndOfText=void 0,i.EndOfText="<|endoftext|>",i.FimPrefix="<|fim_prefix|>",i.FimMiddle="<|fim_middle|>",i.FimSuffix="<|fim_suffix|>",i.ImStart="<|im_start|>",i.ImEnd="<|im_end|>",i.ImSep="<|im_sep|>",i.EndOfPrompt="<|endofprompt|>"},995:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.isAscii=void 0,i.endsWithIncompleteUtfPairSurrogate=function(e){if(0===e.length)return!1;const i=e.charCodeAt(e.length-1);return i>=a&&i<=r},i.tryConvertToString=function(e){if(function(e){let i=0;for(;i<e.length;){const a=e[i];let r=0,n=0;if(a<=127)r=1,n=a;else if(192==(224&a)){if(r=2,n=31&a,a<=193)return!1}else if(224==(240&a))r=3,n=15&a;else{if(240!=(248&a))return!1;if(r=4,n=7&a,a>244)return!1}if(i+r>e.length)return!1;for(let a=1;a<r;a++){const r=e[i+a];if(void 0===r||128!=(192&r))return!1;n=n<<6|63&r}if(2===r&&n<128)return!1;if(3===r&&n<2048)return!1;if(4===r&&n<65536)return!1;if(n>=55296&&n<=57343)return!1;if(n>1114111)return!1;i+=r}return!0}(e))return n.decode(e)},i.compareUint8Arrays=function(e,i){const a=Math.min(e.length,i.length);for(let r=0;r<a;r++)if(e[r]!==i[r])return e[r]-i[r];return e.length-i.length},i.isAscii=e=>e<=127;const a=55296,r=56319,n=new TextDecoder("utf8",{fatal:!1})},462:(e,i)=>{function a(e){return e.replace(/[$()*+.?[\\\]^{|}]/g,"\\$&")}Object.defineProperty(i,"__esModule",{value:!0}),i.getMaxValueFromMap=function(e){let i=0;return e.forEach((e=>{i=Math.max(i,e)})),i},i.escapeRegExp=a,i.getSpecialTokenRegex=function(e){const i=[...e].map(a).join("|");return new RegExp(`(${i})`)}},703:(e,i,a)=>{a.r(i),a.d(i,{default:()=>t});const r=["!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~",[161],[162],[163],[164],[165],[166],[167],[168],[169],[170],[171],[172],[174],[175],[176],[177],[178],[179],[180],[181],[182],[183],[184],[185],[186],[187],[188],[189],[190],[191],[192],[193],[194],[195],[196],[197],[198],[199],[200],[201],[202],[203],[204],[205],[206],[207],[208],[209],[210],[211],[212],[213],[214],[215],[216],[217],[218],[219],[220],[221],[222],[223],[224],[225],[226],[227],[228],[229],[230],[231],[232],[233],[234],[235],[236],[237],[238],[239],[240],[241],[242],[243],[244],[245],[246],[247],[248],[249],[250],[251],[252],[253],[254],[255],"\0","","","","","","","","\b","\t","\n","\v","\f","\r","","","","","","","","","","","","","","","","","",""," ","",[128],[129],[130],[131],[132],[133],[134],[135],[136],[137],[138],[139],[140],[141],[142],[143],[144],[145],[146],[147],[148],[149],[150],[151],[152],[153],[154],[155],[156],[157],[158],[159],[160],[173]," t"," a","he","in","re","on"," the","er"," s","at"," w"," o","en"," c","it","is","an","or","es"," b","ed"," f","ing"," p","ou"," an","al","ar"," to"," m"," of"," in"," d"," h"," and","ic","as","le"," th","ion","om","ll","ent"," n"," l","st"," re","ve"," e","ro","ly"," be"," g"," T","ct"," S","id","ot"," I","ut","et"," A"," is"," on","im","am","ow","ay","ad","se"," that"," C","ig"," for","ac"," y","ver","ur"," u","ld"," st"," M","'s"," he"," it","ation","ith","ir","ce"," you","il"," B"," wh","ol"," P"," with"," 1","ter","ch"," as"," we"," (","nd","ill"," D","if"," 2","ag","ers","ke",' "'," H","em"," con"," W"," R","her"," was"," r","od"," F","ul","ate"," at","ri","pp","ore"," The"," se","us"," pro"," ha","um"," are"," de","ain","and"," or","igh","est","ist","ab","rom"," N","th"," com"," G","un","op","00"," L"," not","ess"," ex"," v","res"," E","ew","ity","ant"," by","el","os","ort","oc","qu"," from"," have"," su","ive","ould"," sh"," this","nt","ra","pe","ight","art","ment"," al","ust","end","--","all"," O","ack"," ch"," le","ies","red","ard",[226,128],"out"," J"," ab","ear","iv","ally","our","ost","gh","pt"," pl","ast"," can","ak","ome","ud","The"," his"," do"," go"," has","ge","'t"," U","rou"," sa"," j"," but"," wor"," all","ect"," k","ame"," will","ok"," whe"," they","ide","01","ff","ich","pl","ther"," tr",".."," int","ie","ure","age"," ne","ial","ap","ine","ice"," me"," out","ans","one","ong","ions"," who"," K"," up"," their"," ad"," 3"," us","ated","ous"," more","ue","og"," St","ind","ike"," so","ime","per",'."',"ber","iz","act"," one"," said"," -","are"," your","cc"," Th"," cl","ep","ake","able","ip"," cont"," which","ia"," im"," about"," were","very","ub"," had"," en"," comp",',"'," In"," un"," ag","ire","ace","au","ary"," would","ass","ry",[32,226,128],"cl","ook","ere","so"," V","ign","ib"," off"," te","ven"," Y","ile","ose","ite","orm"," 201"," res"," man"," per"," other","ord","ult"," been"," like","ase","ance","ks","ays","own","ence"," dis","ction"," any"," app"," sp","int","ress","ations","ail"," 4","ical"," them"," her","ount"," Ch"," ar"," if"," there"," pe"," year","av"," my"," some"," when","ough","ach"," than","ru","ond","ick"," over","vel"," qu","\n\n"," sc","reat","ree"," It","ound","port"," also"," part","fter"," kn"," bec"," time","ens"," 5","ople"," what"," no","du","mer","ang"," new","----"," get","ory","ition","ings"," just"," into"," 0","ents","ove","te"," people"," pre"," its"," rec"," tw","ian","irst","ark","ors"," work","ade","ob"," she"," our","wn","ink","lic"," 19"," He","ish","nder","ause"," him","ons"," ["," ro","form","ild","ates","vers"," only","oll"," spe","ck","ell","amp"," acc"," bl","ious","urn","ft","ood"," how","hed"," '"," after","aw"," att","ov","ne"," play","erv","ict"," could","itt"," am"," first"," 6"," act"," $","ec","hing","ual","ull"," comm","oy","old","ces","ater"," fe"," bet","we","iff"," two","ock"," back",").","ident"," under","rough","sel","xt"," may","round"," po","ph","iss"," des"," most"," did"," add","ject"," inc","fore"," pol","ont"," again","clud","tern"," know"," need"," cons"," co"," ."," want"," see"," 7","ning","iew"," This","ced"," even"," ind","ty"," We","ath"," these"," pr"," use"," because"," fl","ng"," now"," –","com","ise"," make"," then","ower"," every"," Un"," sec","oss","uch"," em"," ="," Re","ied","rit"," inv","lect"," supp","ating"," look","man","pect"," 8","row"," bu"," where","ific"," years","ily"," diff"," should"," rem","Th","In"," ev","day","'re","rib"," rel","ss"," def"," right"," sy","),","les","000","hen"," through"," Tr","__"," way"," don"," ,"," 10","ased"," ass","ublic"," reg"," And","ix"," very"," includ","other"," imp","oth"," sub"," —"," being","arg"," Wh","==","ible"," does","ange","ram"," 9","ert","ps","ited","ational"," br"," down"," many","aking"," call","uring","ities"," ph","ics","als"," dec","ative","ener"," before","ility"," well"," much","erson"," those"," such"," ke"," end"," But","ason","ting"," long","ef"," think","ys"," bel"," sm","its","ax"," own"," prov"," set","ife","ments","ble","ward"," show"," pres","ms","omet"," ob"," say"," Sh","ts","ful"," eff"," gu"," inst","und","ren","cess"," ent"," You"," good"," start","ince"," made","tt","stem","olog","up"," |","ump"," hel","vern","ular","ually"," ac"," mon"," last"," 200","10"," stud","ures"," Ar","self","ars","meric","ues","cy"," min","ollow"," col","io"," mod"," count"," Com","hes"," fin","air","ier","—","read","ank","atch","ever"," str"," point","ork"," New"," sur","ool","alk","ement"," used","ract","ween"," same","oun"," Al","ci"," differe"," while","--------"," game","cept"," sim","..."," inter","ek"," report"," produ"," still","led","ah"," here"," world"," though"," num","arch","imes","ale"," Se"," If","//"," Le"," ret"," ref"," trans","ner","ution","ters"," take"," Cl"," conf","way","ave"," going"," sl","ug"," Americ"," spec"," hand"," between","ists"," De","oot","It"," ear"," against"," high","gan","az","ather"," exp"," op"," ins"," gr"," help"," requ","ets","ins"," Pro","ism"," found","land","ata","uss","ames"," person"," great","pr"," sign"," An","'ve"," somet"," ser","hip"," run"," :"," ter","irect"," follow"," det","ices"," find","12"," mem"," cr","ered","ex"," ext","uth","ense","co"," team","ving","ouse","ash","att","ved"," system"," As","der","ives","min"," lead"," Bl","cent"," around"," govern"," cur","velop","any"," cour","alth","ages","ize"," car","ode"," law"," read","'m","con"," real"," support"," 12","...."," really","ness"," fact"," day"," both","ying"," serv"," For"," three"," wom"," med","ody"," They","50"," exper","ton"," each","akes"," che"," cre","ines"," rep","19","gg","illion"," grou","ute","ik","We","get","ER"," met"," says","ox"," during","ern","ized","ared"," fam","ically"," happ"," Is"," char","med","vent"," gener","ient","ple","iet","rent","11","ves","ption"," 20","formation"," cor"," offic","ield"," too","ision"," inf"," Z","the","oad"," public"," prog","ric","**"," war"," power","view"," few"," loc"," different"," state"," head","'ll"," poss"," stat","ret","ants"," val"," iss"," cle","ivers","anc"," expl"," another"," Q"," av","thing","nce","Wh"," child"," since","ired","less"," life"," develop","ittle"," dep"," pass",[227,131]," turn","orn","This","bers","ross"," Ad"," fr"," resp"," second","oh"," /"," disc"," &"," something"," comple"," ed"," fil"," month","aj","uc"," government"," without"," leg"," dist"," put"," quest","ann"," prot","20"," never","ience"," level"," art"," things"," might"," effect"," contro"," cent"," 18"," allow"," belie","chool","ott"," incre"," feel"," result"," lot"," fun","ote"," ty","erest"," contin"," using"," big","201"," ask"," best"," )","IN"," opp","30"," number","iness","St","lease"," ca"," must"," direct"," gl"," <"," open"," post"," come"," seem","ording"," week","ately","ital"," el","riend"," far"," tra","inal"," pri"," US"," place"," form"," told",'":',"ains","ature"," Trump"," stand"," #","ider"," Fr"," next"," soc"," pur"," let"," little"," hum"," i","ron","15"," 15"," commun"," mark"," There"," wr"," That"," information","ways"," bus","app"," invest","me"," hard","ained","ead"," import"," appro"," test"," tri"," rest","osed"," full"," care"," Sp"," case","ON"," sk"," less"," +"," partic"," Pl","ably","uck","ished","chn","be"," list","ator"," top"," adv"," Be","ruct"," dem","ration","ling","gy","reen","ger"," home"," left"," better"," data"," 11"," attack"," proble","line","ards"," beh","ral"," How"," She","arge"," --","://"," bro"," Ph","ats"," build","ww","ided","aim","ases","ency"," main","ined"," including"," {"," got"," interest"," keep"," X"," eas","aining"," class","…"," No"," var"," small","ample","AT"," ide"," So"," rece"," polit"," mov"," plan"," percent","iving"," camp"," pay","14","sc","ised"," unt","oney","ploy","===="," didn"," Ind","els","ertain"," pos","____","iver"," process"," program","ified"," Rep","16","uro","ology","atter","ina"," name"," All"," four"," return","vious","bs"," called"," move"," Sc","ird"," group"," bre"," men"," cap","ten","ee"," dri","leg","here","uthor"," pat"," current","ides"," pop","to","ention"," always"," mil"," women"," 16"," old","iven","raph"," Or","ror","ently"," near"," Ex","ream","sh"," 14"," free","ission","stand"," Con","ality","used","13"," design"," change"," chang"," bo"," vis","ember"," book","ready"," kill","25","pped"," away"," able"," country"," const","arn"," order","AR","ior","ium","orth","18","ailable"," sw"," million"," 13","atic","ted"," Go"," oper","eng"," thing","ajor","conom"," Comm"," why","ured","ural"," school","by"," Mar"," aff"," days"," ann","ush","ane","If","eg"," prof"," health","outh","But","ional",".,"," sol"," already"," 30"," charact","He"," friend","ES","ians","icle","'d"," On"," least"," prom"," dr"," hist","ither"," est","iqu","17","son"," tell"," talk","ohn","oint","lection","AN"," until","augh"," later"," ve"," view","ending","ived"," word","ware"," cost"," enough"," give"," United"," techn","arent","OR"," par"," Dr"," 2016","rist","ering",[32,194]," large","side","acy","ccess"," win"," important"," 199"," doesn"," 17"," business"," clear"," rese",'",',"ury"," equ","aster","alf"," American","nect"," expect","iversity"," occ"," Fl"," kind"," mean"," past"," dev"," bas","let","raft"," organ"," del"," perform"," story"," season"," Col"," claim"," came"," within"," line"," project"," At"," control","ended"," Sy"," air","ization"," *","ley"," money","idd","You","for"," family"," making"," bit"," police"," happen"," vers","ony","uff"," When"," sit","ideo","lf","ison"," sure","gin"," appear"," light"," es","of"," water"," times","not"," grow"," company"," Te","ows"," mar","ource","iol","arm","br"," example"," conc"," fore"," To","pro","EN","ries"," 25"," Can","ney"," actually"," ever","urity","aken","aps"," tax"," major","ama"," often","eral"," human"," job","ister"," available","ocr","enn","aid","ivid"," record",'?"'," sing"," Am","idence"," news","ster"," econom"," following"," Br","ising"," hour","most","ument"," sex"," desc"," become"," Ed"," took"," having"," product","ault","As","aring"," means"," hop","une"," cho"," certain"," non"," deal","24","lement","oci","ene"," side"," Pr"," May"," reason","ued","ched","ulation"," elect"," official"," possible"," hold","ands","ots"," city","ories"," sever"," children"," once"," activ","ler"," night","itions"," John","ape","play"," done"," lim"," working"," Pres","orld","eb"," Co"," body","ails","utes"," Mr"," whether"," author","rop"," proper"," seen",");"," fac"," Su"," cond","iting"," course"," }","----------------","aign"," event"," eng"," pot"," intern","iam"," short","empt",[227,130]," God","ilar","80"," orig","IS","ourn","ability","itive"," dam"," 100"," press"," doing"," protect","ring"," thought"," question","rew"," War"," several"," State"," given"," fund"," Tw"," went","ances","work","por","my","40"," arg","artment","ustom"," polic"," meet"," creat","22"," States"," games","raw","uture"," understand","urs"," Ob","lish","sy"," makes"," won","agon"," htt"," love","ential"," complete","par"," Im","AL"," account"," ","ored","vert"," ident"," 2015"," others"," Min","iber","verage","There","itional","dd"," prob"," young"," along"," according"," yet"," members"," What","oid"," Man","And"," among","ai"," employ"," Res"," >"," invol"," low","af"," Car"," hig"," One"," Sec","ination"," likely"," ant","aged"," Russ"," ben"," rele","For","back"," Not"," president","ball"," access","ividual"," Dem"," Euro","60"," known","irl"," Gr"," early","use","iety","–"," fight"," sent"," today"," market",'".'," based"," strong","urther"," deb","mber"," problem"," death"," social","imate","AS","ortun"," campaign","ery","Ch"," ey","ially"," mus","wh","pos"," er"," saf"," months","iron"," viol"," five"," stre"," players","inc","ald","year","aun"," success"," present","erence"," 2014"," sugg"," particular"," try"," suggest"," Christ","ones"," priv","23"," crit"," land"," local","ify","29"," aut","ED"," Gu"," mult"," political"," asked"," former","itter","ript"," close"," pract"," York"," getting"," across"," comb"," believe"," z"," toget"," together"," Cent","irc"," individual"," Mc","27","isk"," Eng"," face"," 24"," value"," area","ev"," writ"," President"," vot"," key"," mom","put"," anything"," experience","attle"," mind","aff","omm"," future","ged"," cut"," tot","itch"," video"," investig"," net"," My","rict","ien",".)"," impro","though","wards"," connect"," Med","selves","ensive","mb","ober","ators","An"," 50"," redu","resent"," above"," fre"," Europe","sw"," amount"," App"," either"," milit"," anal"," fail"," En","ales"," special"," black","IT","cher"," looking"," fire","yn"," almost","oon"," study"," miss","ches","rown"," tre"," community"," media"," food"," comes"," University"," single","What","uly"," half","ague","hod"," Republic"," started"," quick","oto","book"," issue","itor"," else"," consider","26","rodu"," taken","28","99"," With"," true"," wa"," trad"," ago"," mess","ief"," added","oke"," bad"," fav","33"," similar","ask"," Don"," character","orts"," House"," reported"," type","val","iod"," However"," targ"," entire","pping"," history"," live","ffic","........","ederal"," trying"," discuss"," Har","aces","lished"," self","osp","rest"," room","elt"," fall","olution"," et"," x"," isn"," idea","bo"," sound"," Dep"," someone","cially","ully"," foc"," object","ift","aper"," player"," rather"," service","ashing"," Do"," Part","rug","mon","ply"," mor"," nothing"," provide","IC","ung"," party"," exist"," mag","70"," rul"," house"," behind"," however"," World"," sum"," applic"," ;"," function","gr"," Pol"," front","200"," series"," tem"," typ","ills"," opt"," points"," below","itted"," specific"," 2017","umb"," ra"," previous"," pret","reme"," custom"," court"," Me"," repl"," whole","go","cer"," treat"," Act"," probably"," learn","ender"," Ass"," version","now"," check"," Cal","RE","minist","On","ources"," benef"," doc"," deter"," enc"," super"," address"," vict"," 2013"," meas","tr"," field","When"," signific","uge"," feat"," common","load"," begin"," bring"," action","erman"," describ"," indust"," wanted","ried","ming"," attempt","45","fer"," due","ression","##"," shall"," six","oo"," step"," pub"," himself"," 23"," cop"," dest"," stop","AC","ibility"," lab","icult"," hours"," create"," further"," America"," City"," dou","head","ST"," North","cing"," national","ule"," Inst"," taking"," Qu","irt"," red"," research","viron"," Ge"," break","ana"," space","aterial"," recent"," Ab"," general"," hit"," period"," everything","ively"," phys"," saying","anks"," cou"," cult","aced","eal","uation"," coun","lu"," include"," position"," After"," Canad"," Em"," imm"," Red"," pick"," compl"," matter","reg","ext","angu","isc","ole","aut"," compet","eed","fect"," 21"," Sen"," These","asing"," cannot"," init"," relations","ached"," bar"," 40"," TH"," 2012"," vol"," ground"," security"," upd","ilt","35"," concern"," Just"," white"," seems"," Her","pecially","ients"," announ"," fig","ights"," stri","like","ids"," sus"," watch",[32,226]," wind"," Cont"," itself"," mass","Al","yle","ique"," National"," abs"," pack"," outside"," anim"," pain","eter"," manag","duct","ogn"," ]"," Sept","sec","off"," Jan"," foot","ades"," third"," mot"," evidence","inton"," threat","apt","ples","cle"," lo"," decl"," item","medi"," represent","omb","amer"," significant","ograph","su"," cal","ires","0000","ID","AM"," simply"," longer"," file","OT","che","So","ateg","org"," His"," ener"," dom"," upon","ili",'":"'," themselves"," coming"," quite"," difficult"," Bar","ilities","rel","ends","cial","64"," woman","rap","yr"," necess","ips"," text"," require"," military"," review"," respons","75"," subject"," instead"," issues"," gen",'","'," minutes"," weap","ray","amed","time","bl","How"," code"," Sm"," higher"," Ste","ris"," page"," students"," Intern"," method"," Aug"," Per"," Ag"," policy"," Sw"," exec"," accept","ume","ribut"," words"," final"," changes"," Democr"," friends"," respect"," ep"," compan","ivil"," damage","****","ogle","vironment"," neg","ental"," ap"," total","ival",'!"',"lim"," needs"," agre"," development"," age","iple","21"," results"," Af","Sh"," gun"," Obama","roll"," @"," rights"," Brit"," running"," wasn"," port"," rate"," pretty"," target"," saw"," circ"," works","icro","alt","over","www","That","lier"," everyone","ude"," pie","iddle","rael"," rad"," block"," walk","To",[227,129],"nes"," Aust","aul","rote"," South","ession","oph"," shows"," site"," jo"," risk","clus","lt"," inj","iding"," Spe"," chall","irm"," 22","itting","str"," hy","LE","key"," began","atur","ashington","lam"," Dav","bit"," size"," Par","38","ournal","face"," decision"," larg"," jud","rect"," continue"," Oct","overed"," Int","========"," parent"," Will"," easy"," drug","anger"," sense"," di","iday"," energy","istic"," associ","arter","obal","eks"," El","urch"," girl","oe","itle"," 28"," Che"," request"," soon"," host","ky"," states","omes"," material","lex"," moment"," answ","onse"," especially"," norm"," services","pite","ran"," role","44","):"," cred","Cl","________"," mat"," log"," Clinton","OU"," office"," 26"," charg"," track","ma"," heart"," ball"," personal"," building","na","set","body"," Black"," increase","itten"," needed","36","32",'="'," lost"," became"," groups"," Mus"," wrote"," Pe"," prop","joy","é"," White"," dead",".'"," http"," webs","OS"," inside"," wrong"," statement"," ...","yl"," film"," music"," share","ification"," release"," forward"," stay"," comput","itte","ser"," original"," card"," cand"," div","atural"," favor","OM"," cases","uses"," section"," leave","ging","oved"," Washington","39"," Gl"," required","action","apan","oor","iter"," King"," countries"," German","lling"," 27","34"," questions"," prim"," cell"," shoot"," anyone"," West"," affect","epend"," online"," Israel"," September"," ability"," content","ises"," reve"," laun"," indic"," force","cast"," sold","aving","fl"," soft"," companies","ceed"," article"," aud"," rev"," educ"," playing","05"," held","ctor"," released"," federal","37"," administ"," interview"," install"," received"," source","uk","Ph"," serious"," created"," cause"," immedi"," defin","uel"," Department","ctions"," Cour"," Now","ze","ites","itution"," late"," speak","ners"," legal","ari"," Cor"," weeks"," model"," pred"," exact","BC"," By","ING","osing"," takes"," regard"," opportun"," price"," 198"," Apr","fully"," ord"," problems","ruction","ham"," Count","lege"," leaders","ET","lev"," deep","ological","ese","haps"," Some"," pers"," contract"," relationship","sp","oud"," base","48","mit","Ad","ancial"," consum"," potential"," langu","rem","eth"," relig","ressed","66"," link"," lower","ayer"," June"," fem","unt","erc","urd"," contact"," ill"," mother"," estab","htt"," March"," Bro"," China"," 29"," squ"," provided"," average","asons"," 2011"," exam","lin","55","ned"," perfect"," tou","alse","ux"," buy"," shot"," collect"," phot"," played"," surpr"," officials"," simple","avy"," industry"," hands","ground"," pull"," round"," user"," range","uary"," private","ops","ees"," ways"," Mich"," veh"," except"," terms","imum","pper","ION","ores"," Dragon","oul"," den"," performance"," bill","cil","47"," environment"," exc","add"," worth"," pict"," chance"," 2018","bor"," speed","iction"," alleg"," Japan","atory","reet"," match"," II"," stru","order"," ste"," living"," struct","ino"," separ","hern"," response"," enjoy"," via","AD","uments","acebook"," member","ibr","izing"," tool"," Mon"," While","hood"," Ang"," Def"," offer","Tr","aur"," turned"," July","down","anced"," recently"," Ear"," ce"," Star"," Cong","rought"," blood"," hope"," comment","aint"," arri","iles"," particip","ought","ription","08","49"," gave"," select"," killed","sych"," goes","ij"," coll"," impact","atives"," Ser","09"," August"," boy","de"," Des"," felt","US"," expected"," image"," Mark","ccording","oice","EC"," Mag","ened","hold"," Post"," prevent","No"," involved"," eyes"," quickly","At","unk"," behav"," ur"," led","come","ey"," candid"," earlier"," focus","ety","Pro","ledge","ixed","illed"," popular","AP"," sett","light"," various","inks"," levels"," road","ellig","ables","hel","ittee"," Gener","ype"," heard","icles"," mis"," users"," San"," improve"," father"," search","They","vil"," profess"," knew"," loss"," events","65"," billion","07","02"," News"," AM"," cover","where","ension"," bott"," areas","ences","ope"," Twitter","ael"," gets"," Google"," sn","iant"," vote"," nearly"," included"," recogn","zz","mm","aled"," happened","04"," hot"," whose"," civil"," suff","oes","itiz"," Syri"," respond"," hon"," features"," economic"," April","rim"," technology"," option","aging"," purch","Re"," lat","chie","isl"," recomm","uf"," training"," effects"," fast"," 2010"," occur"," website"," email"," sens","ech"," oil"," influ"," currently"," Sch"," Add"," goal"," scient"," conv","100","emy"," decided"," travel"," mention","LL","03"," election"," phone"," looks"," situation"," cy"," hor","bed"," Court","aily","aves"," quality"," Comp","wise"," table"," staff"," Wind","ett"," tried","idered"," addition"," box"," lack","arily"," wide"," mid"," board","ysis"," anti","ha"," dig","ening"," dro","Con","68"," slow","based","sequ"," path","Ex","aker"," worked"," pen"," engine"," looked"," Super"," Serv"," victim","Un"," property"," introdu"," execut"," PM","Le"," color"," More"," 60"," network"," date","cul","idge"," extra","31"," sle","67"," wond"," reports","just"," Austral"," capital"," ens"," command"," allowed"," prep"," capt","hib"," numbers","chan"," fair","mp","oms"," reach","With","tain"," broad"," couple","ecause","lying"," Feb"," screen"," lives"," prior"," Congress","Ar"," approach"," emer","aries"," Dis","serv"," Ne"," built","cies"," repe"," rules","force"," Pal"," financial"," considered"," Char","nces"," IS"," brought"," bi","iers"," Sim","OP"," products"," visit"," document"," conduct"," completely","ining"," Calif","ibly"," written"," TV","ements"," draw","One"," published"," secret","rain","het"," Facebook","onday"," Up"," sexual"," thous"," Pat"," ess"," standard"," arm","ges","ection"," fell"," foreign","ani"," Friday"," regular","inary"," increased"," usually"," demon"," dark"," additional","rol"," Of"," production","!!","undred"," international","idents"," Free","roup"," race"," mach"," huge","All","lear","ovember"," town"," attention"," Off","yond"," Then","field"," terror","raz"," Bo"," meeting"," Park"," arrest"," fear"," aw"," Val","oring","',"," extreme","arr"," workers","After"," 31","net","ament"," directly"," population","ube"," October"," IN"," January","59"," David"," cross","cember"," First"," message","irit"," nation"," poll","isions"," answer","ny","isode"," carry"," Russia"," hear","ength","roy"," natural","inally"," dog","mitted"," trade"," subst"," multiple"," Afric"," fans"," sort"," global","ication"," Wed","ara"," achie"," language","vey"," tal"," necessary"," details"," sen"," Sund"," Reg"," Rec","06"," sil","ressive"," medical","unch","ornia"," und","fort","ocks"," Monday","uesday","craft","77","urt"," ver"," Hill"," receive"," morning","estern"," bank"," sat","irth"," High"," device"," THE"," Center"," safe"," ple"," Canada"," systems"," assist"," surv"," battle"," Soc","vertis","She"," paper"," growth"," cast","Sc"," plans","lled"," parts"," wall"," movement"," practice","imately"," display"," sometimes","omp"," Paul"," Yes","king","58","oly"," son"," avoid","okes"," Jew"," towards","asc"," //"," Kore"," talking"," correct"," spent","icks","iable","eared"," term"," wants","oming"," ut"," doub"," forces"," please","69"," November","atform","ondon"," ones"," immediately"," Russian"," Met"," deg"," parents","CH"," Americans","aly"," Mod"," shown"," conditions"," stuff"," reb"," Your"," includes","nown"," Sam"," experien","mission"," Even","aught"," announced"," Republican"," determin"," described"," County","()"," door"," changed"," neigh"," Here"," clean"," pan"," December"," European","iring","apter"," club"," Tuesday"," paid"," Net"," attacks"," characters"," alone"," director","dom"," 35"," load"," rout"," California"," finally"," rac"," contr"," exactly","resh","pri"," Islam"," nature"," career"," latest"," convers"," Sl","pose","cient"," Inc","ivity","88"," Att"," Mor","nesday"," weight","ken"," note"," teams"," \\","airs"," Green"," hundred","onent"," streng"," consist","icated"," regul"," lic","astic"," ten","ursday","elligence","ously"," UK","BI"," costs"," independ"," AP"," normal"," hom"," obvious"," swe"," star"," ready","acher"," implement","gest"," song"," Get"," Lab"," interesting","using"," giving"," Sunday"," etc"," middle"," remember","right","osition","utions"," max","46"," yourself"," demand"," treatment"," danger"," Cons"," guy"," British"," physical"," related"," remain"," couldn"," refer"," citiz","box","ENT","board"," inn","IG","ero"," Street","ospital","rench","chers"," stra","OL","ager"," AN"," easily","IA","enge","iny"," clos","ocked"," uses"," Coun","Im","uild","??","more"," ang"," write","olute","57"," leader"," reading","</"," autom","ests","43"," legisl"," Gold"," designed"," ST"," Leg","ares"," beaut"," Tex"," appears"," strugg"," Rom"," 00"," choice"," particularly"," From","oper"," London","anned"," allows","obile"," difference","•"," View"," Wednesday"," although"," relative"," application","atever"," aren"," myself"," imag"," dise"," society"," frequ"," English"," poor"," Day"," writing"," seven"," starting"," bud"," print"," Trans","ufact"," Stud","new"," crim"," gives"," cool","ae","iance"," General"," thinking"," save"," limited"," Party"," meaning","pen","owers"," Jack","EM"," nice","rupt"," gas"," eight"," feet"," effort"," ign","icit","Bl","coin"," opin"," brain","While","hest"," Thursday"," wouldn","aughter"," touch","lements"," studies"," center","cont","orge"," computer"," investigation","Pl","orks"," 2008"," increasing"," store"," comments"," bal","men"," doll"," liber"," wife"," laws","aturday","itness"," modern"," Sk"," administration"," opportunity"," sal"," powerful","My"," claims"," Earth","ords"," title"," esc","name","Not","omen"," beyond"," camer"," sell","itute","earch"," appl","iment","42"," Art"," unf"," violence","urg"," East"," compared"," options"," throughout"," vs","igr",".[","aches","78"," files","FL","EL","arian"," James"," Air","anch"," detail"," piece","PS"," named"," education"," drive"," items"," student","iced","::","ico"," throw"," scene"," complex"," 2009"," prec"," Bre","79"," concept"," status","