Contexto

Durante el siguiente Rmd se desarrolla un análisis de texto en el cual implementaremos distintas herramientas con el fin de comparar el cambio tanto en el lenguaje como en las emociones entre 2 guiones de una misma película que fue remasterizada después de 28 años (Aladdin-1992 y Aladdin-2019)
Como primera etapa se presentará una limpieza general de ambos textos para poder buscar las palabras o términos más frecuentes en ambas obras, comparar si son los mismos y poder identificar con que otras palabras se asocian dichos términos, finalmente se realizará un análisis de sentimientos con el fin de poder saber si ambas obras buscan transmitir la misma energía al espectador.

Desarrollo

A) Análisis de Texto

I) Preparación (settings e instalación de paquetes y librerías)

Sys.setenv(LANG = "en")
# Load libraries
library(tm) 
library(SnowballC)
library(wordcloud)
library(RColorBrewer)
library(pdftools)
library(readtext)
library(syuzhet)

II) Importación de textos

Con la función presentada a continuación se seleccionan todos los archivos de tipo .txt que se encuentren en nuestro directorio (carpeta en la que también se encuentra guardado nuestro .Rmd)

files <- list.files(pattern = "txt$")
files
## [1] "aladdin1992.txt" "aladin2019.txt"

III) Creación de los CORPUS

Recordemos que un CORPUS simplemente es una colección de textos que están organizados de manera que puedan ser procesados juntos

corp1 <- Corpus(URISource(files),
               readerControl = list(reader = readPlain))
corp2 <- tm_map(corp1, removePunctuation, ucp = TRUE)

IV) Limpieza de los textos

Acontinuación realizaremos ciertas transformaciones a los textos para que puedan ser analizados con mayor facilidad, dichas transformaciones cambian el texto a minúsculas, se eliminan los signos de puntuación y eliminamos palabras conectoras, entre otras.

limpio1 <- TermDocumentMatrix(corp1, 
                                   control = 
                                     list(removePunctuation = TRUE,
                                          stopwords = TRUE,
                                          tolower = TRUE,
                                          stemming = TRUE,
                                          removeNumbers = TRUE
                                          ))  
inspect(limpio1[1:10,]) 
## <<TermDocumentMatrix (terms: 10, documents: 2)>>
## Non-/sparse entries: 11/9
## Sparsity           : 45%
## Maximal term length: 10
## Weighting          : term frequency (tf)
## Sample             :
##             Docs
## Terms        aladdin1992.txt aladin2019.txt
##   “you                     0              1
##   aaaa                     0              6
##   aaaaahhhhh               1              0
##   aaahhh                   0              1
##   aah                      0              2
##   aar                      0              1
##   aawk                     1              0
##   ababwa                   9              6
##   ababwah                  0              8
##   abject                   1              0
limpio2 <- TermDocumentMatrix(corp2, 
                                   control = 
                                     list(stopwords = TRUE,
                                          tolower = TRUE,
                                          stemming = TRUE,
                                          removeNumbers = TRUE
                                          )) 
inspect(limpio2[1:10,])
## <<TermDocumentMatrix (terms: 10, documents: 2)>>
## Non-/sparse entries: 11/9
## Sparsity           : 45%
## Maximal term length: 10
## Weighting          : term frequency (tf)
## Sample             :
##             Docs
## Terms        aladdin1992.txt aladin2019.txt
##   aaaa                     0              6
##   aaaaahhhhh               1              0
##   aaahhh                   0              1
##   aah                      0              2
##   aar                      0              1
##   aawk                     1              0
##   ababwa                   9              6
##   ababwah                  0              8
##   abject                   1              0
##   abl                      1              0

V) Terminos frecuentes

Mediante esta parte del análisis buscamos identificar cuáles son los términos más frecuentes de los textos, pues con ellos podremos darnos una idea general rápida acerca de lo que trata el texto y podemos también ver como dichas expresiones o palabras más usadas cmabian a través de los años.

#Primero encontramoslos términos con una frecuencia mayor a 100 entre ambos textos
findFreqTerms(limpio2, lowfreq = 100, highfreq = Inf)
##  [1] "abu"     "aladdin" "carpet"  "dont"    "geni"    "iago"    "jafar"  
##  [8] "jasmin"  "like"    "look"    "one"     "princ"   "see"     "sultan"
#Ahora los convertimos en una matriz
ft <- findFreqTerms(limpio2, lowfreq = 100, highfreq = Inf)
as.matrix(limpio2[ft,])
##          Docs
## Terms     aladdin1992.txt aladin2019.txt
##   abu                 166             29
##   aladdin             404            195
##   carpet               91             15
##   dont                 42             60
##   geni                183            136
##   iago                 95             20
##   jafar               213             68
##   jasmin              201             74
##   like                 52             55
##   look                105             23
##   one                  50             50
##   princ                64             78
##   see                  78             33
##   sultan              117             44
#Finalmente los organizamos de mayor a menor según su frecuencia
ft2 <- as.matrix(limpio2[ft,])
sort(apply(ft2, 1, sum), decreasing = TRUE)
## aladdin    geni   jafar  jasmin     abu  sultan   princ    look    iago     see 
##     599     319     281     275     195     161     142     128     115     111 
##    like  carpet    dont     one 
##     107     106     102     100

VI) Análisis de la esparcidad

Mediante esta parte del análisis lo que buscamos es identificar las palabras de nuestro vocabulario que si aparecen considerablemente en los textos

limpio3 <- removeSparseTerms(limpio2, sparse=0.3)
findFreqTerms(limpio3, lowfreq = 100, highfreq = Inf)
##  [1] "abu"     "aladdin" "carpet"  "dont"    "geni"    "iago"    "jafar"  
##  [8] "jasmin"  "like"    "look"    "one"     "princ"   "see"     "sultan"

VII) Asociasiones

A continuación seleccionamos una palabra que es de las más repetidas durante los guiones pero que no es un personaje “humano”

