Checksums are used as cryptographic primitives in larger authentication algorithms. Locks and condition variables are higher-level abstractions over these synchronization primitives. The elements used are described in terms of paths and other geometrical primitives. Hash functions can be used to build other cryptographic primitives. It simplifies complex communication, using composite objects in order to communicate instead of "primitives". With a vector display, only the vertices of the graphics primitives are stored. More complicated cryptographic tools are then built from these basic primitives. Block ciphers can be used to build other cryptographic primitives, such as those below. Cryptosystems use the properties of the underlying cryptographic primitives to support the system's security properties. Complex shapes may be linked together in groups of up to 256 separate primitives. Most primitives are either functions or operators. GEM provides an API with explicit memory management primitives. They encounter insectoid primitives and strange humanoids. There is no equivalent of Common Lisp's codice 32 and codice 33 primitives. The base TeX system understands about 300 commands, called "primitives".