....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 66.235.200.170  /  Your IP : 3.135.64.200
Web Server : Apache
System : Linux gator4410.hostgator.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User : bmgxafte ( 1214)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/emacs/27.2/lisp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/27.2/lisp/composite.elc
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@1693 Alist of symbols vs integer codes of glyph reference points.
A glyph reference point symbol is to be used to specify a composition
rule in COMPONENTS argument to such functions as `compose-region'.

The meaning of glyph reference point codes is as follows:

    0----1----2 <---- ascent	0:tl or top-left
    |         |			1:tc or top-center
    |         |			2:tr or top-right
    |         |			3:Bl or base-left     9:cl or center-left
    9   10   11 <---- center	4:Bc or base-center  10:cc or center-center
    |         |			5:Br or base-right   11:cr or center-right
  --3----4----5-- <-- baseline	6:bl or bottom-left
    |         |			7:bc or bottom-center
    6----7----8 <---- descent	8:br or bottom-right

Glyph reference point symbols are to be used to specify a composition
rule of the form (GLOBAL-REF-POINT . NEW-REF-POINT), where
GLOBAL-REF-POINT is a reference point in the overall glyphs already
composed, and NEW-REF-POINT is a reference point in the new glyph to
be added.

For instance, if GLOBAL-REF-POINT is `br' (bottom-right) and
NEW-REF-POINT is `tc' (top-center), the overall glyph is updated as
follows (the point `*' corresponds to both reference points):

    +-------+--+ <--- new ascent
    |       |  |
    | global|  |
    | glyph |  |
 -- |       |  |-- <--- baseline (doesn't change)
    +----+--*--+
    |    | new |
    |    |glyph|
    +----+-----+ <--- new descent

A composition rule may have the form (GLOBAL-REF-POINT
NEW-REF-POINT XOFF YOFF), where XOFF and YOFF specify how much
to shift NEW-REF-POINT from GLOBAL-REF-POINT.  In this case, XOFF
and YOFF are integers in the range -100..100 representing the
shifting percentage against the font size.
(defconst reference-point-alist '((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5)) (#$ . 410))
#@141 Encode composition rule RULE into an integer value.
RULE is a cons of global and new reference point symbols
(see `reference-point-alist').
(defalias 'encode-composition-rule #[(rule) "\250\203
\306W\203
\207:\203\232@A\307\211:\203TA@\3108@\n\311Y\203D\n\312X\203D	\311Y\203D	\312X\204I\313\314\"\210\n\315\\	\315\\\202X\316\211\f\250\204b\f
\236A\250\204l
\236A\f\316Y\203\204\f\317W\203\204\316Y\203\204\317W\204\211\313\320\"\210\321\322\n\323\"\322	\324\"\f\317_\\#,\207\313\320\"\207" [rule yoff xoff nref gref reference-point-alist 144 nil 2 -100 100 error "Invalid composition rule: %s" 128 0 12 "Invalid composition rule: %S" logior ash 16 8] 6 (#$ . 2558)])
(defalias 'decode-composition-rule #[(rule-code) "\306!\203\f\307W\204\310\311\"\210\312\313\"\314\312\315\"\316\"\317\211\314\316\"\320\321\245
\"@\320\321\246
\"@\n\203I\n9\203I	\203I	9\204N\310\322\"\210\f\323U\203`\323U\203`\n	B\202m\f\324Z\324Z\n\f	F,\207" [rule-code nref gref yoff xoff reference-point-alist natnump 16777216 error "Invalid encoded composition rule: %S" ash -16 logand -8 255 nil rassq 12 "Invalid composition rule code: %S" 0 128] 5])
(defalias 'encode-composition-components #[(components &optional nocopy) "\204\305	!\306	!\203.	G\307\nW\203*	\n\310	\nH!I\210\n\311\\\211\202*\202E	A\211\203D\f\310\f@!\240\210\fAA\211\2045)	\207" [nocopy components i len tail copy-sequence vectorp 1 encode-composition-rule 2] 6])
(defalias 'decode-composition-components #[(components &optional nocopy) "\204\304	!	G\305\nW\203$	\n\306	\nH!I\210\n\307\\\211\202*	\207" [nocopy components i len copy-sequence 1 decode-composition-rule 2] 6])
#@1827 Compose characters in the current region.

Characters are composed relatively, i.e. composed by overstriking
or stacking depending on ascent, descent and other metrics of
glyphs.

For instance, if the region has three characters "XYZ", X is
regarded as BASE glyph, and Y is displayed:
  (1) above BASE if Y's descent value is not positive
  (2) below BASE if Y's ascent value is not positive
  (3) on BASE (i.e. at the BASE position) otherwise
and Z is displayed with the same rule while regarding the whole
XY glyphs as BASE.

When called from a program, expects these four arguments.

First two arguments START and END are positions (integers or markers)
specifying the region.

Optional 3rd argument COMPONENTS, if non-nil, is a character, a string
or a vector or list of integers and rules.

If it is a character, it is an alternate character to display instead
of the text in the region.

If it is a string, the elements are alternate characters.  In
this case, TAB element has a special meaning.  If the first
character is TAB, the glyphs are displayed with left padding space
so that no pixel overlaps with the previous column.  If the last
character is TAB, the glyphs are displayed with right padding
space so that no pixel overlaps with the following column.

If it is a vector or list, it is a sequence of alternate characters and
composition rules, where (2N)th elements are characters and (2N+1)th
elements are composition rules to specify how to compose (2N+2)th
elements with previously composed N glyphs.

A composition rule is a cons of global and new glyph reference point
symbols.  See the documentation of `reference-point-alist' for more
details.

Optional 4th argument MODIFICATION-FUNC is a function to call to
adjust the composition when it gets invalid because of a change of
text in the composition.
(defalias 'compose-region #[(start end &optional components modification-func) "\306 \307\310\n!\204\n<\203\311\n!\312\f\n
$\210\313	!*\207" [inhibit-read-only modified-p components start end modification-func buffer-modified-p t vectorp encode-composition-components compose-region-internal restore-buffer-modified-p] 5 (#$ . 4292) "r"])
#@146 Decompose text in the current region.

When called from a program, expects two arguments,
positions (integers or markers) specifying the region.
(defalias 'decompose-region #[(start end) "\304 \305\306\n\307#\210\310	!*\207" [inhibit-read-only modified-p start end buffer-modified-p t remove-text-properties (composition nil) restore-buffer-modified-p] 4 (#$ . 6472) "r"])
#@613 Compose characters in string STRING.

The return value is STRING with the `composition' property put on all
the characters in it.

Optional 2nd and 3rd arguments START and END specify the range of
STRING to be composed.  They default to the beginning and the end of
STRING respectively.

Optional 4th argument COMPONENTS, if non-nil, is a character or a
sequence (vector, list, or string) of integers.  See the function
`compose-region' for more detail.

Optional 5th argument MODIFICATION-FUNC is a function to call to
adjust the composition when it gets invalid because of a change of
text in the composition.
(defalias 'compose-string #[(string &optional start end components modification-func) "\305!\204<\203\306!	\204\307\n\204G\310	\n\f%\210\207" [components start end string modification-func vectorp encode-composition-components 0 compose-string-internal] 6 (#$ . 6855)])
#@56 Return STRING where `composition' property is removed.
(defalias 'decompose-string #[(string) "\301\302G\303$\210\207" [string remove-text-properties 0 (composition nil)] 5 (#$ . 7761)])
#@426 Return a string from arguments in which all characters are composed.
For relative composition, arguments are characters.
For rule-based composition, Mth (where M is odd) arguments are
characters, and Nth (where N is even) arguments are composition rules.
A composition rule is a cons of glyph reference points of the form
(GLOBAL-REF-POINT . NEW-REF-POINT).  See the documentation of
`reference-point-alist' for more detail.
(defalias 'compose-chars #[(&rest args) "\304\211\nA@:\203,\305\n\306\"\211\203!@	BAA\211\204	\237\260\n)\2020\n\260\307	\310	G$*\207" [components str args tail nil encode-composition-components nocopy compose-string-internal 0] 6 (#$ . 7958)])
#@1651 Return information about a composition at or near buffer position POS.

If the character at POS has `composition' property, the value is a list
(FROM TO VALID-P).

FROM and TO specify the range of text that has the same `composition'
property, VALID-P is t if this composition is valid, and nil if not.

If there's no composition at POS, and the optional 2nd argument LIMIT
is non-nil, search for a composition toward the position given by LIMIT.

If no composition is found, return nil.

Optional 3rd argument STRING, if non-nil, is a string to look for a
composition in; nil means the current buffer.

If a valid composition is found and the optional 4th argument DETAIL-P
is non-nil, the return value is a list of the form

   (FROM TO COMPONENTS RELATIVE-P MOD-FUNC WIDTH)

COMPONENTS is a vector of integers, the meaning depends on RELATIVE-P.

RELATIVE-P is t if the composition method is relative, else nil.

If RELATIVE-P is t, COMPONENTS is a vector of characters to be
composed.  If RELATIVE-P is nil, COMPONENTS is a vector of characters
and composition rules as described in `compose-region'.

MOD-FUNC is a modification function of the composition.

WIDTH is a number of columns the composition occupies on the screen.

When Automatic Composition mode is on, this function also finds a
chunk of text that is automatically composed.  If such a chunk is
found closer to POS than the position that has `composition'
property, the value is a list of FROM, TO, and a glyph-string
that specifies how the chunk is to be composed; DETAIL-P is
ignored in this case.  See the function `composition-get-gstring'
for the format of the glyph-string.
(defalias 'find-composition #[(pos &optional limit string detail-p) "\305	\n$\203%\fG\306V\203%\307\f8\203%\306\f8\204%\310\307\f8\311\"\210\f)\207" [pos limit string detail-p result find-composition-internal 3 2 decode-composition-components nocopy] 5 (#$ . 8654)])
#@517 Compose characters in current buffer after position POS.

It looks up the char-table `composition-function-table' (which
see) by a character at POS, and compose characters after POS
according to the contents of `composition-function-table'.

Optional 2nd arg LIMIT, if non-nil, limits characters to compose.

Optional 3rd arg OBJECT, if non-nil, is a string that contains the
text to compose.  In that case, POS and LIMIT index into the string.

This function is the default value of `compose-chars-after-function'.
(defalias 'compose-chars-after #[(pos &optional limit object) "	fH\306 \205\n;?\205\307	\310 \"\311\211\211\2040\n;\203-\nG\202.d\203\247\203\247\312 \313\216\212\203\246\314@!\203W\311@\202a@@@A	b\210
\203\221\n;\203v\315
\n\"\316=\202y\317
!\203\233\316\225X\203\233\f	\316\225\n\311%\202\233\f	\n\311%\203A\311\211\204F+-\207" [composition-function-table pos object result func pattern display-multi-font-p font-at selected-window nil match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] functionp string-match 0 looking-at font-obj tail limit save-match-data-internal] 7 (#$ . 10586)])
#@620 Compose last characters.
The argument is a parameterized event of the form
	(compose-last-chars N COMPONENTS),
where N is the number of characters before point to compose,
COMPONENTS, if non-nil, is the same as the argument to `compose-region'
(which see).  If it is nil, `compose-chars-after' is called,
and that function finds a proper rule to compose the target characters.
This function is intended to be used from input methods.
The global keymap binds special event `compose-last-chars' to this
function.  Input method may generate an event (compose-last-chars N COMPONENTS)
after a sequence of character events.
(defalias 'compose-last-chars #[(args) "A@\211\247\205)`eZ	Y\205)\3028\203#\303`	Z`\3028#\202)\304`	Z`\")\207" [args chars 2 compose-region compose-chars-after] 6 (#$ . 11802) "e"])
(global-set-key [compose-last-chars] 'compose-last-chars)
(defalias 'lgstring-header #[(gstring) "\301H\207" [gstring 0] 2])
(put 'lgstring-header 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-set-header #[(gstring header) "\302	I\207" [gstring header 0] 3])
(put 'lgstring-set-header 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-font #[(gstring) "\211\301H)\301H\207" [gstring 0] 3])
(put 'lgstring-font 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-char #[(gstring i) "\211\302H)	TH\207" [gstring i 0] 3])
(put 'lgstring-char 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-char-len #[(gstring) "\211\301H)GS\207" [gstring 0] 3])
(put 'lgstring-char-len 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-shaped-p #[(gstring) "\301H\207" [gstring 1] 2])
(put 'lgstring-shaped-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-set-id #[(gstring id) "\302	I\207" [gstring id 1] 3])
(put 'lgstring-set-id 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-glyph #[(gstring i) "	\302\\H\207" [gstring i 2] 3])
(put 'lgstring-glyph 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-glyph-len #[(gstring) "G\301Z\207" [gstring 2] 2])
(put 'lgstring-glyph-len 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-set-glyph #[(gstring i glyph) "	\303\\\nI\207" [gstring i glyph 2] 3])
(put 'lgstring-set-glyph 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-from #[(glyph) "\301H\207" [glyph 0] 2])
(put 'lglyph-from 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-to #[(glyph) "\301H\207" [glyph 1] 2])
(put 'lglyph-to 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-char #[(glyph) "\301H\207" [glyph 2] 2])
(put 'lglyph-char 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-code #[(glyph) "\301H\207" [glyph 3] 2])
(put 'lglyph-code 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-width #[(glyph) "\301H\207" [glyph 4] 2])
(put 'lglyph-width 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-lbearing #[(glyph) "\301H\207" [glyph 5] 2])
(put 'lglyph-lbearing 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-rbearing #[(glyph) "\301H\207" [glyph 6] 2])
(put 'lglyph-rbearing 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-ascent #[(glyph) "\301H\207" [glyph 7] 2])
(put 'lglyph-ascent 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-descent #[(glyph) "\301H\207" [glyph 8] 2])
(put 'lglyph-descent 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-adjustment #[(glyph) "\301H\207" [glyph 9] 2])
(put 'lglyph-adjustment 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-set-from-to #[(glyph from to) "\303	I\210\304\nI\207" [glyph from to 0 1] 3])
(put 'lglyph-set-from-to 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-set-char #[(glyph char) "\302	I\207" [glyph char 2] 3])
(put 'lglyph-set-char 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-set-code #[(glyph code) "\302	I\207" [glyph code 3] 3])
(put 'lglyph-set-code 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-set-width #[(glyph width) "\302	I\207" [glyph width 4] 3])
(put 'lglyph-set-width 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-set-adjustment #[(glyph &optional xoff yoff wadjust) "\304\305	\206\306\n\206
\306\206\306#I\207" [glyph xoff yoff wadjust 9 vector 0] 6])
(put 'lglyph-set-adjustment 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lglyph-copy #[(glyph) "\301!\207" [glyph copy-sequence] 2])
(put 'lglyph-copy 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'lgstring-insert-glyph #[(gstring idx glyph) "\211G\305Z)	\nW\203$\n\211\n\305\\H*\203$\nT\211\202\nU\2034\306\307\f!\"\202J\nTW\203J\nT\310\211\n\305\\\fI+\210\n	V\203o\n\nS\211\n\305\\H*\211\n\305\\\fI+\210\nS\211\202K\n\f\211\n\305\\\fI+\210*\207" [gstring idx i nglyphs glyph 2 vconcat vector nil] 6])
(defalias 'lgstring-remove-glyph #[(gstring idx) "\304!\211\305\211\306	I*\210G\307\\\211\nW\203*SHI\210T\211\202\nS\305I\210)\207" [gstring id len idx copy-sequence nil 1 3] 5])
(defalias 'compose-glyph-string #[(gstring from to) "	\211\n\306\\H*\307\211\211\211\310H)S\211\n\306\\H*\211\311H)
\f\211\310	I\210
\311I+\210	T\211W\203\254	\211\n\306\\H*\211\203\254
\f\211\310	I\210
\311I+\210
\211\312H)\310X\203v\310\202}
\211\313H)[
\310\211\211\314\315\206\224\310\206\232\310\206\240\310#I,\210)	T\211\202?+\207" [gstring from i to-pos from-pos glyph 2 nil 0 1 6 4 9 vector to xoff wadjust yoff] 7])
(defalias 'compose-glyph-string-relative #[(gstring from to &optional gap) "\211\211\306H)\306H)	\211\n\307\\H*\310\211\211\211\2036\311\312\313\"_!\2029\306\211\306H)S\211\n\307\\H*\211\314H)\211\315H)\211\316H)
\211\306	I\210\314I+\210	T\211W\203]	\211\n\307\\H*\211
\211\306	I\210\314I+\210\211\315H)\211\316H)\310\211\211\317H)\306X\203\326\306\202\337\211\320H)[\306V\203\f\306W\203\321\306\f$\322\f$\202\306\202\322#\322$\306U\203-\306U\204U\306\211\323\324\206E\306\206K\306\206Q\306#I,\210,	T\211\202\203.\207" [gstring from i descent ascent to-pos 0 2 nil floor font-get :size 1 7 8 6 4 - + 9 vector from-pos glyph font-object gap to yoff xoff this-descent this-ascent wadjust] 7])
#@458 Compose glyph-string GSTRING under bidi DIRECTION for graphic display.
DIRECTION is either L2R or R2L, or nil if unknown.
Combining characters are composed with the preceding base
character.  If the preceding character is not a base character,
each combining character is composed as a spacing character by
a padding space before and/or after the character.

All non-spacing characters have this function in
`composition-function-table' unless overwritten.
(defalias 'compose-gstring-for-graphic #[(gstring direction) "\211\211\306H)GS)\211G\307Z)\306\211	\307\\H*\211\310U\203\210\n\211\311H)\n\211\312H)\n\211\313H)\314./\2110\306W\203L0[\202Q\306\2110/.W\203]./\n
\306/0Z12\211\315\316
\206s\3062\206y\3061\206\306#I,\210,\202\276\317\306\211\211\306H)	TH*\320\"\321>\203\242\314\202\276\3223\"\2114\203\3074\306\211	\307\\H*\211\310H)\306V\203\3074\202\275\3145\211\3105I*\210\n\211\313H).\n\211\323H)6\n\211\324H)7\n\211\312H)/\n\211\311H)\2110/\\\307\2458\325\326\211\211\306H)\306H)\327\"\330_!\2119\306U\203 \3109\f\306:	:W\203\205	\211	\307\\H*	\306V\203~\317\n\211\307H)\331\";\n\211\311H)<\n\211\312H)=\n\211\323H)>\n\211\324H)?<=\\\307\245@\n\211\313H)A\314\2112;\203\330;\332Y\203\330;\333X\203\330\306\2112;\332U\203\2700@Z>\306V\203\256\306\202\2637>\\2\202\226;\334U\203\344>\306V\203\311\306>8@Z>\306V\203\332\306\202\3377>\\2\202\226;\335U\203>\306V\203\365\306>/@Z>\306V\203\306\2027>\\2\202\226;\336U\203 0=Z\202\226;\337U\2030/<Z\202\226;\340U\203S0@Z?\306Y\203H\306\202N6[?Z2\202\226;\341U\203v8@Z?\306Y\203k\306\202q6[?Z2\202\226;\342U\203\231/@Z?\306Y\203\216\306\202\2246[?Z2\202\226;\343U\203\2760@Z>\306V\203\261\306\202\271\3447>9#2\202\226;\345U\203\3438@Z>\306V\203\326\306\202\336\3447>9#2\202\226;\346U\203/@Z>\306V\203\373\306\202\3447>9#2\202\226;\347U\2030=Z\202\226;\350U\203(/<Z\202\226;\351U\203N0@Z?\306Y\203@\306\202I\3526[?9#2\202\226;\353U\203t8@Z?\306Y\203f\306\202o\3526[?9#2\202\226;\354U\203\226/@Z?\306Y\203\214\306\202\2246?\\9Z2\n
.Z2\31412\211\315\316
\206\254\3062\206\262\3061\206\270\306#I,\210<
\\\211<
\\=>2Z>?2\\?\202d;\306U\203d\317\n\211\307H)\320\"\355=\203d\352=<.#\307\245B.B\\C<C\\[\352=<C#D\n
\306D12\211\315\316
\206$\3062\206*\3061\2060\306#I,\210\306\211	\307\\H*\211B\306C12\211\315\316
\206S\3062\206Y\3061\206_\306#I,\210,6>W\203p>67?W\203|?7.		T\211\202&.	\306\211W\203\273	\211	\307\\H*\211\203\273\n\306\fSEF\211\306FI\210\n\310EI+\210	T\211\202\212))+\207" [gstring i glyph nglyphs nchars xoff 0 2 1 5 6 4 nil 9 vector get-char-code-property general-category (Mn Mc Me Zl Zp Cc Cf Cs) font-shape-gstring 7 8 round font-get :size 0.1 canonical-combining-class 200 240 202 204 208 210 212 214 216 218 + 220 222 224 226 228 - 230 232 Me width rbearing lbearing wadjust yoff direction gstr id ascent descent center gap --dotimes-limit-- class lb rb as de ce w XOFF WAD wad to from] 7 (#$ . 18283)])
(defalias 'compose-gstring-for-dotted-circle #[(gstring direction) "\306\211	\307\\H*\211\211\310H)\311\211	\307\\H*\211\211\310H)\312\306\211	\307\\H*\311\211	\307\\H*\n\211\313H)
\211\314H)
\211\315H)Z\n\211\306H)
\211\311H)\306\211\211
\211\316H)\306W\203\232\n\211\317H)
\211\316H)[V\203\232
\211\316H)[\n\211\317H)Z
\211\313H)\306V\203\256
\211\314H)[W\203\315\320[
\211\315H)[#Z\306U\203\355\306U\203\355\306U\203\355
\211\313H)\306U\204
\211\321\322\206\306\206\n\306\206\306#I,\210\n\211\306I\210\311I+\210
\211\306I\210\311I+\210.\211G\307Z)\307V\203^\307\312\211	\307\\I+\210-\207" [gstring i dc glyph dc-id fc 0 2 3 1 nil 4 6 5 8 7 - 9 vector fc-id gstr width yoff xoff to from fc-width dc-width wadjust] 8])
(byte-code "\203\"\303\304\305\306!\307B\"\310B\311\312\"\210)\n\313\303\304\305\314!\315B\"CI\210\303\207" [unicode-category-table elt composition-function-table apply vector purecopy "\\c.\\c^+" (1 compose-gstring-for-graphic) ([nil 0 compose-gstring-for-graphic]) map-char-table #[(key val) "\304>\205\305	\n#\207" [val composition-function-table key elt (Mn Mc Me) set-char-table-range] 4] 9676 ".\\c^" (0 compose-gstring-for-dotted-circle)] 6)
#@271 Compose glyph-string GSTRING for terminal display.
Non-spacing characters are composed with the preceding base
character.  If the preceding character is not a base character,
each non-spacing character is composed as a spacing character by
prepending a space before it.
(defalias 'compose-gstring-for-terminal #[(gstring _direction) "\211G\306Z)\307\211\211\307H)\307H)\310\fW\203x\211\306\\H*\211\203x\311	\211\306H)\n\"\204\201\307\211\fW\203\211\306\\H*\211\203	\211\312H)\313W\203e	\313\211\312
I*\210	\211\211\307I\210	\313I+\210T\211\202<	\211\312H)\307U\203\361\314	\211\306H)\315\"\316=\203\267	\317\211\306I*\210	\313\211\312
I*\210T\211\202\320	\321	!)#\211\211G\306Z)\211\306\\H*\211\317\211\306I*\210	\313\211\312
I*\210\306\211\202	\211\307H)	\211\313H)T\fW\203D\211\306\\H*\211\203D\311	\211\306H)\n\"\203D	\211\312H)\307U\203D	\211\313H)T\211\202W\203t\211\306\\H*\211\211\307I\210	\313I+\210T\211\202E+\202,\207" [gstring glyph coding i nglyphs width 2 0 nil char-charset 4 1 get-char-code-property general-category Cf 32 lgstring-insert-glyph copy-sequence to from char j] 6 (#$ . 22877)])
#@709 Compose the characters at FROM by FUNC.
FUNC is called with two arguments: GSTRING, which is built for
characters in the region FROM (inclusive) and TO (exclusive);
and DIRECTION, which is the bidi directionality of the characters.

If the character are composed on a graphic display, FONT-OBJECT
is a font to use.  Otherwise, FONT-OBJECT is nil, and the function
`compose-gstring-for-terminal' is used instead of FUNC.

If STRING is non-nil, it is a string, and FROM and TO are indices
into the string.  In that case, compose characters in the string.

The value is a gstring containing information for shaping the characters.

This function is the default value of `auto-composition-function' (which see).
(defalias 'auto-compose-chars #[(func from to font-object string direction) "\306	\n$\211\211\307H)\203\f\202\"\310\n\302\"\204\311
\f\n\")\207" [from to font-object string gstring func composition-get-gstring 1 fontp compose-gstring-for-terminal direction] 6 (#$ . 24138)])
(byte-code "\300\301\302\303#\210\304\305!\210\306\305\307\"\207" [put auto-composition-mode permanent-local t make-variable-buffer-local auto-composition-function set-default auto-compose-chars] 4)
#@535 Toggle Auto Composition mode.

If called interactively, enable Auto-Composition mode if ARG is
positive, and disable it if ARG is zero or negative.  If called from
Lisp, also enable the mode if ARG is omitted or nil, and toggle it if
ARG is `toggle'; disable the mode otherwise.

When Auto Composition mode is enabled, text characters are
automatically composed by functions registered in
`composition-function-table'.

You can use `global-auto-composition-mode' to turn on
Auto Composition mode in all buffers (this is the default).
(defalias 'auto-composition-mode #[(&optional arg) "\304 	\305=\203\n?\202\306	!\307V\310\311\n\203\312\202\313\"\210\314\315!\203D\304 \2033\304 \232\203D\316\317\320\n\203?\321\202@\322#\210))\323 \210\n\207" [#1=#:last-message arg auto-composition-mode local current-message toggle prefix-numeric-value 0 run-hooks auto-composition-mode-hook auto-composition-mode-on-hook auto-composition-mode-off-hook called-interactively-p any " in current buffer" message "Auto-Composition mode %sabled%s" "en" "dis" force-mode-line-update] 4 (#$ . 25338) (list (or current-prefix-arg 'toggle))])
(defvar auto-composition-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\210\311\306!\207" [auto-composition-mode-map auto-composition-mode-hook variable-documentation put "Hook run after entering or leaving `auto-composition-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode auto-composition-mode nil boundp make-variable-buffer-local] 6)
#@380 Toggle Auto Composition mode in all buffers.

If called interactively, enable Global Auto-Composition mode if ARG is
positive, and disable it if ARG is zero or negative.  If called from
Lisp, also enable the mode if ARG is omitted or nil, and toggle it if
ARG is `toggle'; disable the mode otherwise.

For more information on Auto Composition mode, see
`auto-composition-mode' .
(defalias 'global-auto-composition-mode #[(&optional arg) "\303 \304\305	\306=\203\307\305!?\202\310	!\311V\"\210\312\313\307\305!\203%\314\202&\315\"\210\316\317!\203M\303 \203:\303 \232\203M\320\321\322\307\305!\203H\323\202I\324\n#\210))\325 \210\307\305!\207" [#1=#:last-message arg local current-message set-default auto-composition-mode toggle default-value prefix-numeric-value 0 run-hooks global-auto-composition-mode-hook global-auto-composition-mode-on-hook global-auto-composition-mode-off-hook called-interactively-p any "" message "Global Auto-Composition mode %sabled%s" "en" "dis" force-mode-line-update] 4 (#$ . 26978) (list (or current-prefix-arg 'toggle))])
(defvar global-auto-composition-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\210\311\312\306\"\210\313\314!\207" [global-auto-composition-mode-map global-auto-composition-mode-hook variable-documentation put "Hook run after entering or leaving `global-auto-composition-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode auto-composition-mode nil boundp defalias toggle-auto-composition provide composite] 6)

Youez - 2016 - github.com/yon3zu
LinuXploit