#findAssocs(limpio2,term="school",0.8)
findAssocs(limpio2,term="carpet",1)
## $carpet
##          aaaaahhhhh                aawk              ababwa              abject 
##                   1                   1                   1                   1 
##                 abl             abooboo         aboutmyself         abracadabra 
##                   1                   1                   1                   1 
##          absentmind             absolut                 abu                abuh 
##                   1                   1                   1                   1 
##                abui                abus              accent                achm 
##                   1                   1                   1                   1 
##             acrobat              across              action             addenda 
##                   1                   1                   1                   1 
##              addlep               adequ              advanc               advis 
##                   1                   1                   1                   1 
##                afar              afraid               agoni                 aha 
##                   1                   1                   1                   1 
##                ahem              ahemin            ahemthen                ahhh 
##                   1                   1                   1                   1 
##                 aim                 air                 ala             aladdin 
##                   1                   1                   1                   1 
##             alaskan              aliwil               allah               allow 
##                   1                   1                   1                   1 
##              almost                alon               along            alongsid 
##                   1                   1                   1                   1 
##         aluhaladdin                amaz                 ami                amim 
##                   1                   1                   1                   1 
##             amongst               angri                anim             announc 
##                   1                   1                   1                   1 
##               anoth              anymor               anyon        anythingpick 
##                   1                   1                   1                   1 
##             apartit                 ape               appar              appear 
##                   1                   1                   1                   1 
##                appl             applaus             appoint             appreci 
##                   1                   1                   1                   1 
##           apprehens            approach                aqui                arab 
##                   1                   1                   1                   1 
##               arent                argu                 arm              arnold 
##                   1                   1                   1                   1 
##              around             arsenio                asid               asmin 
##                   1                   1                   1                   1 
##               asset              assist               assur              attack 
##                   1                   1                   1                   1 
##              attent             audienc               await                awak 
##                   1                   1                   1                   1 
##                away                 awk                 awn             baaaaad 
##                   1                   1                   1                   1 
##               babbl                back          background             baklava 
##                   1                   1                   1                   1 
##              balanc             balconi                ball             balloon 
##                   1                   1                   1                   1 
##              banana                band          banishedor              barbar 
##                   1                   1                   1                   1 
##                barg              barrel                base             basebal 
##                   1                   1                   1                   1 
##           basketbal               battl                beak                beam 
##                   1                   1                   1                   1 
##                bear              beardi               beast              beatup 
##                   1                   1                   1                   1 
##                beau                 bed             bedroom                 bee 
##                   1                   1                   1                   1 
##             beergut               befin               begin              behalf 
##                   1                   1                   1                   1 
##              behead              behind               belch                beme 
##                   1                   1                   1                   1 
##                bend            bepretti              betray              beyond 
##                   1                   1                   1                   1 
##                bird            birthday                bite               bitti 
##                   1                   1                   1                   1 
##              bizarr               black          blackboard                blah 
##                   1                   1                   1                   1 
##               blast               bless               block               bloom 
##                   1                   1                   1                   1 
##               blown                blue               blush               board 
##                   1                   1                   1                   1 
##                bodi                bolt                bomb                bona 
##                   1                   1                   1                   1 
##                 bop              bottom             boulder               bounc 
##                   1                   1                   1                   1 
##                bout                 bow                bowl                 box 
##                   1                   1                   1                   1 
##               boxer                 boy            boyfirst                boyh 
##                   1                   1                   1                   1 
##                bozo               brand                brat               bread 
##                   1                   1                   1                   1 
##            breadlin               break           breakfast              breath 
##                   1                   1                   1                   1 
##            breathit                brew               bridg              bright 
##                   1                   1                   1                   1 
##           brilliant               bring               broad                brow 
##                   1                   1                   1                   1 
##               brush               brute               bubbl             buckley 
##                   1                   1                   1                   1 
##                 bud               buddi               buggi               build 
##                   1                   1                   1                   1 
##                bulg                bump               burst                busi 
##                   1                   1                   1                   1 
##              button                buzz              buzzer                 bye 
##                   1                   1                   1                   1 
##             bystand           caballero            cadillac              caesar 
##                   1                   1                   1                   1 
##                cafe                cage                call                calm 
##                   1                   1                   1                   1 
##              calmer               camel              camera                cant 
##                   1                   1                   1                   1 
##                 cap                cape               caper                 car 
##                   1                   1                   1                   1 
##               carri                cart            casanova                case 
##                   1                   1                   1                   1 
##               castl               catch                cave              cavern 
##                   1                   1                   1                   1 
##                ceil              center           centimetr               centr 
##                   1                   1                   1                   1 
##              certif                cess                cest               chain 
##                   1                   1                   1                   1 
##               chair             chamber             charact               chase 
##                   1                   1                   1                   1 
##             chatter               check               cheer           cheerlead 
##                   1                   1                   1                   1 
##          cheetahhop               chess               chest             chicken 
##                   1                   1                   1                   1 
##               child            children            childwel               chill 
##                   1                   1                   1                   1 
##                chin              chines            chipmunk              chisel 
##                   1                   1                   1                   1 
##               choic               choke               choos             choosei 
##                   1                   1                   1                   1 
##                chop              chorus              chosen              chuckl 
##                   1                   1                   1                   1 
##                chum               chump                ciao               circl 
##                   1                   1                   1                   1 
##               clamp               class               cliff               climb 
##                   1                   1                   1                   1 
##               cloak               close              closer        closercamera 
##                   1                   1                   1                   1 
##               cloth               cloud               clown                club 
##                   1                   1                   1                   1 
##                cmon            cmonhelp               cobra               coffe 
##                   1                   1                   1                   1 
##                coin             collaps             collect              column 
##                   1                   1                   1                   1 
##              combin               combo                come               comfi 
##                   1                   1                   1                   1 
##             comfort             comment          commonplac             compani 
##                   1                   1                   1                   1 
##             complet                 con             concern            confound 
##                   1                   1                   1                   1 
##              confus              conjur           conscious         considerthi 
##                   1                   1                   1                   1 
##             consult             contain             continu            contrapt 
##                   1                   1                   1                   1 
##             control            cookbook              corner              costum 
##                   1                   1                   1                   1 
##               cough             couldnt           counselor               coupl 
##                   1                   1                   1                   1 
##         couterpoint               cover              coward                crab 
##                   1                   1                   1                   1 
##               crack             cracker         crackersbam               cradl 
##                   1                   1                   1                   1 
##               cramp               crash               crazi                 cri 
##                   1                   1                   1                   1 
##               crick               crime              crimin               crook 
##                   1                   1                   1                   1 
##               cross               crowd               crown              crummi 
##                   1                   1                   1                   1 
##               crush             crystal                cube               cuddl 
##                   1                   1                   1                   1 
##                 cue                curs             curtain             cushion 
##                   1                   1                   1                   1 
##                 cut       cutherewelcom              cyclon              dagger 
##                   1                   1                   1                   1 
##               damag                danc         dangerfield                dare 
##                   1                   1                   1                   1 
##                dark              darken            daughter            daylight 
##                   1                   1                   1                   1 
##              daytim                dead                deal             dearest 
##                   1                   1                   1                   1 
##               debri              deceiv               decid                deck 
##                   1                   1                   1                   1 
##                deem                deep              deepen              deeper 
##                   1                   1                   1                   1 
##              deepli              defeat             delight             descend 
##                   1                   1                   1                   1 
##              desert              design              desper               devic 
##                   1                   1                   1                   1 
##                 dig                 din                 dip             diploma 
##                   1                   1                   1                   1 
##              direct            director           disappear          disappoint 
##                   1                   1                   1                   1 
##            discount              discov             discuss             disguis 
##                   1                   1                   1                   1 
##             disgust                diss              dissip             dissolv 
##                   1                   1                   1                   1 
##             distanc            distract             disturb                dive 
##                   1                   1                   1                   1 
##            divebomb               divin             dizzili              doctor 
##                   1                   1                   1                   1 
##                dodg                 dog                 doh                doll 
##                   1                   1                   1                   1 
##      donttouchanyth                door         doorshypnot             doorway 
##                   1                   1                   1                   1 
##                 dos                dost               doubl                dove 
##                   1                   1                   1                   1 
##              dragon               drawn               dress                 dri 
##                   1                   1                   1                   1 
##                drop               drunk               dryli                duck 
##                   1                   1                   1                   1 
##               ducki                 due                dumb               dumbo 
##                   1                   1                   1                   1 
##               dummi                dune             dungeon                 dup 
##                   1                   1                   1                   1 
##              duplic                dust                dyin                 ear 
##                   1                   1                   1                   1 
##             earlier                 eat               eater              ecstat 
##                   1                   1                   1                   1 
##                 edg              eeewww               eehhh             effendi 
##                   1                   1                   1                   1 
##               elbow               eleph              eleven                 els 
##                   1                   1                   1                   1 
##               emerg               empti             enchant             encircl 
##                   1                   1                   1                   1 
##                 end             english               enjoy              enlarg 
##                   1                   1                   1                   1 
##                ensu               enter             entranc               epcot 
##                   1                   1                   1                   1 
##          esalalumbo             essenti              esteem               etern 
##                   1                   1                   1                   1 
##               event      eventuallystep       everythingwil           everywher 
##                   1                   1                   1                   1 
##                evil               exact              exceed               excel 
##                   1                   1                   1                   1 
##              except             exchang                exit                exot 
##                   1                   1                   1                   1 
##              expect              explod               expos             exprinc 
##                   1                   1                   1                   1 
##                 ext              extend              extrem                 eye 
##                   1                   1                   1                   1 
##               fabul                face                fade                fair 
##                   1                   1                   1                   1 
##               fairi                fall              famous                 fan 
##                   1                   1                   1                   1 
##              fanfar             farther                fast              faster 
##                   1                   1                   1                   1 
##              father             fatheri               fault              faulti 
##                   1                   1                   1                   1 
##               feast             feather              featur                feel 
##                   1                   1                   1                   1 
##                feet              fertil               fetch                 fez 
##                   1                   1                   1                   1 
##                fide               fight             figment                fill 
##                   1                   1                   1                   1 
##                film              filthi                 fin               final 
##                   1                   1                   1                   1 
##                find         finderskeep                fine               finer 
##                   1                   1                   1                   1 
##              finest              finger           fingertip                fire 
##                   1                   1                   1                   1 
##            firework                fish              fishiv                fist 
##                   1                   1                   1                   1 
##               flame            flamingo                flat             flatten 
##                   1                   1                   1                   1 
##                flaw                flea                flex                 fli 
##                   1                   1                   1                   1 
##               flick              flight              flinch                flip 
##                   1                   1                   1                   1 
##               float               flock               floor              flower 
##                   1                   1                   1                   1 
##            fluoresc              follow                fond                food 
##                   1                   1                   1                   1 
##                fool                foot              forbid                forc 
##                   1                   1                   1                   1 
##          foreground              forget                form              format 
##                   1                   1                   1                   1 
##               forth             forward                foul               found 
##                   1                   1                   1                   1 
##                four               frame                free              freebi 
##                   1                   1                   1                   1 
##               freed             freedom             freefal               fresh 
##                   1                   1                   1                   1 
##                 fri              fright                 fro               front 
##                   1                   1                   1                   1 
##              frozen               fruit              fulfil                full 
##                   1                   1                   1                   1 
##                 fun                 fur                 gag              garbag 
##                   1                   1                   1                   1 
##              garden                gasp              gazeem             gazeema 
##                   1                   1                   1                   1 
##             gazeemi                gear                geni              geniec 
##                   1                   1                   1                   1 
##              geniei              genius               gentl           gentlemen 
##                   1                   1                   1                   1 
##              german                 get              gettin               giant 
##                   1                   1                   1                   1 
##                 gig              gigant               giggl                girl 
##                   1                   1                   1                   1 
##                give               glare               glass            glorious 
##                   1                   1                   1                   1 
##                glow               goate                 goe               goggl 
##                   1                   1                   1                   1 
##                goin              golden                golf                gone 
##                   1                   1                   1                   1 
##               gonna                good               goofi             gorilla 
##                   1                   1                   1                   1 
##                 got               gotta              gotten                grab 
##                   1                   1                   1                   1 
##            gracious               grand               grant             greater 
##                   1                   1                   1                   1 
##               greec               greet              grimac                grin 
##                   1                   1                   1                   1 
##                grip             groucho              ground               group 
##                   1                   1                   1                   1 
##               growl               guard               guess            guessthi 
##                   1                   1                   1                   1 
##              guilti                gulp                 gun                hail 
##                   1                   1                   1                   1 
##                hair             hairbal             haircut               hairi 
##                   1                   1                   1                   1 
##                half                hall                halv             hammock 
##                   1                   1                   1                   1 
##                hand                hang              harder               harem 
##                   1                   1                   1                   1 
##                harm               harri                 hat                hate 
##                   1                   1                   1                   1 
##            hawaiian                head                heap                heat 
##                   1                   1                   1                   1 
##              heback                 heh                held               hello 
##                   1                   1                   1                   1 
##                help               herea             hereher                hero 
##                   1                   1                   1                   1 
##               hesit                 hey               heyim               heyit 
##                   1                   1                   1                   1 
##              hidden                hide             hideous                high 
##                   1                   1                   1                   1 
##              higher             highfiv                 hit              hittin 
##                   1                   1                   1                   1 
##                hold                hole            homeless                hood 
##                   1                   1                   1                   1 
##              hookah                 hop               hopin             horribl 
##                   1                   1                   1                   1 
##                hors           hourglass               hover               howev 
##                   1                   1                   1                   1 
##              howhow                 huf                 hug                 huh 
##                   1                   1                   1                   1 
##                 hum               humbl            humblest              hummus 
##                   1                   1                   1                   1 
##               humph                hung               hurdl               hurri 
##                   1                   1                   1                   1 
##             husband              huzzah             hypnosi              hypnot 
##                   1                   1                   1                   1 
##              hyster                iago                idea            idiotwev 
##                   1                   1                   1                   1 
##                 ill             illumin                imim                imit 
##                   1                   1                   1                   1 
##              immens     impressiveinsid            improvis              imyour 
##                   1                   1                   1                   1 
##             incredi             infidel              insect               insid 
##                   1                   1                   1                   1 
##              insult                 int              intact              intend 
##                   1                   1                   1                   1 
##              intens            interced              intern                 isi 
##                   1                   1                   1                   1 
##                isoh                itim              itthre                itti 
##                   1                   1                   1                   1 
##               itwer                 iuh                iuhh               iwhat 
##                   1                   1                   1                   1 
##                iwil               ixnay                jack                 jaf 
##                   1                   1                   1                   1 
##               jafar         jafarhasdon             jafarmi         jafarsqueez 
##                   1                   1                   1                   1 
##           jafaryour           jafmmmmmm              jasmin                 jaw 
##                   1                   1                   1                   1 
##                jeez                joke              jordan                judg 
##                   1                   1                   1                   1 
##               juggl             julienn                jump                june 
##                   1                   1                   1                   1 
##                junk                just             justand           justjafar 
##                   1                   1                   1                   1 
##               karat              keepon            kersplat             keyword 
##                   1                   1                   1                   1 
##                kick                kidi              kidnap                king 
##                   1                   1                   1                   1 
##                kiss               kitti               knack               kneel 
##                   1                   1                   1                   1 
##                knew               knive               knock               knowi 
##                   1                   1                   1                   1 
##               known                 lab               label              ladder 
##                   1                   1                   1                   1 
##               laddi                ladi                lake              lamour 
##                   1                   1                   1                   1 
##                lamp                land              landin                larg 
##                   1                   1                   1                   1 
##                last                late               laugh              launch 
##                   1                   1                   1                   1 
##                lava                 law               layer                lean 
##                   1                   1                   1                   1 
##             learner                leav                 led                ledg 
##                   1                   1                   1                   1 
##                left                 leg             leopard                 let 
##                   1                   1                   1                   1 
##              licens                 lie                lieg                lift 
##                   1                   1                   1                   1 
##               light              lightn               likem               limit 
##                   1                   1                   1                   1 
##                line                lion                 lip              listen 
##                   1                   1                   1                   1 
##               liter               littl                live                loaf 
##                   1                   1                   1                   1 
##                look               looki              lookin                lord 
##                   1                   1                   1                   1 
##                lose                lout                love            lovebird 
##                   1                   1                   1                   1 
##               lower               lowli                luck               lucki 
##                   1                   1                   1                   1 
##                lung              machin               macho                 mad 
##                   1                   1                   1                   1 
##              madder            magician             majesti               major 
##                   1                   1                   1                   1 
##                make           makeralso                 man               manag 
##                   1                   1                   1                   1 
##                mani             manicur               manif              manner 
##                   1                   1                   1                   1 
##               march             marcher           marionett              market 
##                   1                   1                   1                   1 
##          marketplac               marri             marryth              marvel 
##                   1                   1                   1                   1 
##                marx              massag               match              mayday 
##                   1                   1                   1                   1 
##              measur           medallion               melon                melt 
##                   1                   1                   1                   1 
##              member                mena            menageri            mencarri 
##                   1                   1                   1                   1 
##             meprinc          merchandis               merit             mermaid 
##                   1                   1                   1                   1 
##               messi                 met                 mic           microphon 
##                   1                   1                   1                   1 
##                 mid              mighti           millennia             million 
##                   1                   1                   1                   1 
##                mine               mingl                mini            miniatur 
##                   1                   1                   1                   1 
##               minut               miser                miss              mister 
##                   1                   1                   1                   1 
##                 mmm                mock                mode               moldi 
##                   1                   1                   1                   1 
##                molt      momentarilybut             monoton                moon 
##                   1                   1                   1                   1 
##           moonlight               moral               moron         mortarboard 
##                   1                   1                   1                   1 
##              motion            mountain                mous            moustach 
##                   1                   1                   1                   1 
##               mouth             mouthth                move            movement 
##                   1                   1                   1                   1 
##                 mud               muffl            multipli           muscleman 
##                   1                   1                   1                   1 
##               music                must             mustafa                 muy 
##                   1                   1                   1                   1 
##             mysteri             mystifi            mytholog                 nah 
##                   1                   1                   1                   1 
##                nail                name                near              nearbi 
##                   1                   1                   1                   1 
##           necessari                neck             necklac             neither 
##                   1                   1                   1                   1 
##                neon                 net            neverhad                 new 
##                   1                   1                   1                   1 
##                next                nice           nicholson           nightscap 
##                   1                   1                   1                   1 
##                nile                 nod                 noi             nonsens 
##                   1                   1                   1                   1 
##              normal                nose                note               notit 
##                   1                   1                   1                   1 
##               nowmi                nuff              number               numer 
##                   1                   1                   1                   1 
##                 nut                oasi             obvious         obviouslyli 
##                   1                   1                   1                   1 
##           offcamera               often                ohhh                 ohi 
##                   1                   1                   1                   1 
##             ohmarri                ohto                 old           onaladdin 
##                   1                   1                   1                   1 
##              oneman              oneway               ontak                onto 
##                   1                   1                   1                   1 
##              ooohhh             oooohhh                open               order 
##                   1                   1                   1                   1 
##             orderth            ordinari             ostrich               other 
##                   1                   1                   1                   1 
##                ouch             oughtta              outfit              outrag 
##                   1                   1                   1                   1 
##          outstretch               outta             outward           overdress 
##                   1                   1                   1                   1 
##            overlook                pack                 pad                pain 
##                   1                   1                   1                   1 
##                pair               palac                palm                 pan 
##                   1                   1                   1                   1 
##                pani               panic              panick                pant 
##                   1                   1                   1                   1 
##           papainlaw            parachut               parad            parisian 
##                   1                   1                   1                   1 
##              parrot         parroteseuh       partandparcel                pass 
##                   1                   1                   1                   1 
##             passeng                past               patch         patcheswhat 
##                   1                   1                   1                   1 
##                path             patienc             patient                 paw 
##                   1                   1                   1                   1 
##                peac             peacock             peddler             pedigre 
##                   1                   1                   1                   1 
##                peek                peel                peer             penalti 
##                   1                   1                   1                   1 
##             pennant              perhap              person                 pet 
##                   1                   1                   1                   1 
##                pick               picki              pictur                piec 
##                   1                   1                   1                   1 
##                pile              pillar              pillow                 pin 
##                   1                   1                   1                   1 
##              pinbal               pinch               pinki           pinocchio 
##                   1                   1                   1                   1 
##           pipsqueak           pissedoff           pistachio                 pit 
##                   1                   1                   1                   1 
##             pizzazz               plaid               plank               plant 
##                   1                   1                   1                   1 
##               plate            platform                play             playbil 
##                   1                   1                   1                   1 
##                plop                plot               pluck               plung 
##                   1                   1                   1                   1 
##              pocket              podium               point                poke 
##                   1                   1                   1                   1 
##                pole               polli                pond                poof 
##                   1                   1                   1                   1 
##                pool                 pop             popsicl               posit 
##                   1                   1                   1                   1 
##                 pot                pour               prais            precious 
##                   1                   1                   1                   1 
##             pressur              pretti                 pri               prick 
##                   1                   1                   1                   1 
##               pride            princess          princessal        princesslift 
##                   1                   1                   1                   1 
##        princesstoth        princessyour               prize                 pro 
##                   1                   1                   1                   1 
##                prob             problem             proceed              produc 
##                   1                   1                   1                   1 
##           projector            pronounc            pronunci          proprietor 
##                   1                   1                   1                   1 
##            prospect             prosper              proven              provid 
##                   1                   1                   1                   1 
##             proviso                psst          psychopath               puddl 
##                   1                   1                   1                   1 
##                 puf                pull            punctual             pungent 
##                   1                   1                   1                   1 
##               punim              puppet               purpl               pursu 
##                   1                   1                   1                   1 
##                push            pussycat                 put             pyramid 
##                   1                   1                   1                   1 
##             qualiti            question               quick            quickbut 
##                   1                   1                   1                   1 
##                quid                quit                 quo              rabbit 
##                   1                   1                   1                   1 
##                race              rackem                 rag                rais 
##                   1                   1                   1                   1 
##               rajah           rakestick                ramp                 ran 
##                   1                   1                   1                   1 
##                rare           raspberri                 rat               reach 
##                   1                   1                   1                   1 
##                real             realiti              realiz              realli 
##                   1                   1                   1                   1 
##            reallyon        reallyyyyyyi            reappear                rear 
##                   1                   1                   1                   1 
##              reason              reawak            recoveri                 red 
##                   1                   1                   1                   1 
##               reduc             reflect              refund               refus 
##                   1                   1                   1                   1 
##              reject              releas              reliev              reluct 
##                   1                   1                   1                   1 
##              remain              remark          rememberbe              remind 
##                   1                   1                   1                   1 
##            reminisc               remov              repeat              replac 
##                   1                   1                   1                   1 
##              requir             reravel             respect                rest 
##                   1                   1                   1                   1 
##             retreat              return              reveal              reward 
##                   1                   1                   1                   1 
##               rezip              richer              rickem                 rid 
##                   1                   1                   1                   1 
##                ride             ridicul              righti                ring 
##                   1                   1                   1                   1 
##                 rip                rise               river                roar 
##                   1                   1                   1                   1 
##                robe                rock              rockem              rocket 
##                   1                   1                   1                   1 
##              rodney                role                roll                roof 
##                   1                   1                   1                   1 
##             rooftop                room                rope              rotten 
##                   1                   1                   1                   1 
##               royal                 rub              rubber                rubi 
##                   1                   1                   1                   1 
##                 rug              rugman              rulesh               rumbl 
##                   1                   1                   1                   1 
##               rumin              rummag                 run                rush 
##                   1                   1                   1                   1 
##                 sad              salaam               salad                salt 
##                   1                   1                   1                   1 
##                sand           sandstorm             sarcast           saybeggar 
##                   1                   1                   1                   1 
##               scale             scamper             scandal               scare 
##                   1                   1                   1                   1 
##               scene        scheherazadi        schwarzenegg               scope 
##                   1                   1                   1                   1 
##              scrape             scratch              scream             screech 
##                   1                   1                   1                   1 
##              screen              script              scroll              sculpt 
##                   1                   1                   1                   1 
##              scurri                 sea                seal              search 
##                   1                   1                   1                   1 
##           sebastian              secret             section                 see 
##                   1                   1                   1                   1 
##          selfabsorb                send               senor                sent 
##                   1                   1                   1                   1 
##             sentenc               separ             sequenc             serious 
##                   1                   1                   1                   1 
##                serv             servant              servic            servitud 
##                   1                   1                   1                   1 
##                 set               settl               sever              shackl 
##                   1                   1                   1                   1 
##               shade              shadow             shadowi               shake 
##                   1                   1                   1                   1 
##               shall               shame               share               shave 
##                   1                   1                   1                   1 
##                shed               sheep            sheepish               sheet 
##                   1                   1                   1                   1 
##                shes              shimin               shini               shirt 
##                   1                   1                   1                   1 
##              shiver               shock             shooter            shopkeep 
##                   1                   1                   1                   1 
##                shot            shoulder               shove                show 
##                   1                   1                   1                   1 
##              shower               shrew              shrine              shrink 
##                   1                   1                   1                   1 
##              shroud               shrug               shush                shut 
##                   1                   1                   1                   1 
##             shutter             shutwow               shyli             siddown 
##                   1                   1                   1                   1 
##                side              sidedo                sigh               sight 
##                   1                   1                   1                   1 
##                sign              silver              sinist                 sir 
##                   1                   1                   1                   1 
##                sire               siren                 sis              sister 
##                   1                   1                   1                   1 
##                 sit                 six                size                 sky 
##                   1                   1                   1                   1 
##               slack                slam                slap               slave 
##                   1                   1                   1                   1 
##               sleep                 sli               slice               slide 
##                   1                   1                   1                   1 
##              slight                slit                slot                slow 
##                   1                   1                   1                   1 
##              slower              slowli             slumber               slump 
##                   1                   1                   1                   1 
##               slyli               small               smash               smile 
##                   1                   1                   1                   1 
##               smoke               snack               snake            snakelik 
##                   1                   1                   1                   1 
##                snap              snatch               sneak                snow 
##                   1                   1                   1                   1 
##               snowi               solut             someday             somehow 
##                   1                   1                   1                   1 
##              someon          somersault          sonofajack                soon 
##                   1                   1                   1                   1 
##              sooner               sorri              sorryi             sotwist 
##                   1                   1                   1                   1 
##                soul               sound               space              sparki 
##                   1                   1                   1                   1 
##              sparkl               speck         spectacular               spell 
##                   1                   1                   1                   1 
##              sphinx                spin              spiral                spit 
##                   1                   1                   1                   1 
##              splash            splendid               spout              spread 
##                   1                   1                   1                   1 
##              spring               squar              squawk              squeak 
##                   1                   1                   1                   1 
##              squeez              squirt              squish                stab 
##                   1                   1                   1                   1 
##               stack               staff           staffther               stair 
##                   1                   1                   1                   1 
##            staircas            stairway               stanc               stand 
##                   1                   1                   1                   1 
##            standard                star               stare              starri 
##                   1                   1                   1                   1 
##              startl                step          stewardess               stick 
##                   1                   1                   1                   1 
##               still               stilt               sting              stolen 
##                   1                   1                   1                   1 
##             stomach               stomp                stop               storm 
##                   1                   1                   1                   1 
##            straight          straighten              strang              streak 
##                   1                   1                   1                   1 
##              street              strike               strip              strong 
##                   1                   1                   1                   1 
##             struggl              strung               stuck                stuf 
##                   1                   1                   1                   1 
##               stuff              stupid            submarin             submiss 
##                   1                   1                   1                   1 
##           substitut                suck              sucker              sudden 
##                   1                   1                   1                   1 
##               sugar             suitcas              suitor            sullivan 
##                   1                   1                   1                   1 
##              sultan            sultanno              sunday                sure 
##                   1                   1                   1                   1 
##             surenot              surfac             surpris            surround 
##                   1                   1                   1                   1 
##             swagger             swallow                swat             sweater 
##                   1                   1                   1                   1 
##               sweep               sweet               swell               swing 
##                   1                   1                   1                   1 
##                swir               swirl               sword           swordsmen 
##                   1                   1                   1                   1 
##             syllabl                tabl               tackl                tail 
##                   1                   1                   1                   1 
##       tailorfashion                take               taken             takesth 
##                   1                   1                   1                   1 
##                tall                 tap              tassel                tast 
##                   1                   1                   1                   1 
##               teach                tear               teeth                 ten 
##                   1                   1                   1                   1 
##         tenthousand              termin             terribl             terrifi 
##                   1                   1                   1                   1 
##            thatgood           thatsthat          thatuhthat                thee 
##                   1                   1                   1                   1 
##            thetruth               theyr               theyv               thiev 
##                   1                   1                   1                   1 
##               thing              thinkw               third         thisdiamond 
##                   1                   1                   1                   1 
##             thissss              thorni              throat               throw 
##                   1                   1                   1                   1 
##              thrown              thrust                tick                 tie 
##                   1                   1                   1                   1 
##               tiger                tilt                time               timea 
##                   1                   1                   1                   1 
##             timerev       tohmminterest               tongu                took 
##                   1                   1                   1                   1 
##                tool                 top                toss              toward 
##                   1                   1                   1                   1 
##                town                 toy              tragic               trail 
##                   1                   1                   1                   1 
##             traitor           transform           transport                trap 
##                   1                   1                   1                   1 
##              travel             treasur                tree                trek 
##                   1                   1                   1                   1 
##                tres                 tri                trio                trip 
##                   1                   1                   1                   1 
##              trophi             trumpet               trunk               truth 
##                   1                   1                   1                   1 
##             truthth                tuck                 tug               tumbl 
##                   1                   1                   1                   1 
##           tupperwar              turban                turn               turtl 
##                   1                   1                   1                   1 
##               twist                twit                 two                type 
##                   1                   1                   1                   1 
##               typic                ugli           umroyalti              unburi 
##                   1                   1                   1                   1 
##            unconsci         underground          underneath          undershort 
##                   1                   1                   1                   1 
##              uneven              unhand           unimpeach             uninvit 
##                   1                   1                   1                   1 
##              unison                 uno             unravel               unrol 
##                   1                   1                   1                   1 
##             unsettl               unzip               upcom               upset 
##                   1                   1                   1                   1 
##               upsid             upstand              urchin                vain 
##                   1                   1                   1                   1 
##               valet              vandal                vase               vault 
##                   1                   1                   1                   1 
##       ventriloquist                venu                vest                vial 
##                   1                   1                   1                   1 
##                view                vile                voic               wager 
##                   1                   1                   1                   1 
##              waiter              waitim                walk              walkin 
##                   1                   1                   1                   1 
##                wall                want                warm                warn 
##                   1                   1                   1                   1 
##           wasteland               watch               water                wave 
##                   1                   1                   1                   1 
##                 way              weapon                wear                 wed 
##                   1                   1                   1                   1 
## weeeerrrrrreeeoutta              weight                well              werent 
##                   1                   1                   1                   1 
##               whack              whatll               whatr         wheelbarrow 
##                   1                   1                   1                   1 
##              wherer              whilst             whimper               whine 
##                   1                   1                   1                   1 
##                whip             whisper              whistl               white 
##                   1                   1                   1                   1 
##               whizz                whoa             whoever               whole 
##                   1                   1                   1                   1 
##              whomev               whoop              whoope               whose 
##                   1                   1                   1                   1 
##                wide               wield                wild             wildest 
##                   1                   1                   1                   1 
##             william              window                wine                wipe 
##                   1                   1                   1                   1 
##              wisdom               wishi             witsend               woman 
##                   1                   1                   1                   1 
##               women                 won              wonder              wontil 
##                   1                   1                   1                   1 
##                woof               wooga                word              worker 
##                   1                   1                   1                   1 
##               world                worn               worri              worthi 
##                   1                   1                   1                   1 
##           worthless             wouldnt              wowand                wrap 
##                   1                   1                   1                   1 
##               wrist               write             written               wrong 
##                   1                   1                   1                   1 
##                yank                yeah                yell                 yep 
##                   1                   1                   1                   1 
##           yesabject           yesdesper            yesthatl              yoohoo 
##                   1                   1                   1                   1 
##               youar            youcrazi                youi               youll 
##                   1                   1                   1                   1 
##               young               yoush               youth             youuuuu 
##                   1                   1                   1                   1 
##                youv                yuck                 zap                zing 
##                   1                   1                   1                   1 
##                 zip               zombi                zoom 
##                   1                   1                   1

