File Coverage

blib/lib/Data/Password/zxcvbn/AdjacencyGraph/English.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package Data::Password::zxcvbn::AdjacencyGraph::English;
2 3     3   27 use strict;
  3         6  
  3         93  
3 3     3   17 use warnings;
  3         7  
  3         4404  
4             # VERSION
5             # ABSTRACT: adjacency graphs for English keyboards
6              
7             =head1 DESCRIPTION
8              
9             This is a data file used by L<<
10             C<Data::Password::zxcvbn::Match::Spatial> >>, and is generated by the
11             L<<
12             C<build-keyboard-adjacency-graphs>|https://bitbucket.org/broadbean/p5-data-password-zxcvbn/src/master/maint/build-keyboard-adjacency-graphs
13             >> program when building the distribution.
14              
15              
16             =cut
17              
18             our %graphs = (
19             'dvorak' => {
20             'average_degree' => '4.59574468085106',
21             'keys' => {
22             '!' => [
23             '`~',
24             undef,
25             undef,
26             '2@',
27             '\'"',
28             undef,
29             ],
30             '"' => [
31             undef,
32             '1!',
33             '2@',
34             ',<',
35             'aA',
36             undef,
37             ],
38             '#' => [
39             '2@',
40             undef,
41             undef,
42             '4$',
43             '.>',
44             ',<',
45             ],
46             '$' => [
47             '3#',
48             undef,
49             undef,
50             '5%',
51             'pP',
52             '.>',
53             ],
54             '%' => [
55             '4$',
56             undef,
57             undef,
58             '6^',
59             'yY',
60             'pP',
61             ],
62             '&' => [
63             '6^',
64             undef,
65             undef,
66             '8*',
67             'gG',
68             'fF',
69             ],
70             '\'' => [
71             undef,
72             '1!',
73             '2@',
74             ',<',
75             'aA',
76             undef,
77             ],
78             '(' => [
79             '8*',
80             undef,
81             undef,
82             '0)',
83             'rR',
84             'cC',
85             ],
86             ')' => [
87             '9(',
88             undef,
89             undef,
90             '[{',
91             'lL',
92             'rR',
93             ],
94             '*' => [
95             '7&',
96             undef,
97             undef,
98             '9(',
99             'cC',
100             'gG',
101             ],
102             '+' => [
103             '/?',
104             ']}',
105             undef,
106             '\\|',
107             undef,
108             '-_',
109             ],
110             ',' => [
111             '\'"',
112             '2@',
113             '3#',
114             '.>',
115             'oO',
116             'aA',
117             ],
118             '-' => [
119             'sS',
120             '/?',
121             '=+',
122             undef,
123             undef,
124             'zZ',
125             ],
126             '.' => [
127             ',<',
128             '3#',
129             '4$',
130             'pP',
131             'eE',
132             'oO',
133             ],
134             '/' => [
135             'lL',
136             '[{',
137             ']}',
138             '=+',
139             '-_',
140             'sS',
141             ],
142             '0' => [
143             '9(',
144             undef,
145             undef,
146             '[{',
147             'lL',
148             'rR',
149             ],
150             '1' => [
151             '`~',
152             undef,
153             undef,
154             '2@',
155             '\'"',
156             undef,
157             ],
158             '2' => [
159             '1!',
160             undef,
161             undef,
162             '3#',
163             ',<',
164             '\'"',
165             ],
166             '3' => [
167             '2@',
168             undef,
169             undef,
170             '4$',
171             '.>',
172             ',<',
173             ],
174             '4' => [
175             '3#',
176             undef,
177             undef,
178             '5%',
179             'pP',
180             '.>',
181             ],
182             '5' => [
183             '4$',
184             undef,
185             undef,
186             '6^',
187             'yY',
188             'pP',
189             ],
190             '6' => [
191             '5%',
192             undef,
193             undef,
194             '7&',
195             'fF',
196             'yY',
197             ],
198             '7' => [
199             '6^',
200             undef,
201             undef,
202             '8*',
203             'gG',
204             'fF',
205             ],
206             '8' => [
207             '7&',
208             undef,
209             undef,
210             '9(',
211             'cC',
212             'gG',
213             ],
214             '9' => [
215             '8*',
216             undef,
217             undef,
218             '0)',
219             'rR',
220             'cC',
221             ],
222             ':' => [
223             undef,
224             'aA',
225             'oO',
226             'qQ',
227             undef,
228             undef,
229             ],
230             ';' => [
231             undef,
232             'aA',
233             'oO',
234             'qQ',
235             undef,
236             undef,
237             ],
238             '<' => [
239             '\'"',
240             '2@',
241             '3#',
242             '.>',
243             'oO',
244             'aA',
245             ],
246             '=' => [
247             '/?',
248             ']}',
249             undef,
250             '\\|',
251             undef,
252             '-_',
253             ],
254             '>' => [
255             ',<',
256             '3#',
257             '4$',
258             'pP',
259             'eE',
260             'oO',
261             ],
262             '?' => [
263             'lL',
264             '[{',
265             ']}',
266             '=+',
267             '-_',
268             'sS',
269             ],
270             '@' => [
271             '1!',
272             undef,
273             undef,
274             '3#',
275             ',<',
276             '\'"',
277             ],
278             'A' => [
279             undef,
280             '\'"',
281             ',<',
282             'oO',
283             ';:',
284             undef,
285             ],
286             'B' => [
287             'xX',
288             'dD',
289             'hH',
290             'mM',
291             undef,
292             undef,
293             ],
294             'C' => [
295             'gG',
296             '8*',
297             '9(',
298             'rR',
299             'tT',
300             'hH',
301             ],
302             'D' => [
303             'iI',
304             'fF',
305             'gG',
306             'hH',
307             'bB',
308             'xX',
309             ],
310             'E' => [
311             'oO',
312             '.>',
313             'pP',
314             'uU',
315             'jJ',
316             'qQ',
317             ],
318             'F' => [
319             'yY',
320             '6^',
321             '7&',
322             'gG',
323             'dD',
324             'iI',
325             ],
326             'G' => [
327             'fF',
328             '7&',
329             '8*',
330             'cC',
331             'hH',
332             'dD',
333             ],
334             'H' => [
335             'dD',
336             'gG',
337             'cC',
338             'tT',
339             'mM',
340             'bB',
341             ],
342             'I' => [
343             'uU',
344             'yY',
345             'fF',
346             'dD',
347             'xX',
348             'kK',
349             ],
350             'J' => [
351             'qQ',
352             'eE',
353             'uU',
354             'kK',
355             undef,
356             undef,
357             ],
358             'K' => [
359             'jJ',
360             'uU',
361             'iI',
362             'xX',
363             undef,
364             undef,
365             ],
366             'L' => [
367             'rR',
368             '0)',
369             '[{',
370             '/?',
371             'sS',
372             'nN',
373             ],
374             'M' => [
375             'bB',
376             'hH',
377             'tT',
378             'wW',
379             undef,
380             undef,
381             ],
382             'N' => [
383             'tT',
384             'rR',
385             'lL',
386             'sS',
387             'vV',
388             'wW',
389             ],
390             'O' => [
391             'aA',
392             ',<',
393             '.>',
394             'eE',
395             'qQ',
396             ';:',
397             ],
398             'P' => [
399             '.>',
400             '4$',
401             '5%',
402             'yY',
403             'uU',
404             'eE',
405             ],
406             'Q' => [
407             ';:',
408             'oO',
409             'eE',
410             'jJ',
411             undef,
412             undef,
413             ],
414             'R' => [
415             'cC',
416             '9(',
417             '0)',
418             'lL',
419             'nN',
420             'tT',
421             ],
422             'S' => [
423             'nN',
424             'lL',
425             '/?',
426             '-_',
427             'zZ',
428             'vV',
429             ],
430             'T' => [
431             'hH',
432             'cC',
433             'rR',
434             'nN',
435             'wW',
436             'mM',
437             ],
438             'U' => [
439             'eE',
440             'pP',
441             'yY',
442             'iI',
443             'kK',
444             'jJ',
445             ],
446             'V' => [
447             'wW',
448             'nN',
449             'sS',
450             'zZ',
451             undef,
452             undef,
453             ],
454             'W' => [
455             'mM',
456             'tT',
457             'nN',
458             'vV',
459             undef,
460             undef,
461             ],
462             'X' => [
463             'kK',
464             'iI',
465             'dD',
466             'bB',
467             undef,
468             undef,
469             ],
470             'Y' => [
471             'pP',
472             '5%',
473             '6^',
474             'fF',
475             'iI',
476             'uU',
477             ],
478             'Z' => [
479             'vV',
480             'sS',
481             '-_',
482             undef,
483             undef,
484             undef,
485             ],
486             '[' => [
487             '0)',
488             undef,
489             undef,
490             ']}',
491             '/?',
492             'lL',
493             ],
494             '\\' => [
495             '=+',
496             undef,
497             undef,
498             undef,
499             undef,
500             undef,
501             ],
502             ']' => [
503             '[{',
504             undef,
505             undef,
506             undef,
507             '=+',
508             '/?',
509             ],
510             '^' => [
511             '5%',
512             undef,
513             undef,
514             '7&',
515             'fF',
516             'yY',
517             ],
518             '_' => [
519             'sS',
520             '/?',
521             '=+',
522             undef,
523             undef,
524             'zZ',
525             ],
526             '`' => [
527             undef,
528             undef,
529             undef,
530             '1!',
531             undef,
532             undef,
533             ],
534             'a' => [
535             undef,
536             '\'"',
537             ',<',
538             'oO',
539             ';:',
540             undef,
541             ],
542             'b' => [
543             'xX',
544             'dD',
545             'hH',
546             'mM',
547             undef,
548             undef,
549             ],
550             'c' => [
551             'gG',
552             '8*',
553             '9(',
554             'rR',
555             'tT',
556             'hH',
557             ],
558             'd' => [
559             'iI',
560             'fF',
561             'gG',
562             'hH',
563             'bB',
564             'xX',
565             ],
566             'e' => [
567             'oO',
568             '.>',
569             'pP',
570             'uU',
571             'jJ',
572             'qQ',
573             ],
574             'f' => [
575             'yY',
576             '6^',
577             '7&',
578             'gG',
579             'dD',
580             'iI',
581             ],
582             'g' => [
583             'fF',
584             '7&',
585             '8*',
586             'cC',
587             'hH',
588             'dD',
589             ],
590             'h' => [
591             'dD',
592             'gG',
593             'cC',
594             'tT',
595             'mM',
596             'bB',
597             ],
598             'i' => [
599             'uU',
600             'yY',
601             'fF',
602             'dD',
603             'xX',
604             'kK',
605             ],
606             'j' => [
607             'qQ',
608             'eE',
609             'uU',
610             'kK',
611             undef,
612             undef,
613             ],
614             'k' => [
615             'jJ',
616             'uU',
617             'iI',
618             'xX',
619             undef,
620             undef,
621             ],
622             'l' => [
623             'rR',
624             '0)',
625             '[{',
626             '/?',
627             'sS',
628             'nN',
629             ],
630             'm' => [
631             'bB',
632             'hH',
633             'tT',
634             'wW',
635             undef,
636             undef,
637             ],
638             'n' => [
639             'tT',
640             'rR',
641             'lL',
642             'sS',
643             'vV',
644             'wW',
645             ],
646             'o' => [
647             'aA',
648             ',<',
649             '.>',
650             'eE',
651             'qQ',
652             ';:',
653             ],
654             'p' => [
655             '.>',
656             '4$',
657             '5%',
658             'yY',
659             'uU',
660             'eE',
661             ],
662             'q' => [
663             ';:',
664             'oO',
665             'eE',
666             'jJ',
667             undef,
668             undef,
669             ],
670             'r' => [
671             'cC',
672             '9(',
673             '0)',
674             'lL',
675             'nN',
676             'tT',
677             ],
678             's' => [
679             'nN',
680             'lL',
681             '/?',
682             '-_',
683             'zZ',
684             'vV',
685             ],
686             't' => [
687             'hH',
688             'cC',
689             'rR',
690             'nN',
691             'wW',
692             'mM',
693             ],
694             'u' => [
695             'eE',
696             'pP',
697             'yY',
698             'iI',
699             'kK',
700             'jJ',
701             ],
702             'v' => [
703             'wW',
704             'nN',
705             'sS',
706             'zZ',
707             undef,
708             undef,
709             ],
710             'w' => [
711             'mM',
712             'tT',
713             'nN',
714             'vV',
715             undef,
716             undef,
717             ],
718             'x' => [
719             'kK',
720             'iI',
721             'dD',
722             'bB',
723             undef,
724             undef,
725             ],
726             'y' => [
727             'pP',
728             '5%',
729             '6^',
730             'fF',
731             'iI',
732             'uU',
733             ],
734             'z' => [
735             'vV',
736             'sS',
737             '-_',
738             undef,
739             undef,
740             undef,
741             ],
742             '{' => [
743             '0)',
744             undef,
745             undef,
746             ']}',
747             '/?',
748             'lL',
749             ],
750             '|' => [
751             '=+',
752             undef,
753             undef,
754             undef,
755             undef,
756             undef,
757             ],
758             '}' => [
759             '[{',
760             undef,
761             undef,
762             undef,
763             '=+',
764             '/?',
765             ],
766             '~' => [
767             undef,
768             undef,
769             undef,
770             '1!',
771             undef,
772             undef,
773             ],
774             },
775             'starting_positions' => 94,
776             },
777             'qwerty' => {
778             'average_degree' => '4.59574468085106',
779             'keys' => {
780             '!' => [
781             '`~',
782             undef,
783             undef,
784             '2@',
785             'qQ',
786             undef,
787             ],
788             '"' => [
789             ';:',
790             '[{',
791             ']}',
792             undef,
793             undef,
794             '/?',
795             ],
796             '#' => [
797             '2@',
798             undef,
799             undef,
800             '4$',
801             'eE',
802             'wW',
803             ],
804             '$' => [
805             '3#',
806             undef,
807             undef,
808             '5%',
809             'rR',
810             'eE',
811             ],
812             '%' => [
813             '4$',
814             undef,
815             undef,
816             '6^',
817             'tT',
818             'rR',
819             ],
820             '&' => [
821             '6^',
822             undef,
823             undef,
824             '8*',
825             'uU',
826             'yY',
827             ],
828             '\'' => [
829             ';:',
830             '[{',
831             ']}',
832             undef,
833             undef,
834             '/?',
835             ],
836             '(' => [
837             '8*',
838             undef,
839             undef,
840             '0)',
841             'oO',
842             'iI',
843             ],
844             ')' => [
845             '9(',
846             undef,
847             undef,
848             '-_',
849             'pP',
850             'oO',
851             ],
852             '*' => [
853             '7&',
854             undef,
855             undef,
856             '9(',
857             'iI',
858             'uU',
859             ],
860             '+' => [
861             '-_',
862             undef,
863             undef,
864             undef,
865             ']}',
866             '[{',
867             ],
868             ',' => [
869             'mM',
870             'kK',
871             'lL',
872             '.>',
873             undef,
874             undef,
875             ],
876             '-' => [
877             '0)',
878             undef,
879             undef,
880             '=+',
881             '[{',
882             'pP',
883             ],
884             '.' => [
885             ',<',
886             'lL',
887             ';:',
888             '/?',
889             undef,
890             undef,
891             ],
892             '/' => [
893             '.>',
894             ';:',
895             '\'"',
896             undef,
897             undef,
898             undef,
899             ],
900             '0' => [
901             '9(',
902             undef,
903             undef,
904             '-_',
905             'pP',
906             'oO',
907             ],
908             '1' => [
909             '`~',
910             undef,
911             undef,
912             '2@',
913             'qQ',
914             undef,
915             ],
916             '2' => [
917             '1!',
918             undef,
919             undef,
920             '3#',
921             'wW',
922             'qQ',
923             ],
924             '3' => [
925             '2@',
926             undef,
927             undef,
928             '4$',
929             'eE',
930             'wW',
931             ],
932             '4' => [
933             '3#',
934             undef,
935             undef,
936             '5%',
937             'rR',
938             'eE',
939             ],
940             '5' => [
941             '4$',
942             undef,
943             undef,
944             '6^',
945             'tT',
946             'rR',
947             ],
948             '6' => [
949             '5%',
950             undef,
951             undef,
952             '7&',
953             'yY',
954             'tT',
955             ],
956             '7' => [
957             '6^',
958             undef,
959             undef,
960             '8*',
961             'uU',
962             'yY',
963             ],
964             '8' => [
965             '7&',
966             undef,
967             undef,
968             '9(',
969             'iI',
970             'uU',
971             ],
972             '9' => [
973             '8*',
974             undef,
975             undef,
976             '0)',
977             'oO',
978             'iI',
979             ],
980             ':' => [
981             'lL',
982             'pP',
983             '[{',
984             '\'"',
985             '/?',
986             '.>',
987             ],
988             ';' => [
989             'lL',
990             'pP',
991             '[{',
992             '\'"',
993             '/?',
994             '.>',
995             ],
996             '<' => [
997             'mM',
998             'kK',
999             'lL',
1000             '.>',
1001             undef,
1002             undef,
1003             ],
1004             '=' => [
1005             '-_',
1006             undef,
1007             undef,
1008             undef,
1009             ']}',
1010             '[{',
1011             ],
1012             '>' => [
1013             ',<',
1014             'lL',
1015             ';:',
1016             '/?',
1017             undef,
1018             undef,
1019             ],
1020             '?' => [
1021             '.>',
1022             ';:',
1023             '\'"',
1024             undef,
1025             undef,
1026             undef,
1027             ],
1028             '@' => [
1029             '1!',
1030             undef,
1031             undef,
1032             '3#',
1033             'wW',
1034             'qQ',
1035             ],
1036             'A' => [
1037             undef,
1038             'qQ',
1039             'wW',
1040             'sS',
1041             'zZ',
1042             undef,
1043             ],
1044             'B' => [
1045             'vV',
1046             'gG',
1047             'hH',
1048             'nN',
1049             undef,
1050             undef,
1051             ],
1052             'C' => [
1053             'xX',
1054             'dD',
1055             'fF',
1056             'vV',
1057             undef,
1058             undef,
1059             ],
1060             'D' => [
1061             'sS',
1062             'eE',
1063             'rR',
1064             'fF',
1065             'cC',
1066             'xX',
1067             ],
1068             'E' => [
1069             'wW',
1070             '3#',
1071             '4$',
1072             'rR',
1073             'dD',
1074             'sS',
1075             ],
1076             'F' => [
1077             'dD',
1078             'rR',
1079             'tT',
1080             'gG',
1081             'vV',
1082             'cC',
1083             ],
1084             'G' => [
1085             'fF',
1086             'tT',
1087             'yY',
1088             'hH',
1089             'bB',
1090             'vV',
1091             ],
1092             'H' => [
1093             'gG',
1094             'yY',
1095             'uU',
1096             'jJ',
1097             'nN',
1098             'bB',
1099             ],
1100             'I' => [
1101             'uU',
1102             '8*',
1103             '9(',
1104             'oO',
1105             'kK',
1106             'jJ',
1107             ],
1108             'J' => [
1109             'hH',
1110             'uU',
1111             'iI',
1112             'kK',
1113             'mM',
1114             'nN',
1115             ],
1116             'K' => [
1117             'jJ',
1118             'iI',
1119             'oO',
1120             'lL',
1121             ',<',
1122             'mM',
1123             ],
1124             'L' => [
1125             'kK',
1126             'oO',
1127             'pP',
1128             ';:',
1129             '.>',
1130             ',<',
1131             ],
1132             'M' => [
1133             'nN',
1134             'jJ',
1135             'kK',
1136             ',<',
1137             undef,
1138             undef,
1139             ],
1140             'N' => [
1141             'bB',
1142             'hH',
1143             'jJ',
1144             'mM',
1145             undef,
1146             undef,
1147             ],
1148             'O' => [
1149             'iI',
1150             '9(',
1151             '0)',
1152             'pP',
1153             'lL',
1154             'kK',
1155             ],
1156             'P' => [
1157             'oO',
1158             '0)',
1159             '-_',
1160             '[{',
1161             ';:',
1162             'lL',
1163             ],
1164             'Q' => [
1165             undef,
1166             '1!',
1167             '2@',
1168             'wW',
1169             'aA',
1170             undef,
1171             ],
1172             'R' => [
1173             'eE',
1174             '4$',
1175             '5%',
1176             'tT',
1177             'fF',
1178             'dD',
1179             ],
1180             'S' => [
1181             'aA',
1182             'wW',
1183             'eE',
1184             'dD',
1185             'xX',
1186             'zZ',
1187             ],
1188             'T' => [
1189             'rR',
1190             '5%',
1191             '6^',
1192             'yY',
1193             'gG',
1194             'fF',
1195             ],
1196             'U' => [
1197             'yY',
1198             '7&',
1199             '8*',
1200             'iI',
1201             'jJ',
1202             'hH',
1203             ],
1204             'V' => [
1205             'cC',
1206             'fF',
1207             'gG',
1208             'bB',
1209             undef,
1210             undef,
1211             ],
1212             'W' => [
1213             'qQ',
1214             '2@',
1215             '3#',
1216             'eE',
1217             'sS',
1218             'aA',
1219             ],
1220             'X' => [
1221             'zZ',
1222             'sS',
1223             'dD',
1224             'cC',
1225             undef,
1226             undef,
1227             ],
1228             'Y' => [
1229             'tT',
1230             '6^',
1231             '7&',
1232             'uU',
1233             'hH',
1234             'gG',
1235             ],
1236             'Z' => [
1237             undef,
1238             'aA',
1239             'sS',
1240             'xX',
1241             undef,
1242             undef,
1243             ],
1244             '[' => [
1245             'pP',
1246             '-_',
1247             '=+',
1248             ']}',
1249             '\'"',
1250             ';:',
1251             ],
1252             '\\' => [
1253             ']}',
1254             undef,
1255             undef,
1256             undef,
1257             undef,
1258             undef,
1259             ],
1260             ']' => [
1261             '[{',
1262             '=+',
1263             undef,
1264             '\\|',
1265             undef,
1266             '\'"',
1267             ],
1268             '^' => [
1269             '5%',
1270             undef,
1271             undef,
1272             '7&',
1273             'yY',
1274             'tT',
1275             ],
1276             '_' => [
1277             '0)',
1278             undef,
1279             undef,
1280             '=+',
1281             '[{',
1282             'pP',
1283             ],
1284             '`' => [
1285             undef,
1286             undef,
1287             undef,
1288             '1!',
1289             undef,
1290             undef,
1291             ],
1292             'a' => [
1293             undef,
1294             'qQ',
1295             'wW',
1296             'sS',
1297             'zZ',
1298             undef,
1299             ],
1300             'b' => [
1301             'vV',
1302             'gG',
1303             'hH',
1304             'nN',
1305             undef,
1306             undef,
1307             ],
1308             'c' => [
1309             'xX',
1310             'dD',
1311             'fF',
1312             'vV',
1313             undef,
1314             undef,
1315             ],
1316             'd' => [
1317             'sS',
1318             'eE',
1319             'rR',
1320             'fF',
1321             'cC',
1322             'xX',
1323             ],
1324             'e' => [
1325             'wW',
1326             '3#',
1327             '4$',
1328             'rR',
1329             'dD',
1330             'sS',
1331             ],
1332             'f' => [
1333             'dD',
1334             'rR',
1335             'tT',
1336             'gG',
1337             'vV',
1338             'cC',
1339             ],
1340             'g' => [
1341             'fF',
1342             'tT',
1343             'yY',
1344             'hH',
1345             'bB',
1346             'vV',
1347             ],
1348             'h' => [
1349             'gG',
1350             'yY',
1351             'uU',
1352             'jJ',
1353             'nN',
1354             'bB',
1355             ],
1356             'i' => [
1357             'uU',
1358             '8*',
1359             '9(',
1360             'oO',
1361             'kK',
1362             'jJ',
1363             ],
1364             'j' => [
1365             'hH',
1366             'uU',
1367             'iI',
1368             'kK',
1369             'mM',
1370             'nN',
1371             ],
1372             'k' => [
1373             'jJ',
1374             'iI',
1375             'oO',
1376             'lL',
1377             ',<',
1378             'mM',
1379             ],
1380             'l' => [
1381             'kK',
1382             'oO',
1383             'pP',
1384             ';:',
1385             '.>',
1386             ',<',
1387             ],
1388             'm' => [
1389             'nN',
1390             'jJ',
1391             'kK',
1392             ',<',
1393             undef,
1394             undef,
1395             ],
1396             'n' => [
1397             'bB',
1398             'hH',
1399             'jJ',
1400             'mM',
1401             undef,
1402             undef,
1403             ],
1404             'o' => [
1405             'iI',
1406             '9(',
1407             '0)',
1408             'pP',
1409             'lL',
1410             'kK',
1411             ],
1412             'p' => [
1413             'oO',
1414             '0)',
1415             '-_',
1416             '[{',
1417             ';:',
1418             'lL',
1419             ],
1420             'q' => [
1421             undef,
1422             '1!',
1423             '2@',
1424             'wW',
1425             'aA',
1426             undef,
1427             ],
1428             'r' => [
1429             'eE',
1430             '4$',
1431             '5%',
1432             'tT',
1433             'fF',
1434             'dD',
1435             ],
1436             's' => [
1437             'aA',
1438             'wW',
1439             'eE',
1440             'dD',
1441             'xX',
1442             'zZ',
1443             ],
1444             't' => [
1445             'rR',
1446             '5%',
1447             '6^',
1448             'yY',
1449             'gG',
1450             'fF',
1451             ],
1452             'u' => [
1453             'yY',
1454             '7&',
1455             '8*',
1456             'iI',
1457             'jJ',
1458             'hH',
1459             ],
1460             'v' => [
1461             'cC',
1462             'fF',
1463             'gG',
1464             'bB',
1465             undef,
1466             undef,
1467             ],
1468             'w' => [
1469             'qQ',
1470             '2@',
1471             '3#',
1472             'eE',
1473             'sS',
1474             'aA',
1475             ],
1476             'x' => [
1477             'zZ',
1478             'sS',
1479             'dD',
1480             'cC',
1481             undef,
1482             undef,
1483             ],
1484             'y' => [
1485             'tT',
1486             '6^',
1487             '7&',
1488             'uU',
1489             'hH',
1490             'gG',
1491             ],
1492             'z' => [
1493             undef,
1494             'aA',
1495             'sS',
1496             'xX',
1497             undef,
1498             undef,
1499             ],
1500             '{' => [
1501             'pP',
1502             '-_',
1503             '=+',
1504             ']}',
1505             '\'"',
1506             ';:',
1507             ],
1508             '|' => [
1509             ']}',
1510             undef,
1511             undef,
1512             undef,
1513             undef,
1514             undef,
1515             ],
1516             '}' => [
1517             '[{',
1518             '=+',
1519             undef,
1520             '\\|',
1521             undef,
1522             '\'"',
1523             ],
1524             '~' => [
1525             undef,
1526             undef,
1527             undef,
1528             '1!',
1529             undef,
1530             undef,
1531             ],
1532             },
1533             'starting_positions' => 94,
1534             },
1535             )
1536             ;
1537              
1538             1;