Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/openvenues/libpostal
A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
https://github.com/openvenues/libpostal
[places] higher probability of state_district for non-city Ireland
78615bf29cd04f29b1a88cae5577d35eb3944bf4 authored about 8 years ago
78615bf29cd04f29b1a88cae5577d35eb3944bf4 authored about 8 years ago
[boundaries] moving Ireland counties back to state_district, regions to state (as they're typically used as admin1 in ISO, etc.)
fddf21d1c1e5ec6c9ed14dac47ad7df29bc8ab57 authored about 8 years ago
fddf21d1c1e5ec6c9ed14dac47ad7df29bc8ab57 authored about 8 years ago
[boundaries] adding a few more common prefixes (looks like in Ireland it's common enough to remove the County prefix)
aae8a8acf004b209d21a12cc0560cebf9c2362bb authored about 8 years ago
aae8a8acf004b209d21a12cc0560cebf9c2362bb authored about 8 years ago
[openaddresses] filename for Ward County, ND
fadf0ca66b19c2d82248dd93a280d43bbdd5a2c0 authored about 8 years ago
fadf0ca66b19c2d82248dd93a280d43bbdd5a2c0 authored about 8 years ago
[openaddresses] adding Kalmar, Sweden and Fribourg, Switzerland
29590be406df6ac8c47550a4ce1ffa3127e47b56 authored about 8 years ago
29590be406df6ac8c47550a4ce1ffa3127e47b56 authored about 8 years ago
[fix] var name again
e13787a6f66438f870aabf671a6c973d8e85a62a authored about 8 years ago
e13787a6f66438f870aabf671a6c973d8e85a62a authored about 8 years ago
[fix] var
e1c6eff5e26e1f9a6229bb91f21e75340abe4e27 authored about 8 years ago
e1c6eff5e26e1f9a6229bb91f21e75340abe4e27 authored about 8 years ago
[addresses] adding new places index in OSM and OpenAddresses training data
da36b718292cbc65e51a6d7b010002bc0e361583 authored about 8 years ago
da36b718292cbc65e51a6d7b010002bc0e361583 authored about 8 years ago
[addresses] adding point-based city/equivalent reverse geocoding for places that don't have as many defined polygons in OSM
628fecea59c01f3d5874654ac9026305543afeba authored about 8 years ago
628fecea59c01f3d5874654ac9026305543afeba authored about 8 years ago
[dictionaries] English dictionary fix
8509fe3ac0bcf874ac756c03820e9846cf2da6da authored about 8 years ago
8509fe3ac0bcf874ac756c03820e9846cf2da6da authored about 8 years ago
[places] adding generic place index for reverse geocoding to points
f87f0df7177f0c36cb594a7349af9c9dc89d15cd authored about 8 years ago
f87f0df7177f0c36cb594a7349af9c9dc89d15cd authored about 8 years ago
[localities] /planet-neighborhoods/planet-localities/
e32c232c672b42a3f075e1b43e186c6f60981291 authored about 8 years ago
e32c232c672b42a3f075e1b43e186c6f60981291 authored about 8 years ago
[abbreviation] fixing abbreviations within hyphenated phrases, particularly for prefix/suffix matches
cca80b046c04b13cad1c48a14c15b37a7779c724 authored about 8 years ago
cca80b046c04b13cad1c48a14c15b37a7779c724 authored about 8 years ago
[parser] As part of reading/tokenizing the address parser data set,
several copies of the same training example will be generated.
1. with only lowercasing
2. with ...
[osm] don't include rail stations with no venue phrases (if there's a railway station at Foo, only include it if it's named "Foo Station", not just plain "Foo")
adab232674f3a5e88f207c61e94c0bf45ab65afe authored about 8 years ago
adab232674f3a5e88f207c61e94c0bf45ab65afe authored about 8 years ago
[openaddresses] adding some of the new/fixed counties from upstream OA
7bfee0c1d3b5f1c8f7f291c000f2b710217fb4d8 authored about 8 years ago
7bfee0c1d3b5f1c8f7f291c000f2b710217fb4d8 authored about 8 years ago
[openaddresses] adding Texas statewide
87d2463c9fca4575020aacc3f63cdc38cf02263b authored about 8 years ago
87d2463c9fca4575020aacc3f63cdc38cf02263b authored about 8 years ago
[numex] regenerated numex data file
4b35da629fbd3e9c6a8e0ca54ffcc9d14398a165 authored about 8 years ago
4b35da629fbd3e9c6a8e0ca54ffcc9d14398a165 authored about 8 years ago
[parser] stripping postal codes of phrases like CP (in Spanish) before adding them to the gazetteers, whether it's concatenated or a separate token. Adding a command-line argument for the number of iterations
46778746103a52654b367e58403646c6c34292ae authored about 8 years ago
46778746103a52654b367e58403646c6c34292ae authored about 8 years ago
[parser] fixing some uninitialized value issues during parser training
0e29cdd9fdd90bdd72d02102e13da89b6148b0ca authored about 8 years ago
0e29cdd9fdd90bdd72d02102e13da89b6148b0ca authored about 8 years ago
[fix] sparse_matrix_new_from_matrix uses new matrix types
f5a6bd0f364c42efaceafc0947bb804bb7a661b9 authored about 8 years ago
f5a6bd0f364c42efaceafc0947bb804bb7a661b9 authored about 8 years ago
[utils] string_replace also creates a copy
b639fa5127f71d70f41c184a0872e2d8a445855d authored about 8 years ago
b639fa5127f71d70f41c184a0872e2d8a445855d authored about 8 years ago
[openaddresses] adding Plumas County, CA and York County, PA
5a7e73e2a144fe5f3d447b5e081690feb90857b4 authored about 8 years ago
5a7e73e2a144fe5f3d447b5e081690feb90857b4 authored about 8 years ago
[openaddresses] adding Tehama County, CA
1b18fd0b3653ee4d501ed887304520e2fd1d758f authored about 8 years ago
1b18fd0b3653ee4d501ed887304520e2fd1d758f authored about 8 years ago
[strings] string_trim makes a copy rather than modifying the pointer
89f6611c4e78dd23b800df2565bd3e446aefbeb3 authored about 8 years ago
89f6611c4e78dd23b800df2565bd3e446aefbeb3 authored about 8 years ago
[expansion] regenerated address_expansion_data.c
d922d9a60a933572befdc18e0ce5cfedb64e7cd5 authored about 8 years ago
d922d9a60a933572befdc18e0ce5cfedb64e7cd5 authored about 8 years ago
[openaddresses] Tulare County, CA
f67ebe87117d5523d0c9f1cd1342115dd6c21502 authored about 8 years ago
f67ebe87117d5523d0c9f1cd1342115dd6c21502 authored about 8 years ago
[fix] header defintion
f78281456a1dc7dcad03f6d9c9c80f173d62e5da authored about 8 years ago
f78281456a1dc7dcad03f6d9c9c80f173d62e5da authored about 8 years ago
[expansion] using easier-to-access data structure for address dictionaries
eea11beb6acf782fb8ab6ee80263f5f22d6dca1e authored about 8 years ago
eea11beb6acf782fb8ab6ee80263f5f22d6dca1e authored about 8 years ago
[boundaries] increasing state probability for Venezuela and India
7de2aa21cdde030d289ee45a0518a5f0ca88d86e authored about 8 years ago
7de2aa21cdde030d289ee45a0518a5f0ca88d86e authored about 8 years ago
[openaddresses] Ward County, ND
df803ab53da32ab0c7633c5c7083b01b088a7b71 authored about 8 years ago
df803ab53da32ab0c7633c5c7083b01b088a7b71 authored about 8 years ago
[fix] var name
ef243fbb188264e4d732f6ba265394f3d1c3dff9 authored about 8 years ago
ef243fbb188264e4d732f6ba265394f3d1c3dff9 authored about 8 years ago
[boundaries] in addition to population, check if a city has an unambiguous Wikipedia
cdbc102821476b89d2205a6212dcd67bbe270596 authored about 8 years ago
cdbc102821476b89d2205a6212dcd67bbe270596 authored about 8 years ago
[boundaries] more UK exceptions (strategy here is not to confuse the parser with districts that share names with cities. Only affects addresses with no city already specified and would be similar to listing a postal city)
78c1a407083bd1651f7574f01396494862014d6e authored about 8 years ago
78c1a407083bd1651f7574f01396494862014d6e authored about 8 years ago
[boundaries] a few more UK exceptions
08b420cd1ff26977dc86b1af23ff30e8513298f4 authored about 8 years ago
08b420cd1ff26977dc86b1af23ff30e8513298f4 authored about 8 years ago
[boundaries] two more exceptions in Wales and Scotland
06fcb73a0835dd38a5215ea386805c35b605fabe authored about 8 years ago
06fcb73a0835dd38a5215ea386805c35b605fabe authored about 8 years ago
[boundaries] a few more UK exceptions for non-metropolitan districts which can basically be regarded as cities
f8fc59e384630f33cff024b9f97acbe2914c5e77 authored about 8 years ago
f8fc59e384630f33cff024b9f97acbe2914c5e77 authored about 8 years ago
[fix] exception for Eastleigh, UK
eda4358a01fbe776797ef8e15d0f1e33cf0fb265 authored about 8 years ago
eda4358a01fbe776797ef8e15d0f1e33cf0fb265 authored about 8 years ago
[boundaries] exception for Chichester, UK
f171d849ca57231d113d5ef7bb2f205f69dcb364 authored about 8 years ago
f171d849ca57231d113d5ef7bb2f205f69dcb364 authored about 8 years ago
[openaddresses] for cases where city populations are not known (i.e. not getting boundaries from OSM, most of the sources in OpenAddresses), place-only records should have at least two identifying components. Helps when city names, etc. are highly ambiguous and need to be qualified
87634a36e1c20eca2997102b5e98bf1e8b59e455 authored about 8 years ago
87634a36e1c20eca2997102b5e98bf1e8b59e455 authored about 8 years ago
[places] lower dropout probabilities for country field
5118bbc6b9cfa758bdf9ba7b44ea230c531e9213 authored about 8 years ago
5118bbc6b9cfa758bdf9ba7b44ea230c531e9213 authored about 8 years ago
[places] better handling of population exceptions in places config
5c3ccc3bc6c28b6eec3eb81fe82c51841fa4b4a5 authored about 8 years ago
5c3ccc3bc6c28b6eec3eb81fe82c51841fa4b4a5 authored about 8 years ago
[places] adding a few more exceptions to places config, making state/country required for smaller cities
4e10dc47e110a26ad8781225b74202d74abd9f5a authored about 8 years ago
4e10dc47e110a26ad8781225b74202d74abd9f5a authored about 8 years ago
[openaddresses] fix for Arapahoe County, CO. Had CO listed as the city
5a8ea5c3b9c6f44764366194e95f3252a161c7b7 authored about 8 years ago
5a8ea5c3b9c6f44764366194e95f3252a161c7b7 authored about 8 years ago
[openaddresses] El Paso County, CO
89cacbdb0e9702fe8c498eed3fd9f7b93f45d508 authored about 8 years ago
89cacbdb0e9702fe8c498eed3fd9f7b93f45d508 authored about 8 years ago
[fix] config
e07c74f077dc26c5a03d9e631e38a9d94cad760c authored about 8 years ago
e07c74f077dc26c5a03d9e631e38a9d94cad760c authored about 8 years ago
[fix] indentation
f72b576f39b9796f1004fd322f07c71cef33f9a2 authored about 8 years ago
f72b576f39b9796f1004fd322f07c71cef33f9a2 authored about 8 years ago
[fix] typo
46b7043dc73782b006b534074ccdc524e979752d authored about 8 years ago
46b7043dc73782b006b534074ccdc524e979752d authored about 8 years ago
[names] adding "District Municipality of" to ignorable prefixes
da882a4195b8801e6a38d3fd664170aca3ff9d3b authored about 8 years ago
da882a4195b8801e6a38d3fd664170aca3ff9d3b authored about 8 years ago
[openaddresses] fixing some cities that I thought were counties
1e1f00670b75206f0ca1574045aedcfbdbbe06a7 authored about 8 years ago
1e1f00670b75206f0ca1574045aedcfbdbbe06a7 authored about 8 years ago
[openaddresses] adding city_replacements handling to OA formatter
fcf47173351028a4ffc7b24ff03a3cf54fe1699a authored about 8 years ago
fcf47173351028a4ffc7b24ff03a3cf54fe1699a authored about 8 years ago
[openaddresses] add city_replacements for all files using OSM boundaries (replace with known county or city)
1ccca9086f48003c5ff270d376d8b4cccfffaf8b authored about 8 years ago
1ccca9086f48003c5ff270d376d8b4cccfffaf8b authored about 8 years ago
[addresses/languages] if there's only one default language and we don't have a road name or a unicode script to disambiguate, assume the default (e.g. English in the US unless there's a Spanish/French road name). Can affect things like state abbreviations
3dc2a922fbb04126121decd1db7457af671a2f28 authored about 8 years ago
3dc2a922fbb04126121decd1db7457af671a2f28 authored about 8 years ago
[boundaries] exception for Cardiff, Wales
3c5e2afeedaeff0011e707a4eaec04cd9681d6a7 authored about 8 years ago
3c5e2afeedaeff0011e707a4eaec04cd9681d6a7 authored about 8 years ago
[boundaries] adding city replacements for South Africa
49054932ad6c2273ac9c38848395a59806a75b11 authored about 8 years ago
49054932ad6c2273ac9c38848395a59806a75b11 authored about 8 years ago
[countries] take first encountered country code instead of reversing the components (for cases like Puerto Rico, Hong Kong, etc.)
ee6edbbd918f306551f11b60097769d334a5f540 authored about 8 years ago
ee6edbbd918f306551f11b60097769d334a5f540 authored about 8 years ago
[osm] override admin_level with other components in config if present
ee8c070fd591ccb672b232a601d917dfd821e8f7 authored about 8 years ago
ee8c070fd591ccb672b232a601d917dfd821e8f7 authored about 8 years ago
[boundaries] adding more exceptions for some of the UK's unitary authorities that are basically equivalent to city boundaries (smaller towns within the boundary can still override)
e8a3d256f91a2cf92ffc95eb963005ffeeb12abc authored about 8 years ago
e8a3d256f91a2cf92ffc95eb963005ffeeb12abc authored about 8 years ago
[places] adding section called city_replacements to places config, for countries where something like the state_district/county, suburb or city_district should stand in for the city when one cannot be reverse geocoded (unincorporated county addresses, etc.)
aa1f4fdd20e517d5b18ae5e5ac44a309ef7a0f2f authored about 8 years ago
aa1f4fdd20e517d5b18ae5e5ac44a309ef7a0f2f authored about 8 years ago
[osm] trying representative_point() on the unfixed polygons to capture some cases where the geometry still needs to be fixed before it's valid
480796f46fe36edddb07340b6dc93fcff25ec58c authored about 8 years ago
480796f46fe36edddb07340b6dc93fcff25ec58c authored about 8 years ago
[boundaries] making admin_level=6 city for Mexico as municipalities are the main type of boundary found in OSM
bf1928d8c0fd77570c6a97acaed65d6295f24d82 authored about 8 years ago
bf1928d8c0fd77570c6a97acaed65d6295f24d82 authored about 8 years ago
[boundaries] fixing config structure for a few countries
f5ac51ab9ff5af900ff6a70d80d0e6d385880336 authored about 8 years ago
f5ac51ab9ff5af900ff6a70d80d0e6d385880336 authored about 8 years ago
[openaddresses] updating the Canada province-wide data sets to the new format
9ae30b598b75ed09bc3a5fc88df92b6f63936468 authored about 8 years ago
9ae30b598b75ed09bc3a5fc88df92b6f63936468 authored about 8 years ago
[boundaries] exception for Calgary, CA
ff086a6bb9a54b3a543fb39d7026249c7d3b0096 authored about 8 years ago
ff086a6bb9a54b3a543fb39d7026249c7d3b0096 authored about 8 years ago
[utils] adding a chunked shuffle as the concatenated file sizes may get larger than memory
7298c895c802d43e27cef609a35c85ea2935a36b authored about 8 years ago
7298c895c802d43e27cef609a35c85ea2935a36b authored about 8 years ago
[openaddresses city_of_flint, not flint
eff0443fcfd3702120e36eddb424c647bee7addf authored about 8 years ago
eff0443fcfd3702120e36eddb424c647bee7addf authored about 8 years ago
[openaddresses] add Bucks County, PA
1d05c98cc4dab2633afdbb60795f461474d8921b authored about 8 years ago
1d05c98cc4dab2633afdbb60795f461474d8921b authored about 8 years ago
[fix] return values
a596d03309b19a878afadfa0c1dab0aafcbb4a8d authored about 8 years ago
a596d03309b19a878afadfa0c1dab0aafcbb4a8d authored about 8 years ago
[dictionaries] adding green to place names
1ef3d073db58fb53ab1c9815798d5991d490f1b4 authored about 8 years ago
1ef3d073db58fb53ab1c9815798d5991d490f1b4 authored about 8 years ago
[fix] if there are street types that are not venue words and not vice versa, then call the venue invalid as a standalone term
e15036fccea84a4e08d00bfe1764dd8588685cdc authored about 8 years ago
e15036fccea84a4e08d00bfe1764dd8588685cdc authored about 8 years ago
[fix] if no venue names are passed in to formatted_addresses_with_venue_names, remove any existing venue name from the components as well
8e905fd17d56b9cd7b121c2ccc0e20830710f80e authored about 8 years ago
8e905fd17d56b9cd7b121c2ccc0e20830710f80e authored about 8 years ago
[fix] var
e6fe576ec7bb24a468cc87b14f8e75d2686eee27 authored about 8 years ago
e6fe576ec7bb24a468cc87b14f8e75d2686eee27 authored about 8 years ago
[fix] args
1f50481cadda44e96e4e8fb2565fa7db060719b3 authored about 8 years ago
1f50481cadda44e96e4e8fb2565fa7db060719b3 authored about 8 years ago
[osm] using the new gazetteer methods to do more thorough checks on single house names (if there are no other components than the standalone venue name, make sure it contains venue words like {library, bar}, etc. and not street type words like {road, street}, etc. so we don't get training examples that are simply "Abbey/house Road/house" with no house number or street name). If the venue name equals the street name or house number, drop it. Same if the venue name equals one of the admin components and no house number or street is present. If the venue name is numeric, require both a house number and a street name.
4d14f80f0ce9ae8904afc99c9d9106cfa9050691 authored about 8 years ago
4d14f80f0ce9ae8904afc99c9d9106cfa9050691 authored about 8 years ago
[phrases] additions to venue names dictionaries and a more restrictive version of street types dictionaries
5140db536a37566f996b7023e8f344ce71f116e6 authored about 8 years ago
5140db536a37566f996b7023e8f344ce71f116e6 authored about 8 years ago
[fix] sets
71be0fdfbcf392fb0a2e80ac8bc3aadf93702929 authored about 8 years ago
71be0fdfbcf392fb0a2e80ac8bc3aadf93702929 authored about 8 years ago
[fix] name
b6f7b5b5779c6911bc192d4eeb18dd249c60dfe5 authored about 8 years ago
b6f7b5b5779c6911bc192d4eeb18dd249c60dfe5 authored about 8 years ago
[addresses] allowing osm_components argument to AddressComponents.expanded
de9bf29af0deb40365b25b921f88df8f664ee09a authored about 8 years ago
de9bf29af0deb40365b25b921f88df8f664ee09a authored about 8 years ago
[phrases] adding extract_phrases method to gazetteers, which returns a set of gazetteer phrases found in a given string
1df1b60a9fac94414d17a05a928d5dbdf0a3f9b7 authored about 8 years ago
1df1b60a9fac94414d17a05a928d5dbdf0a3f9b7 authored about 8 years ago
[fix] don't short-circuit OSM address formatting unless there are no components and no venue names
8ef8d8818656f0e5ae333d3d9fe8f3e83089b11f authored about 8 years ago
8ef8d8818656f0e5ae333d3d9fe8f3e83089b11f authored about 8 years ago
[fix] check before pop
25ceeed6ef078a5ec43c5d055eb0124fdc293879 authored about 8 years ago
25ceeed6ef078a5ec43c5d055eb0124fdc293879 authored about 8 years ago
[osm] removing dependencies for house/venue name (purely numeric names taken care of in osm formatter)
7a89c6e9ce03a84916c9f9d826064817be6e99bc authored about 8 years ago
7a89c6e9ce03a84916c9f9d826064817be6e99bc authored about 8 years ago
[fix] args
ca89a6ca2eedf0b6abfc87e4443e631d058fdccf authored about 8 years ago
ca89a6ca2eedf0b6abfc87e4443e631d058fdccf authored about 8 years ago
[openaddresses] adding Nelson Mandela Bay as a pre-release download
72305975ebba6936df2253141a70ccd87726c77f authored about 8 years ago
72305975ebba6936df2253141a70ccd87726c77f authored about 8 years ago
[fix] typo
6e73d460974a1223fa0563134d0b045d5b843973 authored about 8 years ago
6e73d460974a1223fa0563134d0b045d5b843973 authored about 8 years ago
[addresses] Adding toponym abbreviation to the input admin components as well as those obtained through reverse geocoding. Also was doing two random tests before abbreviating toponyms, reducing their frequency in the training data, now correctly using a single test.
4e30a23313eb6fce2e46ea264d895924fa8b6359 authored about 8 years ago
4e30a23313eb6fce2e46ea264d895924fa8b6359 authored about 8 years ago
[polygons] adding optional test_point for complex polygons with an admin_center, and including admin_center lat/lon as part of the properties
a9fdfee2ac0863b6a614b84d095d54ed97b9391e authored about 8 years ago
a9fdfee2ac0863b6a614b84d095d54ed97b9391e authored about 8 years ago
[polygons] adding lat/lon props to admin centers
c2ccec70ad2407f1202c54b9bbc52bc553726a0f authored about 8 years ago
c2ccec70ad2407f1202c54b9bbc52bc553726a0f authored about 8 years ago
[polygons] using try/except in polygons
71d535e84532fe7bcd40e2e09dd6aaafa990d3f5 authored about 8 years ago
71d535e84532fe7bcd40e2e09dd6aaafa990d3f5 authored about 8 years ago
[polygons] only applying the new fix-on-read solution in the OSM admin/subdivision indices
d701bb13206a6cb85f0e38f957b502a5c8400432 authored about 8 years ago
d701bb13206a6cb85f0e38f957b502a5c8400432 authored about 8 years ago
[polygons] moving polygon fixes to the to_polygon method so they get applied both at ingestion and on cache load
c1d4b03bb49a2b1bc251b5334eac762f5ef7e7e2 authored about 8 years ago
c1d4b03bb49a2b1bc251b5334eac762f5ef7e7e2 authored about 8 years ago
[osm/polygons] adding fixed version of a polygon if polygon is invalid and doesn't contain its centroid
a25ae7f9ef1112bbf26e524fc8738d6b050e9bef authored about 8 years ago
a25ae7f9ef1112bbf26e524fc8738d6b050e9bef authored about 8 years ago
[boundaries] Reading, UK
0421b8b17c86298820efeeaf1d73ce2d4cd486f4 authored about 8 years ago
0421b8b17c86298820efeeaf1d73ce2d4cd486f4 authored about 8 years ago
[boundaries] Bedford, UK
9c5321d24059772c4b72546ca6d9faac6368e0c9 authored about 8 years ago
9c5321d24059772c4b72546ca6d9faac6368e0c9 authored about 8 years ago
[boundaries] Nottingham, UK
749e495482a7a70d586eb85c9758725d657f3000 authored about 8 years ago
749e495482a7a70d586eb85c9758725d657f3000 authored about 8 years ago
[boundaries] converting admin_level=10 to city in the UK and Ireland
b5464f842b0e85795f193ca29a0df5b431df2604 authored about 8 years ago
b5464f842b0e85795f193ca29a0df5b431df2604 authored about 8 years ago
[boundaries] adding a few more city boundary exceptions to England and Scotland
4a0ed7c7034a6213e37b140d2550cc80d27d1103 authored about 8 years ago
4a0ed7c7034a6213e37b140d2550cc80d27d1103 authored about 8 years ago
[fix] East Asian probabilities
e85a1b906a2aa73d3f3590b151c2faf8ea06caf7 authored about 8 years ago
e85a1b906a2aa73d3f3590b151c2faf8ea06caf7 authored about 8 years ago
[fix] recursive merge for entries that are empty dictionaries
3617b3a10c49eba809a3b28f06fb41cb58b54b41 authored about 8 years ago
3617b3a10c49eba809a3b28f06fb41cb58b54b41 authored about 8 years ago
[boundaries] adding admin_level=6 as cities in West Midlands (county), UK
b03494a73632e5a3296b64ea1e8f618b3155ede0 authored about 8 years ago
b03494a73632e5a3296b64ea1e8f618b3155ede0 authored about 8 years ago