B) Análisis de sentimientos

A continuación se presneta en análisis de sentimientos como una herramienta extra no vista en clase, la implementación de esta puede ayudarnos a entender cómo las emociones son expresadas en las obras, permitiéndonos identificar las tendencias emocionales y la carga afectiva de los textos. Esto nos brinda una perspectiva más profunda sobre la narrativa y los personajes, así como también sobre la respuesta emocional que pueden generar en los espectadores.

#Primero seleccionamos los archivos con los que vamos a trabajar
texto1992<- readtext("C:\\Users\\LuisD\\Documents\\Concentración\\MODULO 4\\aladdin1992.txt")
texto2019<- readtext("C:\\Users\\LuisD\\Documents\\Concentración\\MODULO 4\\aladin2019.txt")

#Convertimos estos textos a palabras
palabras1992 <- get_tokens(texto1992)
emociones1992 <- get_nrc_sentiment(palabras1992, language = "english")

palabras2019 <- get_tokens(texto2019)
emociones2019 <- get_nrc_sentiment(palabras2019, language = "english")
barplot(colSums(prop.table(emociones1992[, 1:8])), main=" Emociones Aladdin 1992")

sentimientos1992 <- (emociones1992$negative*-1) + emociones1992$positive
simple_plot(sentimientos1992)

