mirror of https://github.com/Chizi123/.emacs.d.git

Chizi123
2018-11-18 76bbd07de7add0f9d13c6914f158d19630fe2f62
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; 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.
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\207" [require cl-lib async advice helm-lib helm-multi-match helm-source] 2)
#@741 In KEYMAP, define key sequence KEY for function list FUNCTIONS.
Each function runs sequentially for each KEY press.
If DELAY is specified, switch back to initial function of FUNCTIONS list
after DELAY seconds.
The functions in FUNCTIONS list take no args.
e.g
    (defun foo ()
      (interactive)
      (message "Run foo"))
    (defun bar ()
      (interactive)
      (message "Run bar"))
    (defun baz ()
      (interactive)
      (message "Run baz"))
 
(helm-define-multi-key global-map (kbd "<f5> q") '(foo bar baz) 2)
 
Each time "<f5> q" is pressed, the next function is executed. Waiting
more than 2 seconds between key presses switches back to executing the first
function on the next hit.
 
(fn KEYMAP KEY FUNCTIONS &optional DELAY)
(defalias 'helm-define-multi-key #[1027 "\300\301\"#\207" [define-key helm-make-multi-command] 10 (#$ . 572)])
#@174 Define NAME as a multi-key command running FUNS.
After DELAY seconds, the FUNS list is reinitialized.
See `helm-define-multi-key'.
 
(fn NAME DOCSTRING FUNS &optional DELAY)
(defalias 'helm-multi-key-defun '(macro . #[1027 "\203\n\300P\202 \301\262\302\303D\304EF\207" ["\n\n" "This is a helm-ish multi-key command." defalias quote helm-make-multi-command] 9 (#$ . 1434)]))
(byte-code "\300\301\302\303#\300\207" [function-put helm-multi-key-defun lisp-indent-function 2] 4)
#@172 Return an anonymous multi-key command running FUNCTIONS.
Run each function in the FUNCTIONS list in turn when called within DELAY seconds.
 
(fn FUNCTIONS &optional DELAY)
(defalias 'helm-make-multi-command #[513 "\300\301!\302\303\304E!\210\305\306\307\310\311#\312\"\313\304\211&\207" [cl-gensym "helm-iter-key" eval defvar nil make-byte-code 0 "\303\300\301\302#\207" vconcat vector [helm-run-multi-key-command] 4] 13 (#$ . 1924)])
(byte-code "\300\301\302\303#\300\207" [function-put helm-make-multi-command lisp-indent-function 1] 4)
#@33 
 
(fn FUNCTIONS ITERATOR DELAY)
(defalias 'helm-run-multi-key-command #[771 "\302\303J\203     =\204\304!!L\210\305J!\262\211\204/\304!!L\210\305J!\262\211\203@J\203@\306S8!\210\205T\307\303\310\311\312\313\314 !\315\"\316$#\207" [this-command real-last-command #[257 "\300G\301X\203B\262T\262\202\211\237\207" [1 nil] 6 "\n\n(fn FUNCTIONS)"] nil helm-iter-list helm-iter-next call-interactively run-with-idle-timer make-byte-code 0 "\300\301L\207" vconcat vector [nil] 2] 14 (#$ . 2478)])
(byte-code "\300\301\302\303\304\"\305#\210\306\301\307\310#\207" [defalias helm-toggle-resplit-and-swap-windows helm-make-multi-command (helm-toggle-resplit-window helm-swap-windows) 1 "Multi key command to re-split and swap helm window.\nFirst call runs `helm-toggle-resplit-window',\nand second call within 0.5s runs `helm-swap-windows'.\n\n" put helm-only t] 5)
#@1057 Defines in MAP a KEY and SUBKEY to COMMAND.
 
This allows typing KEY to call COMMAND the first time and
type only SUBKEY on subsequent calls.
 
Arg MAP is the keymap to use, SUBKEY is the initial short key-binding to
call COMMAND.
 
Arg OTHER-SUBKEYS is an alist specifying other short key-bindings
to use once started e.g:
 
    (helm-define-key-with-subkeys global-map
       (kbd "C-x v n") ?n 'git-gutter:next-hunk '((?p . git-gutter:previous-hunk)))
 
 
In this example, `C-x v n' will run `git-gutter:next-hunk'
subsequent "n"'s run this command again
and subsequent "p"'s run `git-gutter:previous-hunk'.
 
If specified PROMPT can be displayed in minibuffer to
describe SUBKEY and OTHER-SUBKEYS.
Arg EXIT-FN specifies a function to run on exit.
 
For any other keys pressed, run their assigned command as defined
in MAP and then exit the loop running EXIT-FN, if specified.
 
NOTE: SUBKEY and OTHER-SUBKEYS bindings support only char syntax and
vectors, so don't use strings to define them.
 
(fn MAP KEY SUBKEY COMMAND &optional OTHER-SUBKEYS PROMPT EXIT-FN)
(defalias 'helm-define-key-with-subkeys #[1796 "\300\301\302\303\304\305     &\306\"\307\310\211&#\207" [define-key make-byte-code 0 "\306\307\310\311\312\305!\313\"\314$\216\315\302!\210\316\304!\317\211\211\301=\203'\315\302!\210\320\202]\321\303\"\211\262\203:\315A!\210\320\202]\312!\262\322\300\"\262\323!\203S\315!\210\202\\\324\325\"\244\317\266\204\205e\202)\207" vconcat vector [make-byte-code 0 "\300\205\300 \207" vconcat vector [] 1 call-interactively read-key nil t assoc lookup-key commandp mapcar identity last-command-event unread-command-events] 7 nil] 21 (#$ . 3379)])
(byte-code "\300\301\302\303#\300\207" [function-put helm-define-key-with-subkeys lisp-indent-function 1] 4)
#@18 Keymap for helm.
(defvar helm-map (byte-code "\302 \303\"\210\304\305\306#\210\304\307\310#\210\304\311\306#\210\304\312\310#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\320#\210\304\324\322#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210\304\333\334#\210\304\335\336#\210\304\337\340#\210\304\341\342#\210\304\343\344#\210\304\345\344#\210\304\346\334#\210\304\347\336#\210\304\350\351#\210\304\352\353#\210\304\354\355#\210\304\356\355#\210\304\357\360#\210\304\361\360#\210\304\362\360#\210\304\363\355#\210\304\364\360#\210\304\365\366#\210\304\367\366#\210\304\370\366#\210\304\371\372#\210\304\373\374#\210\304\375\376#\210\304\377\201@#\210\304\201A\201B#\210\304\201C\201D#\210\304\201E\201F#\210\304\201G\201H#\210\304\201I\201J#\210\304\201K\201L#\210\304\201M\201N#\210\304\201O\201N#\210\304\201P\201Q#\210\304\201R\201S#\210\304\201T\201U#\210\304\201V\201W#\210\304\201X\201Y#\210\304\201Z\201[#\210\304\201\\\201]#\210\304\201^\201_#\210\304\201`\201a#\210\304\201b\201c#\210\304\201d\201e#\210\304\201f\201g#\210\304\201h\201i#\210\304\201j\201k#\210\304\201l\201m#\210\304\201n\201o#\210\201p\201q\201r\201s$\210\304\201t\201N#\210\304\201u\201v#\210\304\201w\201N#\210\304\201w\201x#\210\304\201y\201z#\210\304\201{\372#\210\304\201|\201N#\210\304\201}\201N#\210\201p\201~\201\201\200\201\201%\210\201\202\201\203    \"\211\203c\211@\304\201\204#\210A\266\202\202N\210\304\201\205\201\204#\210\201\206\211\201\207X\203\237\304\201\210\201\211\201\212T\"!\201\213\372\201\214\201\215DF#\210\211T\262\202q\210\211\207" [minibuffer-local-map global-map make-sparse-keymap set-keymap-parent define-key [down] helm-next-line [up] helm-previous-line "" "" [C-down] helm-follow-action-forward [C-up] helm-follow-action-backward [prior] helm-previous-page [next] helm-next-page [134217846] "" [134217788] helm-beginning-of-buffer [134217790] helm-end-of-buffer "" helm-keyboard-quit [right] helm-next-source [left] helm-previous-source " " helm-maybe-exit-minibuffer "    " helm-select-action "" helm-execute-persistent-action "\n" "" [134217839] "\f" helm-recenter-top-bottom-other-window [134217740] helm-reposition-window-other-window [134217750] helm-scroll-other-window [M-next] [134217753] helm-scroll-other-window-down [167772182] [M-prior] [C-M-down] [C-M-up] "" helm-toggle-visible-mark [67108896] [134217760] [134217819] nil [134217768] helm-prev-visible-mark [134217769] helm-next-visible-mark " " helm-delete-minibuffer-contents "" helm-quit-and-find-file [134217837] helm-toggle-all-marks [134217825] helm-mark-all [134217813] helm-unmark-all [134217729] helm-show-all-in-this-source-only [134217733] helm-display-all-sources "" undefined [134217843] [67108989] helm-narrow-window [67108987] helm-enlarge-window "-" helm-swap-windows "_" helm-toggle-full-frame "%" helm-exchange-minibuffer-and-header-line "" helm-yank-selection " " helm-kill-selection-and-quit "    " helm-copy-to-buffer "" helm-follow-mode "" helm-refresh ">" helm-toggle-truncate-line [134217840] previous-history-element [134217838] next-history-element [67108897] helm-toggle-suspend-update "b" helm-resume-previous-session-after-quit "" helm-resume-list-buffers-after-quit helm-define-key-with-subkeys "n" 110 helm-run-cycle-resume [C-tab] "" helm-toggle-resplit-and-swap-windows "" helm-enable-or-switch-to-debug "c" helm-customize-group [f1] "" "h" "" 23 helm-yank-text-at-point ((31 . helm-undo-yank-text-at-point)) where-is-internal describe-mode helm-help "?" 0 12 kbd format "<f%s>" lambda (interactive) helm-select-nth-action] 10) (#$ . 5180))
#@104 Jump to customization group of current source.
 
Default to `helm' when group is not defined in source.
(defalias 'helm-customize-group #[0 "\300\301\302\303!\"\207" [helm-run-after-exit customize-group helm-attr group] 4 (#$ . 8977) nil])
(put 'helm-customize-group 'helm-only t)
#@33 
 
(fn VALUE &optional NEGATIVE)
(defalias 'helm--action-at-nth-set-fn-1 #[513 "\301\302\211\211\303X\203C\304\"\262\305\304\306\"!\262\307\302\310\311\203)[\202+DF\262\312\"\210\313\314!#\210T\262\202\302\207" [helm-map 1 nil 9 format make-symbol "helm-execute-selection-action-at-nth-+%d" lambda (interactive) helm-execute-selection-action-at-nth defalias define-key kbd] 11 (#$ . 9263)])
#@16 
 
(fn VAR VAL)
(defalias 'helm--action-at-nth-set-fn- #[514 "L\210\300\301\"\207" [helm--action-at-nth-set-fn-1 negative] 5 (#$ . 9686)])
#@16 
 
(fn VAR VAL)
(defalias 'helm--action-at-nth-set-fn+ #[514 "L\210\300!\207" [helm--action-at-nth-set-fn-1] 4 (#$ . 9833)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&    \210\300\314\302\303\315DD\316\306\307\310\311\312\317&    \210\320\307\321\322\323\324\306\325&\210\300\326\302\303\327DD\330\306\307\310\331&\210\300\332\302\303\333DD\334\306\307\310\335&\210\300\336\302\303\337DD\340\306\307\310\341&\210\300\342\302\303\343DD\344\306\307\310\345&\210\300\346\302\303\347DD\350\306\307\310\345&\210\351\352\353\"\210\354\352\353\355#\210\300\353\302\303\356DD\357\306\307\310\335&\210\300\360\302\303\361DD\362\306\307\310\311&\210\300\363\302\303\364DD\365\306\307\310\366&\210\300\367\302\303\370DD\371\306\307\310\372&\210\300\373\302\303\374DD\375\306\307\310\376&\210\300\377\302\303\201@DD\201A\306\307\310\372&\210\300\201B\302\303\201CDD\201D\306\307\310\335&\210\300\201E\302\303\201FDD\201G\306\307\310\303&\210\300\201H\302\303\201IDD\201J\306\307\310\372&\210\300\201K\302\303\201LDD\201M\306\307\310\201N&\210\300\201O\302\303\201PDD\201Q\306\307\310\201R&\210\351\201S\201T\"\210\354\201S\201T\201U#\210\300\201T\302\303\201VDD\201W\306\307\310\335&\210\300\201X\302\303\201YDD\201Z\306\307\310\335&\210\300\201[\302\303\201\\DD\201]\306\307\310\331&\210\300\201^\302\303\201_DD\201`\306\307\310\331&\210\300\201a\302\303\201bDD\201c\306\307\310\201d&\210\300\201e\302\303\201fDD\201g\306\307\310\201h&\210\300\201i\302\303\201jDD\201k\306\307\310\201l&\210\300\201m\302\303\201nDD\201o\306\307\310\335&\210\300\201p\302\303\201qDD\201r\306\307\310\335&\210\300\201s\302\303\201tDD\201u\306\307\310\201v&\210\300\201w\302\303\201xDD\201y\306\307\310\335&\210\300\201z\302\303\201{DD\201|\306\307\310\335&\210\300\201}\302\303\201~DD\201\306\307\310\335&\210\300\201\200\302\303\201\201DD\201\202\306\307\310\303&\210\300\201\203\302\303\201\204DD\201\205\306\307\310\303&\210\300\201\206\302\303\201\207DD\201\210\306\307\310\303&\210\300\201\211\302\303\201\212DD\201\213\306\307\310\303&\210\300\201\214\302\303\201\215DD\201\216\306\307\310\331&\210\300\201\217\302\303\201\220DD\201\221\306\307\310\331&\210\300\201\222\302\303\201\223DD\201\224\306\307\310\201\225&\210\300\201\226\302\303\201\227DD\201\230\306\307\310\335&\210\300\201\231\302\303\201\232DD\201\233\306\307\310\335&\210\300\201\234\302\303\201\235DD\201\236\306\307\310\335&\210\300\201\237\302\303\201\240DD\201\241\306\307\310\201\242&\210\300\201\243\302\303\201\244DD\201\245\310\331\306\307&\210\300\201\246\302\303\201\247DD\201\250\310\311\306\307&\210\300\201\251\302\303\201\252DD\201\253\306\307\310\201\254&\210\300\201\255\302\303\201\256DD\201\257\310\345\306\307&\210\300\201\260\302\303\201\261DD\201\262\306\307\310\335&\210\300\201\263\302\303\201\264DD\201\265\306\307\310\201\266&\210\300\201\267\302\303\201\270DD\201\271\306\307\310\335&\210\300\201\272\302\303\201\273DD\201\274\306\307\310\335&\210\300\201\275\302\303\201\276DD\201\277\306\307\310\335&\210\300\201\300\302\303\201\301DD\201\302\306\307\310\303&\210\320\201\303\321\201\304\323\324\306\201\305\306\307&    \210\201\306\201\307\201\310\201\311\306\201\303%\210\201\306\201\312\201\313\201\314\306\201\303%\210\201\306\201\315\201\316\201\317\306\201\303%\210\201\306\201\320\201\321\201\322\306\201\303%\210\201\306\201\323\201\324\201\325\306\201\303%\210\201\306\201\326\201\327\201\330\306\201\303%\210\201\306\201\331\201\332\201\333\306\201\303%\210\201\306\201\334\201\335\201\336\306\201\303%\210\201\306\201\337\201\340\201\341\306\201\303%\210\201\306\201\342\201\343\201\344\306\201\303%\210\201\306\201\345\201\346\201\347\306\201\303%\210\201\306\201\350\201\351\201\352\306\201\303%\207" [custom-declare-variable helm-action-at-nth-negative-prefix-key funcall function #[0 "\300\207" [#1="C-x %d"] 1 #1#] "The prefix key to execute default action on nth <-n> candidate.\n\nThis is a format spec where %d will be replaced by the candidate\nnumber.\n\nNOTE: `setq' have no effect until you restart emacs, use customize for\nimmediate effect." :group helm :type string :set helm--action-at-nth-set-fn- helm-action-at-nth-positive-prefix-key #[0 "\300\207" [#2="C-c %d"] 1 #2#] "The prefix key to execute default action on nth <+n> candidate.\n\nThis is a format spec where %d will be replaced by the candidate\nnumber.\n\nNOTE: `setq' have no effect until you restart emacs, use customize for\nimmediate effect." helm--action-at-nth-set-fn+ custom-declare-group nil "Open helm." :prefix "helm-" convenience helm-completion-window-scroll-margin #[0 "\300\207" [5] 1] " `scroll-margin' to use for helm completion window.\nSet to 0 to disable.\nNOTE: This has no effect when `helm-display-source-at-screen-top'\nid is non-`nil'." integer helm-display-source-at-screen-top #[0 "\300\207" [t] 1] "Display candidates at the top of screen.\nThis happens with `helm-next-source' and `helm-previous-source'.\nNOTE: When non-`nil' (default), disable `helm-completion-window-scroll-margin'." boolean helm-candidate-number-limit #[0 "\300\207" [100] 1] "Global limit for number of candidates displayed.\nWhen the pattern is empty, the number of candidates shown will be\nas set here instead of the entire list, which may be hundreds or\nthousands. Since narrowing and filtering rapidly reduces\navailable candidates, having a small list will keep the interface\nresponsive.\n\nSet this value to nil for no limit." (choice (const :tag "Disabled" nil) integer) helm-input-idle-delay #[0 "\300\207" [0.01] 1] "Idle time before updating, specified in seconds." float helm-exit-idle-delay #[0 "\300\207" [0] 1] "Idle time before exiting minibuffer while helm is updating.\nHas no affect when helm-buffer is up to date (i.e exit without\ndelay in this condition)." defvaralias helm-samewindow helm-full-frame make-obsolete-variable "1.4.8.1" #[0 "\300\207" [nil] 1] "Use current window for showing candidates.\nIf t, then Helm does not pop-up new window." helm-candidate-separator #[0 "\300\207" [#3="--------------------"] 1 #3#] "Candidates separator of `multiline' source." helm-save-configuration-functions #[0 "\300\207" [(set-window-configuration . current-window-configuration)] 1] "Functions used to restore or save configurations for frames and windows.\nSpecified as a pair of functions, where car is the restore function and cdr\nis the save function.\n\nTo save and restore frame configuration, set this variable to\n'(set-frame-configuration . current-frame-configuration)\n\nNOTE: This may not work properly with own-frame minibuffer\nsettings. Older versions saves/restores frame configuration, but\nthe default has changed now to avoid flickering." sexp helm-display-function #[0 "\300\207" [helm-default-display-buffer] 1] "Function used to display `helm-buffer'.\n\nLocal value in `helm-buffer' will take precedence on this default\nvalue. Commands that are in `helm-commands-using-frame' will have\n`helm-buffer' displayed in frame, `helm-display-function' being\nignored.\nIf no local value found and current command is not one of\n`helm-commands-using-frame' use this default value.\nFunction in charge of deciding which value use is\n`helm-resolve-display-function'.\n \nTo set it locally to `helm-buffer' in helm sources use\n`helm-set-local-variable' in init function or use\n:display-function slot in `helm' call." symbol helm-case-fold-search #[0 "\300\207" [smart] 1] "Adds 'smart' option to `case-fold-search'.\nSmart option ignores case for searches as long as there are no\nupper case characters in the pattern.\n\nUse nil or t to turn off smart behavior and use\n`case-fold-search' behavior.\n\nDefault is smart.\n\nNOTE: Case fold search has no effect when searching asynchronous\nsources, which rely on customized features implemented directly\ninto their execution process. See helm-grep.el for an example." (choice (const :tag "Ignore case" t) (const :tag "Respect case" nil) (other :tag "Smart" 'smart)) helm-file-name-case-fold-search #[0 "\302>\203\303\207    \207" [system-type helm-case-fold-search (cygwin windows-nt ms-dos darwin) t] 2] "Local setting of `helm-case-fold-search' for reading filenames.\n\nSee `helm-case-fold-search' for more info." helm-reuse-last-window-split-state #[0 "\300\207" [nil] 1] "Use the same state of window split, vertical or horizontal.\n`helm-toggle-resplit-window' for the next helm session will use\nthe same window scheme as the previous session unless\n`helm-split-window-default-side' is 'same or 'other." helm-split-window-preferred-function #[0 "\300\207" [helm-split-window-default-fn] 1] "Default function used for splitting window." helm-split-window-default-side #[0 "\300\207" [below] 1] "The default side to display `helm-buffer'.\nMust be one acceptable arg for `split-window' SIDE,\nthat is `below', `above', `left' or `right'.\n\nOther acceptable values are `same' which always display\n`helm-buffer' in current window and `other' that display\n`helm-buffer' below if only one window or in\n`other-window-for-scrolling' when available.\n\nA nil value has same effect as `below'.\nIf `helm-full-frame' is non-`nil', it take precedence over this setting.\n\nSee also `helm-split-window-inside-p' and `helm-always-two-windows' that\ntake precedence over this.\n\nNOTE: this have no effect if `helm-split-window-preferred-function' is not\n`helm-split-window-default-fn' unless this new function can handle this." helm-display-buffer-default-height #[0 "\300\207" [nil] 1] "Initial height of `helm-buffer', specified as an integer or a function.\n\nThe function should take one arg and the responsibility for\nre-sizing the window; function's return value is ignored.\nNote that this have no effect when the split is vertical.\nSee `display-buffer' for more info." (choice integer function) helm-display-buffer-default-width #[0 "\300\207" [nil] 1] "Initial width of `helm-buffer', specified as an integer or a function.\n\nThe function should take one arg and the responsibility for\nre-sizing the window; function's return value is ignored.\nNote that this have no effect when the split is horizontal.\nSee `display-buffer' for more info." (choice integer function) helm-split-window-in-side-p helm-split-window-inside-p "2.8.6" #[0 "\300\207" [nil] 1] "Forces split inside selected window when non-`nil'.\nSee also `helm-split-window-default-side'.\n\nNOTE: this has no effect if\n`helm-split-window-preferred-function' is not\n`helm-split-window-default-fn' unless this new function can\nhandle this." helm-always-two-windows #[0 "\300\207" [nil] 1] "When non-`nil' helm uses two windows in this frame.\nTo display `helm-buffer' in one window and `helm-current-buffer'\nin the other.\n\nNote: this has no effect when `helm-split-window-inside-p' is non-`nil',\nor when `helm-split-window-default-side' is set to 'same.\n\nWhen `helm-autoresize-mode' is enabled, setting this to nil\nwill have no effect.\n\nAlso when non-`nil' it overrides the effect of `helm-split-window-default-side'\nset to `other'." helm-display-buffer-width #[0 "\300\207" [72] 1] "Frame width when displaying helm-buffer in own frame." helm-display-buffer-height #[0 "\300\207" [20] 1] "Frame height when displaying helm-buffer in own frame." helm-default-display-buffer-functions #[0 "\300\207" [nil] 1] "Action functions to pass to `display-buffer'.\nSee (info \"(elisp) Display Action Functions\").\n\nHave no effect when `helm-always-two-windows' is non-nil and may\noverride other settings like `helm-split-window-inside-p'." (repeat symbol) helm-default-display-buffer-alist #[0 "\300\207" [nil] 1] "Additional alist to pass to `display-buffer' action.\nSee (info \"(elisp) Display Action Functions\").\n\nHave no effect when `helm-always-two-windows' is non-nil and may\noverride other settings like `helm-split-window-inside-p'.\nNote that window-height and window-width have to be configured in\n`helm-display-buffer-height' and `helm-display-buffer-width'." (alist :key-type symbol :value-type sexp) helm-sources-using-default-as-input #[0 "\300\207" [(helm-source-imenu helm-source-imenu-all helm-source-info-elisp helm-source-etags-select helm-source-man-pages helm-source-occur helm-source-moccur helm-source-grep-ag helm-source-grep-git helm-source-grep)] 1] "List of helm sources that need to use `helm--maybe-use-default-as-input'.\nWhen a source is a member of this list, default `thing-at-point'\nwill be used as input." (repeat (choice symbol)) helm-delete-minibuffer-contents-from-point #[0 "\300\207" [t] 1] "When non-`nil', `helm-delete-minibuffer-contents' delete region from `point'.\nOtherwise delete `minibuffer-contents'.\nSee documentation for  `helm-delete-minibuffer-contents'." helm-follow-mode-persistent #[0 "\300\207" [nil] 1] "When non-`nil', save last state of `helm-follow-mode' for the next emacs sessions.\n\nEach time you turn on or off `helm-follow-mode', the current source name will be stored\nor removed from `helm-source-names-using-follow'.\n\nNote that this may be disabled in some places where it is unsafe to use\nbecause persistent action is changing according to context." helm-source-names-using-follow #[0 "\300\207" [nil] 1] "A list of source names to have follow enabled.\nThis list of source names will be used only\nwhen `helm-follow-mode-persistent' is non-nil.\n\nYou don't have to customize this yourself unless you really want and\nknow what you are doing, instead just set\n`helm-follow-mode-persistent' to non-nil and as soon you turn on or\noff `helm-follow-mode' (C-c C-f) in a source, helm will save or remove\nsource name in this variable." (repeat (choice string)) helm-prevent-escaping-from-minibuffer #[0 "\300\207" [t] 1] "Prevent escaping from minibuffer with `other-window' during the helm session." helm-allow-mouse #[0 "\300\207" [nil] 1] "Allow mouse usage during the helm session when non-nil.\n\nNote that this also allow moving out of minibuffer when clicking\noutside of `helm-buffer', up to you to get back to helm by clicking\nback in `helm-buffer' of minibuffer." helm-move-to-line-cycle-in-source #[0 "\300\207" [nil] 1] "Cycle to the beginning or end of the list after reaching the bottom or top.\nThis applies when using `helm-next/previous-line'." helm-fuzzy-match-fn #[0 "\300\207" [helm-fuzzy-match] 1] "The function for fuzzy matching in `helm-source-sync' based sources." helm-fuzzy-search-fn #[0 "\300\207" [helm-fuzzy-search] 1] "The function for fuzzy matching in `helm-source-in-buffer' based sources." helm-fuzzy-sort-fn #[0 "\300\207" [helm-fuzzy-matching-default-sort-fn] 1] "The sort transformer function used in fuzzy matching.\nWhen nil, sorting is not done." helm-fuzzy-matching-highlight-fn #[0 "\300\207" [helm-fuzzy-default-highlight-match] 1] "The function to highlight fuzzy matches.\nWhen nil, no highlighting is done." helm-autoresize-max-height #[0 "\300\207" [40] 1] "Specifies maximum height and defaults to percent of helm window's frame height.\n\nSee `fit-window-to-buffer' for more infos." helm-autoresize-min-height #[0 "\300\207" [10] 1] "Specifies minimum height and defaults to percent of helm window's frame height.\n\nIf nil, `window-min-height' is used.\nSee `fit-window-to-buffer' for details." helm-input-method-verbose-flag #[0 "\300\207" [nil] 1] "The default value for `input-method-verbose-flag' used in helm minibuffer.\nIt is nil by default, which does not turn off input method. Helm\nupdates and exits without interruption -- necessary for complex methods.\n\nIf set to any other value as per `input-method-verbose-flag',\nthen use `C-\\' to disable the `current-input-method' to exit or update helm" (radio :tag "A flag to control extra guidance for input methods in helm." (const :tag "Never provide guidance" nil) (const :tag "Always provide guidance" t) (const :tag "Provide guidance only for complex methods" complex-only)) helm-display-header-line #[0 "\300\207" [t] 1] "Display header-line when non nil." helm-inherit-input-method #[0 "\300\207" [t] 1] "Inherit `current-input-method' from `current-buffer' when non-`nil'.\nThe default is to enable this by default and then toggle\n`toggle-input-method'." helm-echo-input-in-header-line #[0 "\300\207" [nil] 1] "Send current input in header-line when non-nil." helm-header-line-space-before-prompt #[0 "\300\207" [left-fringe] 1] "Specify the space before prompt in header-line.\n\nThis will be used when `helm-echo-input-in-header-line' is non-nil.\n\nValue can be one of the symbols 'left-fringe or 'left-margin or an\ninteger specifying the number of spaces before prompt.\nNote that on input longer that `window-width' the continuation string\nwill be shown on left side of window without taking care of this." (choice (symbol (const :tag "Fringe" 'left-fringe) (const :tag "Margin" 'left-margin)) integer) helm-tramp-connection-min-time-diff #[0 "\300\207" [5] 1] "Value of `tramp-connection-min-time-diff' for helm remote processes.\nIf set to zero helm remote processes are not delayed.\nSetting this to a value less than 5 or disabling it with a zero value\nis risky, however on emacs versions starting at 24.5 it seems\nit is now possible to disable it.\nAnyway at any time in helm you can suspend your processes while typing\nby hitting \\<helm-map> `\\[helm-toggle-suspend-update]'.\nOnly async sources than use a sentinel calling\n`helm-process-deferred-sentinel-hook' are affected by this." helm-debug-root-directory #[0 "\300\207" [nil] 1] "When non-`nil', saves helm log messages to a file in this directory.\nWhen `nil' log messages are saved to a buffer instead.\nLog message are saved only when `helm-debug' is non-nil, so setting this\ndoesn't enable debugging by itself.\n\nSee `helm-log-save-maybe' for more info." helm-show-action-window-other-window #[0 "\300\207" [nil] 1] "Show action buffer beside `helm-buffer' when non-nil.\n\nIf nil don't split and replace helm-buffer by the action buffer\nin same window.\nIf left display the action buffer at the left of helm-buffer.\nIf right or any other value, split at right.\n\nNote that this may not fit well with some helm window configurations,\nso it have only effect when `helm-always-two-windows' is non-nil." (choice (const :tag "Split at left" left) (const :tag "Don't split" nil) (other :tag "Split at right" right)) helm-cycle-resume-delay #[0 "\300\207" [1.0] 1] "Delay used before resuming in `helm-run-cycle-resume'." helm-display-buffer-reuse-frame #[0 "\300\207" [nil] 1] "When non nil helm frame is not deleted and reused in next sessions.\n\nThis was used to workaround a bug in emacs where frames where\npopping up slowly, now that the bug have been fixed upstream probably\nyou don't want to use this anymore." helm-commands-using-frame #[0 "\300\207" [nil] 1] "A list of commands where `helm-buffer' is displayed in a frame." (repeat symbol) helm-actions-inherit-frame-settings #[0 "\300\207" [t] 1] "Actions inherit helm frame settings of initial command when non nil." helm-use-undecorated-frame-option #[0 "\300\207" [t] 1] "Display helm frame undecorated when non nil.\n\nThis option have no effect with emacs versions lower than 26." helm-use-frame-when-more-than-two-windows #[0 "\300\207" [nil] 1] "Display helm buffer in frame when more than two windows." helm-default-prompt-display-function #[0 "\300\207" [helm-set-default-prompt-display] 1] "The function to use to set face of fake cursor in header-line." helm-faces "Customize the appearance of helm." faces custom-declare-face helm-source-header ((((background dark)) :background "#22083397778B" :foreground "white" :weight bold :height 1.3 :family "Sans Serif") (((background light)) :background "#abd7f0" :foreground "black" :weight bold :height 1.3 :family "Sans Serif")) "Face for source header in the helm buffer." helm-visible-mark ((((min-colors 88) (background dark)) (:background "green1" :foreground "black")) (((background dark)) (:background "green" :foreground "black")) (((background light)) :background "#d1f5ea") (((min-colors 88)) (:background "green1")) (t (:background "green"))) "Face for visible mark." helm-header ((t (:inherit header-line))) "Face for header lines in the helm buffer." helm-candidate-number ((((background dark)) :background "Yellow" :foreground "black") (((background light)) :background "#faffb5" :foreground "black")) "Face for candidate number in mode-line." helm-candidate-number-suspended ((t (:inherit helm-candidate-number :inverse-video t))) "Face for candidate number in mode-line when helm is suspended." helm-selection ((((background dark)) :background "ForestGreen" :distant-foreground "black") (((background light)) :background "#b5ffd1" :distant-foreground "black")) "Face for currently selected item in the helm buffer." helm-separator ((((background dark)) :foreground "red") (((background light)) :foreground "#ffbfb5")) "Face for multiline source separator." helm-action ((t (:underline t))) "Face for action lines in the helm action buffer." helm-prefarg ((((background dark)) :foreground "green") (((background light)) :foreground "red")) "Face for showing prefix arg in mode-line." helm-match ((((background light)) :foreground "#b00000") (((background dark)) :foreground "gold1")) "Face used to highlight matches." helm-header-line-left-margin ((t (:foreground "black" :background "yellow"))) "Face used to highlight helm-header sign in left-margin." helm-minibuffer-prompt ((t (:inherit minibuffer-prompt))) "Face used for the minibuffer/headline prompt (such as Pattern:) in helm."] 10)
#@56 Overlay used to highlight the currently selected item.
(defvar helm-selection-overlay nil (#$ . 31539))
#@67 List of information about asynchronous processes managed by helm.
(defvar helm-async-processes nil (#$ . 31649))
#@243 Runs before helm initialization.
This hook runs before init functions in `helm-sources', which is
before creation of `helm-buffer'. Set local variables for
`helm-buffer' that need a value from `current-buffer' with
`helm-set-local-variable'.
(defvar helm-before-initialize-hook nil (#$ . 31769))
#@157 Runs after helm initialization.
This hook runs after `helm-buffer' is created but not from
`helm-buffer'. The hook needs to specify in which buffer to run.
(defvar helm-after-initialize-hook nil (#$ . 32072))
(byte-code "\300\301\302\"\210\303\301\302\304#\207" [defvaralias helm-update-hook helm-after-update-hook make-obsolete-variable "1.9.9"] 4)
#@65 Runs after updating the helm buffer with the new input pattern.
(defvar helm-after-update-hook nil (#$ . 32428))
#@162 Runs after exiting the minibuffer and before performing an
action.
 
This hook runs even if helm exits the minibuffer abnormally (e.g.
via `helm-keyboard-quit').
(defvar helm-cleanup-hook nil (#$ . 32548))
#@38 Runs when opening the action buffer.
(defvar helm-select-action-hook nil (#$ . 32759))
#@146 Runs before executing action.
Unlike `helm-cleanup-hook', this hook runs before helm closes the
minibuffer and also before performing an action.
(defvar helm-before-action-hook nil (#$ . 32853))
#@30 Runs after executing action.
(defvar helm-after-action-hook nil (#$ . 33054))
#@220 Runs just before exiting the minibuffer.
 
This hook runs when helm exits the minibuffer normally (e.g. via
candidate selection), but does NOT run if helm exits the
minibuffer abnormally (e.g. via `helm-keyboard-quit').
(defvar helm-exit-minibuffer-hook nil (#$ . 33139))
#@41 Runs after executing persistent action.
(defvar helm-after-persistent-action-hook nil (#$ . 33416))
#@48 Runs before moving selection in `helm-buffer'.
(defvar helm-move-selection-before-hook nil (#$ . 33522))
#@47 Runs after moving selection in `helm-buffer'.
(defvar helm-move-selection-after-hook nil (#$ . 33633))
#@44 Runs after pre-selection in `helm-buffer'.
(defvar helm-after-preselection-hook nil (#$ . 33742))
#@52 Runs when switching to and from the action buffer.
(defvar helm-window-configuration-hook nil (#$ . 33846))
#@273 When non--nil executes the default action and then exits if only one candidate.
If symbol 'current-source is given as value exit if only one candidate
in current source.
This variable accepts a function with no args that should returns a boolean
value or 'current-source.
(defvar helm-execute-action-at-once-if-one nil (#$ . 33961))
#@85 When non-`nil', quits if there are no candidates.
This variable accepts a function.
(defvar helm-quit-if-no-candidate nil (#$ . 34300))
#@138 A list of helm variables that `helm-debug-output' displays.
If `nil', `helm-debug-output' includes only variables with
`helm-' prefixes.
(defvar helm-debug-variables nil (#$ . 34443))
(defvar helm-debug-buffer "*Debug Helm Log*")
#@166 If non-`nil', write log message to `helm-debug-buffer'.
Default is `nil', which disables writing log messages because the
size of `helm-debug-buffer' grows quickly.
(defvar helm-debug nil (#$ . 34680))
#@238 Help string displayed by helm in the mode-line.
It is either a string or a list of two string arguments where the
first string is the name and the second string is displayed in
the mode-line. When `nil', uses default `mode-line-format'.
(defvar helm-mode-line-string "\\<helm-map>\\[helm-help]:Help \\[helm-select-action]:Act \\[helm-maybe-exit-minibuffer]/f1/f2/f-n:NthAct \\[helm-toggle-suspend-update]:Tog.suspend" (#$ . 34889))
#@396 Hook that runs at minibuffer initialization.
A hook useful for modifying minibuffer settings in helm.
 
An example that hides the minibuffer when using
`helm-echo-input-in-header-line':
 
      (add-hook 'helm-minibuffer-set-up-hook #'helm-hide-minibuffer-maybe)
 
Note that we check `helm-echo-input-in-header-line' value
from `helm-buffer' which allow detecting possible local
value of this var.
(defvar helm-minibuffer-set-up-hook nil (#$ . 35328))
#@98 Message string containing detailed help for `helm'.
It also accepts function or variable symbol.
(defvar helm-help-message "* Helm Generic Help\n** Basics\n\nHelm narrows down the list of candidates as you type a filter pattern.\n\nHelm accepts multiple space-separated patterns, each pattern can be negated with \"!\".\n\nHelm also supports fuzzy matching in some places when specified, you will find\nseveral variables to enable fuzzy matching in diverse sources,\nsee [[https://github.com/emacs-helm/helm/wiki/Fuzzy-matching][fuzzy-matching]] in helm-wiki for more infos.\n\nHelm generally uses familiar Emacs keys to navigate the list.\nHere follow some of the less obvious bindings:\n\n- `\\[helm-maybe-exit-minibuffer]' selects the candidate from the list, executes the default action\nupon exiting the Helm session.\n\n- `\\[helm-execute-persistent-action]' executes the default action but without exiting the Helm session.\nNot all sources support this.\n\n- `\\[helm-select-action]' displays a list of actions available on current candidate or all marked candidates.\nThe default binding <tab> is ordinarily used for completion, but that would be\nredundant since Helm completes upon every character entered in the prompt.\nSee [[https://github.com/emacs-helm/helm/wiki#helm-completion-vs-emacs-completion][Helm wiki]].\n\nNote: In addition to the default actions list, additional actions appear\ndepending of the type of the selected candidate(s).  They are called filtered\nactions.\n\n** Helm mode\n\n`helm-mode' toggles Helm completion in native Emacs functions,\nso when you turn `helm-mode' on, commands like `switch-to-buffer' will use\nHelm completion instead of the usual Emacs completion buffer.\n\n*** What gets or does not get \"helmized\" when `helm-mode' is enabled?\n\nHelm provides generic completion on all Emacs functions using `completing-read',\n`completion-in-region' and their derivatives, e.g. `read-file-name'.  Helm\nexposes a user variable to control which function to use for a specific Emacs\ncommand: `helm-completing-read-handlers-alist'.  If the function for a specific\ncommand is nil, it turns off Helm completion.  See the variable documentation\nfor more infos.\n\n*** Helm functions vs helmized Emacs functions\n\nWhile there are Helm functions that perform the same completion as other\nhelmized Emacs functions, e.g. `switch-to-buffer' and `helm-buffers-list', the\nnative Helm functions like `helm-buffers-list' can receive new features, the\nallow marking candidates, they have several actions, etc.  Whereas the helmized\nEmacs functions only have Helm completion, one action and no more then Emacs can\nprovide for this function.  This is the intended behavior.\n\nGenerally you are better off using the native Helm command\nthan the helmized Emacs equivalent.\n\n** Helm help\n\n\\[helm-documentation]: Show all helm documentations concatenated in one org file.\n\nFrom a Helm session, just hit \\<helm-map>\\[helm-help] to have the\ndocumentation for the current source followed by the global Helm documentation.\n\nWhile in the help buffer, most of the regular keybindings are available in an\nEmacs buffers; the most important ones are shown in minibuffer.  However due to\nthe implementation restrictions, no regular Emacs keymap is used (it runs in a\nloop when reading the help buffer) they are hardcoded and not modifiable.\n\nThe hard-coded documentation bindings are:\n\n| Key       | Alternative keys | Command             |\n|-----------+------------------+---------------------|\n| C-v       | Space next       | Scroll up           |\n| M-v       | b prior          | Scroll down         |\n| C-s       |                  | Isearch forward     |\n| C-r       |                  | Isearch backward    |\n| C-a       |                  | Beginning of line   |\n| C-e       |                  | End of line         |\n| C-f       | right            | Forward char        |\n| C-b       | left             | Backward char       |\n| C-n       | down             | Next line           |\n| C-p       | up               | Previous line       |\n| M-a       |                  | Backward sentence   |\n| M-e       |                  | Forward sentence    |\n| M-f       |                  | Forward word        |\n| M-b       |                  | Backward word       |\n| M->       |                  | End of buffer       |\n| M-<       |                  | Beginning of buffer |\n| C-<SPACE> |                  | Toggle mark         |\n| RET       |                  | Follow org link     |\n| C-%       |                  | Push org mark       |\n| C-&       |                  | Goto org mark-ring  |\n| TAB       |                  | Org cycle           |\n| M-<TAB>   |                  | Toggle visibility   |\n| M-w       |                  | Copy region         |\n| q         |                  | Quit                |\n\n** Customize Helm\n\nHelm provides a lot of user variables for extensive customization.\nFrom any Helm session, type \\<helm-map>\\[helm-customize-group] to jump to the current source `custom' group.\nHelm also has a special group for faces you can access via `M-x customize-group RET helm-faces'.\n\nNote: Some sources may not have their group set and default to the `helm' group.\n\n** Helm's basic operations and default key bindings\n\n| Key     | Alternative Keys | Command                                                              |\n|---------+------------------+----------------------------------------------------------------------|\n| C-p     | Up               | Previous line                                                        |\n| C-n     | Down             | Next line                                                            |\n| M-v     | prior            | Previous page                                                        |\n| C-v     | next             | Next page                                                            |\n| Enter   |                  | Execute first (default) action / Select                              |\n| M-<     |                  | First line                                                           |\n| M->     |                  | Last line                                                            |\n| C-M-S-v | M-prior, C-M-y   | Previous page (other-window)                                         |\n| C-M-v   | M-next           | Next page (other-window)                                             |\n| Tab     | C-i              | Show action list                                                     |\n| Left    |                  | Previous source                                                      |\n| Right   | C-o              | Next source                                                          |\n| C-k     |                  | Delete pattern (with prefix arg delete from point to end or all [1]) |\n| C-j     | C-z              | Persistent action (Execute and keep Helm session)                    |\n\n[1] Delete from point to end or all depending on the value of\n`helm-delete-minibuffer-contents-from-point'.\n\n** Shortcuts for n-th action\n\nf1-f12: Execute n-th action where n is 1 to 12.\n\n** Shortcuts for executing the default action on the n-th candidate\n\nC-x <n>: Execute default action on the n-th candidate before currently selected candidate.\n\nC-c <n>: Execute default action on the n-th candidate after current selected candidate.\n\n\"n\" is limited to 1-9.  For larger jumps use other navigation keys.  Helm does\nnot display line numbers by default: enable them with the\n[[https://github.com/coldnew/linum-relative][linum-relative]] package and\n`helm-linum-relative-mode'.\nIf you are using Emacs-26+ version you can use `global-display-line-numbers-mode'\nwhich seems even better (don't forget to customize `display-line-numbers-type' to relative).\n\n** Mouse control in Helm\n\nA basic support for the mouse is provided when the user sets `helm-allow-mouse' to non-nil.\n\n- mouse-1 selects the candidate.\n- mouse-2 executes the default action on selected candidate.\n- mouse-3 pops up the action menu.\n\nNote: When mouse control is enabled in Helm, it also lets you click around and lose\nthe minibuffer focus: you'll have to click on the Helm buffer or the minibuffer\nto retrieve control of your Helm session.\n\n** Marked candidates\n\nYou can mark candidates to execute an action on all of them instead of the\ncurrent selected candidate only.  (See bindings below.)  Most Helm actions\noperate on marked candidates unless candidate-marking is explicitely forbidden\nfor a specific source.\n\n- To mark/unmark a candidate, use \\[helm-toggle-visible-mark].  (See bindings below.)\nWith a numeric prefix arg mark ARG candidates forward, if ARG is negative\nmark ARG candidates backward.\n\n- To mark all visible unmarked candidates at once in current source use \\[helm-mark-all].\nWith a prefix argument, mark all candidates in all sources.\n\n- To unmark all visible marked candidates at once use \\[helm-unmark-all].\n\n- To mark/unmark all candidates at once use \\[helm-toggle-all-marks].\nWith a prefix argument, mark/unmark all candidates in all sources.\n\nNote: When multiple candidates are selected across different sources, only the\ncandidates of the current source will be used when executing most actions (as\ndifferent sources can have different actions).  Some actions support\nmulti-source marking however.\n\n** Follow candidates\n\nWhen `helm-follow-mode' is on (\\<helm-map>\\[helm-follow-mode] to toggle it),\nmoving up and down the Helm session or updating the list of candidates will\nautomatically execute the persistent-action as specified for the current source.\n\nIf `helm-follow-mode-persistent' is non-nil, the state of the mode will be\nrestored for the following Helm sessions.\n\nIf you just want to follow candidates occasionally without enabling\n`helm-follow-mode', you can use \\<helm-map>\\[helm-follow-action-forward] or \\[helm-follow-action-backward] instead.\nConversely, when `helm-follow-mode' is enabled, those commands\ngo to previous/next line without executing the persistent action.\n\n** Frequently Used Commands\n\n\\[helm-toggle-resplit-and-swap-windows]        Toggle vertical/horizontal split on first hit and swap Helm window on second hit.\n\\[helm-quit-and-find-file]        Drop into `helm-find-files'.\n\\[helm-kill-selection-and-quit]        Kill display value of candidate and quit (with prefix arg, kill the real value).\n\\[helm-yank-selection]        Yank current selection into pattern.\n\\[helm-copy-to-buffer]        Copy selected candidate at point in current buffer.\n\\[helm-follow-mode]        Toggle automatic execution of persistent action.\n\\[helm-follow-action-forward]    Run persistent action then select next line.\n\\[helm-follow-action-backward]        Run persistent action then select previous line.\n\\[helm-refresh]        Recalculate and redisplay candidates.\n\\[helm-toggle-suspend-update]        Toggle candidate updates.\n\n** Special yes, no or yes for all answers\n\nYou may be prompted in the minibuffer to answer by [y,n,!,q] in some places\nfor confirmation.\n\n- y  mean yes\n- no mean no\n- !  mean yes for all\n- q  mean quit or abort current operation.\n\nWhen using ! you will not be prompted anymore for the same thing in current operation\ne.g. file deletion, file copy etc...\n\n** Moving in `helm-buffer'\n\nYou can move in `helm-buffer' with the usual commands used in Emacs:\n(\\<helm-map>\\[helm-next-line], \\<helm-map>\\[helm-previous-line], etc.  See above basic commands.\nWhen `helm-buffer' contains more than one source, change source with \\<helm-map>\\[helm-next-source].\n\nNote: When reaching the end of a source, \\<helm-map>\\[helm-next-line] will *not* go to the next source unless\nvariable `helm-move-to-line-cycle-in-source' is non-nil, so you will have to use \\<helm-map>\\[helm-next-source].\n\n** Resume previous session from current Helm session\n\nYou can use `C-c n' (`helm-run-cycle-resume') to cycle in resumables sources.\n`C-c n' is a special key set with `helm-define-key-with-subkeys' which, after pressing it, allows you\nto keep cycling with further `n'.\n\nTip: You can bound the same key in `global-map' to `helm-cycle-resume'\n     with `helm-define-key-with-subkeys' to let you transparently cycle\n     sessions, Helm fired up or not.\n     You can also bind the cycling commands to single key presses (e.g. `S-<f1>') this time\n     with a simple `define-key'.  (Note that `S-<f1>' is not available in terminals.)\n\nNote: `helm-define-key-with-subkeys' is available only once Helm is loaded.\n\nYou can also use \\<helm-map>\\[helm-resume-previous-session-after-quit] to resume\nthe previous session, or \\<helm-map>\\[helm-resume-list-buffers-after-quit]\nto have completion on all resumable buffers.\n\n** Global commands\n\n*** Resume Helm session from outside Helm\n\n\\<global-map>\\[helm-resume] revives the last `helm' session.  Binding a key to\nthis command will greatly improve `helm' interactivity, e.g. when quitting Helm\naccidentally.\n\nYou can call \\<global-map>\\[helm-resume] with a prefix argument to choose\n(with completion!) which session you'd like to resume.  You can also cycle in\nthese sources with `helm-cycle-resume' (see above).\n\n** Debugging Helm\n\nHelm exposes the special variable `helm-debug': setting it to non-nil\nwill enable Helm logging in a special outline-mode buffer.\nHelm resets the variable to nil at the end of each session.\n\nFor convenience, \\<helm-map>\\[helm-enable-or-switch-to-debug]\nallows you to turn on debugging for this session only.\nTo avoid accumulating log entries while you are typing patterns, you can use\n\\<helm-map>\\[helm-toggle-suspend-update] to turn off updating.  When you\nare ready turn it on again to resume logging.\n\nOnce you exit your Helm session you can access the debug buffer with\n`helm-debug-open-last-log'.  It is possible to save logs to dated files when\n`helm-debug-root-directory' is set to a valid directory.\n\nNote: Be aware that Helm log buffers grow really fast, so use `helm-debug' only\nwhen needed.\n\n** Writing your own Helm sources\n\nWriting simple sources for your own usage is easy.  When calling the `helm'\nfunction, the sources are added the :sources slot which can be a symbol or a\nlist of sources.  Sources can be built with different EIEIO classes depending\nwhat you want to do.  To simplify this, several `helm-build-*' macros are\nprovided.  Below, simple examples to start with.\n\nWe will not go further here, see [[https://github.com/emacs-helm/helm/wiki/Developing][Helm wiki]] and the source\ncode for more information and more complex exapmles.\n\n#+begin_src elisp\n\n    ;; Candidates are stored in a list.\n    (helm :sources (helm-build-sync-source \"test\"\n                     ;; A function can be used as well\n                     ;; to provide candidates.\n                     :candidates '(\"foo\" \"bar\" \"baz\"))\n          :buffer \"*helm test*\")\n\n    ;; Candidates are stored in a buffer.\n    ;; Generally faster but doesn't allow a dynamic updating\n    ;; of the candidates list i.e the list is fixed on start.\n    (helm :sources (helm-build-in-buffer-source \"test\"\n                     :data '(\"foo\" \"bar\" \"baz\"))\n          :buffer \"*helm test*\")\n\n#+end_src\n\n** Helm Map\n\\{helm-map}" (#$ . 35783))
#@164 A hook that run in async sources when process output comes out of `candidate-number-limit'.
Should be set locally to `helm-buffer' with `helm-set-local-variable'.
(defvar helm-async-outer-limit-hook nil (#$ . 51157))
#@37 A hook that run when quitting helm.
(defvar helm-quit-hook nil (#$ . 51380))
#@86 A hook that run after resuming a helm session.
The hook should take one arg SOURCES.
(defvar helm-resume-after-hook nil (#$ . 51463))
#@209 A list of source names to be displayed.
Other sources won't appear in the search results.
If nil, no filtering is done.
Don't set this directly, use `helm-set-source-filter' during helm session
to modify it.
(defvar helm-source-filter nil (#$ . 51604))
#@54 Record `current-prefix-arg' when exiting minibuffer.
(defvar helm-current-prefix-arg nil (#$ . 51863))
#@54 Saved value of the currently selected action by key.
(defvar helm-saved-action nil (#$ . 51972))
#@60 Value of the current source when the action list is shown.
(defvar helm-saved-current-source nil (#$ . 52075))
#@43 Flag whether in persistent-action or not.
(defvar helm-in-persistent-action nil (#$ . 52192))
#@45 `helm-buffer' of previously `helm' session.
(defvar helm-last-buffer nil (#$ . 52292))
#@71 Value of the currently selected object when the action list is shown.
(defvar helm-saved-selection nil (#$ . 52385))
#@53 [INTERNAL] Value of current sources in use, a list.
(defvar helm-sources nil (#$ . 52508))
#@53 Variable `buffer-file-name' when `helm' is invoked.
(defvar helm-buffer-file-name nil (#$ . 52605))
#@64 Holds the available candidate within a single helm invocation.
(defvar helm-candidate-cache (make-hash-table :test 'equal) (#$ . 52711))
(defvar helm--candidate-buffer-alist nil)
#@42 The input typed in the candidates panel.
(defvar helm-input "" (#$ . 52896))
#@78 Internal, store locally `helm-pattern' value for later use in `helm-resume'.
(defvar helm-input-local nil (#$ . 52979))
(defvar helm--source-name nil)
(defvar helm-current-source nil)
(defvar helm-tick-hash (make-hash-table :test 'equal))
(defvar helm-issued-errors nil)
#@52 The name of the log file of the last helm session.
(defvar helm--last-log-file nil (#$ . 53256))
(defvar helm--local-variables nil)
(defvar helm-split-window-state nil)
(defvar helm--window-side-state nil)
(defvar helm-selection-point nil)
(defvar helm-alive-p nil)
(defvar helm-visible-mark-overlays nil)
(defvar helm-update-blacklist-regexps '("^" "^ *" "$" "!" " " "\\b" "\\<" "\\>" "\\_<" "\\_>" ".*" "??" "?*" "*?" "?"))
#@45 [INTERNAL] Don't use this in your programs.
(defvar helm--force-updating-p nil (#$ . 53688))
#@295 Flag to inform if helm did exit or quit.
0 means helm did exit when executing an action.
1 means helm did quit with \[keyboard-quit]
Knowing this exit-status could help restore a window config when helm aborts
in some special circumstances.
See `helm-exit-minibuffer' and `helm-keyboard-quit'.
(defvar helm-exit-status 0 (#$ . 53788))
(defvar helm-minibuffer-confirm-state nil)
(defvar helm-quit nil)
#@53 Helm buffers listed in order of most recently used.
(defvar helm-buffers nil (#$ . 54195))
#@136 Cons of (point . window-start)  when `helm' is invoked.
`helm-current-buffer' uses this to restore position after
`helm-keyboard-quit'
(defvar helm-current-position nil (#$ . 54293))
#@60 Used to store window or frame configuration at helm start.
(defvar helm-last-frame-or-window-configuration nil (#$ . 54482))
(defvar helm-onewindow-p nil)
(defvar helm-types nil)
(defvar helm--mode-line-string-real nil)
(defvar helm-persistent-action-display-window nil)
#@51 Marked candidates.  List of (source . real) pair.
(defvar helm-marked-candidates nil (#$ . 54759))
(defvar helm--mode-line-display-prefarg nil)
#@72 [INTERNAL] A simple flag to notify persistent action we are following.
(defvar helm--temp-follow-flag nil (#$ . 54909))
(defvar helm--reading-passwd-or-string nil)
(defvar helm--in-update nil)
(defvar helm--in-fuzzy nil)
#@220 Flag to notify the use of use-default-as-input.
Use only in let-bindings.
Use :default arg of `helm' as input to update display.
Note that if also :input is specified as `helm' arg, it will take
precedence on :default.
(defvar helm--maybe-use-default-as-input nil (#$ . 55137))
#@55 Store temporary hooks added by `with-helm-temp-hook'.
(defvar helm--temp-hooks nil (#$ . 55421))
#@64 [Internal] Don't set this globally, it is used as a local var.
(defvar helm-truncate-lines nil (#$ . 55524))
(defvar helm--prompt nil)
#@235 Sources that use the *find-files mechanism can be added here.
Sources generated by `helm-mode' don't need to be added here
because they are automatically added.
 
You should not modify this yourself unless you know what you are doing.
(defvar helm--file-completion-sources '("Find Files" "Read File Name") (#$ . 55666))
#@90 Non nil when `helm-read-file-name' is running.
Used for `helm-file-completion-source-p'.
(defvar helm--completing-file-name nil (#$ . 55991))
(defvar helm--url-regexp "\\`\\(news\\(post\\)?:\\|mailto:\\|file:\\|\\(ftp\\|https?\\|telnet\\|gopher\\|www\\|wais\\)://\\)")
#@150 Flag to prevent helm popping up errors in candidates functions.
Should be set in candidates functions if needed, will be restored
at end of session.
(defvar helm--ignore-errors nil (#$ . 56267))
(defvar helm--action-prompt "Select action: ")
(defvar helm--cycle-resume-iterator nil)
(defvar helm--buffer-in-new-frame-p nil)
#@141 [INTERNAL] The selected frame before starting helm.
Helm use this internally to know in which frame it started, don't
modify this yourself.
(defvar helm-initial-frame nil (#$ . 56598))
#@186 The frame where helm is displayed.
 
This is only used when helm is using
`helm-display-buffer-in-own-frame' as `helm-display-function' and
`helm-display-buffer-reuse-frame' is non nil.
(defvar helm-popup-frame nil (#$ . 56790))
(defvar helm--nested nil)
#@60 Frame parameters to save in `helm--last-frame-parameters'.
(defconst helm--frame-default-attributes '(width height tool-bar-lines left top title undecorated vertical-scroll-bars visibility fullscreen menu-bar-lines undecorated) (#$ . 57050))
#@70 Frame parameters to save for later resuming.
Local to `helm-buffer'.
(defvar helm--last-frame-parameters nil (#$ . 57298))
#@217 Non nil when action is triggering a new helm-session.
This may be let bounded in other places to notify the display function
to reuse the same frame parameters as the previous helm session just
like resume would do.
(defvar helm--executing-helm-action nil (#$ . 57428))
(defvar helm--current-buffer-narrowed nil)
(defvar helm--suspend-update-interactive-flag nil)
#@231 Log message `helm-debug' is non-`nil'.
Messages are written to the `helm-debug-buffer' buffer.
 
Argument FORMAT-STRING is a string to use with `format'.
Use optional arguments ARGS like in `format'.
 
(fn FORMAT-STRING &rest ARGS)
(defalias 'helm-log #[385 "\205<r\303    !q\210\304 \210\305 \210\306db\210\307 \310\311\312\"\203#\313\202$\314\315P\316\317\"\3208\321 \322\310        B\"%\262c*\207" [helm-debug helm-debug-buffer inhibit-read-only get-buffer-create outline-mode buffer-disable-undo t current-time format string-match "Start session" "* " "** " "%s.%06d (%s)\n %s\n" format-time-string "%H:%M:%S" 2 helm-log-get-current-function apply] 12 (#$ . 57799)])
#@82 Run HOOK like `run-hooks' but write these actions to helm log buffer.
 
(fn HOOK)
(defalias 'helm-log-run-hook #[257 "\300\301\211J#\210\300\302\303!#\210\304!\210\300\305\"\207" [helm-log "Executing %s with value = %S" "Executing %s with global value = %S" default-value run-hooks "executed %s"] 6 (#$ . 58476)])
#@99 Get name of function that is calling `helm-log'.
The original idea is from `tramp-debug-message'.
(defalias 'helm-log-get-current-function #[0 "\300\301\302\211\303\302\304X\203E\305!A@\2629\203\306!\202\307\262\310\311\"\203:\310\"\204:\262\302\211\262\202;\303\203ET\262\202\207" ["^helm-\\(?:interpret\\|log\\|.*funcall\\)" 1 nil t 40 backtrace-frame symbol-name "" string-match "^helm"] 9 (#$ . 58800)])
#@161 Accumulate error messages into `helm-issued-errors'.
ARGS are args given to `format'.
e.g (helm-log-error "Error %s: %s" (car err) (cdr err)).
 
(fn &rest ARGS)
(defalias 'helm-log-error #[128 "\301\302\303@PA#\210\301\304\"\211\235?\205$\211\235\203\202\"\211B\211\207" [helm-issued-errors apply helm-log "ERROR: " format] 5 (#$ . 59241)])
#@202 Save log buffer when `helm-debug-root-directory' is non nil.
Create `helm-debug-root-directory' directory if necessary.
Messages are logged to a file named with todays date and time in this directory.
(defalias 'helm-log-save-maybe #[0 ";\203\304!\204\305\306\"\210    \203;\307\310\311\312!P\"\305\306\"\210r\313\n!q\210\314ed\307\311\315!\"\211\316\317%\210\320 \210)\210\316\211\207" [helm-debug-root-directory helm-debug helm-debug-buffer helm--last-log-file file-directory-p make-directory t expand-file-name "helm-debug-" format-time-string "%Y%m%d" get-buffer-create write-region "%Y%m%d-%H%M%S" nil silent kill-buffer] 7 (#$ . 59600)])
#@52 Open helm log file or buffer of last helm session.
(defalias 'helm-debug-open-last-log #[0 "\203\302!\210\303 \210\304\305!\210\306\305!\207\307    !\210\304\305!\210\306\305!\207" [helm--last-log-file helm-debug-buffer find-file outline-mode view-mode 1 visual-line-mode switch-to-buffer] 2 (#$ . 60260) nil])
#@47 Print error messages in `helm-issued-errors'.
(defalias 'helm-print-error-messages #[0 "\205\301\302\303\304\305!\306#\"\207" [helm-issued-errors message "Helm issued errors: %s" mapconcat identity reverse "\n"] 6 (#$ . 60578)])
#@19 
 
(fn &rest BODY)
(defalias 'with-helm-time-after-update '(macro . #[128 "\300\301!\300\302!\303\304BD\305\306\307\310\311\312\313 EE\314BBBE\315\316\317\320\307\310\311 \312\321EE\322BBBEC\"B\257\207" [cl-gensym "start-time" "time-elapsed" let ((float-time)) add-hook 'helm-after-update-hook lambda nil setq - (float-time) ((keyboard-quit)) unwind-protect append remove-hook 'helm-after-update-hook (float-time) ((keyboard-quit))] 18 (#$ . 60817)]))
#@29 
 
(fn DIRECTORY &rest BODY)
(defalias 'with-helm-default-directory '(macro . #[385 "\300\301\302\303\304DE\305BBDCBB\207" [let default-directory or and file-name-as-directory (default-directory)] 9 (#$ . 61286)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-helm-default-directory lisp-indent-function 2 put edebug-form-spec t] 5)
#@65 Return the local value of `default-directory' in `helm-buffer'.
(defalias 'helm-default-directory #[0 "\301\302\303!\"\207" [helm-buffer buffer-local-value default-directory get-buffer] 4 (#$ . 61654)])
#@72 Execute temporarily BODY as a function for HOOK.
 
(fn HOOK &rest BODY)
(defalias 'with-helm-temp-hook '(macro . #[385 "\300\301!\302\303\304\305\302B\306    \307    DE\310\307    DDFF\311\312\307DE\313BB\314\307DEF\207" [cl-gensym "helm--hook" progn defun nil unwind-protect remove-hook quote fmakunbound push cons (helm--temp-hooks) add-hook] 13 (#$ . 61864)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-helm-temp-hook lisp-indent-function 1 put edebug-form-spec t] 5)
#@56 Execute BODY at end of `helm-update'.
 
(fn &rest BODY)
(defalias 'with-helm-after-update-hook '(macro . #[128 "\300\301BB\207" [with-helm-temp-hook 'helm-after-update-hook] 4 (#$ . 62373)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-helm-after-update-hook lisp-indent-function 0 put edebug-form-spec t] 5)
#@67 Return error when BODY run outside helm context.
 
(fn &rest BODY)
(defalias 'with-helm-alive-p '(macro . #[128 "\300\301\302\300B\303BBBD\207" [progn if helm-alive-p ((error "Running helm command outside of context"))] 6 (#$ . 62715)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-helm-alive-p lisp-indent-function 0 put edebug-form-spec t] 5)
#@92 Execute helm function in BODY displaying `helm-buffer' in separate frame.
 
(fn &rest BODY)
(defalias 'with-helm-in-frame '(macro . #[128 "\300\301BB\207" [progn (helm-set-local-variable 'helm-display-function 'helm-display-buffer-in-own-frame)] 4 (#$ . 63093)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-helm-in-frame edebug-form-spec t function-put lisp-indent-function 0] 4)
#@636 Get the value of ATTRIBUTE-NAME of SRC.
 
If SRC is omitted, use current source.
 
If COMPUTE is non-`nil' compute value of ATTRIBUTE-NAME with
`helm-interpret-value'.  COMPUTE can have also 'ignorefn as value, in
this case `helm-interpret-value' will return a function as value
unchanged, but will eval a symbol which is bound.
 
You can use `setf' to modify value of ATTRIBUTE-NAME unless COMPUTE is
specified, if attribute ATTRIBUTE-NAME is not found in SOURCE `setf'
will create new attribute ATTRIBUTE-NAME with specified value.
You can also use `helm-attrset' to modify ATTRIBUTE-NAME.
 
(fn ATTRIBUTE-NAME &optional SOURCE COMPUTE)
(defalias 'helm-attr #[769 "\206\300 \236\211\205\203\301A#\202\211A\262\207" [helm-get-current-source helm-interpret-value] 9 (#$ . 63507)])
(byte-code "\300\301\302\303#\300\207" [function-put helm-attr gv-expander #[385 "\300\301\302$\207" [gv--defsetter helm-attr #[1026 "\300\301\302\303BBD\304\305\306BBDD\307\310D\311\312\257\313\304\314\304\nE\315\314\301\316\211 E\317BBE EFF\207" [let* src or ((helm-get-current-source)) attr assq (src) cl-assert null nil "`setf' can't set the computed value of attribute `%s'" if setcdr and cons ((cdr src))] 17 "\n\n(fn VAL ATTRIBUTE-NAME &optional SOURCE COMPUTE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4)
#@364 Set the value of ATTRIBUTE-NAME of source SRC to VALUE.
 
If ATTRIBUTE-NAME doesn't exists in source it is created with value VALUE..
If SRC is omitted, use current source.
If operation succeed, return value, otherwise nil.
 
Note that `setf' on `helm-attr' can be used instead of this function.
 
(fn ATTRIBUTE-NAME VALUE &optional (SRC (helm-get-current-source)))
(defalias 'helm-attrset #[642 "\211\203 \211A\262\242\202\300 \203\301\302\303\304G\\D\"\210\211\206%\300 \236\211\2033\211\241\202ABAB\241\205A\266\204\207" [helm-get-current-source signal wrong-number-of-arguments helm-attrset 3] 11 (#$ . 64825)])
#@470 Add new action NAME linked to function FN to SOURCE.
Function FN should be a valid function that takes one arg i.e candidate,
argument NAME is a string that will appear in action menu
and SOURCE should be an existing helm source already loaded.
If INDEX is specified, action is added to the action list at INDEX,
otherwise added at end.
This allows users to add specific actions to an existing source
without modifying source code.
 
(fn NAME FN SOURCE &optional INDEX)
(defalias 'helm-add-action-to-source #[1027 "\300\301\302#BC\303!\203\304BC\262\305\301\203$\306#\202(\307\"#\207" [helm-attr action ignorefn functionp "Default action" helm-attrset helm-append-at-nth append] 12 (#$ . 65471)])
#@155 Delete ACTION-OR-NAME from SOURCE.
ACTION-OR-NAME can either be the name of action or the symbol function
associated to name.
 
(fn ACTION-OR-NAME SOURCE)
(defalias 'helm-delete-action-from-source #[514 "\300\301\302#9\203\303\"\202\304\"\305\301\306\"#\207" [helm-attr action ignorefn rassoc assoc helm-attrset delete] 9 (#$ . 66193)])
#@1177 Add new action NAME linked to function FN to SOURCE.
Action NAME will be available when the current candidate matches PREDICATE.
This function adds an entry in the `action-transformer' attribute
of SOURCE (or creates one if not found).
Function PREDICATE must take one candidate as arg.
Function FN should be a valid function that takes one arg i.e. candidate,
argument NAME is a string that will appear in action menu
and SOURCE should be an existing helm source already loaded.
If INDEX is specified, action is added in action list at INDEX.
Value of INDEX should be always >=1, default to 4.
This allow user to add a specific `action-transformer'
to an existing source without modifying source code.
E.g
Add the action "Byte compile file async" linked to
function 'async-byte-compile-file to source `helm-source-find-files'
only when predicate helm-ff-candidates-lisp-p return non-`nil':
 
(helm-add-action-to-source-if "Byte compile file async"
                              'async-byte-compile-file
                              helm-source-find-files
                              'helm-ff-candidates-lisp-p).
 
(fn NAME FN SOURCE PREDICATE &optional (INDEX 4) TEST-ONLY)
(defalias 'helm-add-action-to-source-if #[1156 "\211\203 \211A\262\242\202\300\211A\262\242\203#\301\302\303\304G\\D\"\210\305\306\307#\305\310\"BC\311\312\313\314\315 \n#\316\"\304\317%\320!\203V\321\306\322BC #\2109\204a\320!\203eC\262\203u\323\324\325C\"\"\202\210\321\310\326\323\324\325C    \"\"\327\330# #\266\204\207" [4 signal wrong-number-of-arguments helm-add-action-to-source-if 6 helm-attr action ignorefn action-transformer make-byte-code 514 "\300!\203\f\303\302\301#\207\207" vconcat vector [helm-append-at-nth] "\n\n(fn ACTIONS CANDIDATE)" functionp helm-attrset "Default action" delq nil append helm-fast-remove-dups :test equal] 19 (#$ . 66550)])
#@902 Set the value of `helm-source-filter' to SOURCES and update.
 
This function sets a filter for helm sources and it may be
called while helm is running. It can be used to toggle
displaying of sources dynamically. For example, additional keys
can be bound into `helm-map' to display only the file-related
results if there are too many matches from other sources and
you're after files only:
 
Shift+F shows only file results from some sources:
 
(define-key helm-map "F" 'helm-my-show-files-only)
 
(defun helm-my-show-files-only ()
  (interactive)
  (helm-set-source-filter '("File Name History"
                                  "Files from Current Directory")))
 
Shift+A shows all results:
 
(define-key helm-map "A" 'helm-my-show-all)
 
(defun helm-my-show-all ()
  (interactive)
  (helm-set-source-filter nil))
 
The -my- part is added to avoid collisions with
existing Helm function names.
 
(fn SOURCES)
(defalias 'helm-set-source-filter #[257 "r\301 q\210\302\303\304\"\305\300!\210\306!\307\310\"\210\311;\205\312!!\262)\207" [helm-source-filter helm-buffer-get helm-get-selection nil t make-local-variable helm--normalize-filter-sources helm-log "helm-source-filter = %S" helm-force-update regexp-quote] 5 (#$ . 68443)])
#@16 
 
(fn SOURCES)
(defalias 'helm--normalize-filter-sources #[257 "\211\300\211:\2036@\2629\203\301\302J\"\202+<\203%\301\302\"\202+;\205+B\262A\262\202\211\237\207" [nil assoc-default name] 7 (#$ . 69678)])
#@205 Set SOURCES during `helm' invocation.
If NO-INIT is non-`nil', skip executing init functions of SOURCES.
If NO-UPDATE is non-`nil', skip executing `helm-update'.
 
(fn SOURCES &optional NO-INIT NO-UPDATE)
(defalias 'helm-set-sources #[769 "rq\210\302!\303\304    \"\210)\204\305\306!\210\211?\205\307 \207" [helm-buffer helm-sources helm-get-sources helm-log "helm-sources = %S" helm-compute-attr-in-sources init helm-update] 6 (#$ . 69912)])
#@318 Return the currently selected item or nil.
 
if BUFFER is nil or unspecified, use helm-buffer as default value.
If FORCE-DISPLAY-PART is non-`nil', return the display string.
If FORCE-DISPLAY-PART value is `withprop' the display string is returned
with its properties.
 
(fn &optional BUFFER FORCE-DISPLAY-PART SOURCE)
(defalias 'helm-get-selection #[768 "\206\262\302!\206\303 ?\205{rq\210\304=\203!\305\202\"\306\204/\307\310    !\311\"\206k\310    !\312    !U?\205AS\"\206G\313 \211\205Y\205Y?\205Y\314\315\"\211\203f\316#\202g\262\266\204\211\317\232?\205x\320\321\"\210\211\266\202)\207" [helm-buffer helm-selection-overlay helm-empty-buffer-p helm-pos-header-line-p withprop buffer-substring buffer-substring-no-properties get-text-property overlay-start helm-realvalue overlay-end helm-get-current-source assoc-default display-to-real helm-apply-functions-from-source "" helm-log "selection = %S"] 13 (#$ . 70366)])
#@159 Return the associated action for the selected candidate.
It is a function symbol (sole action) or list
of (action-display . function).
 
(fn &optional SOURCE)
(defalias 'helm-get-actions-from-current-source #[256 "\300\301 !?\205k\302 \303\304!\211\203b\305\206\303\306\307\310#\311 \312!@\211\307@\"\307\313:\203H@\262\307\"\232\211\262\203HA\262\202,\211\205M\313\266\206\203X\311 @\202^\314\307\211#$\202g\303\306\307\310#\262\262\207" [helm-empty-buffer-p helm-buffer-get helm-get-current-source helm-attr action-transformer helm-apply-functions-from-source action nil ignorefn helm-marked-candidates helm-mklist t helm-get-selection] 16 (#$ . 71326)])
#@86 Return the source for the current selection.
Return nil when `helm-buffer' is empty.
(defalias 'helm-get-current-source #[0 "\206Tr\303 q\210\304`\305\"\206S\306    !b\210\307 \206\310 \211\205Q\212\211b\210\311 )\n\312\313\312:\203O@\262\314\315\"\232\205>\211\262?\211\262\203OA\262\202+\266\204\262)\207" [helm-current-source helm-selection-overlay helm-sources helm-buffer-get get-text-property helm-cur-source overlay-start helm-get-previous-header-pos helm-get-next-header-pos helm-current-line-contents nil t assoc-default name] 9 (#$ . 72019)])
#@81 Return non-`nil' when BUFFER is modified since `helm' was invoked.
 
(fn BUFFER)
(defalias 'helm-buffer-is-modified #[257 "\301!\302!\303\304\305!Q\306\"\206\307\310!U?\311#\210\312\313\"\210\312\314\"\210\207" [helm-tick-hash get-buffer buffer-name "/" helm-attr name gethash 0 buffer-chars-modified-tick puthash helm-log "buffer = %S" "modifiedp = %S"] 10 (#$ . 72596)])
#@70 Check if `helm-current-buffer' is modified since `helm' was invoked.
(defalias 'helm-current-buffer-is-modified #[0 "\301!\207" [helm-current-buffer helm-buffer-is-modified] 2 (#$ . 72989)])
#@397 Execute FUNCTION with ARGS after exiting `helm'.
The action is to call FUNCTION with arguments ARGS.
Unlike `helm-exit-and-execute-action', this can be used
to call non--actions functions with any ARGS or no ARGS at all.
 
Use this on commands invoked from key-bindings, but not
on action functions invoked as action from the action menu,
i.e. functions called with RET.
 
(fn FUNCTION &rest ARGS)
(defalias 'helm-run-after-exit #[385 "\300 \210\301\302\"\210\301\303\"\210\304\305\306\307\310\311\"\312\"\313\314%!\207" [helm-kill-async-processes helm-log "function = %S" "args = %S" helm-exit-and-execute-action make-byte-code 257 "\302\300\301\"\207" vconcat vector [apply] 4 "\n\n(fn CANDIDATE)"] 10 (#$ . 73188)])
#@313 Exit current helm session and execute ACTION.
Argument ACTION is a function called with one arg (candidate)
and part of the actions of current source.
 
Use this on commands invoked from key-bindings, but not
on action functions invoked as action from the action menu,
i.e functions called with RET.
 
(fn ACTION)
(defalias 'helm-exit-and-execute-action #[257 "\306\307\310\311#\211\203/=\204/\312\"\204/\313!\204/<\203'\314!\204/\315\316\317\310C$\210\210\211\320 \2068\321\311\322\303r\323 q\210 )\"\210\f\203i \203i\322\324r\323 q\210)\325r\323 q\210\326 )$\210\327\330\310\331#\210\332 \207" [helm-saved-action helm-saved-selection helm--executing-helm-action helm-echo-input-in-header-line helm-actions-inherit-frame-settings helm--buffer-in-new-frame-p helm-attr action nil t rassq byte-code-function-p functionp cl--assertion-failed (or (eq action actions) (rassq action actions) (byte-code-function-p action) (and (listp action) (functionp action))) "No such action `%s' for this source" helm-get-selection "" helm-set-local-variable helm-buffer-get helm-display-function helm--last-frame-parameters helm--get-frame-parameters run-with-idle-timer 0.5 #[0 "\300\301\302\303\302$\207" [helm-set-local-variable helm-display-function nil helm--last-frame-parameters] 5] helm-exit-minibuffer] 7 (#$ . 73918)])
#@24 
 
(fn &optional FRAME)
(defalias 'helm--get-frame-parameters #[256 "\301!\302\211:\203#@\262\236\211\203\211B\262\210A\262\202\211\237\207" [helm--frame-default-attributes frame-parameters nil] 8 (#$ . 75257)])
(byte-code "\300\301\302\"\210\303\301\302\304#\210\300\305\306\"\210\303\305\306\304#\207" [defalias helm-run-after-quit helm-run-after-exit make-obsolete "1.7.7" helm-quit-and-execute-action helm-exit-and-execute-action] 4)
#@401 Interpret VALUE as variable, function or literal and return it.
If VALUE is a function, call it with no arguments and return the value
unless COMPUTE value is 'ignorefn.
If SOURCE compute VALUE for this source.
If VALUE is a variable, return the value.
If VALUE is a symbol, but it is not a function or a variable, cause an error.
Otherwise, return VALUE itself.
 
(fn VALUE &optional SOURCE COMPUTE)
(defalias 'helm-interpret-value #[769 "\203\300!\203\211\301=\204\302\"\207\300!\203$\211\301=\204$ \2079\2032\303!\2032J\2079\203A\300!\204A\304\305!\207\207" [functionp ignorefn helm-apply-functions-from-source boundp error "helm-interpret-value: Symbol must be a function or a variable"] 6 (#$ . 75717)])
#@459 Bind each pair in ARGS locally to `helm-buffer'.
 
Use this to set local vars before calling helm.
 
When used from an init or update function
(i.e when `helm-force-update' is running) the variables are set
using `make-local-variable' within the `helm-buffer'.
 
Usage: helm-set-local-variable ([VAR VALUE]...)
Just like `setq' except that the vars are not set sequentially.
IOW Don't use VALUE of previous VAR to set the VALUE of next VAR.
 
(fn VAR VALUE ...)
(defalias 'helm-set-local-variable #[128 "\203%r\302 q\210\211\211:\203 \303@!A@L\210\211AA\262\202\n\304\262)\207\305\304:\203?@A@BB\262AA\262\202(\211\237\266\202    \"\211\207" [helm--force-updating-p helm--local-variables helm-buffer-get make-local-variable nil append] 6 (#$ . 76456)])
(defalias 'helm--set-local-variables-internal #[0 "\301\211\211:\203.@\262\211A\262\242\262>\204!\302!L\210\211C\244\262A\262\202\301\211\207" [helm--local-variables nil make-local-variable] 7])
#@114 Check if BUFFER have candidates.
Default value for BUFFER is `helm-buffer'.
 
(fn &optional (BUFFER helm-buffer))
(defalias 'helm-empty-buffer-p #[128 "\211\203 \211A\262\242\202\203\301\302\303GTD\"\210\304\205#\305!!\306U\207" [helm-buffer signal wrong-number-of-arguments helm-empty-buffer-p buffer-size get-buffer 0] 6 (#$ . 77443)])
#@159 Check if current source contains candidates.
This could happen when for example the last element of a source
was deleted and the candidates list not updated.
(defalias 'helm-empty-source-p #[0 "\300 \205<\301\300 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313 \2069\314 \2059\315 \316 =\2059\212\317y\210\320 )\2069o*\262\207" [helm-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-empty-buffer-p helm-end-of-source-p point-at-bol point-at-eol -1 helm-pos-header-line-p] 7 (#$ . 77800)])
#@734 From SOURCE apply FUNCTIONS on ARGS.
 
This function is used to process filter functions, when filter is a
`filtered-candidate-transformer', we pass to ARGS candidates+source
whereas when the filter is `candidate-transformer' we pass to ARGS
candidates only.
This function is used also to process functions called with no args,
e.g. init functions, in this case it is called without ARGS.
See `helm-process-filtered-candidate-transformer'
`helm-compute-attr-in-sources' and 
`helm-process-candidate-transformer'.
 
Arg FUNCTIONS is either a symbol or a list of functions, each function being
applied on ARGS and called on the result of the precedent function.
Return the result of last function call.
 
(fn SOURCE FUNCTIONS &rest ARGS)
(defalias 'helm-apply-functions-from-source #[642 "\302\303\"\304!\203C\202\305\306    \"\210\305\307\"\210\305\310\"\210\311\311:\203N@\262\312\"\262\203GA\203G\240\210A\262\202(\266\203*\207" [helm-current-source helm--source-name assoc-default name functionp helm-log "helm--source-name = %S" "functions = %S" "args = %S" nil apply] 12 (#$ . 78427)])
(byte-code "\300\301\302\"\210\303\301\302\304#\207" [defalias helm-funcall-with-source helm-apply-functions-from-source make-obsolete "2.9.7"] 4)
#@94 Call the associated function(s) to ATTR for each source if any.
 
(fn ATTR &optional SOURCES)
(defalias 'helm-compute-attr-in-sources #[513 "\301!\206\302\303\304 !!\205r\304 q\210)\211\2058\211\211\2056\211@\305\"\211\203.\306\"\210\210A\266\202\202\262\207" [helm-sources helm-get-sources buffer-live-p get-buffer helm-buffer-get assoc-default helm-apply-functions-from-source] 9 (#$ . 79701)])
(byte-code "\300\301\302\"\210\303\301\302\304#\207" [defalias helm-funcall-foreach helm-compute-attr-in-sources make-obsolete "2.9.7"] 4)
#@74 If SOURCES is only one source, make a list of one element.
 
(fn SOURCES)
(defalias 'helm-normalize-sources #[257 "\211\203    \2119\204\211<\203\300\236\203\211C\207\207" [name] 3 (#$ . 80259)])
#@163 Return candidates number in `helm-buffer'.
If IN-CURRENT-SOURCE is provided return number of candidates of current source
only.
 
(fn &optional IN-CURRENT-SOURCE)
(defalias 'helm-get-candidate-number #[256 "r\301 q\210\302 \204\303 \203\304\202\211\212\211\205\305 \211\203$\211b\210\202'eb\210\210\306y\210\307 \203\\\306\203C\212\310y\210\311 \206?m)\202Dm\204V\312\313\314#\203V\211T\262\2021\211\262\202\210\304\203j\311 \204\205m\202km\204\205\315 \316 =\204\311 \204\211T\262\306y\210\202]\211\262))\207" [helm-candidate-separator helm-buffer-get helm-empty-buffer-p helm-empty-source-p 0 helm-get-previous-header-pos 1 helm-pos-multiline-p 2 helm-pos-header-line-p search-forward nil t point-at-bol point-at-eol] 6 (#$ . 80466)])
#@77 If an error occurs in execution of BODY, safely quit helm.
 
(fn &rest BODY)
(defalias 'with-helm-quittable '(macro . #[128 "\300\301\302\303BB\304BBB\207" [condition-case _v let (inhibit-quit) ((quit (setq quit-flag t) (setq helm-quit t) (exit-minibuffer) (keyboard-quit) (eval '(ignore nil))))] 6 (#$ . 81241)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-helm-quittable lisp-indent-function 0 put edebug-form-spec t] 5)
(defconst helm-argument-keys '(:sources :input :prompt :resume :preselect :buffer :keymap :default :history))
#@2864 Main function to execute helm sources.
 
PLIST is a list like
 
(:key1 val1 :key2 val2 ...)
 
 or
 
(&optional sources input prompt resume preselect
            buffer keymap default history allow-nest).
 
** Keywords
 
Keywords supported:
 
- :sources
- :input
- :prompt
- :resume
- :preselect
- :buffer
- :keymap
- :default
- :history
- :allow-nest
 
Extra LOCAL-VARS keywords are supported, see the "** Other
keywords" section below.
 
Basic keywords are the following:
 
*** :sources
 
One of the following:
 
- List of sources
- Symbol whose value is a list of sources
- Alist representing a Helm source.
  - In this case the source has no name and is referenced in
    `helm-sources' as a whole alist.
 
*** :input
 
Initial input of minibuffer (temporary value of `helm-pattern')
 
*** :prompt
 
Minibuffer prompt. Default value is `helm--prompt'.
 
*** :resume
 
If t, allow resumption of the previous session of this Helm
command, skipping initialization.
 
If 'noresume, this instance of `helm' cannot be resumed.
 
*** :preselect
 
Initially selected candidate (string or regexp).
 
*** :buffer
 
Buffer name for this Helm session. `helm-buffer' will take this value.
 
*** :keymap
 
[Obsolete]
 
Keymap used at the start of this Helm session.
 
It is overridden by keymaps specified in sources, and is kept
only for backward compatibility.
 
Keymaps should be specified in sources using the :keymap slot
instead. See `helm-source'.
 
This keymap is not restored by `helm-resume'.
 
*** :default
 
Default value inserted into the minibuffer with
\<minibuffer-local-map>\[next-history-element].
 
It can be a string or a list of strings, in this case
\<minibuffer-local-map>\[next-history-element] cycles through
the list items, starting with the first.
 
If nil, `thing-at-point' is used.
 
If `helm--maybe-use-default-as-input' is non-`nil', display is
updated using this value, unless :input is specified, in which
case that value is used instead.
 
*** :history
 
Minibuffer input, by default, is pushed to `minibuffer-history'.
 
When an argument HISTORY is provided, input is pushed to
HISTORY. HISTORY should be a valid symbol.
 
*** :allow-nest
 
Allow running this Helm command in a running Helm session.
 
** Other keywords
 
Other keywords are interpreted as local variables of this Helm
session. The `helm-' prefix can be omitted. For example,
 
(helm :sources 'helm-source-buffers-list
       :buffer "*helm buffers*"
       :candidate-number-limit 10)
 
starts a Helm session with the variable
`helm-candidate-number-limit' set to 10.
 
** Backward compatibility
 
For backward compatibility, positional parameters are
supported:
 
(helm sources input prompt resume preselect
       buffer keymap default history allow-nest)
 
However, the use of non-keyword args is deprecated.
 
(fn &key SOURCES INPUT PROMPT RESUME PRESELECT BUFFER KEYMAP DEFAULT HISTORY ALLOW-NEST OTHER-LOCAL-VARS)
(defalias 'helm #[128 "\203 \303\304\"\204\203\305>\203\306\202%\307@!\203$\310\202%\311\203I\211\310=\203I\312 \203:\313\314!\202qr\315 q\210\316\317!\320 \210)\202q\307@!\203m\321    \322!\"\323\324\325\326\327\330\331    !\332\"\333\334%\n\"\"\202q\323\"\207" [helm-alive-p helm--local-variables helm-argument-keys plist-get :allow-nest allow-nest helm--nest keywordp helm helm-internal helm--alive-p error "Error: Trying to run helm within a running helm session" helm-buffer-get message "Aborting an helm session running in background" helm-keyboard-quit append helm-parse-keys apply mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [plist-get] 4 "\n\n(fn KEY)"] 11 (#$ . 81810)])
#@177 [Internal] Check if `helm' is alive.
An `helm' session is considered alive if `helm-alive-p' value is
non-`nil', the `helm-buffer' is visible, and cursor is in the
minibuffer.
(defalias 'helm--alive-p #[0 "\205\301\302 \303\"\205\304\305 !\205\306p!\207" [helm-alive-p get-buffer-window helm-buffer-get visible minibuffer-window-active-p minibuffer-window minibufferp] 3 (#$ . 85400)])
#@600 Parse the KEYS arguments of `helm'.
Return only those keys not in `helm-argument-keys', prefix them
with "helm", and then convert them to an alist. This allows
adding arguments that are not part of `helm-argument-keys', but
are valid helm variables nevertheless. For
example, :candidate-number-limit is bound to
`helm-candidate-number-limit' in the source.
 
  (helm-parse-keys '(:sources ((name . "test")
                               (candidates . (a b c)))
                     :buffer "toto"
                     :candidate-number-limit 4))
  ==> ((helm-candidate-number-limit . 4)).
 
(fn KEYS)
(defalias 'helm-parse-keys #[257 "\211\301\211\211\211\211\211:\203N\262\211A\262\242\262@\262\302!\303\301O\262\304\305\306\"\2032\2025\307P!\262>\204EBB\262AA\262\202\211\237\207" [helm-argument-keys nil symbol-name 1 intern string-match "^helm-" "helm-"] 12 (#$ . 85800)])
#@290 The internal helm function called by `helm'.
For ANY-SOURCES ANY-INPUT ANY-PROMPT ANY-RESUME ANY-PRESELECT ANY-BUFFER and
ANY-KEYMAP ANY-DEFAULT ANY-HISTORY See `helm'.
 
(fn &optional ANY-SOURCES ANY-INPUT ANY-PROMPT ANY-RESUME ANY-PRESELECT ANY-BUFFER ANY-KEYMAP ANY-DEFAULT ANY-HISTORY)
(defalias 'helm-internal #[2304 "\204\306 \307\310!\203%\310\311\312\313#\210\310\314\312\313#\210\310\315\312\313#\210\310\316\317\320#\210\321\322\323\324\325\"P!\210\321\326\"\210\321\327\"\210\321\330\"\210\321\331\"\210\321\332\"\210\321\333\"\210\206T\334\335\336\211\211 \f?\205\212\f\206\212\337!\336\335\336:\203\210@\262 >\211\262?\211\262\203\210A\262\202k\266\20389:;<\340\216\3411\336\211\211\211\206\246==>?@A\342    \f$\210B\204\313\343=\"\210\344\345 !\210C\204\324\346\347!\210\350\351\352\"\210\350\353\352\"\210\350\351\354\"\210\321\355!\210\356\216\357        &\210)>?\205\360 \321\361\323\324\362\"P!\210-0\202%\363 \210\364\365!\210\321\366\323\367\362\"P!\210\336\262.\207" [helm--nested helm-initial-frame helm--prompt helm-input-method-verbose-flag helm--maybe-use-default-as-input helm-sources-using-default-as-input selected-frame fboundp advice-add tramp-read-passwd :around helm--suspend-read-passwd ange-ftp-get-passwd epa-passphrase-callback-function linum-on :override helm--advice-linum-on helm-log "[Start session] " make-string 41 43 "any-prompt = %S" "any-preselect = %S" "any-buffer = %S" "any-keymap = %S" "any-default = %S" "any-history = %S" "pattern: " t nil helm-normalize-sources #[0 "\305\306!\203\306\307\310\"\210\306\311\310\"\210\306\312\310\"\210\306\313\314\"\210\315\316\317\211\"\210\320\321!\210\317\211\317\322\317\323 \207" [helm-alive-p helm--force-updating-p helm--buffer-in-new-frame-p helm-pattern helm--ignore-errors fboundp advice-remove tramp-read-passwd helm--suspend-read-passwd ange-ftp-get-passwd epa-passphrase-callback-function linum-on helm--advice-linum-on helm-log "helm-alive-p = %S" nil helm--remap-mouse-mode -1 "" helm-log-save-maybe] 5] (debug quit) helm-initialize helm-display-buffer select-window helm-window helm--remap-mouse-mode 1 add-hook post-command-hook helm--maybe-update-keymap helm-after-update-hook helm--update-header-line "show prompt" #[0 "\300 \207" [helm-cleanup] 1] helm-read-pattern-maybe helm-execute-selection-action "[End session] " 45 helm-restore-position-on-quit helm-log-run-hook helm-quit-hook "[End session (quit)] " 34 input-method-verbose-flag mode-line-in-non-selected-windows focus-follows-mouse mouse-autoselect-window non-essential helm-buffer helm-quit helm-in-persistent-action helm-current-source helm--source-name helm-execute-action-at-once-if-one helm-allow-mouse] 20 (#$ . 86714)])
(defalias 'helm--advice-linum-on #[0 "\300 \206\301\302\303 \"\206\304 \205\305\306\307\"??\205\310\311!\207" [minibufferp string-match "\\`\\*helm" buffer-name daemonp frame-parameter nil client linum-mode 1] 3])
#@186 Resume a previous `helm' session.
Call with a prefix arg to choose among existing helm
buffers (sessions). When calling from lisp, specify a buffer-name
as a string with ARG.
 
(fn ARG)
(defalias 'helm-resume #[257 "\306\211\211\307\300!\306C\203);\203\"\310\311!!\203\"\262\202,\312 \262\202,    \262\2047\313\314\315\306\211$\210\211\316\317\311!\"\240\210rq\210\306)\316\300\311!\"\316\320\311!\"\262\306\211\321 !\204eprq\210%)\211\203x\211@q\210\211A\262\210\214\203\203\322\323\"\210\203\215\324!\206\217\325\326\327\330\331!\332\"\333$\216\334\335\242\336\316\337\311 !\"\340\316\341\311 !\"\342\343\344&\n,\207" [helm-full-frame helm-last-buffer cursor-type helm-saved-selection helm-saved-action helm-current-buffer nil default-value bufferp get-buffer helm-resume-select-buffer cl--assertion-failed any-buffer "helm-resume: No helm buffers found to resume" buffer-local-value helm-sources default-directory buffer-live-p apply narrow-to-region file-name-as-directory make-byte-code 0 "\301\302\300\242\"\207" vconcat vector [run-hook-with-args helm-resume-after-hook] 3 helm :sources :input helm-input-local :prompt helm--prompt :resume t :buffer helm--current-buffer-narrowed] 18 (#$ . 89714) "P"])
#@63 Resume previous helm session within a running helm.
 
(fn ARG)
(defalias 'helm-resume-previous-session-after-quit #[257 "\203    GV\203\302\303\304\305\306\307!\310\"\311$!\207\312\313!\207\314\315!\207" [helm-alive-p helm-buffers helm-run-after-exit make-byte-code 0 "\302\300    8!\207" vconcat vector [helm-buffers helm-resume] 3 message "No previous helm sessions available for resuming!" error "Running helm command outside of context"] 8 (#$ . 90978) "p"])
(put 'helm-resume-previous-session-after-quit 'helm-only t)
#@50 List resumable helm buffers within running helm.
(defalias 'helm-resume-list-buffers-after-quit #[0 "\203    G\302V\203\303\304!\207\305\306!\207\307\310!\207" [helm-alive-p helm-buffers 0 helm-run-after-exit #[0 "\300\301!\207" [helm-resume t] 2] message "No previous helm sessions available for resuming!" error "Running helm command outside of context"] 2 (#$ . 91508) nil])
(put 'helm-resume-list-buffers-after-quit 'helm-only t)
#@66 Whether current helm session is resumed or not.
 
(fn ANY-RESUME)
(defalias 'helm-resume-p #[257 "\211\300=\207" [t] 3 (#$ . 91950)])
#@112 Select an `helm-buffer' in `helm-buffers' list to resume a helm session.
Return nil if no `helm-buffer' found.
(defalias 'helm-resume-select-buffer #[0 "\205\301\302\303\304\305\306$\307\310\311\312&\206\313 \207" [helm-buffers helm :sources helm-make-source "Resume helm buffer" helm-source-sync :candidates :resume noresume :buffer "*helm resume*" keyboard-quit] 7 (#$ . 92090)])
#@70 Cycle in `helm-buffers' list and resume when waiting more than 1.2s.
(defalias 'helm-cycle-resume #[0 "\203    \204\304\305\306\307\211$\210\n\310=\203 \204 \311    \312\313$\314 \207" [helm-buffers helm-last-buffer last-command helm--cycle-resume-iterator cl--assertion-failed (and helm-buffers helm-last-buffer) "No helm buffers to resume" nil helm-cycle-resume helm-iter-sub-next-circular :test equal helm--resume-or-iter] 5 (#$ . 92485) nil])
#@28 
 
(fn &optional FROM-HELM)
(defalias 'helm--resume-or-iter #[256 "\303\304\"\210\305    !\203\211\203\306\307!\207\310!\207\211?\205$\303\304\311\n!\211\"\207" [helm-last-buffer helm-cycle-resume-delay helm--cycle-resume-iterator message "Resuming helm buffer `%s'" sit-for helm-run-after-exit #[0 "\301!\207" [helm-last-buffer helm-resume] 2] helm-resume helm-iter-next] 5 (#$ . 92942)])
#@71 Same as `helm-cycle-resume' but intended to be called only from helm.
(defalias 'helm-run-cycle-resume #[0 "A\205    \304=\203\n\204\305 \306\307$\310\n!\311\312!\207" [helm-buffers last-command helm--cycle-resume-iterator helm-last-buffer helm-run-cycle-resume helm-iter-sub-next-circular :test equal helm-iter-next helm--resume-or-iter from-helm] 5 (#$ . 93343) nil])
(put 'helm-run-cycle-resume 'helm-only t)
#@142 Simplified `helm' interface with other `helm-buffer'.
Call `helm' only with ANY-SOURCES and ANY-BUFFER as args.
 
(fn ANY-SOURCES ANY-BUFFER)
(defalias 'helm-other-buffer #[514 "\300\301\302$\207" [helm :sources :buffer] 7 (#$ . 93769)])
#@283 [internal]Allows calling `helm' within a running helm session.
 
Arguments SAME-AS-HELM are the same as `helm'.
 
Don't use this directly, use instead `helm' with the keyword
:allow-nest.
 
(fn &key SOURCES INPUT PROMPT RESUME PRESELECT BUFFER KEYMAP DEFAULT HISTORY OTHER-LOCAL-VARS)
(defalias 'helm--nest #[128 "\306\307 !r\310\311\312\313\314!\315\"\316$\216\317@\320\"\210    \n \f \321 \322\323\321\"\210\310\311\324\313\314\f\f\f\f\f\f\f\f&\325\"\326$\216\327\211\211\330 \331\"\206X\332 8\206X\333\321!\"#\327\334\335 \".\266\210*\207" [helm-current-buffer helm-buffer helm--prompt helm-sources helm--in-fuzzy helm--buffer-in-new-frame-p internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord t helm-set-local-variable helm-full-frame "r\301q\210\303\310\305 \311!\301\"\310#\302$\304%\312\"!\210\313 \204*\314\311!\210\306&\310'\300(\307)\315\316!\203Q\316\317\320\321#\210\316\322\320\321#\210\316\323\320\321#\210\202Y\324\317!\210\324\322!\210*\204b\325\326!\210\310\311\310:\203\204@\262\327>\211\262?\211\262\203\204A\262\202g\266\203\204\223\330\331\332\"\210\330\331\333\"\210\334\335 !)\207" [nil t helm-initialize-overlays helm-empty-buffer-p helm-mark-current-line fboundp advice-add tramp-read-passwd :around helm--suspend-read-passwd ange-ftp-get-passwd epa-passphrase-callback-function ad-activate helm--remap-mouse-mode 1 (helm--maybe-update-keymap helm--update-header-line) add-hook post-command-hook helm--maybe-update-keymap helm--update-header-line helm-display-mode-line helm-get-current-source helm-sources helm--nested helm--buffer-in-new-frame-p helm-alive-p helm-buffer helm-full-frame helm--prompt helm--in-fuzzy helm-last-frame-or-window-configuration cursor-type helm-current-buffer helm-onewindow-p helm-allow-mouse] 6 nil cl-getf :buffer 5 "*Helm*" apply helm helm-last-frame-or-window-configuration helm-onewindow-p helm--nested enable-recursive-minibuffers helm-pattern helm-current-position] 23 (#$ . 94015)])
#@134 Save or restore current position in `helm-current-buffer'.
Argument SAVE-OR-RESTORE is either save or restore.
 
(fn SAVE-OR-RESTORE)
(defalias 'helm-current-position #[257 "\211\302\267\2020\303\304`\305 B\"\210`\305 B\211\207\306    \307\"\2051\303\310\311p!#\210@b\210\312\313 A\314#\207\315\207" [helm-current-position helm-current-buffer #s(hash-table size 2 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (save 6 restore 21)) helm-log "Save position at %S" window-start get-buffer-window visible "Restore position at  %S in buffer %s" buffer-name set-window-start selected-window t nil] 6 (#$ . 96135)])
#@203 Save or restore last frame or window configuration.
Argument SAVE-OR-RESTORE is either save or restore of window or
frame configuration as per `helm-save-configuration-functions'.
 
(fn SAVE-OR-RESTORE)
(defalias 'helm-frame-or-window-configuration #[257 "\304\305\"\210\306\307    \"\211\310\267\202GA \211\202H@\n!\210\311 !\203(\312 \202*\313 \314K\315\316\317\320\321!\322\"\323$\216\314\324M\210\325!)\266\203\202H\326)\207" [helm-save-configuration-functions window-persistent-parameters helm-last-frame-or-window-configuration helm-current-buffer helm-log "helm-save-configuration-functions = %S" append ((no-other-window . t)) #s(hash-table size 2 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (save 16 restore 24)) minibufferp selected-frame last-nonminibuffer-frame x-focus-frame make-byte-code 0 "\301\300M\207" vconcat vector [x-focus-frame] 2 ignore select-frame-set-input-focus nil] 10 (#$ . 96772)])
#@446 Default function to split windows before displaying `helm-buffer'.
 
It is used as default value for
`helm-split-window-preferred-function' which is then the let-bounded
value of `split-window-preferred-function' in `helm-display-buffer'.
When `helm-display-function' which default to
`helm-default-display-buffer' is called from `helm-display-buffer' the
value of `split-window-preferred-function' will be used by `display-buffer'.
 
(fn WINDOW)
(defalias 'helm-split-window-default-fn #[257 "\304\305\306!\203\211\307    !\204\211\310\311!\204\n\203+\312\313 \304 \314=\203&\315\202' #\202\214 \316\267\202\317\320!\206\214\317\321!\206\214\313 \202\214\317\321!\206\214\317\320!\206\214\313 \202\214\317\322!\206\214\317\315!\206\214\313 \202\214\317\315!\206\214\317\322!\206\214\313 \202\214\313 \202\214\323 \202\214\324 \206\214\313 \202\214\325!)\207" [split-width-threshold helm-current-buffer helm-split-window-inside-p helm-split-window-default-side nil fboundp window-in-direction minibufferp one-window-p t split-window selected-window other below #s(hash-table size 6 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 49 above 66 right 83 below 100 same 117 other 122)) helm-window-in-direction left above right other-window-for-scrolling window-next-sibling split-window-sensibly] 6 (#$ . 97723)])
#@81 Same as `window-in-direction' but check if window is dedicated.
 
(fn DIRECTION)
(defalias 'helm-window-in-direction #[257 "\300!\211\205\301!?\205\211\207" [window-in-direction window-dedicated-p] 4 (#$ . 99086)])
#@413 Decide which display function use according to `helm-commands-using-frame'.
 
The `helm-display-function' buffer local value takes precedence on
`helm-commands-using-frame'.
If `helm-initial-frame' has no minibuffer, use
`helm-display-buffer-in-own-frame' function.
Fallback to global value of `helm-display-function' when no local
value found and current command is not in `helm-commands-using-frame'.
 
(fn COM)
(defalias 'helm-resolve-display-function #[257 "r\305 q\210)\206,\211    >\204'\n\203  \204 \306 G\307V\204'\f\310 \235\204)\311\207\312\300!\207" [helm-display-function helm-commands-using-frame helm-use-frame-when-more-than-two-windows helm--nested helm-initial-frame helm-buffer-get window-list 2 minibuffer-frame-list helm-display-buffer-in-own-frame default-value] 3 (#$ . 99313)])
#@190 Display BUFFER.
 
The function used to display `helm-buffer' by calling
`helm-display-function' which split window with
`helm-split-window-preferred-function'.
 
(fn BUFFER &optional RESUME)
(defalias 'helm-display-buffer #[513 "    \204%\n\203% \306=\203\306\202& \307=\203\307\202&\f\206& \202& rq\210\310 \2034\311 \2026!)\211\312!\206L \205L\"r\313 q\210\314\315!\210 )\316\317!\203g\320 \210*\207" [helm-split-window-preferred-function helm-full-frame helm-reuse-last-window-split-state helm-split-window-default-side helm--window-side-state helm-actions-inherit-frame-settings same other helm-resolve-display-function helm-this-command helm-resume-p helm-buffer-get make-local-variable helm-display-function one-window-p t helm-prevent-switching-other-window this-command split-window-preferred-function helm--executing-helm-action helm-onewindow-p helm-prevent-escaping-from-minibuffer] 9 (#$ . 100123)])
#@145 Allow setting `no-other-window' parameter for all windows.
Arg ENABLE is the value of `no-other-window' window property.
 
(fn &key (ENABLED t))
(defalias 'helm-prevent-switching-other-window #[128 "\300\301\"\206\302A@\211\2035\211@\303>\203\211AA\262\202 \304>A@\203,\305\262\202 \306\307@\"\210\202 \210\310\311\312\313\314\315!\316\"\317\320%\321\"\207" [plist-member :enabled (nil t) (:enabled :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:enabled)" walk-windows make-byte-code 257 "\301!?\205\f\302\303\300#\207" vconcat vector [window-dedicated-p set-window-parameter no-other-window] 5 "\n\n(fn W)" 0] 9 (#$ . 101072)])
#@261 Default function to display `helm-buffer' BUFFER.
 
It is the default value of `helm-display-function'
It uses `switch-to-buffer' or `display-buffer' depending on the
value of `helm-full-frame' or `helm-split-window-default-side'.
 
(fn BUFFER &optional RESUME)
(defalias 'helm-default-display-buffer #[513 "\306\307\310\311!\"\204    \312=\203&\313\314!\203&\315\n!\204 \316 \210\317!\202X \204.\f\203A    \312=\204A\315\n!\204A \204A\316 \210\320\321\322B\323BD\"B\"\210\324\325!)\207" [pop-up-frames helm-split-window-default-side helm-current-buffer helm-always-two-windows helm-autoresize-mode helm-split-window-inside-p nil buffer-local-value helm-full-frame get-buffer same one-window-p t minibufferp delete-other-windows switch-to-buffer display-buffer append window-height window-width helm-log-run-hook helm-window-configuration-hook helm-default-display-buffer-functions helm-default-display-buffer-alist helm-display-buffer-default-height helm-display-buffer-default-width] 10 (#$ . 101761)])
#@377 Display helm buffer BUFFER in a separate frame.
 
Function suitable for `helm-display-function',
`helm-completion-in-region-display-function'
and/or `helm-show-completion-default-display-function'.
 
See `helm-display-buffer-height' and `helm-display-buffer-width' to
configure frame size.
 
Note that this feature is available only with emacs-25+.
 
(fn BUFFER &optional RESUME)
(defalias 'helm-display-buffer-in-own-frame #[513 "\306\307!\203\f\306\310!\204\311\312\313\314\211$\210\315 \204\316!\207\317\320 \321    !\322\245\310 \nG\323 \2039\324\325\326    !\"\202\231\327 B\330\fB\331\332@\333 `\334 ZW\203W`\334 Z\202Y_ZB\335    A    V\203z\336\nA\f\322\\_\337 \236AA#\202\200    A\\B\340\341 B\342\343\344\3451?B\346BBBBBBBBBBB2\31434\204\275\204\275\347\350\351\"\210r\352 q\210\353\354!\210AV?,)\3552\"\210\204\3241\203\324\3565 \f#\210*\266\357\360!\207" [helm--buffer-in-new-frame-p x-display-name helm--prompt helm-display-buffer-width helm-display-buffer-height helm-use-undecorated-frame-option fboundp window-absolute-pixel-edges frame-geometry cl--assertion-failed (and (fboundp 'window-absolute-pixel-edges) (fboundp 'frame-geometry)) "Helm buffer in own frame is only available starting at emacs-25+" nil display-graphic-p helm-default-display-buffer t window-absolute-pixel-position display-pixel-height 2 frame-char-height buffer-local-value helm--last-frame-parameters get-buffer width height (tool-bar-lines . 0) left frame-char-width point-at-bol top - title-bar-size (title . "Helm") undecorated (vertical-scroll-bars) (menu-bar-lines . 0) (fullscreen) visibility ((minibuffer . t)) add-hook helm-minibuffer-set-up-hook helm-hide-minibuffer-maybe helm-buffer-get make-local-variable helm-echo-input-in-header-line helm-display-buffer-popup-frame set-frame-size helm-log-run-hook helm-window-configuration-hook helm-display-buffer-reuse-frame default-frame-alist display-buffer-alist helm--executing-helm-action helm-popup-frame] 19 (#$ . 102788)])
#@27 
 
(fn BUFFER FRAME-ALIST)
(defalias 'helm-display-buffer-popup-frame #[514 "\203/\302\303\"A\302\304\"A    \203\305    !\204\306!\307    !\210\310    #\210\311!\210\312    \313\"\207    \203=\305    !\203=\314    !\210\315\316\"\207" [helm-display-buffer-reuse-frame helm-popup-frame assoc left top frame-live-p make-frame select-frame set-frame-position switch-to-buffer select-frame-set-input-focus t delete-frame display-buffer (display-buffer-pop-up-frame)] 8 (#$ . 104797)])
#@14 
 
(fn FRAME)
(defalias 'helm--delete-frame-function #[257 "\205 \302    \"\205 \303 \207" [helm-alive-p helm-buffer get-buffer-window helm-keyboard-quit] 4 (#$ . 105275)])
(add-hook 'delete-frame-functions 'helm--delete-frame-function)
#@87 Transform each element of SOURCES in alist.
Returns the resulting list.
 
(fn SOURCES)
(defalias 'helm-get-sources #[257 "\211\205\n\300\301\302!\"\207" [mapcar #[257 "\211<\203\207\211J\207" [] 2 "\n\n(fn SOURCE)"] helm-normalize-sources] 5 (#$ . 105518)])
#@157 Start initialization of `helm' session.
For ANY-RESUME ANY-INPUT ANY-DEFAULT and ANY-SOURCES See `helm'.
 
(fn ANY-RESUME ANY-INPUT ANY-DEFAULT ANY-SOURCES)
(defalias 'helm-initialize #[1028 "\306\307#\210\310\311!\210\312!\211\313\211\211\314\313:\203G@\262\315!\262\316!\262\317>\2042\320>\203<\314\262\313\211\262\202=\314\203GA\262\202\266\205\306\321\"\210\322\323\"\210\324\311!\210\325!\203f\326\327 !\210\202k\330\"\210\314\331=\204z\332\n\333\"\210\n\203\205\334 \210\325!\203\217\335\336!\210\306\337!\207" [helm--in-fuzzy helm-alive-p helm-buffer helm-last-buffer helm-input helm-pattern helm-log "start initialization: any-resume=%S any-input=%S" helm-frame-or-window-configuration save helm-get-sources nil t helm-match-functions helm-search-functions helm-fuzzy-match helm-fuzzy-search "sources = %S" helm-set-local-variable helm-sources helm-current-position helm-resume-p helm-initialize-overlays helm-buffer-get helm-initial-setup noresume helm--push-and-remove-dups helm-buffers helm--fuzzy-match-maybe-set-pattern helm-compute-attr-in-sources resume "end initialization"] 13 (#$ . 105786)])
#@50 Initialize helm overlays in BUFFER.
 
(fn BUFFER)
(defalias 'helm-initialize-overlays #[257 "\301\302!\210\203\303ee\304!$\207\305ee\304!#\306\307\310#\210\306\311\312#\207" [helm-selection-overlay helm-log "overlay setup" move-overlay get-buffer make-overlay overlay-put face helm-selection priority 1] 7 (#$ . 106944)])
#@58 Restore position in `helm-current-buffer' when quitting.
(defalias 'helm-restore-position-on-quit #[0 "\300\301!\207" [helm-current-position restore] 2 (#$ . 107280)])
#@75 Move ELM of SYM value on top and set SYM to this new value.
 
(fn ELM SYM)
(defalias 'helm--push-and-remove-dups #[514 "\211\300J\"BL\207" [delete] 7 (#$ . 107454)])
#@258 [internal] Return `current-buffer' BEFORE `helm-buffer' is initialized.
Note that it returns the minibuffer in use after helm has started
and is intended for `helm-initial-setup'. To get the buffer where
helm was started, use `helm-current-buffer' instead.
(defalias 'helm--current-buffer #[0 "\300\301 !\203\f\302\303 !\207\302\304\301 !r\305\306\307\310\311!\312\"\313$\216\314@\315\"\210\316 *\262!\207" [minibuffer-window-active-p minibuffer-window window-buffer active-minibuffer-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord minibuffer-selected-window] 8 (#$ . 107629)])
#@130 Run after and before init hooks local to source.
See :after-init-hook and :before-init-hook in `helm-source'.
 
(fn HOOK SOURCES)
(defalias 'helm--run-init-hooks #[514 "\300\301\"\203 \302\202\300\303\"\203\304\202\305\306\307#\205\310\311!\310\211:\203T@\262\312\"\262\211\203I\2119\204IL\210\313!\210\202M\313!\210A\262\202%\310\207" [eql before-init-hook "h-before-init-hook" after-init-hook "h-after-init-hook" error "cl-ecase failed: %s, %s" (before-init-hook after-init-hook) nil cl-gensym assoc-default helm-log-run-hook] 10 (#$ . 108328)])
#@80 Initialize helm settings and set up the helm buffer.
 
(fn ANY-DEFAULT SOURCES)
(defalias 'helm-initial-setup #[514 "\306\307!\210\310\311\"\210\312\300\"\210\313\211\313\211\314 \"#\313\211$%\313&r\315 !\2031 \2064p\211q\210deZ\316 U?\205B\317 )\203U'\204U\312\320p\321 \322 E\"\210(\204_)\203d*\204\210+\203y+\250\203}+\323 \324\\Y\203}\325\202~\326(,\206\206\327)\330\331\"\210-\203\267<\203\234@\202\235\206\270r\315 !\203\253 \206\256p\211q\210\332\333!)\206\270\334.\334/\3350!\210\336 \210\337 \210\306\340!\210\310\341\"\207" [current-input-method helm-current-prefix-arg helm-saved-action helm-saved-selection helm-suspend-update-flag helm-current-buffer helm-log-run-hook helm-before-initialize-hook helm--run-init-hooks before-init-hook helm-set-local-variable nil helm--current-buffer buffer-live-p buffer-size use-region-p helm--current-buffer-narrowed region-beginning region-end frame-width 4 vertical horizontal below helm-compute-attr-in-sources init thing-at-point symbol "" clrhash helm-create-helm-buffer helm-clear-visible-mark helm-after-initialize-hook after-init-hook buffer-file-name helm-buffer-file-name helm-issued-errors helm-saved-current-source helm--suspend-update-interactive-flag helm--nested helm-split-window-state helm--window-side-state helm-reuse-last-window-split-state split-width-threshold helm-split-window-default-side helm--maybe-use-default-as-input helm-pattern helm-input helm-candidate-cache] 8 (#$ . 108913)])
(defvar helm-major-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [helm-major-mode-hook variable-documentation put "Hook run after entering Hmm mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp helm-major-mode-map definition-name helm-major-mode] 4)
(defvar helm-major-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [helm-major-mode-abbrev-table helm-major-mode-map variable-documentation put purecopy "Keymap for `helm-major-mode'." boundp helm-major-mode-syntax-table definition-name helm-major-mode (lambda (#1=#:def-tmp-var) (defvar helm-major-mode-syntax-table #1#)) make-syntax-table "Syntax table for `helm-major-mode'." (lambda (#1#) (defvar helm-major-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `helm-major-mode'." derived-mode-parent] 5)
#@229 [Internal] Provide major-mode name in helm buffers.
Unuseful when used outside helm, don't use it.
 
This mode runs the hook `helm-major-mode-hook', as the final or penultimate step
during initialization.
 
\{helm-major-mode-map}
(defalias 'helm-major-mode #[0 "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 )\315\316!\207" [delay-mode-hooks major-mode mode-name helm-major-mode-map helm-major-mode-syntax-table helm-major-mode-abbrev-table make-local-variable t kill-all-local-variables helm-major-mode "Hmm" use-local-map set-syntax-table run-mode-hooks helm-major-mode-hook local-abbrev-table] 2 (#$ . 111613) nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put helm-major-mode mode-class special helm-only t] 4)
#@33 Create and setup `helm-buffer'.
(defalias 'helm-create-helm-buffer #[0 "\306r\307\n!q\210\310\311 \"\210\310\312\313 \"\210\314 \210\315 \210\316\304!\210\317\320 \210\321 \210\316\305!\210 \316\322!\210\317\316\323!\210\316\324!\210\317\316\325!\210\317\316\326!\210 \203R\327\202T!\316\300!\210\211\316\330!\210\317\316\331!\210\332 \210\310\333\"\210\310\334\"\"\210\335 \210#$\317%)\336\n!\210\337\n!)\207" [default-directory inhibit-read-only helm-buffer major-mode buffer-read-only helm-map t get-buffer-create helm-log "Enabling major-mode %S" "kill local variables: %S" buffer-local-variables kill-all-local-variables helm-major-mode make-local-variable nil buffer-disable-undo erase-buffer helm-source-filter helm-sources helm-display-function helm-selection-point scroll-margin 0 helm-marked-candidates helm--prompt helm-initialize-persistent-action "helm-display-function = %S" "helm--local-variables = %S" helm--set-local-variables-internal helm-initialize-overlays get-buffer helm-display-source-at-screen-top helm-completion-window-scroll-margin helm--local-variables helm-truncate-lines truncate-lines cursor-type] 4 (#$ . 112363)])
#@101 Non-nil if Helm- minor mode is enabled.
Use the command `helm--minor-mode' to change this variable.
(defvar helm--minor-mode nil (#$ . 113547))
(make-variable-buffer-local 'helm--minor-mode)
#@177 [INTERNAL] Enable keymap in helm minibuffer.
Since this mode has no effect when run outside of helm context,
please don't use it outside helm.
 
\{helm-map}
 
(fn &optional ARG)
(defalias 'helm--minor-mode #[256 "\302 \303=\203 ?\202\304!\305V    \204\306\307\310\203#\311\202$\312\"\210\313\314!\203H\302 \2038\211\302 \232\203H\315\316\317\203C\320\202D\321#\266\210\322 \210\207" [helm--minor-mode helm-alive-p current-message toggle prefix-numeric-value 0 nil run-hooks helm--minor-mode-hook helm--minor-mode-on-hook helm--minor-mode-off-hook called-interactively-p any " in current buffer" message "Helm- minor mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 113745) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar helm--minor-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\300\207" [helm--minor-mode-hook variable-documentation put "Hook run after entering or leaving `helm--minor-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)"] 4)
#@32 Keymap for `helm--minor-mode'.
(defvar helm--minor-mode-map (byte-code "\205    \302!\203\211\202\211<\203\303!\202\304\305\"\207" [helm-alive-p helm-map keymapp easy-mmode-define-keymap error "Invalid keymap %S"] 4) (#$ . 114846))
(byte-code "\301\302\303\303\211%\210\304\302\305\306#\207" [helm--minor-mode-map add-minor-mode helm--minor-mode nil put helm-only t] 6)
(defalias 'helm--reset-default-pattern #[0 "\302\303\211\207" [helm-pattern helm--maybe-use-default-as-input "" nil] 2])
#@230 Read pattern with prompt ANY-PROMPT and initial input ANY-INPUT.
For ANY-PRESELECT ANY-RESUME ANY-KEYMAP ANY-DEFAULT ANY-HISTORY, See `helm'.
 
(fn ANY-PROMPT ANY-INPUT ANY-PRESELECT ANY-RESUME ANY-KEYMAP ANY-DEFAULT ANY-HISTORY)
(defalias 'helm-read-pattern-maybe #[1799 "r\306 q\210\307!\203\310 \203\311\312!\210\202\313!\210\310 \314\315\"\203.9\203.\2062\314\316\"\317C\317    ?\205<\n @\320\236\206H\320\236\321\322\323 \"\210\321\324\f\"\210\321\325 \"\210\203h\307\n!\203h\326!\210=\203\231>?\211\203\212\327\330\331\"\210\330\332B@B@\333\332\330\"\210\202\215\334 \210\335 \203\231 \204\231\336 \210\337\f!\203\244\f \202\245\f\203\266\323\f\340=!\341U\203\266\317\202[ \203\317\323 \342U\203\317\312A\337 !\205[  \202[\206\353r\343B!\203\341B\206\345p\211Bq\210\344\345!)\f\203\373\346C\f\"\210\347\350 !\210\351\342\352\353\354!\355\"\356$\216\351\342\357\353\354 \n#\360\"\361$\317C\211\351\342\362\353\354\"\363\"\364$\240\210\351\342\365\353\354!\366\"\364$\216\333\367\242\"\210\370\371\206E\372\373\374#D\317 E&)\266\202)\262*\266\206)\207" [blink-matching-paren helm-echo-input-in-header-line resize-mini-windows helm-sources helm-execute-action-at-once-if-one helm-quit-if-no-candidate helm-buffer-get helm-resume-p helm-get-current-source helm-mark-current-line t helm-update assoc-default keymap history nil candidates-process helm-log "helm-get-candidate-number => %S" helm-get-candidate-number "helm-execute-action-at-once-if-one = %S" "helm-quit-if-no-candidate = %S" helm-display-mode-line defalias #1=#:helm--hook3 #[0 "\300\216\301 )\207" [#[0 "\300\301\302\"\210\303\302!\207" [remove-hook helm-after-update-hook #1# fmakunbound] 3] helm--reset-default-pattern] 1] helm-after-update-hook add-hook helm--reset-default-pattern helm-empty-buffer-p helm-force-update functionp current-source 1 0 buffer-live-p thing-at-point symbol helm-display-buffer select-window helm-window make-byte-code "\300\242\205 \301\300\242!\210\300\302\240\207" vconcat vector [cancel-timer nil] 2 "\305\306!\210\307\301\206\300\206 !\210\310\311!\210\302\312r\313 q\210\f)\314]\315\316#\240\210\317 \207" [helm-map helm-input-idle-delay helm--minor-mode 1 helm--maybe-update-keymap helm-log-run-hook helm-minibuffer-set-up-hook run-with-idle-timer helm-buffer-get 0.001 repeat #[0 "\206    ?\205 \302 r\303\304\305\306\307!\310\"\311$\216\312 \210\313 *\262\207" [helm-in-persistent-action helm-suspend-update-flag internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 helm-check-minibuffer-input helm-print-error-messages] 7] helm--update-header-line] 5 "\302\303\301\242\"\210\300 \207" [remove-hook minibuffer-setup-hook] 3 "\301\302\300\242\"\207" [remove-hook minibuffer-setup-hook] minibuffer-setup-hook read-from-minibuffer propertize "pattern: " face helm-minibuffer-prompt helm--maybe-use-default-as-input helm-pattern helm-input helm--temp-hooks helm-quit helm-current-buffer helm-buffer helm-map helm-inherit-input-method] 24 (#$ . 115358)])
#@145 Enable or disable display update in helm.
This can be useful for example for quietly writing a complex regexp
without helm constantly updating.
(defalias 'helm-toggle-suspend-update #[0 "\302?\303\"\210    ?\211\207" [helm-suspend-update-flag helm--suspend-update-interactive-flag helm-suspend-update t] 3 (#$ . 118482) nil])
(put 'helm-toggle-suspend-update 'helm-only t)
#@194 Enable or disable display update in helm.
If ARG is 1 or non nil suspend update, if it is -1 or nil reenable
updating.  When VERBOSE is specified display a message.
 
(fn ARG &optional VERBOSE)
(defalias 'helm-suspend-update #[513 "r\302 q\210\303\211\232\204\304=\204<\203\"\211\235\203\"\304\202Z\305\211\232\2068\304=\2068<\2058\211\235?\205X\304\211\232\204U\304=\204U<\205V\211\235\205V\211\266\202\266\202\266\202\211\203f\306 \210\307\211\203v\310\203s\311\202t\312!\210\313 \211\205\200\314\304\"\262)\207" [helm-suspend-update-flag helm-pattern helm-buffer-get 1 t -1 helm-kill-async-processes "" message "Helm update suspended!" "Helm update re-enabled!" helm-get-current-source helm-display-mode-line] 10 (#$ . 118861)])
#@91 Disable update and delete ARG chars backward.
Update is reenabled when idle 1s.
 
(fn ARG)
(defalias 'helm-delete-backward-no-update #[257 "\203    \204\f\302\303!\210\304!\210\305\303\306\307#\207\310\311!\207" [helm-alive-p helm--suspend-update-interactive-flag helm-suspend-update 1 backward-delete-char run-with-idle-timer nil #[0 "?\205\301\302!\210\303 \210\304 \207" [helm--suspend-update-interactive-flag helm-suspend-update -1 helm-check-minibuffer-input helm-force-update] 2] error "Running helm command outside of context"] 5 (#$ . 119638) "p"])
(put 'helm-delete-backward-no-update 'helm-only t)
#@169 Suspend helm while reading password.
This is used to advice `tramp-read-passwd', `ange-ftp-get-passwd' and
`epa-passphrase-callback-function'.
 
(fn OLD--FN &rest ARGS)
(defalias 'helm--suspend-read-passwd #[385 "\303\304\303\305\216\306\")\207" [helm-suspend-update-flag overriding-terminal-local-map helm--reading-passwd-or-string t nil #[0 "\302\211\211\207" [helm--reading-passwd-or-string helm-suspend-update-flag nil] 3] apply] 5 (#$ . 120257)])
#@201 Handle different keymaps in multiples sources.
 
Overrides `helm-map' with the local map of current source. If no
map is found in current source, does nothing (keeps previous
map).
 
(fn &optional MAP)
(defalias 'helm--maybe-update-keymap #[256 "r\301 q\210\211\206\302\303\304 \"\211\205 r\305\306 !q\210\307BC\211)\262)\207" [minor-mode-overriding-map-alist helm-buffer-get assoc-default keymap helm-get-current-source window-buffer minibuffer-window helm--minor-mode] 4 (#$ . 120722)])
(defvar helm--remap-mouse-mode-map (byte-code "\300 \301\302:\203@\262\303\304#\210A\262\202\266\211\207" [make-sparse-keymap ([mouse-1] [mouse-2] [mouse-3] [down-mouse-1] [down-mouse-2] [down-mouse-3] [drag-mouse-1] [drag-mouse-2] [drag-mouse-3] [double-mouse-1] [double-mouse-2] [double-mouse-3] [triple-mouse-1] [triple-mouse-2] [triple-mouse-3]) nil define-key ignore] 7))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315& \207" [custom-declare-variable helm--remap-mouse-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Helm--Remap-Mouse mode is enabled.\nSee the `helm--remap-mouse-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `helm--remap-mouse-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group helm :type boolean] 12)
#@195 [INTERNAL] Prevent escaping helm minibuffer with mouse clicks.
Do nothing when used outside of helm context.
 
WARNING: Do not use this mode yourself, it is internal to helm.
 
(fn &optional ARG)
(defalias 'helm--remap-mouse-mode #[256 "\302 \303\304\305=\203\306\304!?\202\307!\310V\"\210\204\311\312\313\306\304!\203*\314\202+\315\"\210\316\317!\203U\320\304!\210\302 \203C\211\302 \232\203U\321\322\323\306\304!\203P\324\202Q\325#\266\210\326 \210\306\304!\207" [helm-alive-p helm--remap-mouse-mode-map current-message set-default helm--remap-mouse-mode toggle default-value prefix-numeric-value 0 nil run-hooks helm--remap-mouse-mode-hook helm--remap-mouse-mode-on-hook helm--remap-mouse-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Helm--Remap-Mouse mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 122167) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar helm--remap-mouse-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\307\211%\210\303\306\310\311#\207" [helm--remap-mouse-mode-map helm--remap-mouse-mode-hook variable-documentation put "Hook run after entering or leaving `helm--remap-mouse-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 helm--remap-mouse-mode nil helm-only t] 6)
#@43 Clean up the mess when helm exit or quit.
(defalias 'helm-cleanup #[0 "\306\307!\210rq\210\310 \311\312\313\314\"\210\312\313\315\"\210\316\317!\210\n\203> \204>\320\304!\210\321 \322 \210 \2037\323!\210\202A\324!\210\202A\322 \210\210)\325 \210 \203q \326\211:\203o@\262\211A\262\242\262\327J\"L\210A\262\202O\266\330\331\326\"\210\332\333!\210\334\335!\210\336!\210\326\211!\"\326\337 \207" [helm-buffer cursor-type helm--buffer-in-new-frame-p helm--nested helm--last-frame-parameters helm-display-buffer-reuse-frame helm-log "start cleanup" selected-frame t remove-hook post-command-hook helm--maybe-update-keymap helm--update-header-line helm-compute-attr-in-sources cleanup make-local-variable helm--get-frame-parameters bury-buffer make-frame-invisible delete-frame helm-kill-async-processes nil delete helm-prevent-switching-other-window :enabled helm-log-run-hook helm-cleanup-hook helm-frame-or-window-configuration restore replace-buffer-in-windows helm-clean-up-minibuffer helm--temp-hooks helm-alive-p helm--force-updating-p] 8 (#$ . 123575)])
#@32 Remove contents of minibuffer.
(defalias 'helm-clean-up-minibuffer #[0 "\300 \301!?\205r\302!q\210\303 )\207" [minibuffer-window minibuffer-window-active-p window-buffer delete-minibuffer-contents] 3 (#$ . 124668)])
#@27 Check minibuffer content.
(defalias 'helm-check-minibuffer-input #[0 "\3031,\304\305\306 \206\307 !r\310\311\312\313\314!\315\"\316$\216\317@\320\"\210\321\322 !*\262)0\207\323\211\324 \210\325 \210\326\327!\207" [inhibit-quit quit-flag helm-quit (quit) nil internal--before-with-selected-window active-minibuffer-window minibuffer-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-check-new-input minibuffer-contents t exit-minibuffer keyboard-quit eval (ignore nil)] 8 (#$ . 124894)])
#@73 Check INPUT string and update the helm buffer if necessary.
 
(fn INPUT)
(defalias 'helm-check-new-input #[257 "\211\232?\205\211\303 \204\304\305\"\210\304\306    \"\210\307\310 \207" [helm-pattern helm-input helm--in-update helm-action-window helm-log "helm-pattern = %S" "helm-input = %S" t helm-update] 4 (#$ . 125470)])
(defalias 'helm--reset-update-flag #[0 "\301\302\303#\207" [helm-exit-idle-delay run-with-idle-timer nil #[0 "\301\211\207" [helm--in-update nil] 2]] 4])
#@70 Retrieve and return the list of candidates from SOURCE.
 
(fn SOURCE)
(defalias 'helm-get-candidates #[257 "\302\303\"\302\304\"\211\305\306\3071#\203\310!\202\310\"0\202.\311\312\211\262\"\210\305\262\313!\203A\204A\314\315\"\210\202P\203P\313!\204P\316\317\"\210\313!\203Z\211\202\223\203p    ?\205\223$\202\223\211\203z\211\320\232\203~\305\202\223\211<\203\213\321\"\202\223#)\207" [inhibit-quit helm--ignore-errors assoc-default candidates candidates-process nil #[1027 "\300\301\302\303\"\206\f\203\304\202\305\203 \306!\202!\307%\207" [error "In `%s' source: `%s' %s %s" assoc-default name "\n" "must be a list, a symbol bound to a list, or a function returning a list" prin1-to-string #1=""] 11 "\n\n(fn SOURCE CANDIDATE-FN CANDIDATE-PROC &optional E)"] (debug error) helm-interpret-value helm-log "Error: %S" processp warn "Candidates function `%s' should be called in a `candidates-process' attribute" error "Candidates function `%s' should run a process" (#1#) helm-transform-candidates] 11 (#$ . 125963)])
#@83 Same as `while-no-input' but without the `input-pending-p' test.
 
(fn &rest BODY)
(defalias 'helm-while-no-input '(macro . #[128 "\300\301!\302\303\304D\305\306\304DDCBBED\207" [make-symbol "input" with-local-quit catch quote let throw-on-input] 9 (#$ . 127058)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put helm-while-no-input edebug-form-spec t function-put lisp-indent-function 0] 4)
#@118 Return the cached value of candidates for SOURCE.
Cache the candidates if there is no cached value yet.
 
(fn SOURCE)
(defalias 'helm-get-cached-candidates #[257 "\303\304\"\305\"\303\306\"\211\211\203\211\307\310!\210\202Q\307\311!\210\312!\313!\203B\211\314\315\316B\317\320BD\"B\nB\321\322\"\210\323\262\202N\324\236\204N\325#\210\211\262\262)\207" [helm-candidate-cache inhibit-quit helm-async-processes assoc-default name gethash candidates-process helm-log "Use cached candidates" "No cached candidates, calculate candidates" helm-get-candidates processp append item-count 0 incomplete-line "" set-process-filter helm-output-filter nil volatile puthash] 11 (#$ . 127479)])
#@94 Execute `candidate-transformer' function(s) on CANDIDATES in SOURCE.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-process-candidate-transformer #[514 "\300\301\"\211\203\302#\202\207" [assoc-default candidate-transformer helm-apply-functions-from-source] 7 (#$ . 128187)])
#@103 Execute `filtered-candidate-transformer' function(s) on CANDIDATES in SOURCE.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-process-filtered-candidate-transformer #[514 "\300\301\"\211\203\302$\202\207" [assoc-default filtered-candidate-transformer helm-apply-functions-from-source] 8 (#$ . 128471)])
#@102 Execute `filter-one-by-one' function(s) on real value of CANDIDATE in SOURCE.
 
(fn CANDIDATE SOURCE)
(defalias 'helm--maybe-process-filter-one-by-one-candidate '(macro . #[514 "\300\301\302E\303\304\305\306D\307DFDC\305\310\311\312\313\314\315\316\317\320BB\321\322\257\n\317    \323BBFEF\207" [helm-aif assoc-default 'filter-one-by-one let real if consp cdr (and (listp it) (not (functionp it))) cl-loop for f in it do setq ((funcall f real)) finally return ((funcall it real))] 18 (#$ . 128783)]))
#@152 Process the CANDIDATES with the `filter-one-by-one' function in SOURCE.
Return CANDIDATES unchanged when pattern is not empty.
 
(fn CANDIDATES SOURCE)
(defalias 'helm--initialize-one-by-one-candidates #[514 "\301\230\205\n\302\303\"\211\203v\304\211:\203o@\262\302\303\"\211\203a:\203-A\202.<\203V\305!\204V\304:\203P@\262\211!\262A\262\202;\266\202\202\\!\211\262\262\202b\262B\262A\262\202\211\237\266\203\202w\207" [helm-pattern "" assoc-default filter-one-by-one nil functionp] 12 (#$ . 129300)])
#@230 Execute `filtered-candidate-transformer' function(s) on CANDIDATES in SOURCE.
When PROCESS-P is non-`nil' execute `filtered-candidate-transformer'
functions if some, otherwise return CANDIDATES.
 
(fn CANDIDATES SOURCE PROCESS-P)
(defalias 'helm-process-filtered-candidate-transformer-maybe #[771 "\211\203    \300\"\207\207" [helm-process-filtered-candidate-transformer] 6 (#$ . 129856)])
#@87 Execute real-to-display function on all CANDIDATES of SOURCE.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-process-real-to-display #[514 "\300\301\"\211\203!\302\303\304\305\306\307\310!\311\"\312\313%$\211\262\202\"\207" [assoc-default real-to-display helm-apply-functions-from-source mapcar make-byte-code 257 "\211:\203 \300A!AB\207\300!B\207" vconcat vector [] 3 "\n\n(fn CAND)"] 12 (#$ . 130252)])
#@531 Transform CANDIDATES from SOURCE according to candidate transformers.
 
When PROCESS-P is non-`nil' executes the
`filtered-candidate-transformer' functions, otherwise processes
`candidate-transformer' functions only,
`filtered-candidate-transformer' functions being processed later,
after the candidates have been narrowed by
`helm-candidate-number-limit', see `helm-compute-matches'.  When
`real-to-display' attribute is present, execute its functions on all
maybe filtered CANDIDATES.
 
(fn CANDIDATES SOURCE &optional PROCESS-P)
(defalias 'helm-transform-candidates #[770 "\300\301\302\"#\"\207" [helm-process-real-to-display helm-process-filtered-candidate-transformer-maybe helm-process-candidate-transformer] 8 (#$ . 130672)])
#@265 Apply candidate-number-limit attribute value.
This overrides `helm-candidate-number-limit' variable.
 
e.g:
If (candidate-number-limit) is in SOURCE, show all candidates in SOURCE.
If (candidate-number-limit . 123) is in SOURCE limit candidate to 123.
 
(fn SOURCE)
(defalias 'helm-candidate-number-limit #[257 "\301\236\211\203\211A\211\205\302!\262\206\303\202\206\303\207" [helm-candidate-number-limit candidate-number-limit helm-interpret-value 99999999] 5 (#$ . 131415)])
#@132 Get searched display part from CANDIDATE.
CANDIDATE is either a string, a symbol, or a (DISPLAY . REAL)
cons cell.
 
(fn CANDIDATE)
(defalias 'helm-candidate-get-display #[257 "\211\242\206\2119\203\300!\207\211\247\203\301!\207\211\207" [symbol-name number-to-string] 3 (#$ . 131911)])
#@94 Execute pattern-transformer attribute function(s) on PATTERN in SOURCE.
 
(fn PATTERN SOURCE)
(defalias 'helm-process-pattern-transformer #[514 "\300\301\"\211\203\302#\202\207" [assoc-default pattern-transformer helm-apply-functions-from-source] 7 (#$ . 132211)])
#@124 Check if `helm-pattern' match CANDIDATE.
Default function to match candidates according to `helm-pattern'.
 
(fn CANDIDATE)
(defalias 'helm-default-match-function #[257 "\301\"\207" [helm-pattern string-match] 4 (#$ . 132491)])
(defvar helm--fuzzy-regexp-cache (make-hash-table :test 'eq))
(defalias 'helm--fuzzy-match-maybe-set-pattern #[0 "\205U\303\304    \"\203\305\202\306\307\n!\210\303\310    \"\203:\311\301    G\312V\2034    \312\313O!    \312\314O!D\2025\315\n#\202S\311\301    G\316V\203P    \316\312O!    !D\202Q\317\n#\262\207" [helm--in-fuzzy helm-pattern helm--fuzzy-regexp-cache string-match "\\`\\^" identity helm--mapconcat-pattern clrhash "\\`!" puthash 1 2 nil (#1="" #1#) 0 (#1# #1#)] 8])
#@132 Check if `helm-pattern' fuzzy matches CANDIDATE.
This function is used with sources built with `helm-source-sync'.
 
(fn CANDIDATE)
(defalias 'helm-fuzzy-match #[257 "\302\303\"?\205#\304\300    \"A@\302\305\"\203\302\"?\202!\302\"\262\207" [helm-pattern helm--fuzzy-regexp-cache string-match " " gethash "\\`!"] 5 (#$ . 133202)])
#@94 Same as `helm-fuzzy-match' but for sources built with
`helm-source-in-buffer'.
 
(fn PATTERN)
(defalias 'helm-fuzzy-search #[257 "\302\303\"?\205a\304\300    \"\211@A@\302\305\"\203#\306 \307 D\310y\210\202_\311\211\312\311\313\311\312#\203W\306 \262\307 \262b\210\313\312#\203Pb\210\312\262\311\211\262\202Tb\210\312\204'?\205]\211\266\204\266\203\207" [helm-pattern helm--fuzzy-regexp-cache string-match " " gethash "\\`!" point-at-bol point-at-eol 1 nil t re-search-forward] 12 (#$ . 133546)])
#@317 Assign score to CANDIDATE according to PATTERN.
Score is calculated for contiguous matches found with PATTERN.
Score is 100 (maximum) if PATTERN is fully matched in CANDIDATE.
One point bonus is added to score when PATTERN prefix matches
CANDIDATE. Contiguous matches get a coefficient of 2.
 
(fn CANDIDATE PATTERN)
(defalias 'helm-score-candidate-for-pattern #[514 ";\203    \202\f\300!\301\302\303#\304:\203.A\203'@A@DB\262A\262\202\211\237\266\203\301\302\303#\304:\203TA\203M@A@DB\262A\262\2029\211\237\266\203@@\232\203d\305\202v\204u\306\305O\230\203u\307\202v\306\310\311\312!\313Q\"\205\204\314\206\222\315\316\317$G\320_\\\207" [helm-stringify split-string "" t nil 1 0 150 string-match "\\<" regexp-quote "\\>" 100 cl-nintersection :test equal 2] 13 (#$ . 134069)])
#@485 The transformer for sorting candidates in fuzzy matching.
It sorts on the display part by default.
 
Sorts CANDIDATES by their scores as calculated by
`helm-score-candidate-for-pattern'.  Set USE-REAL to non-`nil' to
sort on the real part.  If BASENAME is non-nil assume we are
completing filenames and sort on basename of candidates.  If
PRESERVE-TIE-ORDER is nil, ties in scores are sorted by length of
the candidates.
 
(fn CANDIDATES &optional USE-REAL BASENAME PRESERVE-TIE-ORDER)
(defalias 'helm-fuzzy-matching-default-sort-fn-1 #[1025 "\301\230\203\207\302\303\304\"\305\306\307\310\311\312\n\n\n\n$\313\"\314\315%\"\207" [helm-pattern "" make-hash-table :test equal sort make-byte-code 514 "\300\203\305\202    \306\301\203:\203\307!!\2020:\203%\211!\2020\301\203/\307!\2020\301\203A:\203A\307!!\202W:\203L!\202W\301\203V\307!\202W\310\303\"\206k\311\312\f\"\313!GD\303#\310\303\"\206\311\312\f\"\313!GD\303#A@A@@@U\203\232\302?\205\235W\202\235V\207" vconcat vector [helm-pattern cdr car helm-basename gethash puthash helm-score-candidate-for-pattern helm-stringify] 13 "\n\n(fn S1 S2)"] 16 (#$ . 134900)])
#@104 Default `filtered-candidate-transformer' to sort candidates in fuzzy matching.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-fuzzy-matching-default-sort-fn #[514 "\300!\207" [helm-fuzzy-matching-default-sort-fn-1] 4 (#$ . 136085)])
#@329 `filtered-candidate-transformer' to sort candidates in fuzzy matching, preserving order of ties.
The default function, `helm-fuzzy-matching-default-sort-fn',
sorts ties by length, shortest first.  This function may be more
useful when the order of the candidates is meaningful, e.g. with
`recentf-list'.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-fuzzy-matching-sort-fn-preserve-ties-order #[514 "\300\301\302#\207" [helm-fuzzy-matching-default-sort-fn-1 nil t] 6 (#$ . 136319)])
#@16 
 
(fn PATTERN)
(defalias 'helm--maybe-get-migemo-pattern #[257 "\203 \302    \"\206\f\211\207" [helm-migemo-mode helm-mm--previous-migemo-info assoc-default] 4 (#$ . 136803)])
#@175 The default function to highlight matches in fuzzy matching.
Highlight elements in CANDIDATE matching `helm-pattern' according
to the matching method in use.
 
(fn CANDIDATE)
(defalias 'helm-fuzzy-default-highlight-match #[257 "\302\230\203\207\211:\205 \211\303\203@\202!A\304!\305\306\307#\230?\205.\211\211\262\262\306\310\211\203\\\311\312!\"\203\\\306\211\224O\262\306\225GO\262\306\224\306\225O\262\313\314!r\211q\210\315\306\316\317\320!\321\"\322$\216\323\206v\324\310#c\210eb\210\3251\326\310\327#\203\232T\262\330\306\224\306\225\331#\210\202\202\306U\205\332\310\327\311#)\266\203\211\203\272\333\304\334!\"\202\277\335\302\327#\211\310:\205\376@\262\203\347\326\310\327#\203\341\330\306\224\306\225\331#\210\202\316eb\210\202\367\336\310\327#\203\367\330\306\224\306\225\331#\210A\262\202\301\266\2040\202\210\202    \210\203\337 Q\202\337 \262*\210\203'B\202)\207" [helm-pattern inhibit-changing-match-data "" helm-stringify helm--maybe-get-migemo-pattern get-text-property 0 match-part nil string-match regexp-quote generate-new-buffer " *temp*" make-byte-code "\301\300!\205    \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 propertize read-only (invalid-regexp) re-search-forward t helm-add-face-text-properties helm-match " " mapcar helm-mm-split-pattern split-string search-forward buffer-string] 18 (#$ . 136987)])
#@139 The filtered-candidate-transformer function to highlight fuzzy matches.
See `helm-fuzzy-default-highlight-match'.
 
(fn CANDIDATES SOURCE)
(defalias 'helm-fuzzy-highlight-matches #[514 "\301\211:\203@\262!B\262A\262\202\211\237\207" [helm-fuzzy-matching-highlight-fn nil] 7 (#$ . 138429)])
#@15 
 
(fn SOURCE)
(defalias 'helm-match-functions #[257 "\300\301\"\206\300\302\"\206\303\211<\203\304!\204\211\202 \211C\207" [assoc-default match match-strict helm-default-match-function functionp] 4 (#$ . 138738)])
#@15 
 
(fn SOURCE)
(defalias 'helm-search-functions #[257 "\300\301\"\211<\203\302!\204\211\202\211C\207" [assoc-default search functionp] 4 (#$ . 138970)])
#@155 Return the first N elements of SEQ if SEQ is longer than N.
It is used for narrowing list of candidates to the
`helm-candidate-number-limit'.
 
(fn SEQ N)
(defalias 'helm-take-first-elements #[514 "GV\203 \300\301#\207\207" [cl-subseq 0] 6 (#$ . 139137)])
#@50 
 
(fn CANDS MATCHFNS MATCH-PART-FN LIMIT SOURCE)
(defalias 'helm-match-from-candidates #[1285 "\3011.\302\303\304\"\305\236\306 \307\310\311\211:\203'@\262    W\203 \311\211\211\211\211\211:\203@\262\312\"\262 W\203\313!\262\314\307\315#\262\205b\206b!\262\f\203t\203t U\204x\204 \3161\210\206\203!0\202\212\210\311\203 \317\f#\210\320\321\"\211\203\332:\203\253A\202\255<\203\324\322!\204\324\311:\203\317@\262\211!\262\nA\262\202\272\266\202\331!\262\210\210 T\262\f\203 \203\204:\203\375\323\315#AB\202\323\315#\202B\262A\262\202,\211\237\266\207\237\244\262T\262A\262\202\211\237)\266\2070\207\211@\324=\204A\325\326\320\327\"@A$\210\311\207" [case-fold-search (debug error) make-hash-table :test equal allow-dups helm-set-case-fold-search 0 1 nil gethash helm-candidate-get-display get-text-property match-part (invalid-regexp) puthash assoc-default filter-one-by-one functionp propertize invalid-regexp helm-log-error "helm-match-from-candidates in source `%s': %s %s" name] 25 (#$ . 139404)])
#@52 Start computing candidates in SOURCE.
 
(fn SOURCE)
(defalias 'helm-compute-matches #[257 "r\303!\304\305\"\304\306\"\307!\310\"\311 \210\312\313\232\204+\314!\2039\315\316\317    !\"\"\202F\320\317! %\"+\266\205)\207" [helm-pattern helm-current-source helm--source-name helm-match-functions assoc-default match-part name helm-candidate-number-limit helm-process-pattern-transformer helm--fuzzy-match-maybe-set-pattern helm-process-filtered-candidate-transformer "" helm--candidates-in-buffer-p helm--initialize-one-by-one-candidates helm-take-first-elements helm-get-cached-candidates helm-match-from-candidates] 13 (#$ . 140545)])
#@17 
 
(fn MATCHFNS)
(defalias 'helm--candidates-in-buffer-p #[257 "\211\300\232\207" [(identity)] 3 (#$ . 141213)])
#@77 Display MATCHES from SOURCE according to its settings.
 
(fn SOURCE MATCHES)
(defalias 'helm-render-source #[514 "\300\301\302\303\"\"\210\211\205_\304!\210\305`\306\236?\305\307:\203Q@\262\2031\310\311 $\210\202F\203;\312 \210\202>\313\262\310\311 $\210A\262\211T\262\202\204\\\314`\315\313$\210\305\266\206\207" [helm-log "Source name = %S" assoc-default name helm-insert-header-from-source nil multiline 1 helm-insert-match insert helm-insert-candidate-separator t put-text-property helm-multiline] 13 (#$ . 141331)])
#@94 Wrap BODY in `helm-while-no-input' unless initializing a remote connection.
 
(fn &rest BODY)
(defalias 'helm--maybe-use-while-no-input '(macro . #[128 "\300\301\302\303\304\305BD\"BBD\207" [progn if (and (file-remote-p helm-pattern) (not (file-remote-p helm-pattern nil t))) append (helm-log "Using here `helm-while-no-input'") helm-while-no-input] 9 (#$ . 141887)]))
#@400 Returns a list of matches for each source in SRC-LIST.
 
The resulting value is a list of lists, e.g ((a b c) (c d) (e f)) or
(nil nil nil) for three sources when no matches found, however this
function can be interrupted by new input and in this case returns a
plain `nil' i.e not (nil), in this case `helm-update' is not rendering
the source, keeping previous candidates in display.
 
(fn SRC-LIST)
(defalias 'helm--collect-matches #[257 "\304!\203/\304\305\306#\204/\211\305\211:\203(@\262\307!B\262A\262\202\211\237\266\203\202j\310\311!\210\3121d\305\3132_\313\211\305\211:\203Y@\262\307!B\262A\262\202B\211\237\266\203)0)0\202j\210\306\314\315!\211\306=?\205r\211\207" [helm-pattern inhibit-quit throw-on-input quit-flag file-remote-p nil t helm-compute-matches helm-log "Using here `helm-while-no-input'" (quit) #1=#:input eval (ignore nil)] 6 (#$ . 142265)])
#@179 Used to set the value of `case-fold-search' in helm.
Return t or nil depending on the value of `helm-case-fold-search'
and `helm-pattern'.
 
(fn &optional (PATTERN helm-pattern))
(defalias 'helm-set-case-fold-search #[128 "\211\203 \211A\262\242\202\203\302\303\304GTD\"\210\305\306 \236\211\203(\211A\202)    \262\307\310\"\2038\311!\2029\312!)\266\202\207" [helm-pattern helm-case-fold-search signal wrong-number-of-arguments helm-set-case-fold-search case-fold-search helm-get-current-source string-match "[~/]*" helm-basename helm-set-case-fold-search-1] 6 (#$ . 143170)])
#@16 
 
(fn PATTERN)
(defalias 'helm-set-case-fold-search-1 #[257 "\302\267\202\303\304\305\"?\205\306)\207\207" [helm-case-fold-search case-fold-search #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (smart 6)) nil string-match "[[:upper:]]" t] 4 (#$ . 143770)])
#@449 Update candidates list in `helm-buffer' based on `helm-pattern'.
Argument PRESELECT is a string or regexp used to move selection
to a particular place after finishing update.
When SOURCE is provided update mode-line for this source, otherwise
the current source will be used.
Argument CANDIDATES when provided is used to redisplay these candidates
without recomputing them, it should be a list of lists.
 
(fn &optional PRESELECT SOURCE CANDIDATES)
(defalias 'helm-update #[768 "\305\306!\210\307 \210r\310 q\210\205    ?\205\311 \205\312 ?)\203=\313\311 !r\314\315\316\317\320!\321\"\322$\216\323@\324\"\210\325 \210*\210r\310 q\210\326\303!\210\n\314\315\327\317\320\"\330\"\331$\216\332\211\f\332\211:\203w@\262\333!\203pB\262A\262\202\\\211\237\266\203\262\204\204\334 \210\305\335\206\215\336!\211\262\"\210\211\203\307\334 \210\332\332:\203\277@\262:\203\277@\262\337\"\210A\262A\262\202\235\266\340 \210\341 \210\266)\305\342!)\207" [helm-onewindow-p helm--buffer-in-new-frame-p helm-pattern helm-input-local helm-sources helm-log "Start updating" helm-kill-async-processes helm-buffer-get helm-window helm-action-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord delete-other-windows make-local-variable "\301\206\303 \304\236\204\211\203\305\306\"\210\307\310!\210\210\300\203N\311\312\300\"\210\313 \203I\314\313 !r\315\316\317\320\321!\322\"\323$\216\324@\325\"\210\326\300\301\"\210*\210\202N\326\300\301\"\210\327\211\207" [helm--force-updating-p helm-get-current-source candidates-process helm-display-mode-line force helm-log-run-hook helm-after-update-hook helm-log "Update preselect candidate %s" helm-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-preselect nil] 7 nil helm-update-source-p erase-buffer "Matches: %S" helm--collect-matches helm-render-source helm--update-move-first-line helm--reset-update-flag "end update"] 12 (#$ . 144081)])
#@52 Whether SOURCE needs updating or not.
 
(fn SOURCE)
(defalias 'helm-update-source-p #[257 "\304\305\236\203\306\307\310#\202!    \203\311\312\"    \235\205O\211\313\236\211\203/\211A\2060\314\2020\315\262Y\205O\316\317\320\321#)\266\203?\205O\306\322\307# \235?\207" [helm-pattern helm-source-filter inhibit-changing-match-data helm-update-blacklist-regexps string-width multimatch replace-regexp-in-string " " "" assoc-default name requires-pattern 1 0 "\\`[*]+\\'" nil t string-match "\\s\\ "] 9 (#$ . 146235)])
#@35 Goto first line of `helm-buffer'.
(defalias 'helm--update-move-first-line #[0 "eb\210\300 \203\301\302\303\304\305\306\307&\207\310y\210\311 \210\312 \207" [helm-window helm-move-selection-common :where line :direction next :follow t 1 helm-mark-current-line helm-follow-execute-persistent-action-maybe] 7 (#$ . 146772)])
#@578 Force recalculation and update of candidates.
 
Unlike `helm-update', this function re-evaluates `init' and
`update' attributes when present; also `helm-candidate-cache' is
not reinitialized, meaning candidates are not recomputed unless
pattern has changed.
 
Selection is preserved to current candidate if it still exists after
update or moved to PRESELECT, if specified.
The helm-window is recentered at the end when RECENTER is `t'
which is the default, RECENTER can be also a number in this case it is
passed as argument to `recenter'.
 
(fn &optional PRESELECT (RECENTER t))
(defalias 'helm-force-update #[384 "\211\203 \211A\262\242\202\302\203\303\304\305\306G\\D\"\210r\307 q\210\310 \311\312\302#\211\205/\313!\262\302\314\315    \"\210\316\206>\"\210\317 \205l\205l\320\317 !r\321\322\323\324\325!\326\"\306$\216\327@\330\"\210\331\247\205h!*\262\266\202)\207" [helm--force-updating-p helm-sources t signal wrong-number-of-arguments helm-force-update 2 helm-buffer-get helm-get-current-source helm-get-selection nil regexp-quote mapc helm-force-update--reinit helm-update helm-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] select-window norecord recenter] 12 (#$ . 147104)])
#@47 Force recalculation and update of candidates.
(defalias 'helm-refresh #[0 "\203\301 \207\302\303!\207" [helm-alive-p helm-force-update error "Running helm command outside of context"] 2 (#$ . 148402) nil])
(put 'helm-refresh 'helm-only t)
#@70 Reinit SOURCE by calling its update and init functions.
 
(fn SOURCE)
(defalias 'helm-force-update--reinit #[257 "\301\302\303\304\"\"!?\205\305\306\"\211\203\307!\210\210\310\211\2036\211@\302\"\211\203.\305\"\210\210A\266\202\202\210\311!\207" [helm--candidate-buffer-alist bufferp assoc-default helm-attr name helm-apply-functions-from-source helm-candidate-buffer kill-buffer (update init) helm-remove-candidate-cache] 7 (#$ . 148650)])
#@875 Redisplay candidates in `helm-buffer'.
 
Candidates are not recomputed, only redisplayed after modifying the
whole list of candidates in each source with functions found in
`redisplay' attribute of current source.  Note that candidates are
redisplayed with their display part with all properties included only.
This function is used in async sources to transform the whole list of
candidates from the sentinel functions (i.e when all candidates have
been computed) because other filters like `candidate-transformer' are
modifying only each chunk of candidates from process-filter as they
come in and not the whole list.  Use this for e.g sorting the whole
list of async candidates once computed.
Note: To ensure redisplay is done in async sources after helm
reached `candidate-number-limit' you will have also to redisplay your
candidates from `helm-async-outer-limit-hook'.
(defalias 'helm-redisplay-buffer #[0 "r\301 q\210\302\303eb\210\304\305\306  \305\211\211:\203[@\262\307\310\"\262\305\311\305:\203G@\262\307\310\"\230\211\262?\211\262\203GA\262\202'\266\203\205P    !B\262A\262\202\211\237\266\205#\266\202)\207" [helm-sources helm-buffer-get #[257 "\302\303\"\304\211\211\305!\210\306 \210\307\3102V\211\205U\3111-\312 ?\205)\313\304\314#0\202/\210\304\211\203N\211B\262\212\315y\210\316\307!)\203H\317\310\304\"\210\306 \210\202Q\304\262\210\2020\266\320\237#*\207" [helm-allow-mouse helm-move-to-line-cycle-in-source assoc-default redisplay nil helm-goto-source helm-next-line t --cl-block-nil-- (debug error) helm-pos-header-line-p helm-get-selection withprop 1 helm-end-of-source-p throw helm-apply-functions-from-source] 8 "\n\n(fn SOURCE)"] #[0 "\301\211\302\30326\211\2055\304 \211\203.\211B\262\212\305 \210\306y\210m)\203(\307\303\301\"\210\310 \210\2021\301\262\210\2020\266\211\237)\207" [helm-move-to-line-cycle-in-source nil t --cl-block-nil-- helm-get-current-source helm-move--end-of-source 1 throw helm-next-source] 6] helm-update nil helm-get-current-source assoc-default name t] 18 (#$ . 149115)])
#@57 Remove SOURCE from `helm-candidate-cache'.
 
(fn SOURCE)
(defalias 'helm-remove-candidate-cache #[257 "\301\302\303\"\"\207" [helm-candidate-cache remhash assoc-default name] 5 (#$ . 151208)])
#@353 Insert MATCH into `helm-buffer' with INSERT-FUNCTION.
If MATCH is a cons cell then insert the car as display with
the cdr stored as real value in a `helm-realvalue' text property.
Args NUM and SOURCE are also stored as text property when specified as
respectively `helm-cand-num' and `helm-cur-source'.
 
(fn MATCH INSERT-FUNCTION &optional NUM SOURCE)
(defalias 'helm-insert-match #[1026 "\302`!\303!\243\205\304 \305\306;\205\246G\307U?\205\246!\210\310 \262\311\312#\210\313\314\306$\210\315\316\"\204L\203L\313\316$\210\203\206\317\320\321#\210\317\322\323#\210\317\324\325#\210\326\327\330\331\332\315\332\"\211;\203\211\211\333P\262\202\200\334\262\257#\210\203\224\313\335 $\210\203\242\313\336\n$\210\337!)\207" [helm-allow-mouse inhibit-read-only point-at-bol helm-candidate-get-display make-sparse-keymap t nil 0 point-at-eol remove-text-properties (keymap nil) put-text-property read-only get-text-property helm-realvalue define-key [mouse-1] helm-mouse-select-candidate [mouse-2] ignore [mouse-3] helm-select-action add-text-properties mouse-face highlight keymap help-echo "\nmouse-1: select candidate\nmouse-3: menu actions" "mouse-1: select candidate\nmouse-3: menu actions" helm-cand-num helm-cur-source "\n"] 22 (#$ . 151409)])
(defalias 'helm--mouse-reset-selection-help-echo #[0 "\302\303    !\304    !\305\306\"\211;\205$\307\310\"\205$\311\306\312\313\302\211$$)\207" [inhibit-read-only helm-selection-overlay t overlay-start overlay-end get-text-property help-echo string-match "mouse-2: execute action" put-text-property replace-match "mouse-1: select candidate"] 12])
#@12 
 
(fn POS)
(defalias 'helm--bind-mouse-for-selection #[257 "\303\304\305\"\211\205=\306\307\310#\210\311    \312\n!\313\304\313\"\211\2039\211;\2035\314\315\"\2035\316\317\303\211$\202:\320\202:\320\262$)\207" [inhibit-read-only helm-selection-point helm-selection-overlay t get-text-property keymap define-key [mouse-2] helm-maybe-exit-minibuffer put-text-property overlay-end help-echo string-match "mouse-1: select candidate" replace-match "mouse-2: execute action" "mouse-2: execute action\nmouse-3: menu actions"] 13 (#$ . 153074)])
#@14 
 
(fn EVENT)
(defalias 'helm-mouse-select-candidate #[257 "\301!\211@\262\302\301!!\303\304\305\306\307!\310\"\311$\216r\312!q\210\313 \2034\314\315!\"\2034\316\317!\210\202K\320 \210\211b\210\321 \203K\322 \206F\323 b\210\324y\210\325 \210\326 *\207" [helm-buffer event-end posn-point make-byte-code 0 "\301\302 !\210\303\300!q\207" vconcat vector [select-window minibuffer-window window-buffer] 2 window-buffer helm-action-window eql get-buffer-window user-error "selection in helm-window not available while selecting action" helm--mouse-reset-selection-help-echo helm-pos-multiline-p helm-get-previous-candidate-separator-pos helm-get-previous-header-pos 1 helm-mark-current-line helm-follow-execute-persistent-action-maybe] 9 (#$ . 153630) "e"])
(put 'helm-mouse-select-candidate 'helm-only t)
#@159 Insert SOURCE name in `helm-buffer' header.
Maybe insert, by overlay, additional info after the source name
if SOURCE has header-name attribute.
 
(fn SOURCE)
(defalias 'helm-insert-header-from-source #[257 "\300\301\"\302\300\303\"\211\205\304#\262\"\207" [assoc-default name helm-insert-header header-name helm-apply-functions-from-source] 9 (#$ . 154449)])
#@206 Insert header of source NAME into the helm buffer.
If DISPLAY-STRING is non-`nil' and a string value then display
this additional info after the source name by overlay.
 
(fn NAME &optional DISPLAY-STRING)
(defalias 'helm-insert-header #[513 "o\204`\300c\210\301`\302\303$\266`c\210\301\304 \305 \306\303$\210\203,\307\310\304 \305 \"\311#\210\300c\210\301`\312\313$\207" ["\n" put-text-property helm-header-separator t point-at-bol point-at-eol helm-header overlay-put make-overlay display face helm-source-header] 8 (#$ . 154825)])
#@54 Insert separator of candidates into the helm buffer.
(defalias 'helm-insert-candidate-separator #[0 "\301\302\303#c\210\304\305 \306 \300\307$\210\310c\207" [helm-candidate-separator propertize face helm-separator put-text-property point-at-bol point-at-eol t "\n"] 5 (#$ . 155373)])
#@83 The `process-filter' function for helm async sources.
 
(fn PROCESS OUTPUT-STRING)
(defalias 'helm-output-filter #[514 "\3041\305\306\307    \"\")0\207\310\211\311 \210\312 \210\313\314!\207" [inhibit-quit helm-async-processes quit-flag helm-quit (quit) nil helm-output-filter-1 assoc t exit-minibuffer keyboard-quit eval (ignore nil)] 7 (#$ . 155664)])
#@36 
 
(fn PROCESS-ASSOC OUTPUT-STRING)
(defalias 'helm-output-filter-1 #[514 "\301\302\"\210rq\210A\212\303\304\"\211\203\211b\210\202,db\210\305!\210\306\304\307 BC\"\241\210\210\310@\311!$\210)\210\312 )\207" [helm-buffer helm-log "output-string = %S" assoc-default insertion-marker helm-insert-header-from-source append point-marker helm-output-filter--process-source helm-candidate-number-limit helm-output-filter--post-process] 9 (#$ . 156027)])
#@43 
 
(fn PROCESS OUTPUT-STRING SOURCE LIMIT)
(defalias 'helm-output-filter--process-source #[1028 "\3002\274\301\302\303\304\"\305\236\"\306#\211\205\271\211@\307\310\"\211\203]:\203)A\202*<\203R\311!\204R\312:\203L@\262\211!\262A\262\2027\266\202\202X!\211\262\262\202^\262\262\313\236\203\204`\314 \210\315\316\317\236AT$\210\320`\321\306$\266\202\221\315\316\317\236AT$\210\317\236\211AT\241\266\307\317\"Y\203\262\322!\210\323\324!\210\325\300\312\"\210A\266\202\202\2620\207" [--cl-block-nil-- helm-transform-candidates helm-output-filter--collect-candidates split-string "\n" incomplete-line t assoc-default filter-one-by-one functionp nil multiline helm-insert-candidate-separator helm-insert-match insert-before-markers item-count put-text-property helm-multiline helm-kill-async-process helm-log-run-hook helm-async-outer-limit-hook throw] 12 (#$ . 156494)])
#@101 Collect LINES maybe completing the truncated first and last lines.
 
(fn LINES INCOMPLETE-LINE-INFO)
(defalias 'helm-output-filter--collect-candidates #[514 "\300\301A\"\210\302\303\211\211:\2036@\262A\211\203%\211P\303\241\210\202&\262\262B\262A\262\202 \241\210\211\237\266\204!\207" [helm-log "incomplete-line-info = %S" butlast nil] 11 (#$ . 157429)])
(defalias 'helm-output-filter--post-process #[0 "\301\302\"\211\2059\303!r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\315\316!\210\317\320\321\"\210\322\323!\210\324\325 !\210\326\327!\210\330 *\262\207" [helm-buffer get-buffer-window visible internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-skip-noncandidate-line next helm-mark-current-line nil nomouse helm-follow-execute-persistent-action-maybe 0.5 helm-display-mode-line helm-get-current-source helm-log-run-hook helm-after-update-hook helm--reset-update-flag] 8])
#@131 Defer remote processes in sentinels.
Meant to be called at the beginning of a sentinel process
function.
 
(fn PROCESS EVENT FILE)
(defalias 'helm-process-deferred-sentinel-hook #[771 "\302U?\205\"\303\230\205\"\304!\204    \205\"\305\306!\210\307\310\311#\207" [helm-tramp-connection-min-time-diff helm-suspend-update-flag 0 "finished\n" file-remote-p t helm-kill-async-process run-at-time nil #[0 "\205\302\303 \207" [helm-alive-p helm-suspend-update-flag nil helm-check-minibuffer-input] 1]] 7 (#$ . 158454)])
#@71 Kill all asynchronous processes registered in `helm-async-processes'.
(defalias 'helm-kill-async-processes #[0 "\205\301@@!\210A\211\204\302\207" [helm-async-processes helm-kill-async-process nil] 3 (#$ . 158984)])
#@82 Stop output from `helm-output-filter' and kill associated PROCESS.
 
(fn PROCESS)
(defalias 'helm-kill-async-process #[257 "\300\301\"\210\302!\207" [set-process-filter nil delete-process] 4 (#$ . 159213)])
#@25 Execute current action.
(defalias 'helm-execute-selection-action #[0 "\300\301!\210\302\303!\210\304\216\305 \300\306!\210)\207" [helm-log-run-hook helm-before-action-hook helm-current-position restore #[0 "\301\211\207" [helm--executing-helm-action nil] 2] helm-execute-selection-action-1 helm-after-action-hook] 3 (#$ . 159427)])
#@154 Execute ACTION on current SELECTION.
If PRESERVE-SAVED-ACTION is non-`nil', then save the action.
 
(fn &optional SELECTION ACTION PRESERVE-SAVED-ACTION)
(defalias 'helm-execute-selection-action-1 #[768 "\306\307!\210\310\206\206\311    !\203\312    !\202\313 !\262\n?\205&\311    !\211\203.\314!\210\210 \2065\315 \316\317\206O \206O\312\316\211#\206O\320\236\205O\321\"\262\204Y\316\205d\205d!)\207" [helm-saved-action helm-action-buffer helm-in-persistent-action helm-saved-current-source non-essential helm-saved-selection helm-log "executing action" helm-get-default-action get-buffer helm-get-selection helm-get-actions-from-current-source kill-buffer helm-get-current-source nil helm-coerce-selection accept-empty ""] 9 (#$ . 159767)])
#@116 Apply coerce attribute function to SELECTION in SOURCE.
Coerce source with coerce function.
 
(fn SELECTION SOURCE)
(defalias 'helm-coerce-selection #[514 "\300\301\"\211\203\302#\202\207" [assoc-default coerce helm-apply-functions-from-source] 7 (#$ . 160541)])
#@67 Get the first ACTION value of action list in source.
 
(fn ACTION)
(defalias 'helm-get-default-action #[257 "\211<\203\300!\204\211@A\207\207" [functionp] 3 (#$ . 160818)])
(defalias 'helm--show-action-window-other-window-p #[0 "\205    \204\f\n\205 \304=\207" [helm-show-action-window-other-window helm-always-two-windows helm--buffer-in-new-frame-p helm-split-window-state vertical] 2])
#@111 Select an action for the currently selected candidate.
If action buffer is selected, back to the helm buffer.
(defalias 'helm-select-action #[0 "\203\313\306 \307\310!\210\311\312\211#\313 p\314\315\316\317\320\"\321\"\322$\216\323\324\325 !r\314\315\326\317\320!\327\"\330$\216\331@\332\"\210\313 *\262\332\"\210\333\n\334\"\211\211\203j\335 \"\210\336\337!\210\340 \203]\341!\210\342\n!\210\312\343\f\344\"\202\272    \211\211\203\251\345!\3126\346!\203\226\347\350:\204\215\351!\203\221\352\202\222\"\202\243\353!\210\354\355!\210\336 \210\356 )\262\202\266\357\211\211\205\262\347\360!\262\262\262\262\262\262\361\306 !\210\362\363!\210)\266\202\207\364\365!\207" [helm-alive-p helm-saved-selection helm-action-buffer helm-buffer helm-input helm-saved-current-source helm-get-current-source helm-log-run-hook helm-select-action-hook helm-get-selection nil selected-frame make-byte-code 0 "\302\300!\203 \303\300\304\"\210\305\301!\205\301q\207" vconcat vector [frame-live-p select-frame norecord buffer-live-p] 3 select-frame internal--before-with-selected-window helm-window "\301\300!\207" [internal--after-with-selected-window] 2 select-window norecord get-buffer-window visible set-window-buffer helm--set-action-prompt restore helm--show-action-window-other-window-p delete-window kill-buffer helm-set-pattern noupdate helm-get-actions-from-current-source functionp message "Sole action: %s" byte-code-function-p "Anonymous" helm-show-action-buffer helm--delete-minibuffer-contents-from "" helm-check-minibuffer-input t "No Actions available" helm-display-mode-line run-hooks helm-window-configuration-hook error "Running helm command outside of context" helm-onewindow-p] 12 (#$ . 161221) nil])
(put 'helm-select-action 'helm-only t)
#@26 
 
(fn &optional RESTORE)
(defalias 'helm--set-action-prompt #[256 "\303\304 !r\305\306\307\310\311!\312\"\313$\216\314@\315\"\210\316\317\203!\202\"    \320 \210\321\322#c)\266\203*\207" [helm--prompt helm--action-prompt inhibit-read-only internal--before-with-selected-window minibuffer-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord t (face minibuffer-prompt field t read-only t rear-nonsticky t front-sticky t) erase-buffer apply propertize] 9 (#$ . 163014)])
#@16 
 
(fn ACTIONS)
(defalias 'helm-show-action-buffer #[257 "r\306!q\210\307 \210\310 \210\311\312\313 \203\314\315\n!\311 #\202!\315\n!\"\210\316\304!\210\317\320\321\322\323\324\323\325\326\327\330\331\332\333\334\335\336\337\340\311&C\316\305!\210\311\316\341!\210\311!\342!)\207" [helm-action-buffer cursor-type helm-buffer helm-show-action-window-other-window helm-sources helm-source-filter get-buffer-create erase-buffer buffer-disable-undo nil set-window-buffer helm--show-action-window-other-window-p split-window get-buffer-window make-local-variable helm-make-source "Actions" helm-source-sync :volatile t :nomark :persistent-action ignore :persistent-help "DoNothing" :keymap helm-map :candidates :mode-line ("Action(s)" "\\<helm-map>\\[helm-select-action]:BackToCands RET/f1/f2/fn:NthAct") :candidate-transformer #[257 "\211\300\211\301\300:\203H@\262\211A\262\242\262\302V\203 \303\2021\304W\203-\305\306\"\2021\305\307\"\310\311\312#PBB\262A\262T\262\202\211\237\207" [nil 1 12 "      " 10 format "[f%s]  " "[f%s] " propertize face helm-action] 11 "\n\n(fn CANDIDATES)"] :candidate-number-limit helm-selection-overlay helm-initialize-overlays] 22 (#$ . 163562)])
#@117 Display source at the top of screen when UNIT value is 'source.
Returns nil for any other value of UNIT.
 
(fn UNIT)
(defalias 'helm-display-source-at-screen-top-maybe #[257 "\205\211\301=\205\302\303 \212\304y\210`)\"\207" [helm-display-source-at-screen-top source set-window-start selected-window -1] 4 (#$ . 164781)])
#@236 Skip source header or candidates separator when going in DIRECTION.
DIRECTION is either 'next or 'previous.
Same as `helm-skip-header-and-separator-line' but ensure
point is moved to the right place when at bob or eob.
 
(fn DIRECTION)
(defalias 'helm-skip-noncandidate-line #[257 "\300!\210o\203 \301y\210m\205\302y\207" [helm-skip-header-and-separator-line 1 -1] 3 (#$ . 165113)])
#@133 Skip source header or candidate separator when going to next/previous line.
DIRECTION is either 'next or 'previous.
 
(fn DIRECTION)
(defalias 'helm-skip-header-and-separator-line #[257 "\300\301\"\203 \302\202\300\303\"\203\304\202\305\306\307#\205\310\211 ?\205F\311 \204/\312 \205F\303=\203@\313 e=\204@\314\202A\315y\210\202\207" [eql next eobp previous bobp error "cl-ecase failed: %s, %s" (next previous) nil helm-pos-header-line-p helm-pos-candidate-separator-p point-at-bol -1 1] 5 (#$ . 165506)])
#@201 Set up mode line and header line for `helm-buffer'.
 
SOURCE is a Helm source object.
 
Optional argument FORCE forces redisplay of the Helm buffer's
mode and header lines.
 
(fn SOURCE &optional FORCE)
(defalias 'helm-display-mode-line #[513 "\306\300!\210\307<\203\310\311\"\206\312\300!\"\313!\204*    \205+\310\314\"\n\235\205+\315 \205]\310\314\" \316\211\211:\203Y@\262\310\314@\"\262\230\203RB\262A\262\2027\211\237\266\205\203\241\317\320\321\320\322\320\323\205y\324\325\326 G\"\327\330#D\323\331\f\332BBD\333BBBBBBBB\334BB\335<\203\232A@\202\233!&\202\245\312\305!'\203\263\336\262\337 \210\202\326(\203\326\307<\205\303\310\340\"\"\341\342 \343\"\324\320Q\327\344#)\266\266\211\205\336\345 \207" [helm-mode-line-string helm-follow-mode-persistent helm-source-names-using-follow helm-marked-candidates helm--mode-line-display-prefarg mode-line-format make-local-variable helm-interpret-value assoc-default mode-line default-value helm-follow-mode-p name " (HF)" nil :propertize " " mode-line-buffer-identification (:eval (format "L%-3d" (helm-candidate-number-at-point))) :eval propertize format "M%d" face helm-visible-mark when ((let ((arg (prefix-numeric-value (or prefix-arg current-prefix-arg)))) (unless (= arg 1) (propertize (format " [prefarg:%s]" arg) 'face 'helm-prefarg)))) (" " (:eval (with-helm-buffer (helm-show-candidate-number (car-safe helm-mode-line-string)))) " " helm--mode-line-string-real " " (:eval (make-string (window-width) 32))) (keymap (keymap (mode-line keymap (mouse-1 . ignore) (down-mouse-1 . ignore) (drag-mouse-1 . ignore) (mouse-2 . ignore) (down-mouse-2 . ignore) (drag-mouse-2 . ignore) (mouse-3 . ignore) (down-mouse-3 . ignore) (drag-mouse-3 . ignore)))) substitute-command-keys t helm--set-header-line header-line make-string window-width 32 helm-header force-mode-line-update helm--mode-line-string-real helm-echo-input-in-header-line helm-display-header-line header-line-format] 16 (#$ . 166039)])
#@25 
 
(fn &optional UPDATE)
(defalias 'helm--set-header-line #[256 "\306\307 !r\310\311\312\313\314!\315\"\316$\216\317@\320\"\210\203!\321\301!\210\322\212\323\311\324 \"\210`)\212\325 \210`){\326\327\330\331\n D!\332\322\333#)\266\203\203Q\334\335 E\202V\326\336\337\340##`Z\341`\"\342\332T\211\262GW\203~H\262\343\344\"\203`T\262\202`\266\343\332f\344\"\203\214\211T\262\345\346\347#\262r\350 q\210\327Q*+!\210\205\252\351 )\266\205*\207" [helm-display-header-line disable-point-adjustment helm--prompt helm--action-prompt inhibit-changing-match-data helm-header-line-space-before-prompt internal--before-with-selected-window minibuffer-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord make-local-variable t vertical-motion helm-window end-of-visual-line propertize " " display regexp-opt nil string-match space :width "->" face helm-header-line-left-margin buffer-substring-no-properties -1 eql 37 replace-regexp-in-string "%" "%%" helm-buffer-get force-mode-line-update header-line-format helm-default-prompt-display-function] 15 (#$ . 168053)])
#@12 
 
(fn POS)
(defalias 'helm-set-default-prompt-display #[257 "\301T\302\\\303\304\305\306\307\310!\311\307\312!\257%\207" [header-line-format put-text-property 2 face :inverse-video t :foreground face-background cursor :background default] 12 (#$ . 169217)])
#@103 Display minibuffer in header-line and vice versa for current helm session.
 
This is a toggle command.
(defalias 'helm-exchange-minibuffer-and-header-line #[0 "\302\303 !r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\315\316\317\"\210\320\300!\210?\302\321 !r\304\305\306\307\310!\322\"\312$\216\313@\314\"\210r\323 q\210)\203J\317 \210\202O\324 \210\325*\210\326\327 \325\"*\207" [helm-echo-input-in-header-line cursor-type internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord add-hook helm-minibuffer-set-up-hook helm-hide-minibuffer-maybe make-local-variable minibuffer-window [internal--after-with-selected-window] helm-buffer-get remove-overlays t helm-display-mode-line helm-get-current-source] 8 (#$ . 169486) nil])
(put 'helm-exchange-minibuffer-and-header-line 'helm-only t)
(defalias 'helm--update-header-line #[0 "r\301 q\210)\205 \302\303!\207" [helm-echo-input-in-header-line helm-buffer-get helm--set-header-line t] 2])
#@173 Hide minibuffer contents in a Helm session.
This function should normally go to `helm-minibuffer-set-up-hook'.
It has no effect if `helm-echo-input-in-header-line' is nil.
(defalias 'helm-hide-minibuffer-maybe #[0 "r\303 q\210)\205U\304ed\305\211\306%\307\310\311 #\210    \205\312\313!\211\203?\307\314\315\316\317\320\321\"P!\322 S\"#\210\307\323\324#\210\202O\307\323\325\326\305\"\327\330F\262#\210\210\305\211\262\207" [helm-echo-input-in-header-line helm-display-header-line cursor-type helm-buffer-get make-overlay nil t overlay-put window selected-window helm-attr persistent-help display truncate-string-to-width substitute-command-keys "\\<helm-map>\\[helm-execute-persistent-action]: " format "%s (keeping session)" window-width face helm-header face-background default :background :foreground] 11 (#$ . 170553)])
#@161 Used to display candidate number in mode-line.
You can specify NAME of candidates e.g "Buffers" otherwise
it is "Candidate(s)" by default.
 
(fn &optional NAME)
(defalias 'helm-show-candidate-number #[256 "\2052\302 ?\2052\211\206\303\304\305\"G\306\304\307\310!\311Q\304\312\313\314!#\"\315    \203.\316\202/\317#\266\202\207" [helm-alive-p helm-suspend-update-flag helm-empty-source-p "Candidate(s)" format "[999 %s]" propertize "%-" number-to-string "s" "[%s %s]" helm-get-candidate-number in-current-source face helm-candidate-number-suspended helm-candidate-number] 10 (#$ . 171399)])
#@307 Move the selection marker to a new position.
Position is determined by WHERE and DIRECTION.
Key arg WHERE can be one of:
 - line
 - page
 - edge
 - source
Key arg DIRECTION can be one of:
 - previous
 - next
 - A source or a source name when used with :WHERE 'source.
 
(fn &key WHERE DIRECTION (FOLLOW t))
(defalias 'helm-move-selection-common #[128 "\301\302\"A@\301\303\"A@\301\304\"\206\305A@\211\203A\211@\306>\203*\211AA\262\202\307>A@\2038\310\262\202\311\312@\"\210\202\210\313\267\202\313\314\315\"\203S\316\202\314\314\317\"\203^\320\202\314\311\321\322#\205\314\310\202\314\314\315\"\203u\323\202\314\314\317\"\203\200\324\202\314\311\321\325#\205\314\310\202\314\314\315\"\203\227\326\202\314\314\317\"\203\242\327\202\314\311\321\330#\205\314\310\202\314\331\267\202\274\332\202\314\333\202\314\334\335\336\337\340!\341\"\342$\202\314\310\343\344 !\206\326\345 ??\205*\346\345 !r\334\335\336\337\340!\347\"\342$\216\350@\351\"\210\203\370\352 \210\353\354!\210 \210\355>\203    \356!\210\357 \203\360 \210\361!\210\362 \210\203\363 \210\364\365 !\210\353\366!*\262\262\207" [helm-allow-mouse plist-member :where :direction :follow (nil t) (:where :direction :follow :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:where :direction :follow)" #s(hash-table size 4 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (line 72 page 106 edge 140 source 174)) eql previous helm-move--previous-line-fn next helm-move--next-line-fn "cl-ecase failed: %s, %s" (previous next) helm-move--previous-page-fn helm-move--next-page-fn (previous next) helm-move--beginning-of-buffer-fn helm-move--end-of-buffer-fn (previous next) #s(hash-table size 2 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (previous 180 next 184)) helm-move--previous-source-fn helm-move--next-source-fn make-byte-code 0 "\301\300!\207" vconcat vector [helm-move--goto-source-fn] 2 helm-empty-buffer-p helm-buffer-get helm-window internal--before-with-selected-window [internal--after-with-selected-window] select-window norecord helm--mouse-reset-selection-help-echo helm-log-run-hook helm-move-selection-before-hook (next previous) helm-skip-noncandidate-line helm-pos-multiline-p helm-move--beginning-of-multiline-candidate helm-display-source-at-screen-top-maybe helm-mark-current-line helm-follow-execute-persistent-action-maybe helm-display-mode-line helm-get-current-source helm-move-selection-after-hook] 12 (#$ . 172003)])
(defalias 'helm-move--beginning-of-multiline-candidate #[0 "\300 \301 \205\211\203\211W\203\202\211b\210\302y\207" [helm-get-previous-header-pos helm-get-previous-candidate-separator-pos 1] 4])
(defalias 'helm-move--previous-multi-line-fn #[0 "\300y\210\301 ?\205\302\303!\210\304 \207" [-1 helm-pos-header-line-p helm-skip-header-and-separator-line previous helm-move--beginning-of-multiline-candidate] 2])
(defalias 'helm-move--previous-line-fn #[0 "\301 \204 \302y\210\202\303 \210\205-\304 \205-\305y\210\306 \210m\205-\212\302y\210\301 )\205-\303 \207" [helm-move-to-line-cycle-in-source helm-pos-multiline-p -1 helm-move--previous-multi-line-fn helm-pos-header-line-p 1 helm-move--end-of-source] 1])
(defalias 'helm-move--next-multi-line-fn #[0 "\300 \301 \211\203\203\211W\203\211b\202\205b\207" [helm-get-next-header-pos helm-get-next-candidate-separator-pos] 4])
(defalias 'helm-move--next-line-fn #[0 "\302 \204 \303y\210\202\304 \210\205.\212\302 \205\"\305    !b\205\"\306\307!)\204,\306\307!\205.\310 \207" [helm-move-to-line-cycle-in-source helm-selection-overlay helm-pos-multiline-p 1 helm-move--next-multi-line-fn overlay-end helm-end-of-source-p t helm-move--beginning-of-source] 2])
(defalias 'helm-move--previous-page-fn #[0 "\3001\301 0\207\210eb\207" [(beginning-of-buffer) scroll-down] 1])
(defalias 'helm-move--next-page-fn #[0 "\3001\301 0\207\210db\207" [(end-of-buffer) scroll-up] 1])
(defalias 'helm-move--beginning-of-buffer-fn #[0 "eb\207" [] 1])
(defalias 'helm-move--end-of-buffer-fn #[0 "db\207" [] 1])
(defalias 'helm-move--end-of-source #[0 "\300 \211\203\211b\210\301y\202db\207" [helm-get-next-header-pos -2] 2])
(defalias 'helm-move--beginning-of-source #[0 "\300 \211\203\211b\210\301y\202eb\207" [helm-get-previous-header-pos 1] 2])
(defalias 'helm-move--previous-source-fn #[0 "\300y\210o\203 db\210\202\301\302!\210\303 b\210\304y\207" [-1 helm-skip-header-and-separator-line previous helm-get-previous-header-pos 1] 2])
(defalias 'helm-move--next-source-fn #[0 "\212\300y\210m)\204\301 \206eb\207" [1 helm-get-next-header-pos] 1])
#@23 
 
(fn SOURCE-OR-NAME)
(defalias 'helm-move--goto-source-fn #[257 "eb\210\211;\203\f\211\202\300\301\"\211\203\211\302\230\203\303y\202<\30416\211\305 \230?\2052\306 b\210\202#0\202<\307\310\"\262\207" [assoc-default name "" 1 (error) helm-current-line-contents helm-get-next-header-pos helm-log "%S"] 6 (#$ . 176678)])
(defalias 'helm-candidate-number-at-point #[0 "\203r\301 q\210\302`\303\"\206\304)\207\302`\303\"\206\304\207" [helm-alive-p helm-buffer-get get-text-property helm-cand-num 1] 3])
#@32 
 
(fn DIRECTION &optional ARG)
(defalias 'helm--next-or-previous-line #[513 "\205\211\211\203C\211\301V\203C\302 \303\304!\305=\203\"Z\202&S^^\301\211X\203=\306\307\310\311    $\210\211T\262\202(\312\266\204\202I\306\307\310\311$)\207" [helm-move-to-line-cycle-in-source 1 helm-candidate-number-at-point helm-get-candidate-number t next helm-move-selection-common :where line :direction nil] 11 (#$ . 177205)])
#@138 Move selection to the ARG previous line(s).
Same behavior as `helm-next-line' when called with a numeric prefix arg.
 
(fn &optional ARG)
(defalias 'helm-previous-line #[256 "\203    \301\302\"\207\303\304!\207" [helm-alive-p helm--next-or-previous-line previous error "Running helm command outside of context"] 4 (#$ . 177641) "p"])
(put 'helm-previous-line 'helm-only t)
#@205 Move selection to the next ARG line(s).
When numeric prefix arg is > than the number of candidates, then
move to the last candidate of current source (i.e. don't move to
next source).
 
(fn &optional ARG)
(defalias 'helm-next-line #[256 "\203    \301\302\"\207\303\304!\207" [helm-alive-p helm--next-or-previous-line next error "Running helm command outside of context"] 4 (#$ . 178020) "p"])
(put 'helm-next-line 'helm-only t)
#@37 Move selection back with a pageful.
(defalias 'helm-previous-page #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where page :direction previous error "Running helm command outside of context"] 5 (#$ . 178453) nil])
(put 'helm-previous-page 'helm-only t)
#@40 Move selection forward with a pageful.
(defalias 'helm-next-page #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where page :direction next error "Running helm command outside of context"] 5 (#$ . 178760) nil])
(put 'helm-next-page 'helm-only t)
#@28 Move selection at the top.
(defalias 'helm-beginning-of-buffer #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where edge :direction previous error "Running helm command outside of context"] 5 (#$ . 179058) nil])
(put 'helm-beginning-of-buffer 'helm-only t)
#@31 Move selection at the bottom.
(defalias 'helm-end-of-buffer #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where edge :direction next error "Running helm command outside of context"] 5 (#$ . 179368) nil])
(put 'helm-end-of-buffer 'helm-only t)
#@40 Move selection to the previous source.
(defalias 'helm-previous-source #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where source :direction previous error "Running helm command outside of context"] 5 (#$ . 179665) nil])
(put 'helm-previous-source 'helm-only t)
#@36 Move selection to the next source.
(defalias 'helm-next-source #[0 "\203 \301\302\303\304\305$\207\306\307!\207" [helm-alive-p helm-move-selection-common :where source :direction next error "Running helm command outside of context"] 5 (#$ . 179981) nil])
(put 'helm-next-source 'helm-only t)
#@172 Move the selection to the source named SOURCE-OR-NAME.
 
If SOURCE-OR-NAME is empty string or nil go to the first candidate of
first source.
 
(fn &optional SOURCE-OR-NAME)
(defalias 'helm-goto-source #[256 "\300\301\302\303$\207" [helm-move-selection-common :where source :direction] 6 (#$ . 180282)])
#@12 
 
(fn ARG)
(defalias 'helm--follow-action #[257 "\302\303     \304=\204    \305=\204    \306=\204\211\2038\307V\203.\310\311\312\313\314\315\316&\210\2028\310\311\312\313\317\315\316&\210\211?\205?\306 )\207" [helm--temp-follow-flag last-command t helm-follow-mode-p helm-follow-action-forward helm-follow-action-backward helm-execute-persistent-action 0 helm-move-selection-common :where line :direction next :follow nil previous] 10 (#$ . 180590)])
#@48 Go to next line and execute persistent action.
(defalias 'helm-follow-action-forward #[0 "\203\301\302!\207\303\304!\207" [helm-alive-p helm--follow-action 1 error "Running helm command outside of context"] 2 (#$ . 181053) nil])
(put 'helm-follow-action-forward 'helm-only t)
#@52 Go to previous line and execute persistent action.
(defalias 'helm-follow-action-backward #[0 "\203\301\302!\207\303\304!\207" [helm-alive-p helm--follow-action -1 error "Running helm command outside of context"] 2 (#$ . 181338) nil])
(put 'helm-follow-action-backward 'helm-only t)
#@277 Move `helm-selection-overlay' to current line.
When RESUMEP is non nil move overlay to `helm-selection-point'.
When NOMOUSE is specified do not set mouse bindings.
 
Note that selection is unrelated to visible marks used for marking
candidates.
 
(fn &optional RESUMEP NOMOUSE)
(defalias 'helm-mark-current-line #[512 "r\303 q\210\203\fb\210\304    \305 \306 \203=\307 \310 \204!\211\2068\2033\211\2033\211W\2033\211\2068\2068d\266\202\202@\311 T#\210\312    !\n\205R\211?\205R\313!)\207" [helm-selection-point helm-selection-overlay helm-allow-mouse helm-buffer-get move-overlay point-at-bol helm-pos-multiline-p helm-get-next-header-pos helm-get-next-candidate-separator-pos point-at-eol overlay-start helm--bind-mouse-for-selection] 9 (#$ . 181631)])
#@307 Maybe ask for confirmation when exiting helm.
It is similar to `minibuffer-complete-and-exit' adapted to helm.
If `minibuffer-completion-confirm' value is 'confirm,
send minibuffer confirm message and exit on next hit.
If `minibuffer-completion-confirm' value is t,
don't exit and send message 'no match'.
(defalias 'helm-confirm-and-exit-minibuffer #[0 "\203\211\306 \203    \204\307\310!\210\311\312!\210\307\313!\207\314 r\nq\210ed)=\315\313\211#?\2059\316\317\320\315\313\321##\322\230\204A\211\203Q \323=\203Q\323\313\324\325!\202\210\204x \203e\203t!\202q;\203t\326#\204\204\211\203\204 \327=\203\204\324\330!\202\210\313\331 \207\332\333!\207" [helm-alive-p helm--reading-passwd-or-string helm-buffer minibuffer-completion-confirm helm-minibuffer-confirm-state minibuffer-completing-file-name helm--updating-p message "[Display not ready]" sit-for 0.5 nil helm-get-current-source helm-get-selection get-text-property 0 display withprop "[?]" confirm minibuffer-message " [confirm]" try-completion t " [No match]" helm-exit-minibuffer error "Running helm command outside of context" minibuffer-completion-predicate minibuffer-completion-table] 10 (#$ . 182404) nil])
(byte-code "\300\301\302\303#\210\304\305\306\"\207" [put helm-confirm-and-exit-minibuffer helm-only t add-hook helm-after-update-hook helm-confirm-and-exit-hook] 4)
#@59 Restore `minibuffer-completion-confirm' when helm update.
(defalias 'helm-confirm-and-exit-hook #[0 "\302=\206    ??\205    \211\207" [minibuffer-completion-confirm helm-minibuffer-confirm-state t] 2 (#$ . 183786)])
#@147 Same as `read-string' but for reading string from a helm session.
 
(fn PROMPT &optional INITIAL-INPUT HISTORY DEFAULT-VALUE INHERIT-INPUT-METHOD)
(defalias 'helm-read-string #[1281 "\301\302%)\207" [helm--reading-passwd-or-string t read-string] 11 (#$ . 184009)])
(defalias 'helm--updating-p #[0 "\302 \232?\206        \207" [helm-pattern helm--in-update minibuffer-contents] 2])
(defalias 'helm-maybe-exit-minibuffer #[0 "\203\302 \203    \204\303\304!\210\305\306!\210\303\307!\210\310 \207\311 \207\312\313!\207" [helm-alive-p helm--reading-passwd-or-string helm--updating-p message "[Display not ready]" sit-for 0.5 nil helm-update helm-exit-minibuffer error "Running helm command outside of context"] 2 nil nil])
(put 'helm-maybe-exit-minibuffer 'helm-only t)
#@57 Select the current candidate by exiting the minibuffer.
(defalias 'helm-exit-minibuffer #[0 "\204    \303\304\305!\210\306 \207" [helm-current-prefix-arg current-prefix-arg helm-exit-status 0 helm-log-run-hook helm-exit-minibuffer-hook exit-minibuffer] 2 (#$ . 184786)])
#@66 Quit minibuffer in helm.
If action buffer is displayed, kill it.
(defalias 'helm-keyboard-quit #[0 "\203\303    \304\"\203\305    !\210\306\307 \207\310\311!\207" [helm-alive-p helm-action-buffer helm-exit-status get-buffer-window visible kill-buffer 1 abort-recursive-edit error "Running helm command outside of context"] 3 (#$ . 185065) nil])
(put 'helm-keyboard-quit 'helm-only t)
#@52 Return the position of the next header from point.
(defalias 'helm-get-next-header-pos #[0 "\300`\301\"\207" [next-single-property-change helm-header] 3 (#$ . 185455)])
#@56 Return the position of the previous header from point.
(defalias 'helm-get-previous-header-pos #[0 "\300`\301\"\207" [previous-single-property-change helm-header] 3 (#$ . 185630)])
#@77 Return non-`nil' if the current position is in the multiline source region.
(defalias 'helm-pos-multiline-p #[0 "\300`\301\"\207" [get-text-property helm-multiline] 3 (#$ . 185817)])
#@65 Return the position of the next candidate separator from point.
(defalias 'helm-get-next-candidate-separator-pos #[0 "\300 \301`\302\"\211\205'\203\211W\203\211\206'\203&W\203&\206'\211\262\207" [helm-get-next-header-pos next-single-property-change helm-candidate-separator] 4 (#$ . 186006)])
#@69 Return the position of the previous candidate separator from point.
(defalias 'helm-get-previous-candidate-separator-pos #[0 "\300`\301\"\207" [previous-single-property-change helm-candidate-separator] 3 (#$ . 186321)])
#@48 Return t if the current line is a header line.
(defalias 'helm-pos-header-line-p #[0 "\300\301 \302\"\206 \300\301 \303\"\207" [get-text-property point-at-bol helm-header helm-header-separator] 3 (#$ . 186547)])
#@56 Return t if the current line is a candidate separator.
(defalias 'helm-pos-candidate-separator-p #[0 "\300\301 \302\"\207" [get-text-property point-at-bol helm-candidate-separator] 3 (#$ . 186766)])
#@47 Show all helm-related variables at this time.
(defalias 'helm-debug-output #[0 "\203    \301\302\303\"\207\304\305!\207" [helm-alive-p helm-help-internal " *Helm Debug*" helm-debug-output-function error "Running helm command outside of context"] 3 (#$ . 186971) nil])
(put 'helm-debug-output 'helm-only t)
#@23 
 
(fn &optional VARS)
(defalias 'helm-debug-output-function #[256 "\302\303!\210\304c\210\211\206\206\305\306\307\"\211\2033\211@\310\311!\312\311r    q\210\313!)!\312\261\210A\266\202\202\210\302\314!\207" [helm-debug-variables helm-buffer message "Calculating all helm-related values..." "If you debug some variables or forms, set `helm-debug-variables'\nto a list of forms.\n\n" apropos-internal "^helm-" boundp "** " pp-to-string "\n" eval "Calculating all helm-related values...Done"] 9 (#$ . 187282)])
#@69 First hit enable helm debugging, second hit switch to debug buffer.
(defalias 'helm-enable-or-switch-to-debug #[0 "\203    \203\f\303\304!\207\305r\306 q\210\307)\310\311!\207\312\313!\207" [helm-alive-p helm-debug truncate-lines helm-run-after-exit helm-debug-open-last-log t helm-buffer-get nil message "Debugging enabled" error "Running helm command outside of context"] 2 (#$ . 187805) nil])
(put 'helm-enable-or-switch-to-debug 'helm-only t)
#@102 Remove tick entry from `helm-tick-hash' and remove buffer from
`helm-buffers' when killing a buffer.
(defalias 'helm-kill-buffer-hook #[0 "\302\303\"\210\304\305     \"\211\207" [helm-tick-hash helm-buffers maphash #[514 "\301\302\303\304\305 !\"\"\205\306\"\207" [helm-tick-hash string-match format "^%s/" regexp-quote buffer-name remhash] 7 "\n\n(fn KEY --CL-VAR--)"] remove buffer-name] 3 (#$ . 188262)])
(add-hook 'kill-buffer-hook 'helm-kill-buffer-hook)
#@444 Move selection to CANDIDATE-OR-REGEXP on Helm start.
 
CANDIDATE-OR-REGEXP can be a:
 
- String
- Cons cell of two strings
- Nullary function, which moves to a candidate
 
When CANDIDATE-OR-REGEXP is a cons cell, tries moving to first
element of the cons cell, then the second, and so on. This allows
selection of duplicate candidates after the first.
 
Optional argument SOURCE is a Helm source object.
 
(fn CANDIDATE-OR-REGEXP &optional SOURCE)
(defalias 'helm-preselect #[513 "r\301 q\210\203s\211\203\302!\210\202eb\210\303y\210\304!\203& \210\202s`\305\306\3072i\211\205h:\203H\310@\305\306#\205M\310A\305\306#\202M\310\305\306#\211\203a\311 \204d\312\307\211\262\"\210\202d\305\262\210\202-0\266\211\206pb\266\313y\210\314 \203~\315 \210\311 \203\206\303y\210\203\215\316 \210\317 \210\320\206\227\321 !\210\322\323!)\207" [helm-allow-mouse helm-buffer-get helm-goto-source 1 functionp nil t --cl-block-nil-- re-search-forward helm-pos-header-line-p throw 0 helm-pos-multiline-p helm-move--beginning-of-multiline-candidate helm--mouse-reset-selection-help-echo helm-mark-current-line helm-display-mode-line helm-get-current-source helm-log-run-hook helm-after-preselection-hook] 10 (#$ . 188733)])
#@37 Delete the currently selected item.
(defalias 'helm-delete-current-selection #[0 "\300\301 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313 \203L\314 \211\203/\315 b\210\316 T|\210\2028\317 b\210\315 d|\210\210\320 \203i\317 \206Deb\210\321y\210\202i\315 \316 T|\210\320\322!\203i\212\323y\210\324 )?\211\203h\323y\210\210\320\322!?\205r\325 *\207" [internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-pos-multiline-p helm-get-next-candidate-separator-pos point-at-bol point-at-eol helm-get-previous-candidate-separator-pos helm-end-of-source-p 1 t -1 helm-pos-header-line-p helm-mark-current-line] 7 (#$ . 189976)])
#@19 
 
(fn N AT-POINT)
(defalias 'helm-end-of-source-1 #[514 "\212\300 \203\211\204\301 ?\2023\211\203\302\202y\210\303 \304 =\2063\305 \2063\302W\2032o\2023m)\207" [helm-pos-multiline-p helm-get-next-candidate-separator-pos 0 point-at-bol point-at-eol helm-pos-header-line-p] 4 (#$ . 190735)])
#@78 Return non-`nil' if we are at eob or end of source.
 
(fn &optional AT-POINT)
(defalias 'helm-end-of-source-p #[256 "\300\301\"\207" [helm-end-of-source-1 1] 4 (#$ . 191046)])
#@84 Return non-`nil' if we are at bob or beginning of source.
 
(fn &optional AT-POINT)
(defalias 'helm-beginning-of-source-p #[256 "\300\301\"\207" [helm-end-of-source-1 -1] 4 (#$ . 191228)])
#@13 
 
(fn FUNC)
(defalias 'helm--edit-current-selection-internal #[257 "\300\301 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\303y\210\313`\314\"\313`\315\" \210\303y\210\2034\316`\317 \314$\210\211\203D\316`\320 \206@d\315$\210\321 \266\202*\207" [internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord get-text-property helm-realvalue helm-multiline put-text-property point-at-eol helm-get-next-candidate-separator-pos helm-mark-current-line] 9 (#$ . 191423)])
#@119 Evaluate FORMS at current selection in the helm buffer.
Used generally to modify current selection.
 
(fn &rest FORMS)
(defalias 'helm-edit-current-selection '(macro . #[128 "\300\301\302BBD\207" [helm--edit-current-selection-internal lambda nil] 5 (#$ . 192014)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put helm-edit-current-selection lisp-indent-function 0 put edebug-form-spec t] 5)
#@17 
 
(fn FROM-STR)
(defalias 'helm--delete-minibuffer-contents-from #[257 "\300 \301 \210\211G\302V\203\303!\202\304 \207" [minibuffer-contents helm-reset-yank-point 0 helm-set-pattern helm-force-update] 4 (#$ . 192430)])
#@264 Delete minibuffer contents.
When `helm-delete-minibuffer-contents-from-point' is non-`nil',
delete minibuffer contents from point instead of deleting all.
Giving a prefix arg reverses this behavior.
When at the end of minibuffer, deletes all.
 
(fn &optional ARG)
(defalias 'helm-delete-minibuffer-contents #[256 "\203\211\204\fm\203\301\202#\302 \202#\211\203\"m\204\"\302 \202#\301\303!\207" [helm-delete-minibuffer-contents-from-point "" helm-minibuffer-completion-contents helm--delete-minibuffer-contents-from] 4 (#$ . 192661) "P"])
#@2130 The top level function used to store candidates with `helm-source-in-buffer'.
 
Candidates are stored in a buffer generated internally
by `helm-candidate-buffer' function.
Each candidate must be placed in one line.
 
The buffer is created and fed in the init attribute function of helm.
 
e.g:
 
     (helm-build-in-buffer-source "test"
       :init (lambda ()
               (helm-init-candidates-in-buffer
                   'global '(foo foa fob bar baz))))
 
A shortcut can be used to simplify:
 
     (helm-build-in-buffer-source "test"
       :data '(foo foa fob bar baz))
 
By default, `helm' makes candidates by evaluating the
candidates function, then narrows them by `string-match' for each
candidate.
 
But this is slow for large number of candidates. The new way is
to store all candidates in a buffer and then narrow
with `re-search-forward'. Search function is customizable by search
attribute. The important point is that buffer processing is MUCH
FASTER than string list processing and is the Emacs way.
 
The init function writes all candidates to a newly-created
candidate buffer.  The candidates buffer is created or specified
by `helm-candidate-buffer'.  Candidates are stored in a line.
 
The candidates function narrows all candidates, IOW creates a
subset of candidates dynamically.
 
Class `helm-source-in-buffer' is implemented with three attributes:
 
    (candidates . helm-candidates-in-buffer)
    (volatile)
    (match identity)
 
The volatile attribute is needed because `helm-candidates-in-buffer'
creates candidates dynamically and need to be called every
time `helm-pattern' changes.
 
Because `helm-candidates-in-buffer' plays the role of `match' attribute
function, specifying `(match identity)' makes the source slightly faster.
 
However if source contains `match-part' attribute, match is computed only
on part of candidate returned by the call of function provided by this attribute.
The function should have one arg, candidate, and return only
a specific part of candidate.
 
To customize `helm-candidates-in-buffer' behavior,
use `search', `get-line' and `match-part' attributes.
 
(fn &optional SOURCE)
(defalias 'helm-candidates-in-buffer #[256 "\211\206\301 \302\303 \304\305\"\206\306\304\307\"\206\310\311!\312\313!&\207" [helm-pattern helm-get-current-source helm-candidates-in-buffer-1 helm-candidate-buffer assoc-default get-line buffer-substring-no-properties search (helm-candidates-in-buffer-search-default-fn) helm-candidate-number-limit helm-attr match-part] 10 (#$ . 193218)])
#@84 Search PATTERN with `re-search-forward' with bound and noerror args.
 
(fn PATTERN)
(defalias 'helm-candidates-in-buffer-search-default-fn #[257 "\3001 \301\302\303#0\207\302\207" [(invalid-regexp) re-search-forward nil t] 5 (#$ . 195755)])
#@139 Return the list of candidates inserted in BUFFER matching PATTERN.
 
(fn BUFFER PATTERN GET-LINE-FN SEARCH-FNS LIMIT MATCH-PART-FN SOURCE)
(defalias 'helm-candidates-in-buffer-1 #[1799 "\2056rq\210\301eS\211b\210\302\230\203\"\303\"\2022\304        &)\266\202)\207" [inhibit-point-motion-hooks t "" helm-initial-candidates-from-candidate-buffer helm-search-from-candidate-buffer] 17 (#$ . 196004)])
#@78 
 
(fn PATTERN GET-LINE-FN SEARCH-FNS LIMIT START-POINT MATCH-PART-FN SOURCE)
(defalias 'helm-search-from-candidate-buffer #[1799 "\301\302\303\304\305\306\307\f\f\f\f\f\f\f&\310\"\311$!)\207" [inhibit-read-only t helm--search-from-candidate-buffer-1 make-byte-code 0 "\307\310\311\"\312\306\236\313 \314\315\302\316\211:\203 @\262\304b\210\3171'\320\300!0\202+\210\2021\2031\315y\210\316\211\211\211\300!\211\262\203\367m\204\367\303W\203\367\321\301\203X<\203X\202]\322 \323 D\"\262\305\203v\324\314\325#\204v\326\325\305!#\262\327\f\"\262    \203\215\203\215U\204\221\2045\305\204\232:\203\241\330\300\"\2035\331     #\210\332\333\306\"\211\203\351:\203\273A\202\274<\203\343\334!\204\343\316:\203\336@\262\211!\262A\262\202\311\266\202\350!\262\210\210T\262    B\262\2025\211\237\266\204\237\244\262T\262A\262\202\211\237)\207" vconcat vector [make-hash-table :test equal allow-dups helm-set-case-fold-search 0 1 nil (invalid-regexp) looking-at apply point-at-bol point-at-eol get-text-property match-part propertize gethash helm-search-match-part puthash assoc-default filter-one-by-one functionp case-fold-search] 17] 20 (#$ . 196429)])
#@332 Match PATTERN only on match-part property value of CANDIDATE.
 
Because `helm-search-match-part' maybe called even if unspecified
in source (negation or fuzzy), the part to match fallback to the whole
candidate even if match-part haven't been computed by match-part-fn
and stored in the match-part property.
 
(fn CANDIDATE PATTERN)
(defalias 'helm-search-match-part #[514 "\303\304\305#\206    \306\307\"A@    \203\310\202\311\311\312\"\203\\\313!\314\315:\203R@\262\311\316\"\203@\317\314O\"?\202E\"\211\262\203RA\262\202$\211\205W\315\266\203\202\206\311\316\"\203z\n\203o\311\"?\202\206\211\317\314O\"?\202\206\211\n\203\203\202\204\"\207" [helm--fuzzy-regexp-cache helm-migemo-mode helm--in-fuzzy get-text-property 0 match-part gethash helm-pattern helm-mm-migemo-string-match string-match " " helm-mm-split-pattern nil t "\\`!" 1] 12 (#$ . 197669)])
#@26 
 
(fn GET-LINE-FN LIMIT)
(defalias 'helm-initial-candidates-from-candidate-buffer #[514 "\300\301\302\301X\203$m\204$\303 \304 \"B\262\302y\210T\262\202\211\237\266\203\"\207" [delq nil 1 point-at-bol point-at-eol] 10 (#$ . 198570)])
#@18 
 
(fn SEARCH-FN)
(defalias 'helm--search-from-candidate-buffer-1 #[257 "eb\210\300c\210db\210\300c\210\301\216\211 )\207" ["\n" #[0 "eb\210\300\301!\210dSb\210\300\301!\210\302\303!\207" [delete-char 1 set-buffer-modified-p nil] 2]] 2 (#$ . 198823)])
#@2297 Register and return a buffer storing candidates of current source.
 
This is used to initialize a buffer for storing candidates for a
candidates-in-buffer source, candidates will be searched in this
buffer and displayed in `helm-buffer'.
This should be used only in init functions, don't relay on this in
other places unless you know what you are doing.
 
This function is still in public API only for backward compatibility,
you should use instead `helm-init-candidates-in-buffer' for
initializing your sources.
 
Internally, this function is called without argument and returns the
buffer corresponding to current source i.e `helm--source-name' which
is available in only some places.
 
Acceptable values of BUFFER-SPEC:
 
- global (a symbol)
  Create a new global candidates buffer,
  named " *helm candidates:SOURCE*".
  This is used by `helm-init-candidates-in-buffer' and it is
  the most common usage of BUFFER-SPEC.
  The buffer will be killed and recreated at each new helm-session.
 
- local (a symbol)
  Create a new local candidates buffer,
  named " *helm candidates:SOURCE*HELM-CURRENT-BUFFER".
  You may want to use this when you want to have a different buffer
  each time source is used from a different `helm-current-buffer'.
  The buffer is erased and refilled at each new session but not killed.
  You probably don't want to use this value for BUFFER-SPEC.
 
- nil (omit)
  Only return the candidates buffer of current source if found.
  
- A buffer
  Register a buffer as a candidates buffer.
  The buffer needs to exists, it is not created.
  This allow you to use the buffer as a cache, it is faster because
  the buffer is already drawn, but be careful when using this as you
  may mangle your buffer depending what you write in your init(s)
  function, IOW don't modify the contents of the buffer in init(s)
  function but in a transformer.
  The buffer is not erased nor deleted.
  Generally it is safer to use a copy of buffer inserted
  in a global or local buffer.
  
If for some reasons a global buffer and a local buffer exist and are
belonging to the same source, the local buffer takes precedence on the
global one and is used instead.
 
When forcing update only the global and local buffers are killed
before running again the init function.
 
(fn &optional BUFFER-SPEC)
(defalias 'helm-candidate-buffer #[256 "\304\305\"\304\306\307    !#\203eB\310\311\n\"\n\"B\312!\204e\313=\2033\314\315!!\2033\316!\210r\317\320\313\"\203@\202T\320\321\"\203K\202T\322\323\324#\205T\325!q\210\326\303!\210\325\327 \210\330\331!\210)\315!\211\211\203q\211\202\242\315!\211\211\203}\211\202\236\332\n\"\211\211\205\232\211;\204\221\312!\205\232\314\315!!\205\232\211\262\262\262\262\262\262\207" [helm--source-name helm-current-buffer helm--candidate-buffer-alist buffer-read-only format " *helm candidates:%s*" " *helm candidates:%s*%s" buffer-name delete assoc bufferp global buffer-live-p get-buffer kill-buffer get-buffer-create eql local error "cl-ecase failed: %s, %s" (global local) nil make-local-variable erase-buffer font-lock-mode -1 assoc-default] 12 (#$ . 199082)])
#@632 Register BUFFER-SPEC with DATA for a helm candidates-in-buffer session.
 
Arg BUFFER-SPEC can be a buffer-name (stringp), a buffer-spec object
(bufferp), or a symbol, either 'local or 'global which is passed to
`helm-candidate-buffer'.
The most common usage of BUFFER-SPEC is 'global.
 
Arg DATA can be either a list or a plain string.
Returns the resulting buffer.
 
Use this in your init function to register a buffer for a
`helm-source-in-buffer' session and feed it with DATA.
You probably don't want to bother with this and use the :data slot
when initializing a source with `helm-source-in-buffer' class.
 
(fn BUFFER-SPEC DATA)
(defalias 'helm-init-candidates-in-buffer #[514 ";\204 \300!\205\301\302!!\303;\204\300!\203\"\304!\202#!?\205Ir\211q\210\305 \210<\203?\306\307\310#c\210\202G;\203Gc\210)\211\207" [bufferp buffer-live-p get-buffer helm-candidate-buffer get-buffer-create erase-buffer mapconcat #[257 "\2119\203    \300!\207\211\247\203\301!\207\207" [symbol-name number-to-string] 3 "\n\n(fn I)"] "\n"] 8 (#$ . 202220)])
(byte-code "\300\301\302\303#\300\207" [function-put helm-init-candidates-in-buffer lisp-indent-function 1] 4)
#@57 Toggle resplit helm window, vertically or horizontally.
(defalias 'helm-toggle-resplit-window #[0 "\203\243\306\307\310\"G\311U\203\237    \203\312\313\307\"\210\314\216\315\316 !r\317\320\321\322\323!\324\"\311$\216\325@\326\"\210\n\204:\327\330!\203A\331\332!\210\202\225\333 \203M\331\334!\210\202\225\335 \336 \210\337\325\335 U\203w \340=\204g \341=\203p\342\343 \307\340#\202r\344 \345\202\220\346 \341=\204\205 \340=\203\216\342\343 \307\341#\202\220\347 ! \"\266\350 \211,*\262)\207\351\352!\207\351\353!\207" [helm-alive-p helm-prevent-escaping-from-minibuffer helm-full-frame helm-split-window-default-side helm-split-window-state helm-buffer window-list nil 1 2 helm-prevent-switching-other-window :enabled #[0 "\205\301\302\303\"\207" [helm-prevent-escaping-from-minibuffer helm-prevent-switching-other-window :enabled t] 3] internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] select-window norecord one-window-p t user-error "Attempt to resplit a single window" helm-action-window "Can't resplit while selecting actions" window-height delete-window set-window-buffer above left split-window selected-window split-window-vertically vertical horizontal split-window-horizontally helm--get-window-side-state error "current window configuration not suitable for splitting" "Running helm command outside of context" helm--window-side-state] 8 (#$ . 203398) nil])
(put 'helm-toggle-resplit-window 'helm-only t)
#@86 Enlarge or narrow helm window.
If N is positive enlarge, if negative narrow.
 
(fn N)
(defalias 'helm-enlarge-window-1 #[257 "?\205(    \302=\303\304 !r\305\306\307\310\311!\312\"\313$\216\314@\315\"\210\316\"*\262\262\207" [helm-full-frame helm-split-window-state horizontal internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord enlarge-window] 9 (#$ . 204933)])
#@21 Narrow helm window.
(defalias 'helm-narrow-window #[0 "\203\301\302!\207\303\304!\207" [helm-alive-p helm-enlarge-window-1 -1 error "Running helm command outside of context"] 2 (#$ . 205415) nil])
(put 'helm-narrow-window 'helm-only t)
#@22 Enlarge helm window.
(defalias 'helm-enlarge-window #[0 "\203\301\302!\207\303\304!\207" [helm-alive-p helm-enlarge-window-1 1 error "Running helm command outside of context"] 2 (#$ . 205660) nil])
(put 'helm-enlarge-window 'helm-only t)
#@57 Toggle helm-buffer full-frame view.
 
(fn &optional ARG)
(defalias 'helm-toggle-full-frame #[256 "\306 \203\f\307\310\311\312\211$\210\211\203\203\307\313\314\312\211$\210    \204(\315\303\316\n!\"\203X\317\320 !r\321\322\323\324\325!\326\"\327$\216\330@\331\"\210\332\303!\210\312\211\f\333!!\210\334\n!\210\330\335 !+\207\317\320 !r\321\322\323\324\325!\336\"\327$\216\330@\331\"\210\337 \210\332\303!\210\340\211\211*\207" [helm--buffer-in-new-frame-p helm-onewindow-p helm-buffer helm-full-frame helm-split-window-preferred-function split-window-preferred-function helm-action-window cl--assertion-failed (null (helm-action-window)) "Unable to toggle full frame from action window" nil (null helm--buffer-in-new-frame-p) "Can't toggle full frame when using helm own frame" buffer-local-value get-buffer internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord make-local-variable switch-to-buffer helm-display-buffer minibuffer-window [internal--after-with-selected-window] delete-other-windows t helm-current-buffer] 9 (#$ . 205907) "p"])
(put 'helm-toggle-full-frame 'helm-only t)
#@54 Swap window holding `helm-buffer' with other window.
(defalias 'helm-swap-windows #[0 "\203\343\304\305\306\"G\307U\203\337    \203\310\311!\203\312\313!\207\314 \203%\312\315!\207\316 \n\317=\320\"\321!\322!\323!\324\316 !r\325\326\327\330\331!\332\"\307$\216\333@\334\"\210\335\336\306#*\262\320\"\321!\322!\305\337 p\325\326\340\330\331\"\341\"\342$\216\343\323!\334\"\210\344  #\210\344\f#\210\nW\203\244 ]\f^Z[\202\272\nV\203\271 ]\f^Z\202\272\305\262\203\310\345#\210\346 \311#\210\346\n\311#\210)\266\347 \211\207\350\351!\207\350\352!\207" [helm-alive-p helm-full-frame helm-split-window-state helm--window-side-state window-list nil 1 2 one-window-p t user-error "Can't swap windows in a single window" helm-action-window "Can't resplit while selecting actions" helm-window horizontal window-total-size window-buffer window-start window-frame internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] select-window norecord get-window-with-predicate #[257 "\300!?\207" [window-dedicated-p] 3 "\n\n(fn W)"] selected-frame "\302\300!\203 \303\300\304\"\210\305\301!\205\301q\207" [frame-live-p select-frame norecord buffer-live-p] 3 select-frame helm-replace-buffer-in-window window-resize set-window-start helm--get-window-side-state error "current window configuration not suitable for splitting" "Running helm command outside of context"] 20 (#$ . 207119) nil])
(put 'helm-swap-windows 'helm-only t)
#@117 Return the position of `helm-window' from `helm-current-buffer'.
Possible values are 'left 'right 'below or 'above.
(defalias 'helm--get-window-side-state #[0 "\301\211\302\303\302:\203.@\262\304 \305\306\303\"\303#\232\205\211\262?\211\262\203.A\262\202\266\203\207" [helm-current-buffer (left right below above) nil t helm-window window-in-direction get-buffer-window] 11 (#$ . 208676)])
#@88 Replace BUFFER1 by BUFFER2 in WINDOW registering BUFFER1.
 
(fn WINDOW BUFFER1 BUFFER2)
(defalias 'helm-replace-buffer-in-window #[771 "\300!\205\301\"\210\302\"\207" [get-buffer-window unrecord-window-buffer set-window-buffer] 6 (#$ . 209088)])
#@71 Select the N nth action for the currently selected candidate.
 
(fn N)
(defalias 'helm-select-nth-action #[257 "\303 \304\305\211#\211\204\306\307!\210\310\311    \312\"\203 \313\314\"\202#\315!\"\316 \207" [helm-saved-selection helm-action-buffer helm-saved-action helm-get-current-source helm-get-selection nil error "Nothing is selected" helm-get-nth-action get-buffer-window visible assoc-default candidates helm-get-actions-from-current-source helm-maybe-exit-minibuffer] 8 (#$ . 209346)])
#@17 
 
(fn N ACTION)
(defalias 'helm-get-nth-action #[514 "\300U\203 \301!\203 \207\211<\203\211\234A\2060\302\303!\207\301!\203-\300W\203-\302\304!\207\302\305!\207" [0 functionp error "No such action" "Sole action" "Error in `helm-select-nth-action'"] 4 (#$ . 209853)])
#@80 Execute default action on candidate at LINUM lines from selection.
 
(fn LINUM)
(defalias 'helm-execute-selection-action-at-nth #[257 "\301Y\203\302!\210\202\303\304S!!\210\211\305 \207" [current-prefix-arg 0 helm-next-line helm-previous-line lognot helm-exit-minibuffer] 5 (#$ . 210138)])
(defalias 'helm-initialize-persistent-action #[0 "\301\300!\210\302\211\207" [helm-persistent-action-display-window make-local-variable nil] 2])
#@624 Perform the associated action ATTR without quitting helm.
Arg ATTR default will be `persistent-action' or `persistent-action-if'
if unspecified depending on what's found in source, but it can be
anything else.
In this case you have to add this new attribute to your source.
See `persistent-action' and `persistent-action-if' slot documentation
in `helm-source'.
 
When `helm-full-frame' or SPLIT-ONEWINDOW are non-`nil', and
`helm-buffer' is displayed in only one window, the helm window is
split to display `helm-select-persistent-action-window' in other
window to maintain visibility.
 
(fn &optional ATTR SPLIT-ONEWINDOW)
(defalias 'helm-execute-persistent-action #[512 "\3062\203\307 \204\310\236@\206\311\236@\262\312\313!\210\211\205(\314\315\211#\311=\2037\316\"!\202;\316\"\211:\203K\317!\204K\211@\202L\211:\205Z\317!?\205ZA\320\315 \203m\211\204m\f\204m\321 \210\322=\203x\323\306\315\"\210\205\324\325 !r\326\327\330\331\332!\333\"\334$\216\335@\336\"\210\337 r\326\327\330\331\332!\340\"\334$\216\203\254\341 \210\202\265\341\206\263 !\210\312\342p\"\210\320\343\315\211\211\211\211123456\344\206\331\345    !\320#\210\346 \204\345\347\350!\210. \205\351 G\352V\205\353\3547!!\355 \232\205\356 *\262*\262*\266\204\262\202\357\360!0\207" [helm-alive-p cursor-in-echo-area mode-line-in-non-selected-windows helm-onewindow-p helm--buffer-in-new-frame-p special-display-buffer-names --cl-block-helm-execute-persistent-action-- helm-get-current-source persistent-action persistent-action-if helm-log "executing persistent-action" helm-get-selection nil assoc-default functionp t helm-toggle-full-frame ignore throw internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord internal--before-save-selected-window [internal--after-save-selected-window] helm-select-persistent-action-window "current-buffer = %S" (".") helm-execute-selection-action-1 helm-get-actions-from-current-source helm-action-window helm-log-run-hook helm-after-persistent-action-hook window-list 1 buffer-name window-buffer helm-buffer-get delete-other-windows error "Running helm command outside of context" special-display-regexps pop-up-frames pop-up-windows display-buffer-function same-window-regexps helm-in-persistent-action helm-persistent-action-display-window] 16 (#$ . 210589) nil])
(put 'helm-execute-persistent-action 'helm-only t)
#@162 Return the window that will be used for persistent action.
If SPLIT-ONEWINDOW is non-`nil' window is split in persistent action.
 
(fn &optional SPLIT-ONEWINDOW)
(defalias 'helm-persistent-action-display-window #[256 "\306\307 !r\310\311\312\313\314!\315\"\316$\216\317@\320\"\210\321\211\322!\203+\323    !\235\204+\202\222\n\203R \203R\324 p\310\311\325\313\314\"\326\"\327$\216\330 \320\"\210\331 )\266\202\202\222\203[\332 \202\222\333\334\331 \335\"\211\262!\203}\336\337\340\"\210\337\341B\fB\342\341\337\"\210\332 \202\222\333\343 !\211\262!\203\215\332 \202\222\211\206\222\211\266\202*\207" [helm-persistent-action-display-window helm-buffer helm--buffer-in-new-frame-p helm-initial-frame helm--temp-hooks helm-current-buffer internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord nil window-live-p get-buffer-window-list selected-frame "\302\300!\203 \303\300\304\"\210\305\301!\205\301q\207" [frame-live-p select-frame norecord buffer-live-p] 3 select-frame selected-window split-window window-dedicated-p next-window 1 defalias #1=#:helm--hook13 #[0 "\301\216\302!\205 \303!)\207" [helm-persistent-action-display-window #[0 "\300\301\302\"\210\303\302!\207" [remove-hook helm-after-update-hook #1# fmakunbound] 3] window-live-p delete-window] 2] helm-after-update-hook add-hook get-buffer-window] 13 (#$ . 213095)])
#@168 Select the window that will be used for persistent action.
See `helm-persistent-action-display-window' for how to use SPLIT-ONEWINDOW.
 
(fn &optional SPLIT-ONEWINDOW)
(defalias 'helm-select-persistent-action-window #[256 "\301\302\303 !!\210\301\304!\211!\305\306\"\210\207" [minibuffer-scroll-window select-window get-buffer-window helm-buffer-get helm-persistent-action-display-window helm-log "Selected window is %S"] 5 (#$ . 214567)])
#@30 
 
(fn COMMAND &optional ARG)
(defalias 'helm-other-window-base #[513 "\302 \206        !)\207" [minibuffer-scroll-window helm-scroll-amount helm-persistent-action-display-window] 4 (#$ . 215015)])
#@151 Scroll other window upward ARG many lines.
When arg is not provided scroll `helm-scroll-amount' lines.
See `scroll-other-window'.
 
(fn &optional ARG)
(defalias 'helm-scroll-other-window #[256 "\203    \301\302\"\207\303\304!\207" [helm-alive-p helm-other-window-base scroll-other-window error "Running helm command outside of context"] 4 (#$ . 215217) "P"])
(put 'helm-scroll-other-window 'helm-only t)
#@158 Scroll other window downward ARG many lines.
When arg is not provided scroll `helm-scroll-amount' lines.
See `scroll-other-window-down'.
 
(fn &optional ARG)
(defalias 'helm-scroll-other-window-down #[256 "\203    \301\302\"\207\303\304!\207" [helm-alive-p helm-other-window-base scroll-other-window-down error "Running helm command outside of context"] 4 (#$ . 215627) "P"])
(put 'helm-scroll-other-window-down 'helm-only t)
#@127 Run `recenter-top-bottom' in other window.
Meaning of prefix ARG is the same as in `recenter-top-bottom'.
 
(fn &optional ARG)
(defalias 'helm-recenter-top-bottom-other-window #[256 "\203:\301\302 !r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\301\314 !r\303\304\305\306\307!\315\"\311$\216\312@\313\"\210\316!*\262*\207\317\320!\207" [helm-alive-p internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-persistent-action-display-window [internal--after-with-selected-window] recenter-top-bottom error "Running helm command outside of context"] 9 (#$ . 216059) "P"])
(put 'helm-recenter-top-bottom-other-window 'helm-only t)
#@123 Run `reposition-window' in other window.
Meaning of prefix ARG is the same as in `reposition-window'.
 
(fn &optional ARG)
(defalias 'helm-reposition-window-other-window #[256 "\203:\301\302 !r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\301\314 !r\303\304\305\306\307!\315\"\311$\216\312@\313\"\210\316!*\262*\207\317\320!\207" [helm-alive-p internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-persistent-action-display-window [internal--after-with-selected-window] reposition-window error "Running helm command outside of context"] 9 (#$ . 216817) "P"])
(put 'helm-reposition-window-other-window 'helm-only t)
(defalias 'helm-clear-visible-mark #[0 "r\301 q\210\302\303\"\210\304\300!\210\305\211)\207" [helm-visible-mark-overlays helm-buffer-get mapc delete-overlay make-local-variable nil] 3])
(defalias 'helm-this-visible-mark #[0 "\300`!\301\302\301:\203+@\262\303\304\"\203 \262\301\211\262\202!\302\203+A\262\202\207" [overlays-at nil t overlay-get visible-mark] 7])
#@16 
 
(fn OVERLAY)
(defalias 'helm-delete-visible-mark #[257 "\302 \303\304\305\211#B\"\306!\210\307    \"\211\207" [helm-marked-candidates helm-visible-mark-overlays helm-get-current-source remove helm-get-selection nil delete-overlay delq] 8 (#$ . 217944)])
#@32 
 
(fn &optional SRC SELECTION)
(defalias 'helm-make-visible-mark #[512 "\206\302 \206\303\304\305\306\"#\307 \203%\310 \206(\311 \206(d\202(\312 T\313\314 \"\315\316\317#\210\315\320\321#\210\315\322\323\324\"#\210\315\325\326!\327!{#\210\315\330#\210\315\331\332#\210\211\333\"\203h\210\202l\211B\210B    B\211\207" [helm-visible-mark-overlays helm-marked-candidates helm-get-current-source helm-get-selection nil helm-attr marked-with-props helm-pos-multiline-p helm-get-next-candidate-separator-pos helm-get-next-header-pos point-at-eol make-overlay point-at-bol overlay-put priority 0 face helm-visible-mark source assoc-default name string overlay-start overlay-end real visible-mark t memql] 12 (#$ . 218210)])
#@92 Toggle helm visible mark at point ARG times.
If ARG is negative toggle backward.
 
(fn ARG)
(defalias 'helm-toggle-visible-mark #[257 "\203\202\301\302 !r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\314\315 \236\304W\203)\316\202*\317\2034\320\321!\202~\3222~\304W\203C[\202D\211\211S\211\262\304Y\203z\323 \211\203\\\324!\210\202_\325 \210\210@ \203s\326\315 !\210\327\322\330\"\210\202EA \210\202E\330\266\2020\266\202*\207\331\332!\207" [helm-alive-p internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord nomark helm-get-current-source (helm-beginning-of-source-p . helm-previous-line) (helm-end-of-source-p . helm-next-line) message "Marking not allowed in this source" --cl-block-nil-- helm-this-visible-mark helm-delete-visible-mark helm-make-visible-mark helm-display-mode-line throw nil error "Running helm command outside of context"] 9 (#$ . 218964) "p"])
(put 'helm-toggle-visible-mark 'helm-only t)
#@88 Return non-`nil' if current source is a file completion source.
 
(fn &optional SOURCE)
(defalias 'helm-file-completion-source-p #[256 "\2062\302\206 \303 \236A    \304\305\304:\203.@\262\230\211\262?\211\262\203.A\262\202\266\203\262\207" [helm--completing-file-name helm--file-completion-sources name helm-get-current-source nil t] 8 (#$ . 220021)])
#@149 Mark all visible unmarked candidates in current source.
 
With a prefix arg mark all visible unmarked candidates in all sources.
 
(fn &optional ALL)
(defalias 'helm-mark-all #[256 "\203Z\301\302 !r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\204%\314\315!\202X`eb\210\315\211\203J\316 \211\203C\211b\210\317y\210\320 \210\314 \210\202F\321\262\210\202*\210\211b\210\320 \210\322\323 \315\"\262*\207\324\325!\207" [helm-alive-p internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-mark-all-1 t helm-get-next-header-pos 1 helm-mark-current-line nil helm-display-mode-line helm-get-current-source error "Running helm command outside of context"] 8 (#$ . 220394) "P"])
(put 'helm-mark-all 'helm-only t)
#@287 Mark all visible unmarked candidates in current source.
Need to be wrapped in `with-helm-window'.
Arg ENSURE-BEG-OF-SOURCE ensure we are at beginning of source when
starting to mark candidates, if handled elsewhere before starting it
is not needed.
 
(fn &optional ENSURE-BEG-OF-SOURCE)
(defalias 'helm-mark-all-1 #[256 "\302 \303!\203\f\304\202 \305\306\236\307\310\"\311!\206\211\312\230\211\205$\313!\314K\315\316\317\320\321!\322\"\323$\216\314\324M\210\325\305!\210\315\316\326\320\321\n!\327\"\323$\216\203Q\314\330!\202\337\212\203^\331 b\210\304y\210\332 \211\205m\212\211b\210\305y\210`)\211\206rd`W\203\332\333 \210\334\335 \336\"\337\340\211 #\205\216\341!\342 \204\305\343\230\204\305\203\277\344\340\345\346#)\266\203\204\305\211\347\235\204\305\203\277\350!\203\305\351 \"\210\266\352 \203\324\353 \206\322db\210\304y\210\202r\266)\333 *\262\207" [helm-pattern inhibit-changing-match-data helm-get-current-source helm-follow-mode-p 1 -1 nomark assoc-default name helm-file-completion-source-p "Files from Current Directory" file-remote-p message make-byte-code 0 "\301\300M\207" vconcat vector [message] 2 ignore helm-follow-mode "\301\300!\207" [helm-follow-mode] "Marking not allowed in this source" helm-get-previous-header-pos helm-get-next-header-pos helm-mark-current-line get-text-property point-at-bol display helm-get-selection nil helm-basename helm-this-visible-mark "[?]" "^[.]?#.*#?$" t string-match ("." "..") file-exists-p helm-make-visible-mark helm-pos-multiline-p helm-get-next-candidate-separator-pos] 21 (#$ . 221233)])
#@63 Unmark all candidates in all sources of current helm session.
(defalias 'helm-unmark-all #[0 "\203+\302\303 !r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\212\315 \210)\316\317 \210\320\321 !*\207\322\323!\207" [helm-alive-p helm-marked-candidates internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-clear-visible-mark nil helm-mark-current-line helm-display-mode-line helm-get-current-source error "Running helm command outside of context"] 7 (#$ . 222845) nil])
(put 'helm-unmark-all 'helm-only t)
#@232 Toggle all marks.
 
Mark all visible candidates of current source or unmark all candidates
visible or invisible in all sources of current helm session.
 
With a prefix argument mark all candidates in all sources.
 
(fn &optional ALL)
(defalias 'helm-toggle-all-marks #[256 "\2034\302 \211G\303Y\2030\304\305 !r\306\307\310\311\312!\313\"\314$\216\315@\316\"\210    *\262\2030\317 \2023\320!\207\321\322!\207" [helm-alive-p helm-visible-mark-overlays helm-marked-candidates 1 internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord helm-unmark-all helm-mark-all error "Running helm command outside of context"] 9 (#$ . 223479) "P"])
(put 'helm-toggle-all-marks 'helm-only t)
#@39 
 
(fn REAL SOURCE &optional WILDCARD)
(defalias 'helm--compute-marked #[770 "\302\"\205\3031\304\305\"0\202\210\306\211\204L\203L\306\305\307#)\266\203\204L\310!\204L;\203I\311\306\305\307#)\266\203\203L\306\262\211\206V\205VC\207" [helm--url-regexp inhibit-changing-match-data helm-coerce-selection (error) helm-file-expand-wildcards t nil string-match file-exists-p "[[*?]"] 12 (#$ . 224268)])
#@290 Return marked candidates of current source, if any.
 
Otherwise return one element list consisting of the current
selection. When key WITH-WILDCARD is specified, expand it.
When ALL-SOURCES key value is non-nil returns marked candidates of all
sources.
 
(fn &key WITH-WILDCARD ALL-SOURCES)
(defalias 'helm-marked-candidates #[128 "\303\304\"A@\303\305\"A@\211\2037\211@\306>\203 \211AA\262\202 \307>A@\203.\310\262\202 \311\312@\"\210\202 \210rq\210\313 \314    !\310\211\211\211:\203\223@\262\211A\262\242\262\205o\315\310\316\317#)\266\203\205o\320!?\262\204\201\321\236\321\236\232\203\214\314\322#!\244\262A\262\202E\211\237\266\205\310\204\266\323\310\324\325\"#\262\322\205\263\320!?#\262\326\327\"\210\266\203)\207" [helm-buffer helm-marked-candidates inhibit-changing-match-data plist-member :with-wildcard :all-sources (:with-wildcard :all-sources :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:with-wildcard :all-sources)" helm-get-current-source reverse "\\*" t string-match file-exists-p name helm--compute-marked helm-get-selection helm-attr marked-with-props helm-log "Marked candidates = %S"] 16 (#$ . 224706)])
#@12 
 
(fn ELM)
(defalias 'helm--remove-marked-and-update-mode-line #[257 "r\301 q\210\302\303\"\"\304\305 !)\207" [helm-marked-candidates helm-buffer-get delete rassoc helm-display-mode-line helm-get-current-source] 5 (#$ . 225931)])
#@13 
 
(fn NAME)
(defalias 'helm-current-source-name= #[257 "\212\300 b\210\211\301 \232)\207" [helm-get-previous-header-pos helm-current-line-contents] 3 (#$ . 226171)])
#@54 Restore marked candidates when helm updates display.
(defalias 'helm-revive-visible-mark #[0 "rq\210\212    \211\205\233\211@\302\303\"\302\304\"\305\211eb\210\306\305\307#\210\306\305\307#\203\222\310\311\312!!\305\307:\203I@\262\302\313\"?\211\262\203IA\262\202.\211\205N\307\266\203\203\222\314!\203\222\312\224\262\312\225\262\315\311\312!\316\"\211\203\302\317\"\232\203\216\320#\210\202\216{\232\203\216\320#\210\210\202\266A\266\202\202\262*\207" [helm-buffer helm-visible-mark-overlays overlay-get source string nil search-forward t overlays-at point-at-bol 0 visible-mark helm-current-source-name= get-text-property helm-realvalue real move-overlay] 12 (#$ . 226343)])
(add-hook 'helm-after-update-hook 'helm-revive-visible-mark)
#@37 
 
(fn CURPOS POINTS &optional PREV)
(defalias 'helm-next-point-in-list #[770 "\204\207\211\203@X\203GS8\207\300!@W\203,\211\203)\300!@\207@\207\211\204<\300!@Y\203<@\207\211\203t\301\302\303\301:\203o@\262X\203`S\262\301\211\262\202a\303\203oA\262T\262\202E\266\204\202\244\301\302\303\301:\203\242@\262W\203\223\262\301\211\262\202\224\303\203\242A\262T\262\202y\266\2048\207" [last nil 0 t] 10 (#$ . 227134)])
#@91 Move next helm visible mark.
If PREV is non-`nil' move to precedent.
 
(fn &optional PREV)
(defalias 'helm-next-visible-mark #[256 "\2038\302\303 !r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\3151/\316`\317\320\321    \"\322\"#b0\2023\210\2024\210\323 *\207\324\325!\207" [helm-alive-p helm-visible-mark-overlays internal--before-with-selected-window helm-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord (error) helm-next-point-in-list sort mapcar overlay-start < helm-mark-current-line error "Running helm command outside of context"] 8 (#$ . 227616) nil])
(put 'helm-next-visible-mark 'helm-only t)
#@34 Move previous helm visible mark.
(defalias 'helm-prev-visible-mark #[0 "\203\301\302!\207\303\304!\207" [helm-alive-p helm-next-visible-mark t error "Running helm command outside of context"] 2 (#$ . 228306) nil])
(put 'helm-prev-visible-mark 'helm-only t)
#@123 Set minibuffer contents to current display selection.
With a prefix arg set to real value of current selection.
 
(fn ARG)
(defalias 'helm-yank-selection #[257 "\203\301\302\303\304?\"\"\305!\210\306!\207\307\310!\207" [helm-alive-p format "%s" helm-get-selection nil kill-new helm-set-pattern error "Running helm command outside of context"] 6 (#$ . 228573) "P"])
(put 'helm-yank-selection 'helm-only t)
#@204 Store display value of current selection to kill ring.
With a prefix arg use real value of current selection.
Display value is shown in `helm-buffer' and real value
is used to perform actions.
 
(fn ARG)
(defalias 'helm-kill-selection-and-quit #[257 "\203\301\302\303\304\305\306?\"\"\"\207\307\310!\207" [helm-alive-p helm-run-after-exit #[257 "\300!\210\301\302\303\"\210\304\305!\210\207" [kill-new nil message "Saved to kill-ring: %s" sit-for 1] 5 "\n\n(fn SEL)"] format "%s" helm-get-selection nil error "Running helm command outside of context"] 8 (#$ . 228990) "P"])
(put 'helm-kill-selection-and-quit 'helm-only t)
#@142 Copy selection or marked candidates to `helm-current-buffer'.
Note that the real values of candidates are copied and not the
display values.
(defalias 'helm-copy-to-buffer #[0 "\203\n\301\302\303 \"\207\304\305!\207" [helm-alive-p helm-run-after-exit #[257 "r\301!\203 \206p\211q\210\302\303\304#c)\207" [helm-current-buffer buffer-live-p mapconcat #[257 "\300\301\"\207" [format "%s"] 4 "\n\n(fn C)"] "\n"] 5 "\n\n(fn CANDS)"] helm-marked-candidates error "Running helm command outside of context"] 3 (#$ . 229626) nil])
(put 'helm-copy-to-buffer 'helm-only t)
#@167 `helm-follow-mode' will execute its persistent action after this delay.
Note that if the `follow-delay' attr is present in source,
it will take precedence over this.
(defvar helm-follow-input-idle-delay nil (#$ . 230205))
#@1035 Execute persistent action every time the cursor is moved.
 
This mode is source local, i.e It apply on current source only.
\<helm-map>
This mode can be enabled or disabled interactively at anytime during
a helm session with \[helm-follow-mode].
 
When enabling interactively `helm-follow-mode' in a source, you can keep it enabled
for next emacs sessions by setting `helm-follow-mode-persistent' to a non-nil value.
 
When `helm-follow-mode' is called with a prefix arg and `helm-follow-mode-persistent'
is non-nil `helm-follow-mode' will be persistent only for this emacs session,
but not for next emacs sessions, i.e the current source will not be saved
to `helm-source-names-using-follow'.
A prefix arg with `helm-follow-mode' already enabled will have no effect.
 
Note that you can use instead of this mode the commands `helm-follow-action-forward'
and `helm-follow-action-backward' at anytime in all helm sessions.
 
They are bound by default to \[helm-follow-action-forward] and \[helm-follow-action-backward].
 
(fn &optional ARG)
(defalias 'helm-follow-mode #[256 "\203\226r    q\210\304 \305\306\"\307\236\310!\206!\n\205!\305\306\" \235\203\217A\311=\2032\312\313!\202\222\314\204B\247\203F\315W\203F\316\202G\317\"\210\n\203x\204x\211\204h \235\204x B\320\303 \"\210\202x \235\203x\321 \"\320\303 \"\210\312\322\310!\203\205\323\202\206\324\"\210\325\326\"\202\222\312\327!\266\204)\207\330\331!\207" [helm-alive-p helm-buffer helm-follow-mode-persistent helm-source-names-using-follow helm-get-current-source assoc-default name follow helm-follow-mode-p never message "helm-follow-mode not allowed in this source" helm-follow-mode-set-source 0 -1 1 customize-save-variable delete "helm-follow-mode is %s" "enabled" "disabled" helm-display-mode-line t "Not enough candidates for helm-follow-mode" error "Running helm command outside of context"] 9 (#$ . 230435) (byte-code "\205\301!\211\205\302 ?\205\211\262C\207" [current-prefix-arg prefix-numeric-value helm-follow-mode-p] 2)])
(put 'helm-follow-mode 'helm-only t)
#@214 Execute persistent action in mode `helm-follow-mode'.
 
This happen after: DELAY or the 'follow-attr value of current source
or `helm-follow-input-idle-delay' or `helm-input-idle-delay' secs.
 
(fn &optional DELAY)
(defalias 'helm-follow-execute-persistent-action-maybe #[256 "\305 \206\306\307\"\206\206    \203    \310]\206\311\312\n\313\"?\205Y\314 ?\205Y\315!\204= \205Y\306\316\"\f\235\205Y\306\317\"\320=?\205Y\321\322\211#\205Y\323\324\"\210\325\322\326#\207" [helm-follow-input-idle-delay helm-input-idle-delay helm-action-buffer helm-follow-mode-persistent helm-source-names-using-follow helm-get-current-source assoc-default follow-delay 0.01 0.01 get-buffer-window visible helm-pos-header-line-p helm-follow-mode-p name follow never helm-get-selection nil helm-follow-mode-set-source 1 run-with-idle-timer #[0 "\205\301 \207" [helm-alive-p helm-execute-persistent-action] 1]] 7 (#$ . 232514)])
#@25 
 
(fn &optional SOURCE)
(defalias 'helm-follow-mode-p #[256 "r\300 q\210\301\302\206 \303 \")\304=\207" [helm-buffer-get helm-attr follow helm-get-current-source 1] 4 (#$ . 233446)])
#@31 
 
(fn VALUE &optional SOURCE)
(defalias 'helm-follow-mode-set-source #[513 "r\300 q\210\301\302\206\303 #)\207" [helm-buffer-get helm-attrset follow helm-get-current-source] 6 (#$ . 233637)])
#@40 
 
(fn &optional MAX-HEIGHT MIN-HEIGHT)
(defalias 'helm--autoresize-hook #[512 "\302 \2056\303\302 !r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\315\316\317 \206%_\320\245\317 \206/    _\320\245#*\262\207" [helm-autoresize-max-height helm-autoresize-min-height helm-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord fit-window-to-buffer nil frame-height 100] 9 (#$ . 233839)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315& \207" [custom-declare-variable helm-autoresize-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Helm-Autoresize mode is enabled.\nSee the `helm-autoresize-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `helm-autoresize-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group helm :type boolean] 12)
#@297 Auto resize helm window when enabled.
Helm window is re-sized according to `helm-autoresize-max-height'
and `helm-autoresize-min-height'. Note that when this mode is
enabled, helm behaves as if `helm-always-two-windows' is
enabled.
 
See `fit-window-to-buffer' for more infos.
 
(fn &optional ARG)
(defalias 'helm-autoresize-mode #[256 "\301 \302\300\303=\203\304\300!?\202\305!\306V\"\210\203)\307\310\311\"\210\307\312\311\"\210\2023\313\310\311\"\210\313\312\311\"\210\314\315\304\300!\203?\316\202@\317\"\210\320\321!\203j\322\300!\210\301 \203X\211\301 \232\203j\323\324\325\304\300!\203e\326\202f\327#\266\210\330 \210\304\300!\207" [helm-autoresize-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook helm-after-update-hook helm--autoresize-hook helm-window-configuration-hook remove-hook run-hooks helm-autoresize-mode-hook helm-autoresize-mode-on-hook helm-autoresize-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Helm-Autoresize mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 234891) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
(defvar helm-autoresize-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [helm-autoresize-mode-map helm-autoresize-mode-hook variable-documentation put "Hook run after entering or leaving `helm-autoresize-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 helm-autoresize-mode nil boundp] 6)
#@337 Generate helm's help according to `help-message' attribute.
 
If `helm-buffer' is empty, provide completions on `helm-sources' to
choose its local documentation.
If source doesn't have any `help-message' attribute, a generic message
explaining this is added instead.
The global `helm-help-message' is always added after this local help.
(defalias 'helm-help #[0 "\203h\302 \206F\303\304r\305 q\210    )\306\211\211:\203<@\2629\203(J\202)\262\307\310\"BB\262A\262\202\211\237\266\204\311\312\313\312&\314 r\315\316\317\320\321!\322\"\323$\216\324\325\315\316\326\320\321!\327\"\330$\"*\262\207\331\332!\207" [helm-alive-p helm-sources helm-get-current-source helm-comp-read "Help for: " helm-buffer-get nil assoc-default name :allow-nest t :exec-when-only-one internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 helm-help-internal "*Helm Help*" "\302\303\300\"\211\203\304\305!!c\210\202\306c\210\210\307\304\305    !!\261\207" [helm-help-message assoc-default help-message substitute-command-keys helm-interpret-value "* No specific help for this source available." "\n\n"] 4 error "Running helm command outside of context"] 10 (#$ . 236495) nil])
(put 'helm-help 'helm-only t)
#@48 Toggle `truncate-lines' value in `helm-buffer'
(defalias 'helm-toggle-truncate-line #[0 "\203r\302 q\210    ?\303 \205\304\305\306\307\310\"!!)\207\311\312!\207" [helm-alive-p truncate-lines helm-buffer-get helm-get-previous-header-pos helm-update regexp-quote helm-get-selection nil t error "Running helm command outside of context"] 5 (#$ . 237779) nil])
(byte-code "\300\301\302\303#\210\304\305!\207" [put helm-toggle-truncate-line helm-only t provide helm] 4)