1802:
860:
129:
1814:
1788:
31:
494:
The price of this is lost performance. Programs running under
Memcheck usually run 20–30 times slower than running outside Valgrind and use more memory (there is a memory penalty per allocation). Thus, few developers run their code under Memcheck (or any other Valgrind tool) all the time. They most
337:
A considerable amount of performance is lost in these transformations (and usually, the code the tool inserts); usually, code run with
Valgrind and the "none" tool (which does nothing to the IR) runs at 20% to 25% of the speed of the normal program.
731:
Several others have also made significant contributions, including
Nicholas Nethercote, Bart Van Assche, Florian Krohm, Tom Hughes, Philippe Waroquiers, Mark Wielaard, Paul Floyd, Petar Jovanovic, Carl Love, Cerion Armour-Brown and Ivo Raisr.
326:-based form. After the conversion, a tool (see below) is free to do whatever transformations it would like on the IR, before Valgrind translates the IR back into machine code and lets the host processor run it. Valgrind recompiles
743:
In addition to the performance penalty, an important limitation of
Memcheck is its inability to detect all cases of bounds errors in the use of static or stack-allocated data. The following code will pass the
510:, runs the code in the virtual machine without performing any analysis and thus has the smallest possible CPU and memory overhead of all tools. Since Valgrind itself provides a trace back from a
1497:
1181:
385:
respectively. As data is moved around or manipulated, the instrumentation code keeps track of the A and V bits, so they are always correct on a single-bit level.
1502:
601:
prior to version 3.7), was removed in version 3.16.0. It was an experimental tool to find stack and global array overrun errors, which
Memcheck cannot find.
334:
stub to allow debugging of the target program as it runs in
Valgrind, with "monitor commands" that allow querying the Valgrind tool for various information.
1527:
1293:
495:
commonly use such tools either to trace down some specific bug, or to verify that there are no latent bugs (of the kind
Memcheck can detect) in the code.
524:, similar to Memcheck but with much smaller CPU and memory overhead, thus catching fewer types of bugs. Addrcheck has been removed as of version 3.2.0.
404:
where a program reads or writes outside an allocated block by a small amount. The problems
Memcheck can detect and warn about include the following:
1850:
1748:
697:
instructions, for Intel
Transactional Synchronization Extensions, both RTM and HLE and initial support for Hardware Transactional Memory on POWER.
1306:
366:
373:(all unallocated memory starts as invalid or "undefined", until it is initialized into a deterministic state, possibly from other memory) and
1329:
1855:
1806:
1761:
865:
725:
654:
x86 and amd64 was added in version 3.18.0. Support for FreeBSD aarch64 was added in version 3.23.0. There are unofficial ports to other
1771:
1512:
1487:
534:
351:
276:
1865:
1507:
1376:
1133:
584:, dynamic heap analysis tool which analyzes how much memory is allocated and for how long, as well as patterns of memory usage.
578:
analyzer created by Josef
Weidendorfer, added to Valgrind as of version 3.2.0. KCacheGrind can visualize output from Callgrind.
1845:
1464:
1766:
323:
294:, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.
1459:
106:
1555:
1492:
393:
319:
182:
76:
1593:
1454:
694:
667:
641:
604:
There are also several externally developed tools available. One such tool is ThreadSanitizer, another detector of
198:
170:
165:
1598:
841:
531:
377:(whether the memory address in question points to an allocated, non-freed memory block), stored in the so-called
361:
There are multiple tools included with Valgrind (and several external ones). The default (and most used) tool is
1608:
1416:
873:
836:
The inability to detect all errors involving the access of stack allocated data is especially noteworthy since
538:
307:
142:
633:
315:
1469:
1647:
1640:
1588:
878:
955:
1432:
1298:
Proceedings of ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI 2007)
1156:
845:
400:
around all allocated blocks (with the A bits set to "invalid"). This feature enables Memcheck to detect
311:
1055:
1736:
1565:
1724:
1369:
177:
1109:
1860:
1840:
1613:
1479:
1449:
1043:
556:
511:
1421:
1325:
674:
1570:
1560:
1401:
1277:
898:
748:
tool in Valgrind without incident, despite containing the errors described in the comments:
401:
389:
264:
228:
193:
149:
330:
to run on host and target (or simulated) CPUs of the same architecture. It also includes a
1756:
1517:
1204:
1009:
837:
710:
347:
303:
268:
186:
128:
1818:
1680:
1580:
1522:
1406:
1362:
1244:
605:
552:
318:. Instead, Valgrind first translates the program into a temporary, simpler form called
1318:
Seward, J.; Nethercote, N.; Weidendorfer, J.; Valgrind Development Team (March 2008).
1080:
1834:
1730:
1702:
1673:
1666:
1618:
1550:
978:
917:
721:
283:
46:
1792:
1659:
1603:
1426:
1393:
1319:
997:
1708:
1694:
1634:
1411:
1113:, Proceedings of the Workshop on Binary Instrumentation and Applications WBIA'09
590:, a performance simulator that extrapolates performance from a small sample set.
447:
327:
272:
1122:
1094:
1216:
855:
637:
575:
54:
41:
1687:
1653:
1545:
1255:
941:
883:
690:
655:
565:
1233:
30:
1321:
Valgrind 3.3 – Advanced Debugging and Profiling for GNU/Linux applications
1266:
115:
16:
Programming tool for profiling, memory debugging and memory leak detection
1714:
714:
706:
568:
profiler. The separate GUI KCacheGrind visualizes output from Cachegrind.
20:
1719:
1068:
1032:
893:
659:
651:
629:
314:. Nothing from the original program ever gets run directly on the host
159:
1294:"Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation"
686:
678:
663:
625:
1307:"Using Valgrind to detect undefined value errors with bit-precision"
717:; however, the name would have conflicted with a security package.
1787:
1385:
682:
646:
617:
287:
154:
1144:
888:
1358:
621:
369:
code around almost all instructions, which keeps track of the
331:
291:
1160:
801:/* Error - Static to Static exist, Static is out of bounds */
713:. During development (before release) the project was named
209:
1347:
503:
In addition to Memcheck, Valgrind has several other tools:
19:
This article is about software. For the mythical gate, see
1311:
Proceedings of the USENIX Annual Technical Conference 2005
816:/* Error - Stack to Stack exist, Stack is out of bounds */
705:
The name Valgrind is a reference to the main entrance of
478:
aligned deallocation not the same alignment as allocation
249:
243:
237:
1354:
94:
1305:
Seward, Julian; Nethercote, Nicholas (10 April 2005).
452:
Mismatched allocations and deallocations which may be
252:
255:
246:
240:
234:
1747:
1627:
1579:
1538:
1478:
1442:
1392:
231:
204:
192:
176:
148:
138:
105:
75:
63:
53:
40:
673:Since version 3.9.0 there is support for Linux on
475:sized deallocation not the same size as allocation
1245:Google-O'Reilly Open Source Awards – Hall of Fame
518:tool provides this traceback at minimal overhead.
396:with its own implementation, which also includes
735:It is used by a number of Linux-based projects.
541:massif-visualizer visualizes output from Massif.
1110:ThreadSanitizer–data race detection in practice
973:
971:
1370:
8:
433:Use of incorrect parameters for system calls
411:Reading/writing invalid memory which may be
388:In addition, Memcheck replaces the standard
677:little and big endian, for MIPS DSP ASE on
1377:
1363:
1355:
1324:. Network Theory Ltd. pp. 164 pages.
993:
991:
989:
640:) was added in version 3.6.0. Support for
127:
25:
685:Decimal Floating Point instructions, for
644:was added in version 3.11.0. Support for
282:Valgrind was originally designed to be a
1807:Free and open-source software portal
650:was added in version 3.5.0. Support for
909:
616:As of version 3.4.0, Valgrind supports
1292:Nethercote, Nicholas; Seward, Julian.
436:Unsafe overlapping memory copies with
666:and QNX). From version 3.7.0 the ARM/
7:
866:Free and open-source software portal
322:(IR), which is a processor-neutral,
1749:Professional related certifications
720:The original author of Valgrind is
14:
1528:List of software package managers
1513:Security-focused operating system
726:Google-O'Reilly Open Source Award
1813:
1812:
1800:
1786:
858:
352:Profiling (computer programming)
227:
29:
1851:Free memory management software
1503:Distributions that run from RAM
1182:"foundry27 : View Release"
1107:K Serebryany, T Iskhodzhanov,
1095:"Valgrind: Variants / Patches"
465:mixing scalar and array e.g.,
428:memory below the stack pointer
1:
1234:valgrind.org's list of awards
838:certain types of stack errors
636:(used for example in certain
324:static single assignment form
1460:GNU/Linux naming controversy
1267:valgrind.org's list of users
670:platform support was added.
408:Reading uninitialized memory
1856:Free software testing tools
1556:Linux Documentation Project
1498:Netbook-specific comparison
320:intermediate representation
81:3.23.0 (April 26, 2024
1882:
1455:Criticism of desktop Linux
956:"Twenty years of Valgrind"
942:"Valgrind: The Developers"
728:for his work on Valgrind.
693:) instructions, for Intel
483:Use of incorrect alignment
345:
286:memory debugging tool for
199:GNU General Public License
18:
1780:
1465:Tanenbaum–Torvalds debate
365:. Memcheck inserts extra
302:Valgrind is in essence a
101:
71:
59:Valgrind Development Team
28:
1313:. USENIX Association: 2.
874:Dynamic program analysis
750:
308:just-in-time compilation
1256:The Valgrind Developers
1069:Valgrind main tool list
739:Limitations of Memcheck
701:History and development
632:. Support for Linux on
455:mixing C and C++ e.g.,
1866:Software testing tools
1641:Free Software Magazine
1571:Linux User Group (LUG)
1157:"Valgrind NetBSD port"
998:Valgrind release notes
846:stack smashing exploit
310:techniques, including
83:; 4 months ago
1846:Free memory debuggers
1145:Valgrind OpenBSD port
414:memory that has been
312:dynamic recompilation
49:, Nicholas Nethercote
1566:Linux Mark Institute
724:, who in 2006 won a
612:Platforms supported
490:with a size of zero
1493:Distributions list
1488:General comparison
1450:Criticism of Linux
557:multithreaded code
512:segmentation fault
421:memory outside of
394:C memory allocator
42:Original author(s)
1828:
1827:
1331:978-0-9546120-5-4
1186:community.qnx.com
1033:Valgrind homepage
402:off-by-one errors
220:
219:
1873:
1816:
1815:
1805:
1804:
1803:
1793:Linux portal
1791:
1790:
1762:Linux Foundation
1561:Linux Foundation
1379:
1372:
1365:
1356:
1351:
1350:
1348:Official website
1335:
1314:
1301:
1280:
1275:
1269:
1264:
1258:
1253:
1247:
1242:
1236:
1231:
1225:
1224:
1213:
1207:
1202:
1196:
1195:
1193:
1192:
1178:
1172:
1171:
1169:
1168:
1159:. Archived from
1153:
1147:
1142:
1136:
1131:
1125:
1120:
1114:
1105:
1099:
1098:
1091:
1085:
1084:
1077:
1071:
1066:
1060:
1059:
1052:
1046:
1041:
1035:
1030:
1024:
1023:
1021:
1020:
1006:
1000:
995:
984:
983:
975:
966:
965:
963:
962:
952:
946:
945:
938:
932:
931:
929:
928:
914:
899:AddressSanitizer
868:
863:
862:
861:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
658:platforms (like
649:
489:
472:
468:
462:
458:
443:
439:
424:
417:
269:memory debugging
265:programming tool
262:
261:
258:
257:
254:
251:
248:
245:
242:
239:
236:
233:
216:
213:
211:
168:
162:
150:Operating system
131:
126:
123:
121:
119:
117:
97:
91:
89:
84:
33:
26:
1881:
1880:
1876:
1875:
1874:
1872:
1871:
1870:
1831:
1830:
1829:
1824:
1801:
1799:
1785:
1776:
1743:
1623:
1575:
1534:
1518:Package manager
1474:
1438:
1417:Booting process
1388:
1383:
1346:
1345:
1342:
1332:
1317:
1304:
1291:
1288:
1283:
1276:
1272:
1265:
1261:
1254:
1250:
1243:
1239:
1232:
1228:
1215:
1214:
1210:
1203:
1199:
1190:
1188:
1180:
1179:
1175:
1166:
1164:
1155:
1154:
1150:
1143:
1139:
1132:
1128:
1121:
1117:
1106:
1102:
1093:
1092:
1088:
1079:
1078:
1074:
1067:
1063:
1054:
1053:
1049:
1044:Valgrind Manual
1042:
1038:
1031:
1027:
1018:
1016:
1008:
1007:
1003:
996:
987:
977:
976:
969:
960:
958:
954:
953:
949:
940:
939:
935:
926:
924:
916:
915:
911:
907:
864:
859:
857:
854:
844:to the classic
833:
831:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
741:
711:Norse mythology
703:
645:
614:
606:race conditions
553:race conditions
537:. The separate
501:
487:
470:
466:
460:
456:
441:
437:
422:
415:
367:instrumentation
359:
354:
348:Memory debugger
344:
304:virtual machine
300:
284:freely licensed
275:detection, and
230:
226:
208:
187:Memory debugger
169:
164:
163:
158:
157:
134:
114:
93:
87:
85:
82:
64:Initial release
36:
24:
17:
12:
11:
5:
1879:
1877:
1869:
1868:
1863:
1858:
1853:
1848:
1843:
1833:
1832:
1826:
1825:
1823:
1822:
1810:
1796:
1781:
1778:
1777:
1775:
1774:
1769:
1764:
1759:
1757:CompTIA Linux+
1753:
1751:
1745:
1744:
1742:
1741:
1734:
1727:
1722:
1717:
1712:
1705:
1700:
1699:
1698:
1684:
1681:Linux Magazine
1677:
1670:
1663:
1656:
1651:
1644:
1637:
1631:
1629:
1625:
1624:
1622:
1621:
1616:
1611:
1606:
1601:
1596:
1591:
1585:
1583:
1577:
1576:
1574:
1573:
1568:
1563:
1558:
1553:
1548:
1542:
1540:
1536:
1535:
1533:
1532:
1531:
1530:
1525:
1523:Package format
1515:
1510:
1505:
1500:
1495:
1490:
1484:
1482:
1476:
1475:
1473:
1472:
1467:
1462:
1457:
1452:
1446:
1444:
1440:
1439:
1437:
1436:
1429:
1424:
1419:
1414:
1409:
1404:
1398:
1396:
1390:
1389:
1384:
1382:
1381:
1374:
1367:
1359:
1353:
1352:
1341:
1340:External links
1338:
1337:
1336:
1330:
1315:
1302:
1287:
1284:
1282:
1281:
1270:
1259:
1248:
1237:
1226:
1208:
1197:
1173:
1148:
1137:
1126:
1123:ARM/Linux port
1115:
1100:
1086:
1072:
1061:
1047:
1036:
1025:
1001:
985:
967:
947:
933:
908:
906:
903:
902:
901:
896:
891:
886:
881:
876:
870:
869:
853:
850:
840:make software
751:
740:
737:
702:
699:
691:Power ISA 2.07
613:
610:
592:
591:
585:
579:
569:
559:
542:
525:
519:
500:
497:
492:
491:
484:
481:
480:
479:
476:
473:
463:
450:
445:
434:
431:
430:
429:
426:
419:
409:
390:C++ allocators
375:addressability
358:
355:
343:
340:
299:
296:
218:
217:
206:
202:
201:
196:
190:
189:
180:
174:
173:
152:
146:
145:
140:
136:
135:
133:
132:
111:
109:
103:
102:
99:
98:
79:
77:Stable release
73:
72:
69:
68:
65:
61:
60:
57:
51:
50:
44:
38:
37:
34:
15:
13:
10:
9:
6:
4:
3:
2:
1878:
1867:
1864:
1862:
1859:
1857:
1854:
1852:
1849:
1847:
1844:
1842:
1839:
1838:
1836:
1821:
1820:
1811:
1809:
1808:
1797:
1795:
1794:
1789:
1783:
1782:
1779:
1773:
1770:
1768:
1765:
1763:
1760:
1758:
1755:
1754:
1752:
1750:
1746:
1740:
1739:
1735:
1733:
1732:
1731:Revolution OS
1728:
1726:
1723:
1721:
1718:
1716:
1713:
1711:
1710:
1706:
1704:
1703:Linux Outlaws
1701:
1697:
1696:
1692:
1691:
1690:
1689:
1685:
1683:
1682:
1678:
1676:
1675:
1674:Linux Journal
1671:
1669:
1668:
1667:Linux Gazette
1664:
1662:
1661:
1657:
1655:
1652:
1650:
1649:
1645:
1643:
1642:
1638:
1636:
1633:
1632:
1630:
1626:
1620:
1619:Linux malware
1617:
1615:
1612:
1610:
1607:
1605:
1602:
1600:
1597:
1595:
1592:
1590:
1587:
1586:
1584:
1582:
1578:
1572:
1569:
1567:
1564:
1562:
1559:
1557:
1554:
1552:
1551:Linux Counter
1549:
1547:
1544:
1543:
1541:
1539:Organizations
1537:
1529:
1526:
1524:
1521:
1520:
1519:
1516:
1514:
1511:
1509:
1506:
1504:
1501:
1499:
1496:
1494:
1491:
1489:
1486:
1485:
1483:
1481:
1480:Distributions
1477:
1471:
1470:SCO and Linux
1468:
1466:
1463:
1461:
1458:
1456:
1453:
1451:
1448:
1447:
1445:
1443:Controversies
1441:
1435:
1434:
1430:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1403:
1400:
1399:
1397:
1395:
1391:
1387:
1380:
1375:
1373:
1368:
1366:
1361:
1360:
1357:
1349:
1344:
1343:
1339:
1333:
1327:
1323:
1322:
1316:
1312:
1308:
1303:
1299:
1295:
1290:
1289:
1285:
1279:
1274:
1271:
1268:
1263:
1260:
1257:
1252:
1249:
1246:
1241:
1238:
1235:
1230:
1227:
1222:
1218:
1212:
1209:
1206:
1201:
1198:
1187:
1183:
1177:
1174:
1163:on 2006-02-09
1162:
1158:
1152:
1149:
1146:
1141:
1138:
1135:
1130:
1127:
1124:
1119:
1116:
1112:
1111:
1104:
1101:
1096:
1090:
1087:
1082:
1076:
1073:
1070:
1065:
1062:
1057:
1051:
1048:
1045:
1040:
1037:
1034:
1029:
1026:
1015:
1011:
1005:
1002:
999:
994:
992:
990:
986:
982:
981:
980:Valgrind News
974:
972:
968:
957:
951:
948:
943:
937:
934:
923:
919:
913:
910:
904:
900:
897:
895:
892:
890:
887:
885:
882:
880:
877:
875:
872:
871:
867:
856:
851:
849:
847:
843:
839:
834:
749:
747:
738:
736:
733:
729:
727:
723:
722:Julian Seward
718:
716:
712:
708:
700:
698:
696:
692:
688:
684:
680:
676:
671:
669:
665:
661:
657:
653:
648:
643:
639:
635:
631:
627:
623:
619:
611:
609:
607:
602:
600:
596:
589:
586:
583:
580:
577:
573:
570:
567:
563:
560:
558:
554:
550:
546:
543:
540:
536:
533:
529:
526:
523:
520:
517:
513:
509:
506:
505:
504:
498:
496:
485:
482:
477:
474:
464:
454:
453:
451:
449:
446:
435:
432:
427:
420:
413:
412:
410:
407:
406:
405:
403:
399:
398:memory guards
395:
391:
386:
384:
380:
376:
372:
368:
364:
356:
353:
349:
341:
339:
335:
333:
329:
325:
321:
317:
313:
309:
305:
297:
295:
293:
289:
285:
280:
278:
274:
270:
266:
260:
224:
215:
207:
203:
200:
197:
195:
191:
188:
184:
181:
179:
175:
172:
167:
161:
156:
153:
151:
147:
144:
141:
137:
130:
125:
113:
112:
110:
108:
104:
100:
96:
80:
78:
74:
70:
66:
62:
58:
56:
52:
48:
47:Julian Seward
45:
43:
39:
35:Valgrind logo
32:
27:
22:
1817:
1798:
1784:
1737:
1729:
1707:
1693:
1686:
1679:
1672:
1665:
1660:Linux Format
1658:
1646:
1639:
1614:Range of use
1431:
1394:Linux kernel
1320:
1310:
1297:
1278:Valgrind FAQ
1273:
1262:
1251:
1240:
1229:
1220:
1217:"Grímnismál"
1211:
1205:Valgrind FAQ
1200:
1189:. Retrieved
1185:
1176:
1165:. Retrieved
1161:the original
1151:
1140:
1129:
1118:
1108:
1103:
1089:
1075:
1064:
1050:
1039:
1028:
1017:. Retrieved
1014:valgrind.org
1013:
1004:
979:
959:. Retrieved
950:
936:
925:. Retrieved
922:valgrind.org
921:
912:
835:
832:
745:
742:
734:
730:
719:
704:
672:
615:
603:
599:exp-ptrcheck
598:
594:
593:
587:
581:
571:
561:
548:
544:
527:
521:
515:
507:
502:
493:
448:Memory leaks
397:
387:
382:
378:
374:
370:
362:
360:
336:
301:
281:
222:
221:
67:Jul 27, 2002
55:Developer(s)
1709:Linux Voice
1695:Ubuntu User
1648:Full Circle
1635:DistroWatch
1508:Lightweight
1422:Kernel oops
1412:Linux-libre
1407:Linus's law
1221:Völuspá.org
638:smartphones
595:exp-sgcheck
499:Other tools
328:binary code
273:memory leak
95:[±]
1835:Categories
1286:References
1191:2024-05-24
1167:2006-01-28
1081:"Valgrind"
1056:"Valgrind"
1019:2023-05-04
1010:"Valgrind"
961:2023-08-04
927:2022-09-19
842:vulnerable
576:call graph
562:Cachegrind
346:See also:
139:Written in
116:sourceware
107:Repository
88:2024-04-26
1861:Profilers
1841:Debuggers
1688:LinuxUser
1654:Linux.com
1546:LinuxChix
1134:OS X port
918:"AUTHORS"
884:DynamoRIO
656:Unix-like
572:Callgrind
551:, detect
522:Addrcheck
444:functions
425:'d blocks
316:processor
277:profiling
212:.valgrind
122:/valgrind
1819:Category
1738:The Code
1725:Phoronix
1715:LugRadio
1599:Embedded
1589:Adopters
1581:Adoption
852:See also
746:Memcheck
715:Heimdall
707:Valhalla
545:Helgrind
535:profiler
371:validity
363:Memcheck
357:Memcheck
298:Overview
223:Valgrind
183:Profiler
21:Valhalla
1767:Red Hat
1720:LWN.net
1594:Desktop
1402:History
894:Libumem
668:Android
660:OpenBSD
652:FreeBSD
642:Solaris
630:PowerPC
597:(named
588:exp-bbv
488:realloc
486:Use of
263:) is a
205:Website
194:License
171:Android
166:Solaris
160:FreeBSD
86: (
1772:Ubuntu
1609:Mobile
1604:Gaming
1328:
1300:. ACM.
819:return
789:Static
756:Static
687:POWER8
681:, for
679:MIPS32
675:MIPS64
664:NetBSD
626:x86-64
528:Massif
514:, the
471:delete
461:delete
457:malloc
423:malloc
383:A bits
379:V bits
306:using
92:)
1628:Media
1433:more…
1386:Linux
905:Notes
804:Stack
783:Stack
709:from
683:s390x
634:ARMv7
618:Linux
566:cache
342:Tools
288:Linux
155:Linux
1326:ISBN
889:VOGL
771:void
765:func
695:AVX2
647:OS X
628:and
582:DHAT
574:, a
564:, a
547:and
532:heap
530:, a
516:none
508:None
469:and
459:and
442:str*
440:and
438:mem*
416:free
392:and
381:and
350:and
267:for
214:.org
178:Type
124:.git
120:/git
118:.org
1427:Tux
879:Pin
780:int
762:int
753:int
622:x86
620:on
555:in
549:DRD
539:GUI
467:new
332:GDB
292:x86
290:on
210:www
1837::
1309:.
1296:.
1219:.
1184:.
1012:.
988:^
970:^
920:.
848:.
662:,
624:,
608:.
418:'d
279:.
271:,
185:,
1378:e
1371:t
1364:v
1334:.
1223:.
1194:.
1170:.
1097:.
1083:.
1058:.
1022:.
964:.
944:.
930:.
828:}
825:;
822:0
813:;
810:0
807:=
798:;
795:0
792:=
786:;
777:{
774:)
768:(
759:;
689:(
259:/
256:d
253:n
250:ɪ
247:r
244:ɡ
241:l
238:æ
235:v
232:ˈ
229:/
225:(
143:C
90:)
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.