barplot(colSums(prop.table(emociones2019[, 1:8])), main=" Emociones Aladdin 2019")

sentimientos2019 <- (emociones2019$negative*-1) + emociones2019$positive
simple_plot(sentimientos2019)

C) Preguntas

Pregunta 1:

Después de limpiar el archivo ¿Se tomará y analizará Todo lo que aparece en la página? ¿Que si y que no? ¿Por qué? Para la extracción del primer diálogo de la película “Aladdin-1992” se ubtuvo del hipervinculo proporcionado por parte del profesor, extraí el texto copiando únicamente la parte de los diálogos (sin texto o anexos) y pegándolo en un archivo .txt Para la obtención del segundo diálogo “Aladdin-2019” fue necesario copiar y pegar en un bloc de notas (.txt) cada parte de los diálogos, sin embargo fue extraido cada fragmento de distintas partes del hipervículo proporcionado por el profesor.
En resumen, de ambas fuentes proporcionadas fue extraido de manera manual lsas partes de los diálogos de ambas películas, no consideré necesario quitar los nombres al inicio de cada linea de diálogo pues consideré que también se puede obtener información bsatante valiosa en cuanto a la participación de cada personaje dentro de la película.

Pregunta 2:

Describe el análisis realizado: Para poder llevar a cabo tanto el análisis de texto como el análisis de sentimientos fue necesario realizar los siguientes pasos:
* Obtener los recursos a analizar, en este caso fue necesario crear los archivos .txt con ayuda del bloc de notas los cuales fueron guardados dentro de la misma carpeta que el archivo .Rmd
* Después fueron instaladas las diferentes librerías que fueran necesarias para poder realizar ambos análisis
* Como primer paso del análisis de texto fue necesario crear el corpus que conteniera ambos archivos .txt.
* Una vez creado el corpus fue necesario llevar a cabo dos procesos de limpieza sin embargo ambos fueron para modificar el texto y que cumplieran con ciertas características como que fueran todas minúsculas, quitar los números y las stopwords
* Después se obtuvieron y analizar los términos más comunes dentro de los dos guiones y esto nos sirvió para poder comparar el cambio del vocabulario dentro de los dos guiones a lo largo del tiempo
* También se analizó la esparcidad para saber que vocabulario de ambas obras fue utilizado dentro de las mismas así como identificar aquellas que si forman parte importante a lo largo de todo el texto, de esta manera podemos identificar las palabras que no son implementadas únicamente durante una parte del guión, sino que fueron usadas durante toda la obra
* Para concluir la parte del análisis de texto fue necesario identificar las palabras con las que se relacionan dichas palabras con más importancia, esto para saber que palabras se usan comúnmente antes y después de ellas.
* Para realizar el análisis de emociones fue necesario volver a leer los textos y tokenizarlos así como asignar el lenguaje en el que se desenvuelve la obra
* Finalmente realizamos el análisis de emociones mediante la función get_nrc_sentiment y de esta manera los graficamos tanto los sentimientos que más se identifican en la obra como el desarrollo de las emociones a lo largo de las obras.

