(******************************************************************************)
(* DocuLib                                                                    *)
(* Copyright (C) 2022 Nathan Guermond                                         *)
(*                                                                            *)
(* This program is free software: you can redistribute it and/or modify it    *)
(* under the terms of the GNU General Public License as published by the Free *)
(* Software Foundation, either version 3 of the License, or (at your option)  *)
(* any later version.                                                         *)
(*                                                                            *)
(* This program 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 General Public License    *)
(* for more details.                                                          *)
(*                                                                            *)
(* You should have received a copy of the GNU General Public License along    *)
(* with this program. If not, see <https://www.gnu.org/licenses/>.            *)
(*                                                                            *)
(******************************************************************************)
let drag_icon_xpm = [|
    "36 48 9 1";
    " 	c None";
    ".	c #020204";
    "+	c #8F8F90";
    "@	c #D3D3D2";
    "#	c #AEAEAC";
    "$	c #ECECEC";
    "%	c #A2A2A4";
    "&	c #FEFEFC";
    "*	c #BEBEBC";
    "               .....................";
    "              ..&&&&&&&&&&&&&&&&&&&.";
    "             ...&&&&&&&&&&&&&&&&&&&.";
    "            ..&.&&&&&&&&&&&&&&&&&&&.";
    "           ..&&.&&&&&&&&&&&&&&&&&&&.";
    "          ..&&&.&&&&&&&&&&&&&&&&&&&.";
    "         ..&&&&.&&&&&&&&&&&&&&&&&&&.";
    "        ..&&&&&.&&&@&&&&&&&&&&&&&&&.";
    "       ..&&&&&&.*$%$+$&&&&&&&&&&&&&.";
    "      ..&&&&&&&.%$%$+&&&&&&&&&&&&&&.";
    "     ..&&&&&&&&.#&#@$&&&&&&&&&&&&&&.";
    "    ..&&&&&&&&&.#$**#$&&&&&&&&&&&&&.";
    "   ..&&&&&&&&&&.&@%&%$&&&&&&&&&&&&&.";
    "  ..&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.";
    " ..&&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.";
    "................&$@&&&@&&&&&&&&&&&&.";
    ".&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&&&&&.";
    ".&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&&&.";
    ".&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&&&.";
    ".&&&&&&@#@@$&*@&@#@#$**#$&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&@%&%$&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&+&$+&$&@&$@&&$@&&&&&&&&&&.";
    ".&&&&&&&&&+&&#@%#+@#@*$%&+$&&&&&&&&.";
    ".&&&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&.";
    ".&&&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&.";
    ".&&&&&&&&@#@@$&*@&@#@#$#*#$&&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&&&.";
    ".&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&&&&&.";
    ".&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&.";
    ".&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&&&&&.";
    ".&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&&&&&.";
    ".&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&.";
    ".&&&&&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&.";
    ".&&&&&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&.";
    ".&&&&&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&.";
    ".&&&&&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
    ".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
    "...................................." |]

let drag_icon =
  GdkPixbuf.from_xpm_data drag_icon_xpm

(* Gnome-colors-applications-office: GPLv2+ *)
let doculib_icon_xpm = [|
    "48 48 503 2";
    "  	c None";
    ". 	c #745535";
    "+ 	c #BABDB6";
    "@ 	c #BBBDB6";
    "# 	c #BABDB5";
    "$ 	c #BABCB5";
    "% 	c #B9BDB6";
    "& 	c #A50909";
    "* 	c #BABCB6";
    "= 	c #B9BCB6";
    "- 	c #98120B";
    "; 	c #886F57";
    "> 	c #C1C4BC";
    ", 	c #DDDFDB";
    "' 	c #F1F2F1";
    ") 	c #F8F9F8";
    "! 	c #FCFCFC";
    "~ 	c #F7F7F6";
    "{ 	c #EFF0EE";
    "] 	c #D8D9D6";
    "^ 	c #BBBEB7";
    "/ 	c #856D54";
    "( 	c #3C3A36";
    "_ 	c #BABDB7";
    ": 	c #343A3B";
    "< 	c #A70B0B";
    "[ 	c #C1A5A1";
    "} 	c #D2D3CF";
    "| 	c #D7D7D3";
    "1 	c #D7D8D4";
    "2 	c #DBDBD6";
    "3 	c #DCDCD8";
    "4 	c #DBDBD8";
    "5 	c #D8D9D4";
    "6 	c #C4C6BF";
    "7 	c #B48E89";
    "8 	c #922014";
    "9 	c #B5A797";
    "0 	c #FDFDFD";
    "a 	c #FBFBFB";
    "b 	c #FEFEFE";
    "c 	c #FFFFFF";
    "d 	c #B0A391";
    "e 	c #484136";
    "f 	c #969A96";
    "g 	c #C0C2BD";
    "h 	c #CFD0CB";
    "i 	c #D6D6D1";
    "j 	c #D9DAD5";
    "k 	c #D9DAD6";
    "l 	c #D9D9D6";
    "m 	c #D8D8D5";
    "n 	c #D7D8D3";
    "o 	c #D3D5D1";
    "p 	c #ACAFAA";
    "q 	c #373C3E";
    "r 	c #A60303";
    "s 	c #DEC0BD";
    "t 	c #E9E9E6";
    "u 	c #D9D9D5";
    "v 	c #E5E3E0";
    "w 	c #B03433";
    "x 	c #8A3221";
    "y 	c #D9D2C9";
    "z 	c #F6F6F5";
    "A 	c #F5F5F4";
    "B 	c #F4F5F3";
    "C 	c #D2CCC2";
    "D 	c #584837";
    "E 	c #5A5F5F";
    "F 	c #E7E7E5";
    "G 	c #DDDDD9";
    "H 	c #EEEEEC";
    "I 	c #D5D7D5";
    "J 	c #313638";
    "K 	c #A40000";
    "L 	c #FBF2F2";
    "M 	c #FBF1F1";
    "N 	c #82472F";
    "O 	c #EEEBE8";
    "P 	c #F3F3F1";
    "Q 	c #F9F9F8";
    "R 	c #F0F1EE";
    "S 	c #E8E6E2";
    "T 	c #6A513A";
    "U 	c #2F3537";
    "V 	c #F5F5F5";
    "W 	c #F4F4F3";
    "X 	c #2E3436";
    "Y 	c #EDC1C1";
    "Z 	c #C22F2F";
    "` 	c #795335";
    " .	c #FBFBFA";
    "..	c #F0F0EE";
    "+.	c #F2F3F1";
    "@.	c #F9F9F9";
    "#.	c #EBEDEA";
    "$.	c #F9F8F7";
    "%.	c #725538";
    "&.	c #CCCDCC";
    "*.	c #555753";
    "=.	c #EDC0C0";
    "-.	c #9F0906";
    ";.	c #87684E";
    ">.	c #FEFEFD";
    ",.	c #EDEEEC";
    "'.	c #E8EAE6";
    ").	c #83684B";
    "!.	c #343736";
    "~.	c #CCCCCB";
    "{.	c #ECBDBD";
    "].	c #FCF5F5";
    "^.	c #97180F";
    "/.	c #B4A392";
    "(.	c #EEEEED";
    "_.	c #F9FAF9";
    ":.	c #EBECEA";
    "<.	c #F6F7F5";
    "[.	c #AE9E8B";
    "}.	c #413E36";
    "|.	c #C9CAC8";
    "1.	c #F7F7F7";
    "2.	c #EBBABA";
    "3.	c #8D2919";
    "4.	c #D6CCC1";
    "5.	c #E5E5E2";
    "6.	c #EAEBE8";
    "7.	c #E9EAE8";
    "8.	c #F8F8F8";
    "9.	c #EEEFEC";
    "0.	c #CFC5B8";
    "a.	c #4F4336";
    "b.	c #C6C7C6";
    "c.	c #EAB6B6";
    "d.	c #C32F2F";
    "e.	c #D8D8D6";
    "f.	c #D6D6D4";
    "g.	c #863E29";
    "h.	c #EAE5E0";
    "i.	c #F1F1EF";
    "j.	c #ECECEA";
    "k.	c #DEDFDB";
    "l.	c #F0F1EF";
    "m.	c #E8E9E6";
    "n.	c #F0F1F0";
    "o.	c #E6E8E4";
    "p.	c #E4DFD8";
    "q.	c #624E39";
    "r.	c #C4C5C3";
    "s.	c #565854";
    "t.	c #EAB4B4";
    "u.	c #C43030";
    "v.	c #EDEDEB";
    "w.	c #7D4E33";
    "x.	c #F6F5F3";
    "y.	c #D4D4D2";
    "z.	c #C9C9C7";
    "A.	c #C9CBC8";
    "B.	c #DADADA";
    "C.	c #D3D3D1";
    "D.	c #D0D1CF";
    "E.	c #DCDCDC";
    "F.	c #D1D2D0";
    "G.	c #C8CAC6";
    "H.	c #C8CBC6";
    "I.	c #F1F0ED";
    "J.	c #705439";
    "K.	c #C3C4C2";
    "L.	c #595B57";
    "M.	c #E9B1B1";
    "N.	c #C53131";
    "O.	c #755536";
    "P.	c #F0EAE4";
    "Q.	c #ECE7E0";
    "R.	c #745537";
    "S.	c #C2C2C1";
    "T.	c #5C5E59";
    "U.	c #E9AFAF";
    "V.	c #C63232";
    "W.	c #765536";
    "X.	c #D7C6B5";
    "Y.	c #B59575";
    "Z.	c #B49372";
    "`.	c #B69675";
    " +	c #D6C6B4";
    ".+	c #735637";
    "++	c #C0C1BF";
    "@+	c #5E605C";
    "#+	c #E8ACAC";
    "$+	c #C73232";
    "%+	c #785336";
    "&+	c #D4C2B1";
    "*+	c #B79878";
    "=+	c #DFDEDC";
    "-+	c #E2E2E2";
    ";+	c #D3C1B0";
    ">+	c #725639";
    ",+	c #BFC0BE";
    "'+	c #61635E";
    ")+	c #E8A9A9";
    "!+	c #C83333";
    "~+	c #7B5234";
    "{+	c #CFBDAA";
    "]+	c #B8997A";
    "^+	c #E1E0DF";
    "/+	c #D0D0CA";
    "(+	c #CFCFC9";
    "_+	c #E0E0DF";
    ":+	c #B99A7B";
    "<+	c #CFBCA9";
    "[+	c #715539";
    "}+	c #BDBEBC";
    "|+	c #636561";
    "1+	c #F7F8F7";
    "2+	c #E7A7A7";
    "3+	c #C93434";
    "4+	c #7D4F33";
    "5+	c #CBB7A3";
    "6+	c #BA9B7D";
    "7+	c #DFDDDC";
    "8+	c #CDCDC7";
    "9+	c #A1A19C";
    "0+	c #CCCCC7";
    "a+	c #DFDDDB";
    "b+	c #CAB7A2";
    "c+	c #6F5539";
    "d+	c #BCBDBB";
    "e+	c #666863";
    "f+	c #E7A4A4";
    "g+	c #CA3535";
    "h+	c #7F4C32";
    "i+	c #C6B19C";
    "j+	c #BB9D7F";
    "k+	c #DEDCD9";
    "l+	c #D1D1CC";
    "m+	c #DEDBD8";
    "n+	c #C5B09B";
    "o+	c #6D543A";
    "p+	c #BBBCBA";
    "q+	c #686A66";
    "r+	c #E7A1A1";
    "s+	c #CC3535";
    "t+	c #81492F";
    "u+	c #C0AA94";
    "v+	c #BA9D7F";
    "w+	c #DCD8D4";
    "x+	c #CACAC5";
    "y+	c #D2D2CD";
    "z+	c #C1AA94";
    "A+	c #6A5239";
    "B+	c #BABBB9";
    "C+	c #6B6D68";
    "D+	c #E79F9F";
    "E+	c #CD3636";
    "F+	c #83452C";
    "G+	c #BAA38D";
    "H+	c #B99C7F";
    "I+	c #DAD5D0";
    "J+	c #D3D3CE";
    "K+	c #D9D4CF";
    "L+	c #BBA38C";
    "M+	c #665139";
    "N+	c #B9BAB8";
    "O+	c #6D6F6B";
    "P+	c #E79C9C";
    "Q+	c #CE3737";
    "R+	c #85402A";
    "S+	c #B49C85";
    "T+	c #B89C7F";
    "U+	c #D3CBC2";
    "V+	c #B59C84";
    "W+	c #634F39";
    "X+	c #B8B9B7";
    "Y+	c #70726E";
    "Z+	c #E79A9A";
    "`+	c #CF3838";
    " @	c #873B26";
    ".@	c #AF967E";
    "+@	c #B79B7E";
    "@@	c #AC8B6A";
    "#@	c #AF967D";
    "$@	c #5F4D38";
    "%@	c #B8B9B6";
    "&@	c #737570";
    "*@	c #E69696";
    "=@	c #D03838";
    "-@	c #893522";
    ";@	c #A99076";
    ">@	c #B69A7E";
    ",@	c #AA8968";
    "'@	c #A98F76";
    ")@	c #5A4A37";
    "!@	c #B6B8B5";
    "~@	c #757773";
    "{@	c #E69595";
    "]@	c #D13939";
    "^@	c #8B2F1E";
    "/@	c #A48A6F";
    "(@	c #B5997D";
    "_@	c #A88766";
    ":@	c #A4886E";
    "<@	c #554737";
    "[@	c #787A75";
    "}@	c #E69292";
    "|@	c #D23A3A";
    "1@	c #8C2A1B";
    "2@	c #9E8369";
    "3@	c #B4987C";
    "4@	c #A68564";
    "5@	c #9F8367";
    "6@	c #504536";
    "7@	c #B5B7B4";
    "8@	c #7A7C78";
    "9@	c #E69090";
    "0@	c #D33B3B";
    "a@	c #C52929";
    "b@	c #AD1313";
    "c@	c #A60505";
    "d@	c #8E2618";
    "e@	c #997C62";
    "f@	c #B29679";
    "g@	c #A48361";
    "h@	c #4D4336";
    "i@	c #B5B6B3";
    "j@	c #7D7F7A";
    "k@	c #666866";
    "l@	c #424647";
    "m@	c #33393A";
    "n@	c #E68D8D";
    "o@	c #D43B3B";
    "p@	c #C62929";
    "q@	c #A81111";
    "r@	c #B48A85";
    "s@	c #B9B3AD";
    "t@	c #C62A2A";
    "u@	c #902316";
    "v@	c #93785B";
    "w@	c #B09477";
    "x@	c #A2815F";
    "y@	c #B19578";
    "z@	c #94785A";
    "A@	c #4A4136";
    "B@	c #B5B6B4";
    "C@	c #7F817D";
    "D@	c #676A68";
    "E@	c #3C4243";
    "F@	c #949894";
    "G@	c #B3B6B0";
    "H@	c #686A68";
    "I@	c #E68A8A";
    "J@	c #D63C3C";
    "K@	c #AD1414";
    "L@	c #B9928D";
    "M@	c #D8D9D5";
    "N@	c #E1E2DF";
    "O@	c #B9938D";
    "P@	c #921F14";
    "Q@	c #8F7256";
    "R@	c #AF9376";
    "S@	c #A07F5D";
    "T@	c #474036";
    "U@	c #B4B5B2";
    "V@	c #82847F";
    "W@	c #424849";
    "X@	c #9B9F9A";
    "Y@	c #9BA09A";
    "Z@	c #434849";
    "`@	c #E78888";
    " #	c #D73D3D";
    ".#	c #A60606";
    "+#	c #E4E2DF";
    "@#	c #941B11";
    "##	c #8B6E50";
    "$#	c #AC9073";
    "%#	c #9E7D5B";
    "&#	c #9D7D5B";
    "*#	c #8E6E4E";
    "=#	c #7B5E41";
    "-#	c #77593B";
    ";#	c #AD9174";
    ">#	c #8B6D50";
    ",#	c #443E36";
    "'#	c #B4B5B3";
    ")#	c #848682";
    "!#	c #E1E3E0";
    "~#	c #E3E4E2";
    "{#	c #E78686";
    "]#	c #D83E3E";
    "^#	c #E9DCDB";
    "/#	c #EBE0DE";
    "(#	c #96180F";
    "_#	c #87684A";
    ":#	c #AA8E71";
    "<#	c #9C7B59";
    "[#	c #886949";
    "}#	c #795F44";
    "|#	c #848176";
    "1#	c #888A84";
    "2#	c #848077";
    "3#	c #886A49";
    "4#	c #AB8F72";
    "5#	c #86684A";
    "6#	c #413D36";
    "7#	c #878984";
    "8#	c #DFE1DF";
    "9#	c #E2E4E2";
    "0#	c #43494A";
    "a#	c #E78383";
    "b#	c #D93E3E";
    "c#	c #C92C2C";
    "d#	c #B12A29";
    "e#	c #EADEDD";
    "f#	c #FCFCFB";
    "g#	c #ECE1E0";
    "h#	c #B22E2D";
    "i#	c #98140D";
    "j#	c #826546";
    "k#	c #A88C6F";
    "l#	c #997957";
    "m#	c #76583B";
    "n#	c #9A9A91";
    "o#	c #C6CBC3";
    "p#	c #D0D4CC";
    "q#	c #9B9A92";
    "r#	c #816346";
    "s#	c #3E3C36";
    "t#	c #B2B4B1";
    "u#	c #888A85";
    "v#	c #6E706E";
    "w#	c #515656";
    "x#	c #E1E2E1";
    "y#	c #E4E4E3";
    "z#	c #545959";
    "A#	c #E78181";
    "B#	c #DA3F3F";
    "C#	c #CA2C2C";
    "D#	c #9A100A";
    "E#	c #7E6142";
    "F#	c #A6896C";
    "G#	c #977755";
    "H#	c #C1C5BC";
    "I#	c #D3D7CF";
    "J#	c #C4C7BE";
    "K#	c #76583A";
    "L#	c #7D5F41";
    "M#	c #3B3A36";
    "N#	c #B1B2AF";
    "O#	c #6D706D";
    "P#	c #434949";
    "Q#	c #33393B";
    "R#	c #E67E7E";
    "S#	c #9D0D08";
    "T#	c #7B5C3E";
    "U#	c #A38668";
    "V#	c #967553";
    "W#	c #866647";
    "X#	c #8C7961";
    "Y#	c #C7CBC2";
    "Z#	c #C9CCC3";
    "`#	c #8E7B65";
    " $	c #866646";
    ".$	c #7A5D3E";
    "+$	c #383836";
    "@$	c #AFB1AD";
    "#$	c #E67B7B";
    "$$	c #79593B";
    "%$	c #A08264";
    "&$	c #947351";
    "*$	c #937351";
    "=$	c #886847";
    "-$	c #795D40";
    ";$	c #7B5D40";
    ">$	c #7A5D3F";
    ",$	c #A08365";
    "'$	c #77583B";
    ")$	c #353736";
    "!$	c #ADAFAB";
    "~$	c #E57979";
    "{$	c #A10604";
    "]$	c #765839";
    "^$	c #9D7F60";
    "/$	c #92714F";
    "($	c #765739";
    "_$	c #323636";
    ":$	c #ACADAA";
    "<$	c #A40303";
    "[$	c #D65656";
    "}$	c #E57676";
    "|$	c #D75555";
    "1$	c #A10403";
    "2$	c #755637";
    "3$	c #9A7B5C";
    "4$	c #906F4D";
    "5$	c #323738";
    "6$	c #8C908C";
    "7$	c #AAABA8";
    "8$	c #8C8F8C";
    "9$	c #A40202";
    "0$	c #735536";
    "a$	c #8F7051";
    "b$	c #987859";
    "c$	c #735436";
    "d$	c #745536";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                    .     + @ # $ %     .                                       ";
    "            &   + * + + + + + =   - ; > , ' ) ! ~ { ] ^ / (   _ + + + + % + +   :               ";
    "          < [ } | 1 2 3 4 5 } 6 7 8 9 0 a b c c c c c ! d e f g h i j k l m n o p q             ";
    "        r s t 4 u u u u u u u v w x y z A 0 c b c c c B C D E F u u u u u u u G H I J           ";
    "        K L c c c c c c c c c M K N O P A 0 c Q c c c R S T U V c c c c c c c c c W X           ";
    "        K Y Z Z Z Z Z Z Z Z Z Y K `  ...A 0 c +.c @.c #.$.%.X &.*.*.*.*.*.*.*.*.*.&.X           ";
    "        K =.Z Z Z Z Z Z Z Z Z =.-.;.>.H A 0 b ,.c ' c '.0 ).!.~.*.*.*.*.*.*.*.*.*.~.X           ";
    "        K {.Z ].c c c c c ].Z {.^./.@.H (.0 _.:.c :.b '.<.[.}.|.*.1.c c c c c 1.*.|.X           ";
    "        K 2.Z c H H H H H c Z 2.3.4.A H 5.0 A 6.c 7.8.'.9.0.a.b.*.c H H H H H c *.b.X           ";
    "        K c.d.c e.f.f.f.f.c d.c.g.h.i.j.k.0 l.m.c 7.n.'.o.p.q.r.s.c e.f.f.f.f.c s.r.X           ";
    "        K t.u.c v.v.v.v.v.c u.t.w.x.y.z.A.B.C.D.E.F.F.G.H.I.J.K.L.c v.v.v.v.v.c L.K.X           ";
    "        K M.N.c f.f.f.f.e.c N.M.O.P.c c c c c c c c c c c Q.R.S.T.c f.f.f.f.e.c T.S.X           ";
    "        K U.V.c H H H H H c V.U.W.X.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.`. +.+++@+c H H H H H c @+++X           ";
    "        K #+$+c H H H H H c $+#+%+&+*+=+-+-+-+-+-+-+-+=+*+;+>+,+'+c H H H H H c '+,+X           ";
    "        K )+!+].c c c c c ].!+)+~+{+]+^+/+(+(+(+(+(+/+_+:+<+[+}+|+1+c c c c c 1+|+}+X           ";
    "        K 2+3+3+3+3+3+3+3+3+3+2+4+5+6+7+8+9+9+9+9+9+0+a+6+b+c+d+e+e+e+e+e+e+e+e+e+d+X           ";
    "        K f+g+g+g+g+g+g+g+g+g+f+h+i+j+k+l+(+(+(+(+(+l+m+j+n+o+p+q+q+q+q+q+q+q+q+q+p+X           ";
    "        K r+s+s+s+s+s+s+s+s+s+r+t+u+v+w+x+9+9+9+9+9+y+w+v+z+A+B+C+C+C+C+C+C+C+C+C+B+X           ";
    "        K D+E+E+E+E+E+E+E+E+E+D+F+G+H+I+J+(+(+(+(+(+J+K+H+L+M+N+O+O+O+O+O+O+O+O+O+N+X           ";
    "        K P+Q+Q+Q+Q+Q+Q+Q+Q+Q+P+R+S+T+U+-+-+-+-+-+-+-+U+T+V+W+X+Y+Y+Y+Y+Y+Y+Y+Y+Y+X+X           ";
    "        K Z+`+`+`+`+`+`+`+`+`+Z+ @.@+@@@@@@@@@@@@@@@@@@@+@#@$@%@&@&@&@&@&@&@&@&@&@%@X           ";
    "        K *@=@=@=@=@=@=@=@=@=@*@-@;@>@,@,@,@,@,@,@,@,@,@>@'@)@!@~@~@~@~@~@~@~@~@~@!@X           ";
    "        K {@]@]@]@]@]@]@]@]@]@{@^@/@(@_@_@_@_@_@_@_@_@_@(@:@<@!@[@[@[@[@[@[@[@[@[@!@X           ";
    "        K }@|@|@|@|@|@|@|@|@|@}@1@2@3@4@4@4@4@4@4@4@4@4@3@5@6@7@8@8@8@8@8@8@8@8@8@7@X           ";
    "        K 9@0@0@a@b@c@b@a@0@0@9@d@e@f@g@g@g@g@g@g@g@g@g@f@e@h@i@j@j@k@l@m@l@k@j@j@i@X           ";
    "        K n@o@p@q@r@s@r@q@t@o@n@u@v@w@x@x@x@x@x@x@x@x@x@y@z@A@B@C@D@E@F@G@F@E@H@C@B@X           ";
    "        K I@J@K@L@M@N@M@O@K@J@I@P@Q@R@S@S@S@S@S@S@S@S@S@R@Q@T@U@V@W@X@M@N@M@Y@Z@V@U@X           ";
    "        K `@ #.#+#z z z v .# #`@@###$#%#&#*#=#-#=#*#&#%#;#>#,#'#)#: !#z z z ~#: )#'#X           ";
    "        K {#]#K@^#c c c /#K@]#{#(#_#:#<#[#}#|#1#2#}#3#<#4#5#6#U@7#Z@8#c c c 9#0#7#U@X           ";
    "        K a#b#c#d#e#f#g#h#c#b#a#i#j#k#l#m#n#o#p#o#q#m#l#k#r#s#t#u#v#w#x#! y#z#v#u#t#X           ";
    "        K A#B#B#C#K@c@K@C#B#B#A#D#E#F#G#m#H#I#I#I#J#K#G#F#L#M#N#u#u#O#P#Q#P#v#u#u#N#X           ";
    "        K R#B#B#B#B#B#B#B#B#B#R#S#T#U#V#W#X#Y#I#Z#`# $V#U#.$+$@$u#u#u#u#u#u#u#u#u#@$X           ";
    "        K #$B#B#B#B#B#B#B#B#B##$-.$$%$&$*$=$-$;$>$=$*$&$,$'$)$!$u#u#u#u#u#u#u#u#u#!$X           ";
    "        K ~$B#B#B#B#B#B#B#B#B#~${$]$^$/$/$/$/$/$/$/$/$/$^$($_$:$u#u#u#u#u#u#u#u#u#:$X           ";
    "        <$[$}$}$}$}$}$}$}$}$}$|$1$2$3$4$4$4$4$4$4$4$4$4$3$2$5$6$7$7$7$7$7$7$7$7$7$8$5$          ";
    "          9$K K K K K K K K K <$  0$a$b$b$b$b$b$b$b$b$b$a$c$  J X X X X X X X X X J             ";
    "                                    d$d$d$d$d$d$d$d$d$d$0$                                      ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                ";
    "                                                                                                "|]

let doculib_icon =
    GdkPixbuf.from_xpm_data doculib_icon_xpm