Pregunta 3:

Busca alguna función asociada al análisis de texto que no hayamos visto en clase, úsala y escribe lo que lograste Mediante este análisis de sentimientos pudimos observar las siguientes cosas: En la obra realizada en 1992 los sentimientos se vieron predominados por fear y trust, sin embargo durante la obra de 2019 la emoción fear fue más dominante pues fear y joy disminuyeron su participación por lo que podemos inferir que la obra de 2019 intentó comunicar una mayor cantidad de incenrtidumbre y miedo a lo largo de la película, esto lo podemos comprar con el flujo de las emociones a través de la obra pues la última película comienza con la influencia de sentimientos negativos desde el inicio de la obra, a contrario de la película de 1992 la cual a partir de 2/10 de la película y después vuelve a subir a sentimientos positivos, pudemos ver mediante la gráfica de Scaled sentiment que la obra de 1992 tiene un cambio de emociones más marcado a lo largo de su desarrollo mientras que la del 2019 únicamente cuenta con una subida de sentimientos positivos en la mitad de la obra y vuelve a sentimientos negativos para la última tercera parte de la película.

LS0tDQp0aXRsZTogIlByb2Nlc2FtaWVudG8gZGUgVGV4dG8iDQphdXRob3I6ICJMdWlzIERhdmlkIFPDoW5jaGV6IENhc3RpbGxvIg0KZGF0ZTogIjIwMjQtMDQtMDEiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQotLS0NCg0KIyBDb250ZXh0bw0KRHVyYW50ZSBlbCBzaWd1aWVudGUgUm1kIHNlIGRlc2Fycm9sbGEgdW4gYW7DoWxpc2lzIGRlIHRleHRvIGVuIGVsIGN1YWwgaW1wbGVtZW50YXJlbW9zIGRpc3RpbnRhcyBoZXJyYW1pZW50YXMgY29uIGVsIGZpbiBkZSBjb21wYXJhciBlbCBjYW1iaW8gdGFudG8gZW4gZWwgbGVuZ3VhamUgY29tbyBlbiBsYXMgZW1vY2lvbmVzIGVudHJlIDIgZ3Vpb25lcyBkZSB1bmEgbWlzbWEgcGVsw61jdWxhIHF1ZSBmdWUgcmVtYXN0ZXJpemFkYSBkZXNwdcOpcyBkZSAyOCBhw7FvcyAoQWxhZGRpbi0xOTkyIHkgQWxhZGRpbi0yMDE5KSAgDQpDb21vIHByaW1lcmEgZXRhcGEgc2UgcHJlc2VudGFyw6EgdW5hIGxpbXBpZXphIGdlbmVyYWwgZGUgYW1ib3MgdGV4dG9zIHBhcmEgcG9kZXIgYnVzY2FyIGxhcyBwYWxhYnJhcyBvIHTDqXJtaW5vcyBtw6FzIGZyZWN1ZW50ZXMgZW4gYW1iYXMgb2JyYXMsIGNvbXBhcmFyIHNpIHNvbiBsb3MgbWlzbW9zIHkgcG9kZXIgaWRlbnRpZmljYXIgY29uIHF1ZSBvdHJhcyBwYWxhYnJhcyBzZSBhc29jaWFuIGRpY2hvcyB0w6lybWlub3MsIGZpbmFsbWVudGUgc2UgcmVhbGl6YXLDoSB1biBhbsOhbGlzaXMgZGUgc2VudGltaWVudG9zIGNvbiBlbCBmaW4gZGUgcG9kZXIgc2FiZXIgc2kgYW1iYXMgb2JyYXMgYnVzY2FuIHRyYW5zbWl0aXIgbGEgbWlzbWEgZW5lcmfDrWEgYWwgZXNwZWN0YWRvci4NCg0KIyBEZXNhcnJvbGxvDQoNCiMjIEEpIEFuw6FsaXNpcyBkZSBUZXh0bw0KIyMjIEkpIFByZXBhcmFjacOzbiAoc2V0dGluZ3MgZSBpbnN0YWxhY2nDs24gZGUgcGFxdWV0ZXMgeSBsaWJyZXLDrWFzKQ0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NClN5cy5zZXRlbnYoTEFORyA9ICJlbiIpDQpgYGANCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIExvYWQgbGlicmFyaWVzDQpsaWJyYXJ5KHRtKSANCmxpYnJhcnkoU25vd2JhbGxDKQ0KbGlicmFyeSh3b3JkY2xvdWQpDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCmxpYnJhcnkocGRmdG9vbHMpDQpsaWJyYXJ5KHJlYWR0ZXh0KQ0KbGlicmFyeShzeXV6aGV0KQ0KDQpgYGANCg0KIyMjIElJKSBJbXBvcnRhY2nDs24gZGUgdGV4dG9zIA0KQ29uIGxhIGZ1bmNpw7NuIHByZXNlbnRhZGEgYSBjb250aW51YWNpw7NuIHNlIHNlbGVjY2lvbmFuIHRvZG9zIGxvcyBhcmNoaXZvcyBkZSB0aXBvICoudHh0KiBxdWUgc2UgZW5jdWVudHJlbiBlbiBudWVzdHJvIGRpcmVjdG9yaW8gKGNhcnBldGEgZW4gbGEgcXVlIHRhbWJpw6luIHNlIGVuY3VlbnRyYSBndWFyZGFkbyBudWVzdHJvIC5SbWQpDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZmlsZXMgPC0gbGlzdC5maWxlcyhwYXR0ZXJuID0gInR4dCQiKQ0KZmlsZXMNCmBgYA0KDQojIyMgSUlJKSBDcmVhY2nDs24gZGUgbG9zIENPUlBVUw0KUmVjb3JkZW1vcyBxdWUgdW4gQ09SUFVTIHNpbXBsZW1lbnRlIGVzIHVuYSBjb2xlY2Npw7NuIGRlIHRleHRvcyBxdWUgZXN0w6FuIG9yZ2FuaXphZG9zIGRlIG1hbmVyYSBxdWUgcHVlZGFuIHNlciBwcm9jZXNhZG9zIGp1bnRvcw0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmNvcnAxIDwtIENvcnB1cyhVUklTb3VyY2UoZmlsZXMpLA0KICAgICAgICAgICAgICAgcmVhZGVyQ29udHJvbCA9IGxpc3QocmVhZGVyID0gcmVhZFBsYWluKSkNCmNvcnAyIDwtIHRtX21hcChjb3JwMSwgcmVtb3ZlUHVuY3R1YXRpb24sIHVjcCA9IFRSVUUpDQoNCmBgYA0KDQojIyMgSVYpIExpbXBpZXphIGRlIGxvcyB0ZXh0b3MNCkFjb250aW51YWNpw7NuIHJlYWxpemFyZW1vcyBjaWVydGFzIHRyYW5zZm9ybWFjaW9uZXMgYSBsb3MgdGV4dG9zIHBhcmEgcXVlIHB1ZWRhbiBzZXIgYW5hbGl6YWRvcyBjb24gbWF5b3IgZmFjaWxpZGFkLCBkaWNoYXMgdHJhbnNmb3JtYWNpb25lcyBjYW1iaWFuIGVsIHRleHRvIGEgbWluw7pzY3VsYXMsIHNlIGVsaW1pbmFuIGxvcyBzaWdub3MgZGUgcHVudHVhY2nDs24geSBlbGltaW5hbW9zIHBhbGFicmFzIGNvbmVjdG9yYXMsIGVudHJlIG90cmFzLg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpbXBpbzEgPC0gVGVybURvY3VtZW50TWF0cml4KGNvcnAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QocmVtb3ZlUHVuY3R1YXRpb24gPSBUUlVFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcHdvcmRzID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvbG93ZXIgPSBUUlVFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlbW1pbmcgPSBUUlVFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTnVtYmVycyA9IFRSVUUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpICANCmluc3BlY3QobGltcGlvMVsxOjEwLF0pIA0KDQpsaW1waW8yIDwtIFRlcm1Eb2N1bWVudE1hdHJpeChjb3JwMiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KHN0b3B3b3JkcyA9IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2xvd2VyID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZW1taW5nID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZU51bWJlcnMgPSBUUlVFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSANCmluc3BlY3QobGltcGlvMlsxOjEwLF0pDQoNCmBgYA0KDQojIyMgVikgVGVybWlub3MgZnJlY3VlbnRlcw0KTWVkaWFudGUgZXN0YSBwYXJ0ZSBkZWwgYW7DoWxpc2lzIGJ1c2NhbW9zIGlkZW50aWZpY2FyIGN1w6FsZXMgc29uIGxvcyB0w6lybWlub3MgbcOhcyBmcmVjdWVudGVzIGRlIGxvcyB0ZXh0b3MsIHB1ZXMgY29uIGVsbG9zIHBvZHJlbW9zIGRhcm5vcyB1bmEgaWRlYSBnZW5lcmFsIHLDoXBpZGEgYWNlcmNhIGRlIGxvIHF1ZSB0cmF0YSBlbCB0ZXh0byB5IHBvZGVtb3MgdGFtYmnDqW4gdmVyIGNvbW8gZGljaGFzIGV4cHJlc2lvbmVzIG8gcGFsYWJyYXMgbcOhcyB1c2FkYXMgY21hYmlhbiBhIHRyYXbDqXMgZGUgbG9zIGHDsW9zLg0KYGBge3J9DQojUHJpbWVybyBlbmNvbnRyYW1vc2xvcyB0w6lybWlub3MgY29uIHVuYSBmcmVjdWVuY2lhIG1heW9yIGEgMTAwIGVudHJlIGFtYm9zIHRleHRvcw0KZmluZEZyZXFUZXJtcyhsaW1waW8yLCBsb3dmcmVxID0gMTAwLCBoaWdoZnJlcSA9IEluZikNCiNBaG9yYSBsb3MgY29udmVydGltb3MgZW4gdW5hIG1hdHJpeg0KZnQgPC0gZmluZEZyZXFUZXJtcyhsaW1waW8yLCBsb3dmcmVxID0gMTAwLCBoaWdoZnJlcSA9IEluZikNCmFzLm1hdHJpeChsaW1waW8yW2Z0LF0pDQojRmluYWxtZW50ZSBsb3Mgb3JnYW5pemFtb3MgZGUgbWF5b3IgYSBtZW5vciBzZWfDum4gc3UgZnJlY3VlbmNpYQ0KZnQyIDwtIGFzLm1hdHJpeChsaW1waW8yW2Z0LF0pDQpzb3J0KGFwcGx5KGZ0MiwgMSwgc3VtKSwgZGVjcmVhc2luZyA9IFRSVUUpDQpgYGANCg0KIyMjIFZJKSBBbsOhbGlzaXMgZGUgbGEgZXNwYXJjaWRhZA0KTWVkaWFudGUgZXN0YSBwYXJ0ZSBkZWwgYW7DoWxpc2lzIGxvIHF1ZSBidXNjYW1vcyBlcyBpZGVudGlmaWNhciBsYXMgcGFsYWJyYXMgZGUgbnVlc3RybyB2b2NhYnVsYXJpbyBxdWUgc2kgYXBhcmVjZW4gY29uc2lkZXJhYmxlbWVudGUgZW4gbG9zIHRleHRvcw0KYGBge3J9DQpsaW1waW8zIDwtIHJlbW92ZVNwYXJzZVRlcm1zKGxpbXBpbzIsIHNwYXJzZT0wLjMpDQpmaW5kRnJlcVRlcm1zKGxpbXBpbzMsIGxvd2ZyZXEgPSAxMDAsIGhpZ2hmcmVxID0gSW5mKQ0KYGBgDQoNCiMjIyBWSUkpIEFzb2NpYXNpb25lcw0KQSBjb250aW51YWNpw7NuIHNlbGVjY2lvbmFtb3MgdW5hIHBhbGFicmEgcXVlIGVzIGRlIGxhcyBtw6FzIHJlcGV0aWRhcyBkdXJhbnRlIGxvcyBndWlvbmVzIHBlcm8gcXVlIG5vIGVzIHVuIHBlcnNvbmFqZSAiaHVtYW5vIg0KDQpgYGB7cn0NCiNmaW5kQXNzb2NzKGxpbXBpbzIsdGVybT0ic2Nob29sIiwwLjgpDQpmaW5kQXNzb2NzKGxpbXBpbzIsdGVybT0iY2FycGV0IiwxKQ0KDQpgYGANCg0KIyMgQikgQW7DoWxpc2lzIGRlIHNlbnRpbWllbnRvcw0KQSBjb250aW51YWNpw7NuIHNlIHByZXNuZXRhIGVuIGFuw6FsaXNpcyBkZSBzZW50aW1pZW50b3MgY29tbyB1bmEgaGVycmFtaWVudGEgZXh0cmEgbm8gdmlzdGEgZW4gY2xhc2UsIGxhIGltcGxlbWVudGFjacOzbiBkZSBlc3RhIHB1ZWRlIGF5dWRhcm5vcyBhIGVudGVuZGVyIGPDs21vIGxhcyBlbW9jaW9uZXMgc29uIGV4cHJlc2FkYXMgZW4gbGFzIG9icmFzLCBwZXJtaXRpw6luZG9ub3MgaWRlbnRpZmljYXIgbGFzIHRlbmRlbmNpYXMgZW1vY2lvbmFsZXMgeSBsYSBjYXJnYSBhZmVjdGl2YSBkZSBsb3MgdGV4dG9zLiBFc3RvIG5vcyBicmluZGEgdW5hIHBlcnNwZWN0aXZhIG3DoXMgcHJvZnVuZGEgc29icmUgbGEgbmFycmF0aXZhIHkgbG9zIHBlcnNvbmFqZXMsIGFzw60gY29tbyB0YW1iacOpbiBzb2JyZSBsYSByZXNwdWVzdGEgZW1vY2lvbmFsIHF1ZSBwdWVkZW4gZ2VuZXJhciBlbiBsb3MgZXNwZWN0YWRvcmVzLg0KYGBge3J9DQojUHJpbWVybyBzZWxlY2Npb25hbW9zIGxvcyBhcmNoaXZvcyBjb24gbG9zIHF1ZSB2YW1vcyBhIHRyYWJhamFyDQp0ZXh0bzE5OTI8LSByZWFkdGV4dCgiQzpcXFVzZXJzXFxMdWlzRFxcRG9jdW1lbnRzXFxDb25jZW50cmFjacOzblxcTU9EVUxPIDRcXGFsYWRkaW4xOTkyLnR4dCIpDQp0ZXh0bzIwMTk8LSByZWFkdGV4dCgiQzpcXFVzZXJzXFxMdWlzRFxcRG9jdW1lbnRzXFxDb25jZW50cmFjacOzblxcTU9EVUxPIDRcXGFsYWRpbjIwMTkudHh0IikNCg0KI0NvbnZlcnRpbW9zIGVzdG9zIHRleHRvcyBhIHBhbGFicmFzDQpwYWxhYnJhczE5OTIgPC0gZ2V0X3Rva2Vucyh0ZXh0bzE5OTIpDQplbW9jaW9uZXMxOTkyIDwtIGdldF9ucmNfc2VudGltZW50KHBhbGFicmFzMTk5MiwgbGFuZ3VhZ2UgPSAiZW5nbGlzaCIpDQoNCnBhbGFicmFzMjAxOSA8LSBnZXRfdG9rZW5zKHRleHRvMjAxOSkNCmVtb2Npb25lczIwMTkgPC0gZ2V0X25yY19zZW50aW1lbnQocGFsYWJyYXMyMDE5LCBsYW5ndWFnZSA9ICJlbmdsaXNoIikNCmBgYA0KDQpgYGB7cn0NCmJhcnBsb3QoY29sU3Vtcyhwcm9wLnRhYmxlKGVtb2Npb25lczE5OTJbLCAxOjhdKSksIG1haW49IiBFbW9jaW9uZXMgQWxhZGRpbiAxOTkyIikNCnNlbnRpbWllbnRvczE5OTIgPC0gKGVtb2Npb25lczE5OTIkbmVnYXRpdmUqLTEpICsgZW1vY2lvbmVzMTk5MiRwb3NpdGl2ZQ0Kc2ltcGxlX3Bsb3Qoc2VudGltaWVudG9zMTk5MikNCmBgYA0KDQpgYGB7cn0NCmJhcnBsb3QoY29sU3Vtcyhwcm9wLnRhYmxlKGVtb2Npb25lczIwMTlbLCAxOjhdKSksIG1haW49IiBFbW9jaW9uZXMgQWxhZGRpbiAyMDE5IikNCnNlbnRpbWllbnRvczIwMTkgPC0gKGVtb2Npb25lczIwMTkkbmVnYXRpdmUqLTEpICsgZW1vY2lvbmVzMjAxOSRwb3NpdGl2ZQ0Kc2ltcGxlX3Bsb3Qoc2VudGltaWVudG9zMjAxOSkNCmBgYA0KDQojIyBDKSBQcmVndW50YXMNCiMjIyBQcmVndW50YSAxOiANCioqRGVzcHXDqXMgZGUgbGltcGlhciBlbCBhcmNoaXZvIMK/U2UgdG9tYXLDoSB5IGFuYWxpemFyw6EgVG9kbyBsbyBxdWUgYXBhcmVjZSBlbiBsYSBww6FnaW5hPyDCv1F1ZSBzaSB5IHF1ZSBubz8gwr9Qb3IgcXXDqT8qKg0KUGFyYSBsYSBleHRyYWNjacOzbiBkZWwgcHJpbWVyIGRpw6Fsb2dvIGRlIGxhIHBlbMOtY3VsYSAiQWxhZGRpbi0xOTkyIiBzZSB1YnR1dm8gZGVsIGhpcGVydmluY3VsbyBwcm9wb3JjaW9uYWRvIHBvciBwYXJ0ZSBkZWwgcHJvZmVzb3IsIGV4dHJhw60gZWwgdGV4dG8gY29waWFuZG8gw7puaWNhbWVudGUgbGEgcGFydGUgZGUgbG9zIGRpw6Fsb2dvcyAoc2luIHRleHRvIG8gYW5leG9zKSB5IHBlZ8OhbmRvbG8gZW4gdW4gYXJjaGl2byAudHh0DQpQYXJhIGxhIG9idGVuY2nDs24gZGVsIHNlZ3VuZG8gZGnDoWxvZ28gIkFsYWRkaW4tMjAxOSIgZnVlIG5lY2VzYXJpbyBjb3BpYXIgeSBwZWdhciBlbiB1biBibG9jIGRlIG5vdGFzICgudHh0KSBjYWRhIHBhcnRlIGRlIGxvcyBkacOhbG9nb3MsIHNpbiBlbWJhcmdvIGZ1ZSBleHRyYWlkbyBjYWRhIGZyYWdtZW50byBkZSBkaXN0aW50YXMgcGFydGVzIGRlbCBoaXBlcnbDrWN1bG8gcHJvcG9yY2lvbmFkbyBwb3IgZWwgcHJvZmVzb3IuICANCkVuIHJlc3VtZW4sIGRlIGFtYmFzIGZ1ZW50ZXMgcHJvcG9yY2lvbmFkYXMgZnVlIGV4dHJhaWRvIGRlIG1hbmVyYSBtYW51YWwgbHNhcyBwYXJ0ZXMgZGUgbG9zIGRpw6Fsb2dvcyBkZSBhbWJhcyBwZWzDrWN1bGFzLCBubyBjb25zaWRlcsOpIG5lY2VzYXJpbyBxdWl0YXIgbG9zIG5vbWJyZXMgYWwgaW5pY2lvIGRlIGNhZGEgbGluZWEgZGUgZGnDoWxvZ28gcHVlcyBjb25zaWRlcsOpIHF1ZSB0YW1iacOpbiBzZSBwdWVkZSBvYnRlbmVyIGluZm9ybWFjacOzbiBic2F0YW50ZSB2YWxpb3NhIGVuIGN1YW50byBhIGxhIHBhcnRpY2lwYWNpw7NuIGRlIGNhZGEgcGVyc29uYWplIGRlbnRybyBkZSBsYSBwZWzDrWN1bGEuDQoNCiMjIyBQcmVndW50YSAyOg0KKipEZXNjcmliZSBlbCBhbsOhbGlzaXMgcmVhbGl6YWRvOioqDQpQYXJhIHBvZGVyIGxsZXZhciBhIGNhYm8gdGFudG8gZWwgYW7DoWxpc2lzIGRlIHRleHRvIGNvbW8gZWwgYW7DoWxpc2lzIGRlIHNlbnRpbWllbnRvcyBmdWUgbmVjZXNhcmlvIHJlYWxpemFyIGxvcyBzaWd1aWVudGVzIHBhc29zOiAgDQoqIE9idGVuZXIgbG9zIHJlY3Vyc29zIGEgYW5hbGl6YXIsIGVuIGVzdGUgY2FzbyBmdWUgbmVjZXNhcmlvIGNyZWFyIGxvcyBhcmNoaXZvcyAudHh0IGNvbiBheXVkYSBkZWwgYmxvYyBkZSBub3RhcyBsb3MgY3VhbGVzIGZ1ZXJvbiBndWFyZGFkb3MgZGVudHJvIGRlIGxhIG1pc21hIGNhcnBldGEgcXVlIGVsIGFyY2hpdm8gLlJtZCAgDQoqIERlc3B1w6lzIGZ1ZXJvbiBpbnN0YWxhZGFzIGxhcyBkaWZlcmVudGVzIGxpYnJlcsOtYXMgcXVlIGZ1ZXJhbiBuZWNlc2FyaWFzIHBhcmEgcG9kZXIgcmVhbGl6YXIgYW1ib3MgYW7DoWxpc2lzICANCiogQ29tbyBwcmltZXIgcGFzbyBkZWwgYW7DoWxpc2lzIGRlIHRleHRvIGZ1ZSBuZWNlc2FyaW8gY3JlYXIgZWwgY29ycHVzIHF1ZSBjb250ZW5pZXJhIGFtYm9zIGFyY2hpdm9zIC50eHQuICANCiogVW5hIHZleiBjcmVhZG8gZWwgY29ycHVzIGZ1ZSBuZWNlc2FyaW8gbGxldmFyIGEgY2FibyBkb3MgcHJvY2Vzb3MgZGUgbGltcGllemEgc2luIGVtYmFyZ28gYW1ib3MgZnVlcm9uIHBhcmEgbW9kaWZpY2FyIGVsIHRleHRvIHkgcXVlIGN1bXBsaWVyYW4gY29uIGNpZXJ0YXMgY2FyYWN0ZXLDrXN0aWNhcyBjb21vIHF1ZSBmdWVyYW4gdG9kYXMgbWluw7pzY3VsYXMsIHF1aXRhciBsb3MgbsO6bWVyb3MgeSBsYXMgc3RvcHdvcmRzICANCiogRGVzcHXDqXMgc2Ugb2J0dXZpZXJvbiB5IGFuYWxpemFyIGxvcyB0w6lybWlub3MgbcOhcyBjb211bmVzIGRlbnRybyBkZSBsb3MgZG9zIGd1aW9uZXMgeSBlc3RvIG5vcyBzaXJ2acOzIHBhcmEgcG9kZXIgY29tcGFyYXIgZWwgY2FtYmlvIGRlbCB2b2NhYnVsYXJpbyBkZW50cm8gZGUgbG9zIGRvcyBndWlvbmVzIGEgbG8gbGFyZ28gZGVsIHRpZW1wbyAgDQoqIFRhbWJpw6luIHNlIGFuYWxpesOzIGxhIGVzcGFyY2lkYWQgcGFyYSBzYWJlciBxdWUgdm9jYWJ1bGFyaW8gZGUgYW1iYXMgb2JyYXMgZnVlIHV0aWxpemFkbyBkZW50cm8gZGUgbGFzIG1pc21hcyBhc8OtIGNvbW8gaWRlbnRpZmljYXIgYXF1ZWxsYXMgcXVlIHNpIGZvcm1hbiBwYXJ0ZSBpbXBvcnRhbnRlIGEgbG8gbGFyZ28gZGUgdG9kbyBlbCB0ZXh0bywgZGUgZXN0YSBtYW5lcmEgcG9kZW1vcyBpZGVudGlmaWNhciBsYXMgcGFsYWJyYXMgcXVlIG5vIHNvbiBpbXBsZW1lbnRhZGFzIMO6bmljYW1lbnRlIGR1cmFudGUgdW5hIHBhcnRlIGRlbCBndWnDs24sIHNpbm8gcXVlIGZ1ZXJvbiB1c2FkYXMgZHVyYW50ZSB0b2RhIGxhIG9icmEgIA0KKiBQYXJhIGNvbmNsdWlyIGxhIHBhcnRlIGRlbCBhbsOhbGlzaXMgZGUgdGV4dG8gZnVlIG5lY2VzYXJpbyBpZGVudGlmaWNhciBsYXMgcGFsYWJyYXMgY29uIGxhcyBxdWUgc2UgcmVsYWNpb25hbiBkaWNoYXMgcGFsYWJyYXMgY29uIG3DoXMgaW1wb3J0YW5jaWEsIGVzdG8gcGFyYSBzYWJlciBxdWUgcGFsYWJyYXMgc2UgdXNhbiBjb23Dum5tZW50ZSBhbnRlcyB5IGRlc3B1w6lzIGRlIGVsbGFzLiAgDQoqIFBhcmEgcmVhbGl6YXIgZWwgYW7DoWxpc2lzIGRlIGVtb2Npb25lcyBmdWUgbmVjZXNhcmlvIHZvbHZlciBhIGxlZXIgbG9zIHRleHRvcyB5IHRva2VuaXphcmxvcyBhc8OtIGNvbW8gYXNpZ25hciBlbCBsZW5ndWFqZSBlbiBlbCBxdWUgc2UgZGVzZW52dWVsdmUgbGEgb2JyYSAgDQoqIEZpbmFsbWVudGUgcmVhbGl6YW1vcyBlbCBhbsOhbGlzaXMgZGUgZW1vY2lvbmVzIG1lZGlhbnRlIGxhIGZ1bmNpw7NuICpnZXRfbnJjX3NlbnRpbWVudCogeSBkZSBlc3RhIG1hbmVyYSBsb3MgZ3JhZmljYW1vcyB0YW50byBsb3Mgc2VudGltaWVudG9zIHF1ZSBtw6FzIHNlIGlkZW50aWZpY2FuIGVuIGxhIG9icmEgY29tbyBlbCBkZXNhcnJvbGxvIGRlIGxhcyBlbW9jaW9uZXMgYSBsbyBsYXJnbyBkZSBsYXMgb2JyYXMuDQoNCg0KIyMjIFByZWd1bnRhIDM6DQoqKkJ1c2NhIGFsZ3VuYSBmdW5jacOzbiBhc29jaWFkYSBhbCBhbsOhbGlzaXMgZGUgdGV4dG8gcXVlIG5vIGhheWFtb3MgdmlzdG8gZW4gY2xhc2UsIMO6c2FsYSB5IGVzY3JpYmUgbG8gcXVlIGxvZ3Jhc3RlKioNCk1lZGlhbnRlIGVzdGUgYW7DoWxpc2lzIGRlIHNlbnRpbWllbnRvcyBwdWRpbW9zIG9ic2VydmFyIGxhcyBzaWd1aWVudGVzIGNvc2FzOg0KRW4gbGEgb2JyYSByZWFsaXphZGEgZW4gMTk5MiBsb3Mgc2VudGltaWVudG9zIHNlIHZpZXJvbiBwcmVkb21pbmFkb3MgcG9yIGZlYXIgeSB0cnVzdCwgc2luIGVtYmFyZ28gZHVyYW50ZSBsYSBvYnJhIGRlIDIwMTkgbGEgZW1vY2nDs24gKmZlYXIqIGZ1ZSBtw6FzIGRvbWluYW50ZSBwdWVzICpmZWFyKiB5ICpqb3kqIGRpc21pbnV5ZXJvbiBzdSBwYXJ0aWNpcGFjacOzbiBwb3IgbG8gcXVlIHBvZGVtb3MgaW5mZXJpciBxdWUgbGEgb2JyYSBkZSAyMDE5IGludGVudMOzIGNvbXVuaWNhciB1bmEgbWF5b3IgY2FudGlkYWQgZGUgaW5jZW5ydGlkdW1icmUgeSBtaWVkbyBhIGxvIGxhcmdvIGRlIGxhIHBlbMOtY3VsYSwgZXN0byBsbyBwb2RlbW9zIGNvbXByYXIgY29uIGVsIGZsdWpvIGRlIGxhcyBlbW9jaW9uZXMgYSB0cmF2w6lzIGRlIGxhIG9icmEgcHVlcyBsYSDDumx0aW1hIHBlbMOtY3VsYSBjb21pZW56YSBjb24gbGEgaW5mbHVlbmNpYSBkZSBzZW50aW1pZW50b3MgbmVnYXRpdm9zIGRlc2RlIGVsIGluaWNpbyBkZSBsYSBvYnJhLCBhIGNvbnRyYXJpbyBkZSBsYSBwZWzDrWN1bGEgZGUgMTk5MiBsYSBjdWFsIGEgcGFydGlyIGRlIDIvMTAgZGUgbGEgcGVsw61jdWxhIHkgZGVzcHXDqXMgdnVlbHZlIGEgc3ViaXIgYSBzZW50aW1pZW50b3MgcG9zaXRpdm9zLCBwdWRlbW9zIHZlciBtZWRpYW50ZSBsYSBncsOhZmljYSBkZSAqU2NhbGVkIHNlbnRpbWVudCogcXVlIGxhIG9icmEgZGUgMTk5MiB0aWVuZSB1biBjYW1iaW8gZGUgZW1vY2lvbmVzIG3DoXMgbWFyY2FkbyBhIGxvIGxhcmdvIGRlIHN1IGRlc2Fycm9sbG8gbWllbnRyYXMgcXVlIGxhIGRlbCAyMDE5IMO6bmljYW1lbnRlIGN1ZW50YSBjb24gdW5hIHN1YmlkYSBkZSBzZW50aW1pZW50b3MgcG9zaXRpdm9zIGVuIGxhIG1pdGFkIGRlIGxhIG9icmEgeSB2dWVsdmUgYSBzZW50aW1pZW50b3MgbmVnYXRpdm9zIHBhcmEgbGEgw7psdGltYSB0ZXJjZXJhIHBhcnRlIGRlIGxhIHBlbMOtY3VsYS4gDQo=