library(tidyverse)
── Attaching core tidyverse packages ───────────────────────────────────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.1 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ─────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(eccor)
library(estcr)
ecco_core <- load_ecco_core()
estc_core <- load_estc_core()
estc_actor_links <- load_estc_actor_links()
estc_actors <- load_estc_actors()
works <- ecco_core %>%
left_join(estc_core, join_by(estc_id)) %>%
replace_na(list(work_id="unknown work", publication_place="unknown place of publication")) %>%
group_by(work_id) %>%
summarise(
earliest_publication_year=min(publication_year),
ecco_parts=str_flatten(sort(unique(ecco_part)), collapse = "|"),
ecco_languages=str_flatten(sort(unique(ecco_language)), collapse = "|"),
has_prices=all(!is.na(total_price)),
places_of_publication=str_flatten(sort(unique(publication_place)), collapse = "|"),
ecco_modules=str_flatten(sort(unique(ecco_module)), collapse = "|"), .groups="drop") %>%
mutate(earliest_publication_decade=floor(earliest_publication_year/10)*10) %>%
select(work_id, earliest_publication_decade, ecco_parts, ecco_modules, ecco_languages, places_of_publication, has_prices)
ecco_ids_to_works <- ecco_core %>%
left_join(estc_core, join_by(estc_id)) %>%
replace_na(list(work_id="unknown work")) %>%
select(ecco_id, work_id)
ecco_test <- works %>%
group_by(ecco_parts, ecco_modules, earliest_publication_decade, ecco_languages, places_of_publication, has_prices) %>%
slice_sample(prop=0.1) %>% # select at most 10% of the works
slice_sample(n=5) %>% # filter down to max 5 per group
group_by(ecco_modules, ecco_languages) %>%
slice_sample(n=1000) %>%
group_by(places_of_publication, ecco_languages) %>%
slice_sample(n=1000) %>%
group_by(has_prices, ecco_languages) %>%
slice_sample(n=1000) %>%
ungroup() %>%
slice_sample(n=1000) %>% # iteratively pare down further
inner_join(ecco_ids_to_works) %>%
select(ecco_id, work_id)
Joining with `by = join_by(work_id)`
ecco_val <- works %>%
anti_join(ecco_test) %>%
group_by(ecco_parts, ecco_modules, earliest_publication_decade, ecco_languages, places_of_publication, has_prices) %>%
slice_sample(prop=0.1) %>% # select at most 10% of the works
slice_sample(n=5) %>% # filter down to max 5 per group
group_by(ecco_modules, ecco_languages) %>%
slice_sample(n=1000) %>%
group_by(places_of_publication, ecco_languages) %>%
slice_sample(n=1000) %>%
group_by(has_prices, ecco_languages) %>%
slice_sample(n=1000) %>%
ungroup() %>%
slice_sample(n=1000) %>% # iteratively pare down further
inner_join(ecco_ids_to_works) %>%
select(ecco_id, work_id)
Joining with `by = join_by(work_id)`
Joining with `by = join_by(work_id)`
ecco_train <- works %>%
anti_join(ecco_test) %>%
anti_join(ecco_val) %>%
inner_join(ecco_ids_to_works) %>%
select(ecco_id, work_id)
Joining with `by = join_by(work_id)`
Joining with `by = join_by(work_id)`
Joining with `by = join_by(work_id)`
library(here)
here() starts at /Users/jiemakel/tyo/r-scratch
ecco_test <- read_tsv(here("data/output/ecco_test_split_by_part_module_language_price_publication_place_and_decade.tsv"))
Rows: 1398 Columns: 2
── Column specification ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (2): ecco_id, work_id
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ecco_val <- read_tsv(here("data/output/ecco_val_split_by_part_module_language_price_publication_place_and_decade.tsv"))
Rows: 1456 Columns: 2
── Column specification ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (2): ecco_id, work_id
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ecco_train <- read_tsv(here("data/output/ecco_train_split_by_part_module_language_price_publication_place_and_decade.tsv"))
Rows: 204759 Columns: 2
── Column specification ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (2): ecco_id, work_id
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
targets <- ecco_core %>%
left_join(estc_core, join_by(estc_id)) %>%
left_join(estc_core %>%
group_by(work_id) %>%
filter(publication_year==min(publication_year)) %>%
summarise(earliest_publication_year=min(publication_year), earliest_publication_year_definite = !any(uncertain | circa | range))
, join_by(work_id)
) %>%
transmute(ecco_id, ecco_part, ecco_module, publication_year, publication_year_definite = !(is.na(publication_year) | uncertain | circa | range), earliest_publication_year, earliest_publication_year_definite, primary_language, total_price, publication_place, publication_country, publication_place_deduced=org_260_a_square_brackets, pages=ecco_pages, estc_id)
ecco_test <- ecco_test %>% left_join(targets, join_by(ecco_id))
ecco_val <- ecco_val %>% left_join(targets, join_by(ecco_id))
ecco_train <- ecco_train %>% left_join(targets, join_by(ecco_id))
split <- ecco_test %>%
mutate(set="test") %>%
union_all(
ecco_val %>%
mutate(set="val")
) %>%
union_all(
ecco_train %>%
mutate(set="train")
)
to_move_publication_year <- split %>%
filter(set=="train") %>%
group_by(publication_year_definite, publication_year) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
anti_join(split %>%
filter(set!="train") %>%
group_by(publication_year_definite, publication_year) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
filter(works>=5), join_by(publication_year_definite, publication_year)) %>%
filter(works>=10) %>%
inner_join(split %>%
filter(set=="train")) %>%
distinct(publication_year_definite, publication_year, work_id) %>%
group_by(publication_year_definite, publication_year) %>%
slice_sample(n=5)
Joining with `by = join_by(publication_year_definite, publication_year)`
to_move_publication_year_val <- to_move_publication_year %>%
slice_sample(n=2) %>%
mutate(new_set="val")
to_move_publication_year <- to_move_publication_year %>%
anti_join(to_move_publication_year_val) %>%
mutate(new_set="test") %>%
union_all(to_move_publication_year_val) %>%
ungroup() %>%
select(work_id, new_set)
Joining with `by = join_by(publication_year_definite, publication_year, work_id)`
to_move_earliest_publication_year <- split %>%
filter(set=="train") %>%
group_by(earliest_publication_year_definite, earliest_publication_year) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
anti_join(split %>%
filter(set!="train") %>%
group_by(earliest_publication_year_definite, earliest_publication_year) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
filter(works>=5), join_by(earliest_publication_year_definite, earliest_publication_year)) %>%
filter(works>=10) %>%
inner_join(split %>%
filter(set=="train")) %>%
distinct(earliest_publication_year_definite, earliest_publication_year, work_id) %>%
group_by(earliest_publication_year_definite, earliest_publication_year) %>%
slice_sample(n=5)
Joining with `by = join_by(earliest_publication_year_definite, earliest_publication_year)`
to_move_earliest_publication_year_val <- to_move_earliest_publication_year %>%
slice_sample(n=2) %>%
mutate(new_set="val")
to_move_earliest_publication_year <- to_move_earliest_publication_year %>%
anti_join(to_move_earliest_publication_year_val) %>%
mutate(new_set="test") %>%
union_all(to_move_earliest_publication_year_val) %>%
ungroup() %>%
select(work_id, new_set)
Joining with `by = join_by(earliest_publication_year_definite, earliest_publication_year, work_id)`
to_move_primary_language <- split %>%
filter(set=="train") %>%
group_by(primary_language) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
anti_join(split %>%
filter(set!="train") %>%
group_by(primary_language) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
filter(works>=5), join_by(primary_language)) %>%
filter(works>=10) %>%
inner_join(split %>%
filter(set=="train")) %>%
distinct(primary_language, work_id) %>%
group_by(primary_language) %>%
slice_sample(n=5)
Joining with `by = join_by(primary_language)`
to_move_primary_language_val <- to_move_primary_language %>%
slice_sample(n=2) %>%
mutate(new_set="val")
to_move_primary_language <- to_move_primary_language %>%
anti_join(to_move_primary_language_val) %>%
mutate(new_set="test") %>%
union_all(to_move_primary_language_val) %>%
ungroup() %>%
select(work_id, new_set)
Joining with `by = join_by(primary_language, work_id)`
to_move_publication_place <- split %>%
filter(set=="train") %>%
group_by(publication_place_deduced, publication_place) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
anti_join(split %>%
filter(set!="train") %>%
group_by(publication_place_deduced, publication_place) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
filter(works>=5), join_by(publication_place_deduced, publication_place)) %>%
filter(works>=10) %>%
inner_join(split %>%
filter(set=="train")) %>%
distinct(publication_place_deduced, publication_place, work_id) %>%
group_by(publication_place_deduced, publication_place) %>%
slice_sample(n=5) %>%
ungroup() %>%
select(work_id)
Joining with `by = join_by(publication_place_deduced, publication_place)`
to_move_publication_place_val <- to_move_publication_place %>%
slice_sample(n=2) %>%
mutate(new_set="val")
to_move_publication_place <- to_move_publication_place %>%
anti_join(to_move_publication_place_val) %>%
mutate(new_set="test") %>%
union_all(to_move_publication_place_val) %>%
ungroup() %>%
select(work_id, new_set)
Joining with `by = join_by(work_id)`
d <- split %>%
left_join(estc_actor_links) %>%
select(set, work_id, actor_id, actor_roles_all) %>%
separate_rows(actor_roles_all, sep="; ") %>%
distinct()
Joining with `by = join_by(estc_id)`
Warning in left_join(., estc_actor_links) :
Detected an unexpected many-to-many relationship between `x` and `y`.
ℹ Row 2 of `x` matches multiple rows in `y`.
ℹ Row 399569 of `y` matches multiple rows in `x`.
ℹ If a many-to-many relationship is expected, set `relationship = "many-to-many"` to silence this warning.
to_move_actor <- d %>%
filter(set=="train") %>%
group_by(actor_id,actor_roles_all) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
anti_join(d %>%
filter(set!="train") %>%
group_by(actor_roles_all, actor_id) %>%
summarise(works=n_distinct(work_id), .groups="drop") %>%
filter(works>=5), join_by(actor_id)) %>%
filter(works>=50) %>%
inner_join(d %>%
filter(set=="train")) %>%
distinct(actor_id, work_id) %>%
group_by(actor_id) %>%
slice_sample(n=7)
Joining with `by = join_by(actor_id, actor_roles_all)`
to_move_actor_val <- to_move_actor %>%
slice_sample(n=2) %>%
mutate(new_set="val")
to_move_actor <- to_move_actor %>%
anti_join(to_move_actor_val) %>%
mutate(new_set="test") %>%
union_all(to_move_actor_val) %>%
ungroup() %>%
select(work_id, new_set)
Joining with `by = join_by(actor_id, work_id)`
to_move <- to_move_earliest_publication_year %>%
union(to_move_publication_year) %>%
union(to_move_primary_language) %>%
union(to_move_publication_place) %>%
union(to_move_actor) %>%
group_by(work_id) %>%
summarise(new_set=if_else(any(new_set=="test"),"test", "val"))
split <- split %>%
left_join(to_move, join_by(work_id)) %>%
mutate(set=coalesce(new_set,set)) %>%
select(-new_set)
ssplit <- split
while (TRUE) {
bad_test <- split %>%
filter(set!="train", publication_year<1700 | publication_year>1800 | earliest_publication_year>1800) %>%
union(split %>%
filter(set!="train") %>%
anti_join(split %>% filter(set=="train"), join_by(publication_place))
) %>%
union(split %>%
filter(set!="train") %>%
anti_join(split %>% filter(set=="train"), join_by(publication_country))
) %>%
union(split %>%
filter(set!="train") %>%
anti_join(split %>% filter(set=="train"), join_by(primary_language))
) %>%
union(split %>%
filter(set!="train") %>%
anti_join(split %>% filter(set=="train"), join_by(publication_country))
) %>%
distinct(work_id) %>%
mutate(new_set="train")
old_split <- split
split <- split %>%
left_join(bad_test, join_by(work_id)) %>%
mutate(set=coalesce(new_set,set)) %>%
select(-new_set)
if (all(old_split$set==split$set)) break
}
major_primary_language <- split %>%
filter(set=="test") %>%
group_by(primary_language) %>%
summarise(works=n_distinct(work_id), documents=n(), pages=sum(pages)) %>%
transmute(primary_language,major_primary_language=if_else(is.na(primary_language) | works>=10,primary_language, "Other"))
split <- split %>%
left_join(major_primary_language)
Joining with `by = join_by(primary_language)`
major_publication_place <- split %>%
filter(set=="test") %>%
group_by(publication_place) %>%
summarise(works=n_distinct(work_id), documents=n(), pages=sum(pages)) %>%
transmute(publication_place,major_publication_place=if_else(is.na(publication_place) | works>=20,publication_place, "Other"))
split <- split %>%
left_join(major_publication_place)
Joining with `by = join_by(publication_place)`
major_publication_country <- split %>%
filter(set=="test") %>%
group_by(publication_country) %>%
summarise(works=n_distinct(work_id), documents=n(), pages=sum(pages)) %>%
transmute(publication_country,major_publication_country=if_else(is.na(publication_country) | works>=10,publication_country, "Other"))
split <- split %>%
left_join(major_publication_country)
Joining with `by = join_by(publication_country)`
actor_split <- split %>%
inner_join(estc_actor_links) %>%
select(set, work_id, actor_id, actor_roles_all) %>%
separate_rows(actor_roles_all, sep="; ") %>%
mutate(actor_roles_all=if_else(actor_roles_all=="printer","publisher",actor_roles_all)) %>%
distinct()
Joining with `by = join_by(estc_id)`
Warning in inner_join(., estc_actor_links) :
Detected an unexpected many-to-many relationship between `x` and `y`.
ℹ Row 2 of `x` matches multiple rows in `y`.
ℹ Row 399569 of `y` matches multiple rows in `x`.
ℹ If a many-to-many relationship is expected, set `relationship = "many-to-many"` to silence this warning.
bad_test_actors <- actor_split %>%
filter(set!="train") %>%
anti_join(d %>% filter(set=="train"), join_by(actor_id, actor_roles_all)) %>%
distinct(actor_roles_all, actor_id)
actor_split <- actor_split %>%
anti_join(bad_test_actors)
Joining with `by = join_by(actor_id, actor_roles_all)`
major_actor <- actor_split %>%
filter(set=="test") %>%
group_by(actor_id, actor_roles_all) %>%
summarise(works=n(), .groups="drop") %>%
transmute(actor_id, actor_roles_all, major_actor_id=if_else(is.na(actor_id) | works>=50,actor_id, "Other"))
major_actor_split <- actor_split %>%
inner_join(major_actor %>% filter(major_actor_id!="Other")) %>%
select(-actor_id)
Joining with `by = join_by(actor_id, actor_roles_all)`
actor_split <- actor_split %>%
inner_join(split %>%
select(ecco_id, work_id, pages)) %>%
inner_join(estc_actors %>%
select(actor_id, name_unified)) %>%
rename(actor_role=actor_roles_all)
Joining with `by = join_by(work_id)`
Warning in inner_join(., split %>% select(ecco_id, work_id, pages)) :
Detected an unexpected many-to-many relationship between `x` and `y`.
ℹ Row 1 of `x` matches multiple rows in `y`.
ℹ Row 2 of `y` matches multiple rows in `x`.
ℹ If a many-to-many relationship is expected, set `relationship = "many-to-many"` to silence this warning.
Joining with `by = join_by(actor_id)`
major_actor_split <- major_actor_split %>%
inner_join(split %>%
select(ecco_id, work_id, pages)) %>%
inner_join(estc_actors %>%
select(major_actor_id=actor_id, name_unified)) %>%
rename(actor_role=actor_roles_all)
Joining with `by = join_by(work_id)`
Warning in inner_join(., split %>% select(ecco_id, work_id, pages)) :
Detected an unexpected many-to-many relationship between `x` and `y`.
ℹ Row 1 of `x` matches multiple rows in `y`.
ℹ Row 8 of `y` matches multiple rows in `x`.
ℹ If a many-to-many relationship is expected, set `relationship = "many-to-many"` to silence this warning.
Joining with `by = join_by(major_actor_id)`
split %>%
write_tsv(here("data/output/ecco-multi-target-split.tsv"),quote="needed",na="")
actor_split %>%
write_tsv(here("data/output/ecco-multi-target-actor-split.tsv"),quote="needed",na="")
major_actor_split %>%
write_tsv(here("data/output/ecco-multi-target-major-actor-split.tsv"),quote="needed",na="")
Overall
library(gt)
Registered S3 methods overwritten by 'htmltools':
method from
print.html tools:rstudio
print.shiny.tag tools:rstudio
print.shiny.tag.list tools:rstudio
split %>%
group_by(set) %>%
summarise(pages=sum(pages),documents=n(),works=n_distinct(work_id), .groups="drop") %>%
pivot_longer(pages:works) %>%
pivot_wider(names_from=set,values_from=value) %>%
mutate(name=fct_relevel(name,"works","documents","pages")) %>%
arrange(name) %>%
gt(rowname_col = "name") %>%
tab_header(title = "Overall") %>%
fmt_integer(columns=c(test,val,train))
Overall |
|
test |
train |
val |
works |
5,970 |
107,740 |
2,530 |
documents |
26,808 |
173,739 |
7,066 |
pages |
6,587,400 |
24,788,273 |
1,537,513 |
split %>%
pivot_longer(c(ecco_part,ecco_module,primary_language,major_primary_language,publication_country,major_publication_country,publication_place,major_publication_place)) %>%
select(name,set,value) %>%
union_all(
major_actor_split %>%
transmute(name="major_actor_id",set,value=major_actor_id)
) %>%
union_all(
actor_split %>%
transmute(name="actor_id",set,value=actor_id)
) %>%
distinct(name,set,value) %>%
count(set,name) %>%
pivot_wider(names_from=set,values_from=n) %>%
gt(rowname_col = "name") %>%
tab_header(title = "Number of targets by task") %>%
fmt_integer(columns=c(test,val,train))
Number of targets by task |
|
test |
train |
val |
actor_id |
10,698 |
60,856 |
4,452 |
ecco_module |
8 |
8 |
8 |
ecco_part |
2 |
2 |
2 |
major_actor_id |
108 |
108 |
108 |
major_primary_language |
9 |
9 |
9 |
major_publication_country |
14 |
14 |
14 |
major_publication_place |
40 |
40 |
40 |
primary_language |
13 |
19 |
12 |
publication_country |
19 |
38 |
15 |
publication_place |
264 |
649 |
104 |
NA
- regression tasks:
earliest_publication_year
,
publication_year
, total_price
Single label targets
print_split <- function(split, group_var, group_var_name, major=FALSE, order_by_frequency=TRUE) {
group_var = enquo(group_var)
d <- split %>%
group_by(set, !!group_var) %>%
summarise(pages=sum(pages),documents=n(),works=n_distinct(work_id), .groups="drop") %>%
pivot_longer(pages:works) %>%
pivot_wider(names_from=set,values_from=value) %>%
mutate(name=fct_relevel(name,"works","documents","pages"))
d <- if (order_by_frequency) d %>% mutate(group_var=fct_reorder(!!group_var, train, .desc=TRUE)) else d %>% mutate(group_var=!!group_var)
d %>%
select(-!!group_var) %>%
arrange(name,group_var) %>%
gt(groupname_col = "name", rowname_col="group_var") %>%
tab_header(title = str_c("By ",group_var_name), subtitle=str_c("(", if (major) "major only, " else "", split %>% filter(set=="test") %>% distinct(!!group_var) %>% count() %>% pull(), " targets)")) %>%
fmt_integer(columns=c(test,val,train))
}
ECCO part
split %>%
print_split(ecco_part, "ECCO part")
By ECCO part |
(2 targets) |
|
test |
train |
val |
works |
ecco1 |
4,706 |
82,027 |
1,924 |
ecco2 |
2,468 |
33,930 |
1,010 |
documents |
ecco1 |
19,950 |
129,702 |
5,272 |
ecco2 |
6,858 |
44,037 |
1,794 |
pages |
ecco1 |
5,058,897 |
19,754,735 |
1,204,951 |
ecco2 |
1,528,503 |
5,033,538 |
332,562 |
ECCO module
split %>%
print_split(ecco_module, "ECCO module")
By ECCO module |
(8 targets) |
|
test |
train |
val |
works |
Religion and Philosophy |
1,968 |
29,403 |
771 |
Literature and Language |
1,628 |
23,271 |
618 |
Social Sciences |
1,517 |
29,885 |
641 |
History and Geography |
565 |
8,001 |
244 |
Medicine, Science and Technology |
468 |
8,916 |
217 |
Law |
350 |
9,303 |
155 |
General Reference |
236 |
3,203 |
79 |
Fine Arts |
276 |
2,511 |
103 |
documents |
Religion and Philosophy |
6,309 |
44,113 |
1,754 |
Literature and Language |
10,799 |
40,909 |
2,271 |
Social Sciences |
3,067 |
39,485 |
1,061 |
History and Geography |
2,629 |
15,031 |
663 |
Medicine, Science and Technology |
1,487 |
13,713 |
464 |
Law |
1,237 |
11,978 |
395 |
General Reference |
489 |
4,532 |
201 |
Fine Arts |
791 |
3,978 |
257 |
pages |
Religion and Philosophy |
1,444,519 |
6,313,356 |
365,012 |
Literature and Language |
2,627,666 |
6,242,597 |
458,667 |
Social Sciences |
492,522 |
3,296,537 |
141,209 |
History and Geography |
970,297 |
4,095,770 |
231,541 |
Medicine, Science and Technology |
427,364 |
2,626,252 |
125,229 |
Law |
420,675 |
1,143,333 |
130,524 |
General Reference |
128,449 |
713,606 |
61,683 |
Fine Arts |
75,908 |
356,822 |
23,648 |
Primary language
split %>%
print_split(major_primary_language, "primary language", TRUE)
By primary language |
(major only, 9 targets) |
|
test |
train |
val |
works |
English |
5,641 |
102,414 |
2,367 |
French |
198 |
2,457 |
86 |
Latin |
210 |
2,812 |
94 |
Welsh |
57 |
368 |
8 |
Italian |
31 |
214 |
6 |
German |
27 |
184 |
4 |
Other |
20 |
76 |
10 |
Multiple languages |
14 |
54 |
4 |
NA |
3 |
22 |
2 |
documents |
English |
24,965 |
163,512 |
6,694 |
French |
718 |
4,722 |
158 |
Latin |
845 |
4,097 |
172 |
Welsh |
82 |
460 |
10 |
Italian |
95 |
392 |
11 |
German |
35 |
251 |
4 |
Other |
37 |
100 |
11 |
Multiple languages |
28 |
69 |
4 |
NA |
3 |
136 |
2 |
pages |
English |
6,028,016 |
22,498,845 |
1,449,460 |
French |
223,017 |
1,205,902 |
31,991 |
Latin |
260,398 |
789,051 |
47,719 |
Welsh |
16,528 |
60,333 |
1,464 |
Italian |
30,953 |
109,408 |
3,494 |
German |
11,120 |
52,124 |
814 |
Other |
9,752 |
31,309 |
1,608 |
Multiple languages |
7,501 |
14,946 |
907 |
NA |
115 |
26,355 |
56 |
split %>%
print_split(primary_language, "primary language")
By primary language |
(13 targets) |
|
test |
train |
val |
works |
English |
5,641 |
102,414 |
2,367 |
French |
198 |
2,457 |
86 |
Latin |
210 |
2,812 |
94 |
Welsh |
57 |
368 |
8 |
Italian |
31 |
214 |
6 |
German |
27 |
184 |
4 |
Multiple languages |
14 |
54 |
4 |
Spanish |
5 |
30 |
3 |
Portuguese |
2 |
22 |
2 |
Scottish Gaelic |
9 |
13 |
3 |
Dutch |
3 |
9 |
2 |
Manx |
1 |
6 |
NA |
Irish |
NA |
6 |
NA |
Danish |
NA |
3 |
NA |
Swedish |
NA |
3 |
NA |
Algonquian (Other) |
NA |
1 |
NA |
Mohawk |
NA |
1 |
NA |
Romance (Other) |
NA |
1 |
NA |
NA |
3 |
7 |
2 |
documents |
English |
24,965 |
163,512 |
6,694 |
French |
718 |
4,722 |
158 |
Latin |
845 |
4,097 |
172 |
Welsh |
82 |
460 |
10 |
Italian |
95 |
392 |
11 |
German |
35 |
251 |
4 |
Multiple languages |
28 |
69 |
4 |
Spanish |
10 |
35 |
3 |
Portuguese |
2 |
23 |
2 |
Scottish Gaelic |
21 |
17 |
4 |
Dutch |
3 |
16 |
2 |
Manx |
1 |
9 |
NA |
Irish |
NA |
7 |
NA |
Danish |
NA |
4 |
NA |
Swedish |
NA |
3 |
NA |
Algonquian (Other) |
NA |
1 |
NA |
Mohawk |
NA |
1 |
NA |
Romance (Other) |
NA |
1 |
NA |
NA |
3 |
119 |
2 |
pages |
English |
6,028,016 |
22,498,845 |
1,449,460 |
French |
223,017 |
1,205,902 |
31,991 |
Latin |
260,398 |
789,051 |
47,719 |
Welsh |
16,528 |
60,333 |
1,464 |
Italian |
30,953 |
109,408 |
3,494 |
German |
11,120 |
52,124 |
814 |
Multiple languages |
7,501 |
14,946 |
907 |
Spanish |
2,831 |
11,091 |
123 |
Portuguese |
396 |
5,091 |
144 |
Scottish Gaelic |
5,683 |
5,104 |
741 |
Dutch |
759 |
6,962 |
600 |
Manx |
83 |
3,061 |
NA |
Irish |
NA |
1,149 |
NA |
Danish |
NA |
1,848 |
NA |
Swedish |
NA |
915 |
NA |
Algonquian (Other) |
NA |
97 |
NA |
Mohawk |
NA |
206 |
NA |
Romance (Other) |
NA |
162 |
NA |
NA |
115 |
21,978 |
56 |
Publication country
split %>%
print_split(major_publication_country, "publication country", TRUE)
By publication country |
(major only, 14 targets) |
|
test |
train |
val |
works |
England |
4,489 |
81,370 |
1,871 |
Scotland |
807 |
12,073 |
335 |
Ireland |
1,076 |
10,714 |
431 |
USA |
797 |
6,997 |
226 |
France |
96 |
1,047 |
34 |
Netherlands |
76 |
325 |
15 |
Germany |
48 |
176 |
9 |
Wales |
50 |
271 |
7 |
Switzerland |
26 |
87 |
1 |
Italy |
18 |
88 |
1 |
India |
11 |
123 |
2 |
Other |
30 |
96 |
2 |
Belgium |
10 |
43 |
1 |
NA |
145 |
1,071 |
39 |
documents |
England |
18,541 |
128,352 |
5,007 |
Scotland |
2,790 |
15,912 |
653 |
Ireland |
3,140 |
15,448 |
910 |
USA |
1,277 |
8,259 |
305 |
France |
283 |
2,122 |
69 |
Netherlands |
171 |
593 |
19 |
Germany |
78 |
339 |
15 |
Wales |
64 |
302 |
8 |
Switzerland |
118 |
174 |
1 |
Italy |
40 |
154 |
4 |
India |
14 |
149 |
2 |
Other |
48 |
129 |
6 |
Belgium |
12 |
78 |
1 |
NA |
232 |
1,728 |
66 |
pages |
England |
4,745,063 |
18,668,142 |
1,126,815 |
Scotland |
673,838 |
1,937,308 |
145,205 |
Ireland |
708,237 |
2,030,397 |
189,521 |
USA |
167,405 |
735,190 |
29,935 |
France |
89,436 |
577,826 |
16,538 |
Netherlands |
48,799 |
164,539 |
4,013 |
Germany |
25,858 |
121,346 |
2,542 |
Wales |
10,055 |
25,057 |
810 |
Switzerland |
43,643 |
55,515 |
454 |
Italy |
13,783 |
43,683 |
1,455 |
India |
2,506 |
27,788 |
265 |
Other |
10,800 |
25,183 |
1,651 |
Belgium |
2,163 |
15,540 |
8 |
NA |
45,814 |
360,759 |
18,301 |
split %>%
print_split(publication_country, "publication country")
By publication country |
(19 targets) |
|
test |
train |
val |
works |
England |
4,489 |
81,370 |
1,871 |
Scotland |
807 |
12,073 |
335 |
Ireland |
1,076 |
10,714 |
431 |
USA |
797 |
6,997 |
226 |
France |
96 |
1,047 |
34 |
Netherlands |
76 |
325 |
15 |
Germany |
48 |
176 |
9 |
Wales |
50 |
271 |
7 |
Switzerland |
26 |
87 |
1 |
Italy |
18 |
88 |
1 |
India |
11 |
123 |
2 |
Belgium |
10 |
43 |
1 |
Jamaica |
9 |
32 |
1 |
Austria |
8 |
12 |
1 |
Canada |
8 |
27 |
NA |
Sweden |
2 |
12 |
NA |
Denmark |
6 |
11 |
NA |
Saint Kitts and Nevis |
NA |
11 |
NA |
Guernsey |
NA |
11 |
NA |
Isle of Man |
NA |
8 |
NA |
Barbados |
NA |
10 |
NA |
Antigua |
NA |
8 |
NA |
Haiti |
NA |
8 |
NA |
Channel Islands |
NA |
8 |
NA |
Malta |
NA |
7 |
NA |
Portugal |
NA |
7 |
NA |
Spain |
NA |
4 |
NA |
Russia |
NA |
5 |
NA |
Dominica |
NA |
3 |
NA |
Grenada |
1 |
3 |
NA |
Poland |
NA |
2 |
NA |
South Africa |
NA |
2 |
NA |
Bahamas |
NA |
1 |
NA |
Hungary |
NA |
1 |
NA |
Netherlands Antilles |
NA |
1 |
NA |
Northern Ireland |
NA |
1 |
NA |
Saint-Domingue |
NA |
1 |
NA |
NA |
145 |
974 |
39 |
documents |
England |
18,541 |
128,352 |
5,007 |
Scotland |
2,790 |
15,912 |
653 |
Ireland |
3,140 |
15,448 |
910 |
USA |
1,277 |
8,259 |
305 |
France |
283 |
2,122 |
69 |
Netherlands |
171 |
593 |
19 |
Germany |
78 |
339 |
15 |
Wales |
64 |
302 |
8 |
Switzerland |
118 |
174 |
1 |
Italy |
40 |
154 |
4 |
India |
14 |
149 |
2 |
Belgium |
12 |
78 |
1 |
Jamaica |
13 |
38 |
4 |
Austria |
13 |
31 |
2 |
Canada |
11 |
28 |
NA |
Sweden |
2 |
16 |
NA |
Denmark |
8 |
13 |
NA |
Saint Kitts and Nevis |
NA |
12 |
NA |
Guernsey |
NA |
11 |
NA |
Isle of Man |
NA |
11 |
NA |
Barbados |
NA |
10 |
NA |
Antigua |
NA |
9 |
NA |
Haiti |
NA |
9 |
NA |
Channel Islands |
NA |
8 |
NA |
Malta |
NA |
8 |
NA |
Portugal |
NA |
7 |
NA |
Spain |
NA |
7 |
NA |
Russia |
NA |
5 |
NA |
Dominica |
NA |
3 |
NA |
Grenada |
1 |
3 |
NA |
Poland |
NA |
3 |
NA |
South Africa |
NA |
2 |
NA |
Bahamas |
NA |
1 |
NA |
Hungary |
NA |
1 |
NA |
Netherlands Antilles |
NA |
1 |
NA |
Northern Ireland |
NA |
1 |
NA |
Saint-Domingue |
NA |
1 |
NA |
NA |
232 |
1,618 |
66 |
pages |
England |
4,745,063 |
18,668,142 |
1,126,815 |
Scotland |
673,838 |
1,937,308 |
145,205 |
Ireland |
708,237 |
2,030,397 |
189,521 |
USA |
167,405 |
735,190 |
29,935 |
France |
89,436 |
577,826 |
16,538 |
Netherlands |
48,799 |
164,539 |
4,013 |
Germany |
25,858 |
121,346 |
2,542 |
Wales |
10,055 |
25,057 |
810 |
Switzerland |
43,643 |
55,515 |
454 |
Italy |
13,783 |
43,683 |
1,455 |
India |
2,506 |
27,788 |
265 |
Belgium |
2,163 |
15,540 |
8 |
Jamaica |
2,627 |
4,453 |
1,468 |
Austria |
4,937 |
8,508 |
183 |
Canada |
1,146 |
3,264 |
NA |
Sweden |
234 |
5,110 |
NA |
Denmark |
1,852 |
3,644 |
NA |
Saint Kitts and Nevis |
NA |
676 |
NA |
Guernsey |
NA |
1,637 |
NA |
Isle of Man |
NA |
916 |
NA |
Barbados |
NA |
478 |
NA |
Antigua |
NA |
372 |
NA |
Haiti |
NA |
81 |
NA |
Channel Islands |
NA |
1,792 |
NA |
Malta |
NA |
2,428 |
NA |
Portugal |
NA |
1,687 |
NA |
Spain |
NA |
4,552 |
NA |
Russia |
NA |
1,292 |
NA |
Dominica |
NA |
31 |
NA |
Grenada |
4 |
204 |
NA |
Poland |
NA |
1,238 |
NA |
South Africa |
NA |
2 |
NA |
Bahamas |
NA |
110 |
NA |
Hungary |
NA |
240 |
NA |
Netherlands Antilles |
NA |
164 |
NA |
Northern Ireland |
NA |
46 |
NA |
Saint-Domingue |
NA |
83 |
NA |
NA |
45,814 |
342,934 |
18,301 |
Publication place
split %>%
print_split(major_publication_place, "publication place", TRUE)
By publication place |
(major only, 40 targets) |
|
test |
train |
val |
works |
London |
3,518 |
70,105 |
1,656 |
Dublin |
993 |
9,885 |
424 |
Edinburgh |
583 |
10,234 |
268 |
Other |
1,278 |
6,108 |
79 |
Boston Ma |
276 |
3,041 |
118 |
Oxford |
125 |
1,492 |
48 |
Glasgow |
270 |
1,509 |
79 |
Philadelphia Pa |
189 |
1,621 |
63 |
Paris |
83 |
858 |
28 |
Cambridge |
107 |
1,099 |
52 |
Newcastle |
67 |
960 |
28 |
Bristol |
69 |
761 |
28 |
York |
64 |
600 |
22 |
Bath |
32 |
534 |
9 |
New York Ny |
69 |
597 |
24 |
Birmingham |
51 |
512 |
9 |
Salisbury |
27 |
412 |
4 |
Norwich |
25 |
385 |
4 |
Manchester |
57 |
388 |
16 |
Cork |
46 |
344 |
10 |
Belfast |
63 |
297 |
11 |
Leeds |
24 |
278 |
10 |
Shrewsbury |
30 |
244 |
8 |
Aberdeen |
41 |
238 |
10 |
Liverpool |
21 |
212 |
3 |
New London Ct |
22 |
172 |
8 |
Northampton |
26 |
199 |
4 |
Hartford Ct |
38 |
176 |
9 |
Chester |
23 |
184 |
1 |
Perth |
43 |
98 |
5 |
Gloucester |
26 |
134 |
3 |
Berwick-upon-Tweed |
39 |
106 |
10 |
New Haven Ct |
22 |
137 |
6 |
Coventry |
23 |
137 |
2 |
Providence Ri |
31 |
127 |
5 |
The Hague |
42 |
63 |
4 |
Newburyport Ma |
22 |
105 |
3 |
Paisley |
20 |
78 |
3 |
Falkirk |
27 |
79 |
2 |
NA |
187 |
2,658 |
64 |
documents |
London |
16,294 |
111,914 |
4,562 |
Dublin |
2,910 |
14,286 |
879 |
Edinburgh |
1,746 |
12,887 |
489 |
Other |
1,853 |
7,552 |
111 |
Boston Ma |
396 |
3,387 |
153 |
Oxford |
279 |
2,238 |
114 |
Glasgow |
747 |
2,080 |
127 |
Philadelphia Pa |
283 |
1,966 |
78 |
Paris |
224 |
1,730 |
45 |
Cambridge |
187 |
1,507 |
73 |
Newcastle |
93 |
1,144 |
30 |
Bristol |
153 |
1,008 |
39 |
York |
106 |
751 |
30 |
Bath |
48 |
748 |
13 |
New York Ny |
104 |
696 |
28 |
Birmingham |
86 |
641 |
12 |
Salisbury |
41 |
461 |
5 |
Norwich |
27 |
453 |
4 |
Manchester |
68 |
448 |
16 |
Cork |
57 |
383 |
10 |
Belfast |
89 |
335 |
13 |
Leeds |
30 |
333 |
13 |
Shrewsbury |
40 |
307 |
9 |
Aberdeen |
61 |
285 |
19 |
Liverpool |
22 |
252 |
5 |
New London Ct |
23 |
222 |
8 |
Northampton |
27 |
213 |
4 |
Hartford Ct |
51 |
211 |
10 |
Chester |
25 |
205 |
1 |
Perth |
88 |
175 |
6 |
Gloucester |
32 |
161 |
3 |
Berwick-upon-Tweed |
59 |
154 |
11 |
New Haven Ct |
24 |
151 |
6 |
Coventry |
30 |
150 |
6 |
Providence Ri |
31 |
129 |
5 |
The Hague |
67 |
122 |
6 |
Newburyport Ma |
24 |
108 |
3 |
Paisley |
20 |
97 |
3 |
Falkirk |
35 |
88 |
2 |
NA |
328 |
3,761 |
115 |
pages |
London |
4,401,845 |
16,671,741 |
1,051,211 |
Dublin |
680,689 |
1,932,516 |
186,410 |
Edinburgh |
440,701 |
1,434,837 |
106,727 |
Other |
295,927 |
971,413 |
14,771 |
Boston Ma |
40,900 |
223,443 |
12,197 |
Oxford |
83,460 |
403,804 |
32,461 |
Glasgow |
172,862 |
335,340 |
28,058 |
Philadelphia Pa |
52,552 |
251,577 |
10,792 |
Paris |
67,345 |
470,499 |
9,241 |
Cambridge |
40,194 |
223,622 |
13,867 |
Newcastle |
14,381 |
93,143 |
2,588 |
Bristol |
10,748 |
97,172 |
2,968 |
York |
20,242 |
93,607 |
4,144 |
Bath |
5,953 |
113,802 |
1,114 |
New York Ny |
21,011 |
87,543 |
3,340 |
Birmingham |
19,295 |
94,109 |
1,948 |
Salisbury |
6,201 |
23,115 |
19 |
Norwich |
2,731 |
40,373 |
324 |
Manchester |
7,501 |
41,732 |
585 |
Cork |
8,839 |
43,061 |
1,608 |
Belfast |
12,861 |
30,352 |
1,035 |
Leeds |
4,570 |
36,159 |
2,515 |
Shrewsbury |
6,581 |
46,468 |
1,660 |
Aberdeen |
10,487 |
39,286 |
6,111 |
Liverpool |
4,314 |
33,569 |
896 |
New London Ct |
1,832 |
11,201 |
277 |
Northampton |
1,604 |
6,902 |
4 |
Hartford Ct |
4,337 |
18,042 |
755 |
Chester |
2,853 |
18,904 |
24 |
Perth |
20,406 |
57,043 |
1,413 |
Gloucester |
3,724 |
16,206 |
571 |
Berwick-upon-Tweed |
12,863 |
36,292 |
2,238 |
New Haven Ct |
1,104 |
8,031 |
277 |
Coventry |
4,573 |
12,196 |
1,738 |
Providence Ri |
1,802 |
5,984 |
165 |
The Hague |
13,049 |
39,586 |
1,196 |
Newburyport Ma |
2,551 |
7,239 |
93 |
Paisley |
3,980 |
18,204 |
467 |
Falkirk |
5,957 |
11,285 |
382 |
NA |
74,575 |
688,875 |
31,323 |
split %>%
print_split(publication_place, "publication place")
By publication place |
(264 targets) |
|
test |
train |
val |
works |
London |
3,518 |
70,105 |
1,656 |
Dublin |
993 |
9,885 |
424 |
Edinburgh |
583 |
10,234 |
268 |
Boston Ma |
276 |
3,041 |
118 |
Oxford |
125 |
1,492 |
48 |
Glasgow |
270 |
1,509 |
79 |
Philadelphia Pa |
189 |
1,621 |
63 |
Paris |
83 |
858 |
28 |
Cambridge |
107 |
1,099 |
52 |
Newcastle |
67 |
960 |
28 |
Bristol |
69 |
761 |
28 |
York |
64 |
600 |
22 |
Bath |
32 |
534 |
9 |
New York Ny |
69 |
597 |
24 |
Birmingham |
51 |
512 |
9 |
Salisbury |
27 |
412 |
4 |
Norwich |
25 |
385 |
4 |
Manchester |
57 |
388 |
16 |
Exeter |
18 |
334 |
6 |
Cork |
46 |
344 |
10 |
Belfast |
63 |
297 |
11 |
Leeds |
24 |
278 |
10 |
Shrewsbury |
30 |
244 |
8 |
Aberdeen |
41 |
238 |
10 |
Amsterdam |
17 |
125 |
5 |
Liverpool |
21 |
212 |
3 |
New London Ct |
22 |
172 |
8 |
Northampton |
26 |
199 |
4 |
Canterbury |
14 |
168 |
NA |
Hartford Ct |
38 |
176 |
9 |
Chester |
23 |
184 |
1 |
Nottingham |
16 |
174 |
2 |
Worcester |
17 |
173 |
2 |
Perth |
43 |
98 |
5 |
Gloucester |
26 |
134 |
3 |
Ipswich |
15 |
142 |
1 |
Berwick-upon-Tweed |
39 |
106 |
10 |
Warrington |
19 |
126 |
2 |
New Haven Ct |
22 |
137 |
6 |
Coventry |
23 |
137 |
2 |
Sherborne |
10 |
55 |
1 |
Reading |
13 |
112 |
1 |
Rochester |
19 |
106 |
3 |
Providence Ri |
31 |
127 |
5 |
Eton |
13 |
77 |
1 |
The Hague |
42 |
63 |
4 |
Downpatrick |
13 |
117 |
3 |
Hull |
15 |
112 |
1 |
Newburyport Ma |
22 |
105 |
3 |
Worcester Ma |
16 |
105 |
2 |
Calcutta |
11 |
86 |
1 |
Sheffield |
13 |
96 |
1 |
Paisley |
20 |
78 |
3 |
Basel |
16 |
42 |
1 |
Newport Ri |
14 |
90 |
2 |
Falkirk |
27 |
79 |
2 |
Charleston Sc |
11 |
81 |
NA |
Leipzig |
14 |
22 |
NA |
Portsmouth Nh |
13 |
71 |
NA |
Bury |
7 |
47 |
NA |
Livorno |
6 |
33 |
1 |
Leicester |
11 |
65 |
NA |
Salem Ma |
12 |
68 |
1 |
Limerick |
14 |
71 |
1 |
Southampton |
12 |
65 |
1 |
Tewkesbury |
15 |
67 |
3 |
Darlington |
12 |
65 |
2 |
Colchester |
11 |
67 |
1 |
Carlisle |
5 |
56 |
NA |
Lincoln |
6 |
57 |
3 |
Plymouth |
11 |
55 |
NA |
Winchester |
13 |
49 |
1 |
Dundee |
8 |
55 |
NA |
Preston |
10 |
57 |
2 |
Hereford |
11 |
51 |
NA |
Newark |
6 |
42 |
NA |
Kings Lynn |
11 |
50 |
NA |
Baltimore Md |
9 |
53 |
NA |
Norwich Ct |
6 |
53 |
1 |
Taunton |
9 |
50 |
NA |
Wilmington De |
12 |
46 |
1 |
Stirling |
9 |
49 |
NA |
Aldershot |
NA |
1 |
NA |
Derby |
10 |
44 |
NA |
Durham |
10 |
45 |
1 |
Stamford |
11 |
46 |
NA |
Wolverhampton |
8 |
45 |
NA |
Chelmsford |
10 |
35 |
1 |
Whitehaven |
6 |
46 |
NA |
Exeter Nh |
6 |
45 |
1 |
Germantown Pa |
6 |
27 |
1 |
Hamburg |
12 |
29 |
NA |
Twickenham |
5 |
31 |
NA |
Halifax |
13 |
34 |
NA |
Newry |
11 |
39 |
2 |
Richmond Va |
14 |
36 |
1 |
Portsmouth |
7 |
40 |
3 |
Carmarthen |
11 |
37 |
NA |
Albany Ny |
17 |
38 |
NA |
Annapolis Md |
14 |
25 |
NA |
Kendal |
6 |
35 |
NA |
Waterford |
9 |
34 |
NA |
Williamsburg Va |
5 |
27 |
NA |
Lewes |
10 |
34 |
NA |
Huddersfield |
9 |
27 |
NA |
Lancaster Pa |
10 |
32 |
NA |
Ludlow |
15 |
33 |
NA |
Berlin |
10 |
18 |
1 |
Brussels |
7 |
12 |
NA |
Geneva |
7 |
17 |
NA |
Windsor |
11 |
19 |
NA |
Wrexham |
10 |
29 |
NA |
Dresden |
2 |
12 |
1 |
Vienna |
8 |
12 |
1 |
Ayr |
9 |
26 |
1 |
Brentford |
7 |
25 |
1 |
Bury St Edmunds |
5 |
28 |
NA |
Dumfries |
5 |
26 |
1 |
Trefeca |
10 |
30 |
1 |
Cirencester |
7 |
20 |
NA |
Kingston |
5 |
27 |
1 |
Alnwick |
8 |
22 |
NA |
Gainsborough |
9 |
23 |
NA |
Trefriw |
5 |
15 |
NA |
Kilmarnock |
10 |
25 |
NA |
Lustleigh |
NA |
2 |
NA |
Stockton |
5 |
24 |
NA |
Peterborough |
5 |
19 |
NA |
Stockport |
6 |
20 |
NA |
Maidstone |
6 |
21 |
NA |
Concord Nh |
6 |
21 |
NA |
Guildford |
6 |
18 |
NA |
Wisbech |
5 |
23 |
NA |
Kidderminster |
5 |
18 |
NA |
Richmond |
1 |
10 |
NA |
Sunderland |
11 |
22 |
NA |
Warwick |
10 |
18 |
1 |
Doncaster |
11 |
21 |
NA |
New York NY |
10 |
19 |
NA |
Penrith |
6 |
21 |
NA |
Aberhonddu |
6 |
19 |
NA |
Trenton Nj |
11 |
19 |
NA |
Watertown Ma |
6 |
20 |
NA |
Macclesfield |
6 |
19 |
NA |
Margate |
5 |
16 |
NA |
Newport |
7 |
17 |
NA |
Tunbridge Wells |
5 |
12 |
NA |
USA |
7 |
19 |
NA |
Windsor Vt |
7 |
18 |
NA |
Bradford |
5 |
18 |
NA |
Göttingen |
6 |
13 |
NA |
Portland Me |
5 |
18 |
NA |
Bedford |
10 |
16 |
NA |
Frankfurt |
2 |
4 |
4 |
Springfield Ma |
7 |
17 |
NA |
Burlington Nj |
6 |
15 |
NA |
Chichester |
6 |
15 |
NA |
Florence |
NA |
13 |
NA |
Litchfield Ct |
5 |
16 |
NA |
Rouen |
NA |
11 |
NA |
Lancaster |
5 |
15 |
NA |
Rotterdam |
6 |
12 |
NA |
Trowbridge |
NA |
15 |
NA |
Blackburn |
6 |
12 |
1 |
Knaresborough |
5 |
13 |
NA |
Northampton Ma |
13 |
14 |
NA |
Quebec |
6 |
13 |
NA |
Venice |
7 |
9 |
NA |
Woodbridge NJ |
5 |
14 |
NA |
Amherst Nh |
6 |
13 |
NA |
Copenhagen |
6 |
11 |
NA |
Kelso |
6 |
11 |
NA |
Neuchatel |
NA |
5 |
NA |
Stafford |
NA |
13 |
NA |
Armagh |
1 |
12 |
NA |
Bruges |
NA |
9 |
NA |
Devizes |
5 |
9 |
NA |
Dover Nh |
6 |
11 |
1 |
Lausanne |
1 |
7 |
NA |
Leominster Ma |
6 |
11 |
NA |
Marlborough |
5 |
10 |
NA |
Newark Nj |
NA |
12 |
NA |
Wakefield |
5 |
12 |
NA |
Altenburg |
3 |
5 |
2 |
Banbury |
5 |
11 |
NA |
Buckingham |
NA |
7 |
NA |
Douai |
6 |
8 |
NA |
Dudley |
NA |
9 |
NA |
Egham |
1 |
8 |
NA |
Falmouth Me |
4 |
11 |
1 |
Greenfield Ma |
2 |
11 |
NA |
Henley-on-Thames |
5 |
10 |
NA |
High Wycombe |
NA |
9 |
NA |
Huntingdon |
NA |
11 |
NA |
Leiden |
NA |
5 |
NA |
Londonderry |
5 |
10 |
NA |
Lyon |
2 |
8 |
NA |
Monaghan |
5 |
11 |
NA |
Montrose |
14 |
11 |
1 |
Pontefract |
NA |
11 |
NA |
Ripon |
1 |
11 |
NA |
Sevenoaks |
NA |
10 |
NA |
St Ives |
5 |
10 |
NA |
Sudbury |
5 |
9 |
NA |
Bennington Vt |
1 |
10 |
NA |
Boston |
1 |
10 |
NA |
Bridgetown |
NA |
10 |
NA |
Chesterfield |
5 |
8 |
NA |
Congleton |
1 |
9 |
NA |
Deptford |
2 |
10 |
NA |
Dorchester |
NA |
10 |
NA |
Douglas |
NA |
7 |
NA |
Evesham |
5 |
10 |
NA |
Gosport |
6 |
10 |
NA |
New Bedford Ma |
NA |
10 |
NA |
North Shields |
5 |
10 |
NA |
Savannah Ga |
NA |
10 |
NA |
Spanish Town |
5 |
7 |
NA |
St Andrews |
1 |
8 |
NA |
Stourbridge |
5 |
8 |
NA |
Strabane |
5 |
8 |
NA |
Washington DC |
5 |
10 |
NA |
Weymouth |
NA |
6 |
NA |
Whitby |
7 |
9 |
NA |
Wigan |
7 |
9 |
NA |
Alexandria Va |
NA |
9 |
NA |
Basseterre Saint Kitts |
NA |
8 |
NA |
Burslem |
7 |
9 |
NA |
Drogheda |
2 |
8 |
NA |
Gravesend |
NA |
9 |
NA |
Haverhill Ma |
NA |
9 |
NA |
Kilkenny |
1 |
9 |
NA |
Leominster NH |
NA |
9 |
NA |
Liège |
2 |
5 |
1 |
Madeley |
NA |
9 |
NA |
Nantwich |
1 |
9 |
NA |
New Brunswick Nj |
1 |
9 |
NA |
Walpole Nh |
3 |
7 |
NA |
Antwerp |
NA |
6 |
NA |
Bolton |
7 |
8 |
1 |
Brunswick |
NA |
1 |
NA |
Carlow |
NA |
8 |
NA |
Ephrata Pa |
5 |
8 |
NA |
Halle |
3 |
6 |
NA |
Hamilton |
5 |
8 |
NA |
Market Harborough |
1 |
8 |
NA |
Middletown Ct |
NA |
8 |
NA |
Monmouth |
NA |
8 |
NA |
Northumberland Pa |
NA |
6 |
NA |
Port-au-Prince |
NA |
7 |
NA |
Poughkeepsie Ny |
1 |
5 |
NA |
Strood |
NA |
8 |
NA |
Tamworth |
NA |
7 |
NA |
Truru |
NA |
8 |
NA |
Valletta |
NA |
7 |
NA |
Windham Ct |
5 |
7 |
NA |
Brookfield Ma |
NA |
7 |
NA |
Chippenham |
NA |
7 |
NA |
Dedham Ma |
5 |
7 |
NA |
Dunbar |
NA |
7 |
NA |
Fishkill Ny |
NA |
6 |
NA |
Guernesey |
NA |
7 |
NA |
Hertford |
NA |
6 |
NA |
Oswestry |
NA |
6 |
NA |
Padua |
NA |
3 |
NA |
Rochdale |
NA |
7 |
NA |
Stroud |
NA |
6 |
NA |
the Hague |
1 |
5 |
1 |
Utrecht |
1 |
7 |
NA |
Augusta Ga |
NA |
4 |
NA |
Brighton |
NA |
5 |
NA |
Caernarfon |
NA |
6 |
NA |
Catskill Ny |
1 |
5 |
NA |
Elizabeth Nj |
7 |
6 |
NA |
Fersfield |
NA |
2 |
NA |
Grantham |
1 |
6 |
NA |
Lexington Ky |
NA |
6 |
NA |
Lisbon |
NA |
6 |
NA |
Loughborough |
1 |
6 |
NA |
Montreal |
NA |
6 |
NA |
Mullingar |
1 |
6 |
1 |
Romsey |
NA |
6 |
NA |
Scarborough |
NA |
6 |
NA |
South Shields |
1 |
6 |
NA |
Suffield Ct |
NA |
6 |
1 |
Walsall |
NA |
4 |
NA |
Wexford |
5 |
6 |
NA |
Woodbridge Nj |
1 |
6 |
1 |
Abartawe |
NA |
5 |
NA |
Abingdon |
NA |
5 |
NA |
Berkhamsted |
NA |
5 |
NA |
Bocking |
NA |
5 |
1 |
Bungay |
NA |
5 |
1 |
Chatham |
1 |
5 |
NA |
Chennai |
NA |
5 |
NA |
Clipstone |
7 |
4 |
NA |
Danbury Ct |
3 |
5 |
NA |
Haarlem |
NA |
3 |
NA |
Helston |
1 |
5 |
NA |
Keene Nh |
1 |
4 |
NA |
Liege |
NA |
1 |
NA |
Lymington |
NA |
4 |
NA |
Machynlleth |
NA |
5 |
1 |
Madrid |
NA |
2 |
NA |
Medford Ma |
NA |
5 |
NA |
New Bern Nc |
5 |
5 |
NA |
Peacham Vt |
NA |
5 |
NA |
Reims |
NA |
2 |
NA |
Rome |
NA |
5 |
NA |
Saint-Omer |
NA |
5 |
1 |
Spalding |
NA |
5 |
NA |
St Omer |
NA |
5 |
NA |
Strasbourg |
1 |
3 |
NA |
Workington |
NA |
5 |
NA |
Aylesbury |
2 |
4 |
NA |
Beverley |
1 |
4 |
NA |
Bishopstone |
NA |
3 |
NA |
Bridport |
NA |
4 |
NA |
Cambridge Ma |
NA |
4 |
NA |
Cheltenham |
2 |
2 |
NA |
Cheshire Ct |
NA |
3 |
NA |
Cheshunt |
NA |
4 |
NA |
Clonmel |
NA |
4 |
NA |
Cranbrook |
NA |
4 |
NA |
Danvers Ma |
NA |
4 |
NA |
Darmstadt |
NA |
1 |
NA |
Ennis |
NA |
3 |
NA |
Galway |
NA |
4 |
NA |
Gouda |
NA |
1 |
NA |
Hawick |
NA |
4 |
NA |
Hillsborough NC |
NA |
4 |
NA |
Hudson Ny |
6 |
4 |
NA |
Llanymddyfri |
1 |
4 |
NA |
Lyons |
NA |
3 |
NA |
Newburgh Ny |
NA |
3 |
NA |
Newmarket |
NA |
4 |
NA |
Poole |
NA |
4 |
NA |
Reading Pa |
1 |
4 |
NA |
Retford |
NA |
4 |
NA |
Salem |
NA |
4 |
NA |
St Peter Port |
NA |
4 |
NA |
St Petersburg |
NA |
4 |
NA |
Uppsala |
2 |
3 |
NA |
Uttoxeter |
NA |
3 |
NA |
Warren Ri |
NA |
4 |
NA |
Washington Pa |
NA |
4 |
NA |
Windsor Ct |
1 |
4 |
NA |
Wotton-under-Edge |
1 |
4 |
NA |
Yverdon |
NA |
4 |
NA |
Alston |
1 |
3 |
NA |
Ashford |
NA |
3 |
NA |
Athlone |
NA |
3 |
NA |
Bampton |
NA |
3 |
NA |
Bern |
1 |
3 |
NA |
Blandford Va |
NA |
3 |
NA |
Bridgewater |
NA |
3 |
NA |
Bridlington |
1 |
3 |
NA |
Carlisle Pa |
4 |
3 |
NA |
Charleston SC |
1 |
3 |
NA |
Chelmsford Ma |
NA |
3 |
NA |
Chesham |
NA |
2 |
NA |
Coburg |
NA |
1 |
NA |
Dereham |
NA |
3 |
NA |
Dun Laoghaire |
NA |
2 |
NA |
Greenock |
1 |
3 |
NA |
Hambourg |
NA |
1 |
NA |
Harrisburg Pa |
NA |
2 |
NA |
Harrogate |
NA |
3 |
NA |
Hwlffordd |
NA |
3 |
NA |
Jena |
NA |
1 |
NA |
Kingston Ny |
NA |
2 |
NA |
Launceston |
NA |
3 |
NA |
Louvain |
NA |
3 |
NA |
Lucca |
NA |
3 |
NA |
Malton |
NA |
3 |
NA |
Newfield Ct |
NA |
3 |
NA |
Parma |
3 |
3 |
NA |
Peterhead |
NA |
3 |
NA |
Ramsgate |
NA |
2 |
NA |
Roseau Dominica |
NA |
3 |
NA |
Rye |
NA |
3 |
NA |
Schenectady Ny |
1 |
3 |
NA |
Stockholm |
NA |
3 |
NA |
Stratford-upon-Avon |
NA |
3 |
NA |
Tiverton |
NA |
3 |
NA |
Toulouse |
NA |
2 |
NA |
Treffynnon |
NA |
3 |
NA |
Västerås |
NA |
2 |
NA |
Adpar |
NA |
2 |
NA |
America |
NA |
2 |
NA |
Andover Ma |
NA |
2 |
NA |
Avignon |
NA |
1 |
NA |
Banff |
NA |
2 |
NA |
Barnard Castle |
NA |
2 |
NA |
Berne |
1 |
1 |
NA |
Bombay |
NA |
2 |
NA |
Bontfaen |
NA |
2 |
NA |
Boston England |
NA |
2 |
NA |
Bouillon |
NA |
1 |
NA |
Brattleboro Vt |
NA |
2 |
NA |
Bremen |
NA |
2 |
NA |
Bridgnorth |
NA |
2 |
NA |
Burton |
NA |
2 |
NA |
Cape Town |
NA |
2 |
NA |
Castine Me |
NA |
2 |
NA |
Chatham Nj |
NA |
2 |
NA |
Chepstow |
NA |
2 |
NA |
Chertsey |
NA |
2 |
NA |
Cincinnati Oh |
NA |
2 |
NA |
Concord Ma |
NA |
2 |
NA |
Cooperstown Ny |
NA |
2 |
NA |
Crewkerne |
NA |
2 |
NA |
Dover De |
NA |
2 |
NA |
Dungannon |
NA |
2 |
NA |
Dunkirk |
NA |
1 |
NA |
Edenton Nc |
NA |
2 |
NA |
Enniskillen |
NA |
2 |
NA |
Erlangen |
NA |
2 |
NA |
Flensburg |
NA |
1 |
NA |
Fredericktown Md |
NA |
2 |
NA |
Fredericton |
NA |
2 |
NA |
Frome |
NA |
2 |
NA |
Georgetown Washington DC |
NA |
2 |
NA |
Great Marlow |
NA |
2 |
NA |
Haddington |
NA |
2 |
NA |
Halifax Nc |
NA |
2 |
NA |
Hannover Nh |
NA |
2 |
NA |
Hemel Hempstead |
NA |
2 |
NA |
Honiton |
NA |
2 |
NA |
Horncastle |
NA |
2 |
NA |
Horsham |
NA |
2 |
NA |
Howden |
NA |
2 |
NA |
Inverness |
2 |
2 |
NA |
Mannheim |
NA |
2 |
NA |
Melton Mowbray |
NA |
2 |
NA |
Middlewich |
NA |
2 |
NA |
Montargis |
NA |
1 |
NA |
Münster |
NA |
2 |
NA |
Nancy |
NA |
2 |
NA |
Newbury |
1 |
2 |
1 |
Niagara |
NA |
2 |
NA |
Norfolk Va |
NA |
2 |
NA |
Northallerton |
NA |
2 |
NA |
Nürnberg |
NA |
1 |
NA |
Petersfield |
NA |
2 |
NA |
Pisa |
NA |
2 |
NA |
Potsdam |
NA |
1 |
NA |
Prescot |
NA |
2 |
NA |
Putney Vt |
NA |
2 |
NA |
Rheims |
NA |
2 |
NA |
Rome Ny |
NA |
2 |
NA |
Shepton Mallet |
NA |
2 |
NA |
South Molton |
NA |
2 |
NA |
St Albans |
NA |
2 |
NA |
St George |
NA |
2 |
NA |
St Helier |
NA |
2 |
NA |
Stonington Ct |
NA |
2 |
NA |
Stowmarket |
NA |
2 |
NA |
Szczecin |
NA |
1 |
NA |
Troy Ny |
NA |
2 |
NA |
Vergennes Vt |
NA |
2 |
NA |
Watford |
NA |
2 |
NA |
Wellingborough |
NA |
2 |
NA |
Winterthur |
NA |
2 |
NA |
York Pa |
NA |
2 |
NA |
Zurich |
NA |
1 |
NA |
Abbeville |
NA |
1 |
NA |
Abermaw |
NA |
1 |
NA |
Aberystwyth |
NA |
1 |
NA |
Alcester |
NA |
1 |
NA |
Ampthill |
NA |
1 |
NA |
Arezzo |
NA |
1 |
NA |
Ashby-de-la-Zouch |
NA |
1 |
NA |
Atherstone |
NA |
1 |
NA |
Bala |
NA |
1 |
NA |
Balfron |
NA |
1 |
NA |
Ballymena |
NA |
1 |
NA |
Barnstaple |
NA |
1 |
NA |
Barton-upon-Humber |
NA |
1 |
NA |
Basingstoke |
NA |
1 |
NA |
Bayreuth |
NA |
1 |
NA |
Bedale |
NA |
1 |
NA |
Beloeil |
NA |
1 |
NA |
Besançon |
NA |
1 |
NA |
Birr |
NA |
1 |
NA |
Birstall |
NA |
1 |
NA |
Bishop Castle |
NA |
1 |
NA |
Bodedern |
NA |
1 |
NA |
Bordeaux |
NA |
1 |
NA |
Boulogne-sur-Mer |
NA |
1 |
NA |
Brearley Hall |
NA |
1 |
1 |
Brigg |
NA |
1 |
NA |
Budapest |
NA |
1 |
NA |
Burlington NJ |
NA |
1 |
NA |
Burnley |
NA |
1 |
NA |
Caen |
NA |
1 |
NA |
Caerdydd |
NA |
1 |
NA |
Caerfyrddin |
NA |
1 |
NA |
Caergybi |
NA |
1 |
NA |
Calais |
NA |
1 |
NA |
Carrickfergus |
NA |
1 |
NA |
Castlebar |
NA |
1 |
NA |
Castleford |
NA |
1 |
NA |
Cavan |
NA |
1 |
NA |
Chambersburg Pa |
NA |
1 |
NA |
Ciutadella |
NA |
1 |
NA |
Coimbra |
NA |
1 |
NA |
Coleraine |
NA |
1 |
NA |
Coxheath |
NA |
1 |
NA |
Crieff |
NA |
1 |
NA |
Cupar |
NA |
1 |
NA |
Dampierre-sur-Boutonne |
1 |
1 |
NA |
Dartford |
NA |
1 |
NA |
Dartmouth |
NA |
1 |
NA |
Dessau |
NA |
1 |
NA |
Dordrecht |
NA |
1 |
NA |
Dover |
NA |
1 |
NA |
Dunfermline |
NA |
1 |
NA |
Dunkalk |
NA |
1 |
NA |
Dunkeld |
NA |
1 |
NA |
Duns |
NA |
1 |
NA |
Düsseldorf |
NA |
1 |
NA |
East Grinstead |
NA |
1 |
NA |
Easton Md |
NA |
1 |
NA |
Elie |
NA |
1 |
NA |
Ellesmere |
NA |
1 |
NA |
Essex |
NA |
1 |
NA |
Faringdon |
NA |
1 |
NA |
Featherstone |
NA |
1 |
NA |
Fermoy |
NA |
1 |
NA |
Fleet |
NA |
1 |
NA |
Geneva Ny |
NA |
1 |
NA |
Georgetown Washington Sc |
NA |
1 |
NA |
Ghent |
NA |
1 |
NA |
Gillingham |
NA |
1 |
NA |
Gilmanton Nh |
NA |
1 |
NA |
Goshen Ny |
NA |
1 |
NA |
Gothenburg |
NA |
1 |
NA |
Halesworth |
NA |
1 |
NA |
Hallowell Me |
NA |
1 |
NA |
Hanau |
NA |
1 |
NA |
Hannover |
NA |
1 |
NA |
Harbor Ny |
NA |
1 |
NA |
Haverhill Nh |
NA |
1 |
NA |
Hexham |
NA |
1 |
NA |
Hildburghausen |
NA |
1 |
NA |
Hinckley |
NA |
1 |
NA |
Hitchin |
NA |
1 |
NA |
Holt |
NA |
1 |
NA |
Houghton Park |
NA |
1 |
NA |
Hungerford |
NA |
1 |
NA |
Karlskrona |
NA |
1 |
NA |
Karlsruhe |
NA |
1 |
NA |
Keene |
NA |
1 |
NA |
Kenilworth |
NA |
1 |
NA |
Keswick |
NA |
1 |
NA |
Kinsale |
NA |
1 |
NA |
Kirkbride |
NA |
1 |
NA |
Knoxville Tn |
NA |
1 |
NA |
Knutsford |
NA |
1 |
NA |
Lanark |
NA |
1 |
NA |
Leek |
NA |
1 |
NA |
Lisburn |
NA |
1 |
NA |
Long Buckby |
NA |
1 |
NA |
Lugano |
NA |
1 |
NA |
Lund |
NA |
1 |
NA |
Mainz |
NA |
1 |
NA |
Malda |
NA |
1 |
NA |
Mantua |
NA |
1 |
NA |
Marseilles |
NA |
1 |
NA |
Middelburg |
NA |
1 |
NA |
Milan |
1 |
1 |
NA |
Milborne Port |
NA |
1 |
NA |
Môle-Saint-Nicolas |
NA |
1 |
NA |
Monmouth Nj |
NA |
1 |
NA |
Morristown Nj |
NA |
1 |
NA |
Moscow |
NA |
1 |
NA |
Naas |
NA |
1 |
NA |
Nantes |
NA |
1 |
NA |
Naples |
1 |
1 |
NA |
Nashville Tn |
NA |
1 |
NA |
Nassau |
NA |
1 |
NA |
Newbury Vt |
NA |
1 |
1 |
Nice |
NA |
1 |
NA |
Nordhausen |
NA |
1 |
NA |
Norfolk |
NA |
1 |
NA |
Norristown Pa |
NA |
1 |
NA |
Norrköping |
NA |
1 |
NA |
Northwich |
NA |
1 |
NA |
Nuremberg |
NA |
1 |
NA |
Ormskirk |
NA |
1 |
NA |
Osnabrück |
NA |
1 |
NA |
Pattingham |
NA |
1 |
1 |
Pembroke |
NA |
1 |
NA |
Perugia |
NA |
1 |
NA |
Plymouth Ma |
NA |
1 |
NA |
Pondicherry |
NA |
1 |
NA |
Poughkeepsie NY |
NA |
1 |
NA |
Poulton-le-Fylde |
NA |
1 |
NA |
Princeton Nj |
NA |
1 |
NA |
Providence RI |
NA |
1 |
NA |
Raleigh Nc |
NA |
1 |
NA |
Ramsey |
NA |
1 |
NA |
Regensburg |
NA |
1 |
NA |
Rhaglan |
NA |
1 |
NA |
Saffron Walden |
NA |
1 |
NA |
Saint Helier |
NA |
1 |
NA |
Saint-Germain-en-Laye |
NA |
1 |
NA |
Salisbury Nc |
NA |
1 |
NA |
Sandhurst |
NA |
1 |
NA |
Sandwich |
NA |
1 |
NA |
Sanquhar |
NA |
1 |
NA |
Schleswig |
NA |
1 |
NA |
Sedbergh |
NA |
1 |
NA |
Selby |
NA |
1 |
NA |
Shepherdstown Wv |
NA |
1 |
NA |
Siena |
NA |
1 |
NA |
Sligo |
1 |
1 |
NA |
Southampton Pa |
NA |
1 |
NA |
St Austell |
NA |
1 |
NA |
St Eustatius |
NA |
1 |
NA |
St Neots |
NA |
1 |
NA |
Stoke-on-Trent |
NA |
1 |
NA |
Stokesley |
NA |
1 |
NA |
Stuttgart |
NA |
1 |
NA |
Sulechow |
NA |
1 |
NA |
Tetbury |
NA |
1 |
NA |
Thirsk |
NA |
1 |
NA |
Torrington |
NA |
1 |
NA |
Totnes |
NA |
1 |
NA |
Trenton |
NA |
1 |
NA |
Trevoux |
1 |
1 |
NA |
Tuscany |
NA |
1 |
NA |
Ulverston |
NA |
1 |
NA |
Valencia |
NA |
1 |
NA |
Verona |
1 |
1 |
NA |
Walpole NH |
NA |
1 |
NA |
Wargrave |
NA |
1 |
NA |
Warminster |
NA |
1 |
NA |
Waterford Ny |
NA |
1 |
NA |
Wells |
NA |
1 |
NA |
Whitburn |
1 |
1 |
NA |
Whitchurch |
1 |
1 |
NA |
Wiscasset Me |
NA |
1 |
NA |
Wittenberg |
NA |
1 |
NA |
Yarm |
NA |
1 |
NA |
Yeovil |
NA |
1 |
NA |
Youghal |
NA |
1 |
NA |
NA |
187 |
1,691 |
58 |
documents |
London |
16,294 |
111,914 |
4,562 |
Dublin |
2,910 |
14,286 |
879 |
Edinburgh |
1,746 |
12,887 |
489 |
Boston Ma |
396 |
3,387 |
153 |
Oxford |
279 |
2,238 |
114 |
Glasgow |
747 |
2,080 |
127 |
Philadelphia Pa |
283 |
1,966 |
78 |
Paris |
224 |
1,730 |
45 |
Cambridge |
187 |
1,507 |
73 |
Newcastle |
93 |
1,144 |
30 |
Bristol |
153 |
1,008 |
39 |
York |
106 |
751 |
30 |
Bath |
48 |
748 |
13 |
New York Ny |
104 |
696 |
28 |
Birmingham |
86 |
641 |
12 |
Salisbury |
41 |
461 |
5 |
Norwich |
27 |
453 |
4 |
Manchester |
68 |
448 |
16 |
Exeter |
24 |
387 |
6 |
Cork |
57 |
383 |
10 |
Belfast |
89 |
335 |
13 |
Leeds |
30 |
333 |
13 |
Shrewsbury |
40 |
307 |
9 |
Aberdeen |
61 |
285 |
19 |
Amsterdam |
71 |
279 |
7 |
Liverpool |
22 |
252 |
5 |
New London Ct |
23 |
222 |
8 |
Northampton |
27 |
213 |
4 |
Canterbury |
21 |
212 |
NA |
Hartford Ct |
51 |
211 |
10 |
Chester |
25 |
205 |
1 |
Nottingham |
23 |
192 |
2 |
Worcester |
19 |
189 |
2 |
Perth |
88 |
175 |
6 |
Gloucester |
32 |
161 |
3 |
Ipswich |
16 |
156 |
1 |
Berwick-upon-Tweed |
59 |
154 |
11 |
Warrington |
27 |
152 |
2 |
New Haven Ct |
24 |
151 |
6 |
Coventry |
30 |
150 |
6 |
Sherborne |
10 |
138 |
4 |
Reading |
14 |
137 |
2 |
Rochester |
29 |
132 |
4 |
Providence Ri |
31 |
129 |
5 |
Eton |
27 |
128 |
1 |
The Hague |
67 |
122 |
6 |
Downpatrick |
13 |
120 |
3 |
Hull |
17 |
116 |
1 |
Newburyport Ma |
24 |
108 |
3 |
Worcester Ma |
17 |
108 |
2 |
Calcutta |
14 |
106 |
1 |
Sheffield |
14 |
101 |
1 |
Paisley |
20 |
97 |
3 |
Basel |
76 |
96 |
1 |
Newport Ri |
14 |
91 |
2 |
Falkirk |
35 |
88 |
2 |
Charleston Sc |
13 |
83 |
NA |
Leipzig |
26 |
79 |
NA |
Portsmouth Nh |
13 |
78 |
NA |
Bury |
10 |
77 |
NA |
Livorno |
15 |
76 |
4 |
Leicester |
11 |
73 |
NA |
Salem Ma |
18 |
72 |
1 |
Limerick |
14 |
71 |
1 |
Southampton |
19 |
70 |
1 |
Tewkesbury |
15 |
70 |
3 |
Darlington |
13 |
69 |
2 |
Colchester |
12 |
68 |
1 |
Carlisle |
5 |
65 |
NA |
Lincoln |
6 |
61 |
3 |
Plymouth |
11 |
61 |
NA |
Winchester |
13 |
61 |
1 |
Dundee |
11 |
60 |
NA |
Preston |
10 |
58 |
2 |
Hereford |
12 |
57 |
NA |
Newark |
7 |
57 |
NA |
Kings Lynn |
13 |
55 |
NA |
Baltimore Md |
10 |
54 |
NA |
Norwich Ct |
7 |
53 |
1 |
Taunton |
10 |
53 |
NA |
Wilmington De |
12 |
53 |
1 |
Stirling |
9 |
50 |
NA |
Aldershot |
NA |
49 |
NA |
Derby |
11 |
49 |
NA |
Durham |
10 |
49 |
1 |
Stamford |
11 |
49 |
NA |
Wolverhampton |
10 |
49 |
NA |
Chelmsford |
11 |
48 |
1 |
Whitehaven |
6 |
48 |
NA |
Exeter Nh |
6 |
46 |
1 |
Germantown Pa |
8 |
44 |
1 |
Hamburg |
17 |
44 |
NA |
Twickenham |
6 |
43 |
NA |
Halifax |
13 |
42 |
NA |
Newry |
14 |
41 |
2 |
Richmond Va |
15 |
41 |
1 |
Portsmouth |
7 |
40 |
3 |
Carmarthen |
11 |
39 |
NA |
Albany Ny |
19 |
38 |
NA |
Annapolis Md |
15 |
37 |
NA |
Kendal |
6 |
37 |
NA |
Waterford |
10 |
37 |
NA |
Williamsburg Va |
6 |
37 |
NA |
Lewes |
10 |
36 |
NA |
Huddersfield |
9 |
35 |
NA |
Lancaster Pa |
11 |
35 |
NA |
Ludlow |
16 |
35 |
NA |
Berlin |
15 |
33 |
1 |
Brussels |
9 |
33 |
NA |
Geneva |
36 |
33 |
NA |
Windsor |
12 |
32 |
NA |
Wrexham |
10 |
32 |
NA |
Dresden |
2 |
31 |
1 |
Vienna |
13 |
31 |
2 |
Ayr |
9 |
30 |
1 |
Brentford |
10 |
30 |
1 |
Bury St Edmunds |
5 |
30 |
NA |
Dumfries |
5 |
30 |
1 |
Trefeca |
11 |
30 |
2 |
Cirencester |
7 |
29 |
NA |
Kingston |
9 |
29 |
4 |
Alnwick |
8 |
28 |
NA |
Gainsborough |
10 |
28 |
NA |
Trefriw |
5 |
28 |
NA |
Kilmarnock |
11 |
27 |
NA |
Lustleigh |
NA |
27 |
NA |
Stockton |
5 |
26 |
NA |
Peterborough |
6 |
25 |
NA |
Stockport |
6 |
25 |
NA |
Maidstone |
7 |
24 |
NA |
Concord Nh |
6 |
23 |
NA |
Guildford |
6 |
23 |
NA |
Wisbech |
6 |
23 |
NA |
Kidderminster |
6 |
22 |
NA |
Richmond |
1 |
22 |
NA |
Sunderland |
13 |
22 |
NA |
Warwick |
10 |
22 |
1 |
Doncaster |
12 |
21 |
NA |
New York NY |
11 |
21 |
NA |
Penrith |
6 |
21 |
NA |
Aberhonddu |
7 |
20 |
NA |
Trenton Nj |
11 |
20 |
NA |
Watertown Ma |
6 |
20 |
NA |
Macclesfield |
6 |
19 |
NA |
Margate |
6 |
19 |
NA |
Newport |
12 |
19 |
NA |
Tunbridge Wells |
7 |
19 |
NA |
USA |
7 |
19 |
NA |
Windsor Vt |
7 |
19 |
NA |
Bradford |
5 |
18 |
NA |
Göttingen |
6 |
18 |
NA |
Portland Me |
5 |
18 |
NA |
Bedford |
10 |
17 |
NA |
Frankfurt |
3 |
17 |
4 |
Springfield Ma |
8 |
17 |
NA |
Burlington Nj |
6 |
16 |
NA |
Chichester |
9 |
16 |
NA |
Florence |
NA |
16 |
NA |
Litchfield Ct |
5 |
16 |
NA |
Rouen |
NA |
16 |
NA |
Lancaster |
5 |
15 |
NA |
Rotterdam |
6 |
15 |
NA |
Trowbridge |
NA |
15 |
NA |
Blackburn |
6 |
14 |
1 |
Knaresborough |
6 |
14 |
NA |
Northampton Ma |
14 |
14 |
NA |
Quebec |
9 |
14 |
NA |
Venice |
16 |
14 |
NA |
Woodbridge NJ |
6 |
14 |
NA |
Amherst Nh |
6 |
13 |
NA |
Copenhagen |
8 |
13 |
NA |
Kelso |
6 |
13 |
NA |
Neuchatel |
NA |
13 |
NA |
Stafford |
NA |
13 |
NA |
Armagh |
1 |
12 |
NA |
Bruges |
NA |
12 |
NA |
Devizes |
5 |
12 |
NA |
Dover Nh |
6 |
12 |
1 |
Lausanne |
1 |
12 |
NA |
Leominster Ma |
6 |
12 |
NA |
Marlborough |
5 |
12 |
NA |
Newark Nj |
NA |
12 |
NA |
Wakefield |
7 |
12 |
NA |
Altenburg |
3 |
11 |
8 |
Banbury |
5 |
11 |
NA |
Buckingham |
NA |
11 |
NA |
Douai |
6 |
11 |
NA |
Dudley |
NA |
11 |
NA |
Egham |
1 |
11 |
NA |
Falmouth Me |
4 |
11 |
1 |
Greenfield Ma |
2 |
11 |
NA |
Henley-on-Thames |
7 |
11 |
NA |
High Wycombe |
NA |
11 |
NA |
Huntingdon |
NA |
11 |
NA |
Leiden |
NA |
11 |
NA |
Londonderry |
5 |
11 |
NA |
Lyon |
6 |
11 |
NA |
Monaghan |
5 |
11 |
NA |
Montrose |
29 |
11 |
3 |
Pontefract |
NA |
11 |
NA |
Ripon |
1 |
11 |
NA |
Sevenoaks |
NA |
11 |
NA |
St Ives |
5 |
11 |
NA |
Sudbury |
5 |
11 |
NA |
Bennington Vt |
1 |
10 |
NA |
Boston |
2 |
10 |
NA |
Bridgetown |
NA |
10 |
NA |
Chesterfield |
5 |
10 |
NA |
Congleton |
1 |
10 |
NA |
Deptford |
2 |
10 |
NA |
Dorchester |
NA |
10 |
NA |
Douglas |
NA |
10 |
NA |
Evesham |
7 |
10 |
NA |
Gosport |
6 |
10 |
NA |
New Bedford Ma |
NA |
10 |
NA |
North Shields |
7 |
10 |
NA |
Savannah Ga |
NA |
10 |
NA |
Spanish Town |
5 |
10 |
NA |
St Andrews |
1 |
10 |
NA |
Stourbridge |
5 |
10 |
NA |
Strabane |
5 |
10 |
NA |
Washington DC |
5 |
10 |
NA |
Weymouth |
NA |
10 |
NA |
Whitby |
7 |
10 |
NA |
Wigan |
7 |
10 |
NA |
Alexandria Va |
NA |
9 |
NA |
Basseterre Saint Kitts |
NA |
9 |
NA |
Burslem |
8 |
9 |
NA |
Drogheda |
2 |
9 |
NA |
Gravesend |
NA |
9 |
NA |
Haverhill Ma |
NA |
9 |
NA |
Kilkenny |
2 |
9 |
NA |
Leominster NH |
NA |
9 |
NA |
Liège |
2 |
9 |
1 |
Madeley |
NA |
9 |
NA |
Nantwich |
1 |
9 |
NA |
New Brunswick Nj |
1 |
9 |
NA |
Walpole Nh |
3 |
9 |
NA |
Antwerp |
NA |
8 |
NA |
Bolton |
8 |
8 |
1 |
Brunswick |
NA |
8 |
NA |
Carlow |
NA |
8 |
NA |
Ephrata Pa |
5 |
8 |
NA |
Halle |
3 |
8 |
NA |
Hamilton |
5 |
8 |
NA |
Market Harborough |
1 |
8 |
NA |
Middletown Ct |
NA |
8 |
NA |
Monmouth |
NA |
8 |
NA |
Northumberland Pa |
NA |
8 |
NA |
Port-au-Prince |
NA |
8 |
NA |
Poughkeepsie Ny |
2 |
8 |
NA |
Strood |
NA |
8 |
NA |
Tamworth |
NA |
8 |
NA |
Truru |
NA |
8 |
NA |
Valletta |
NA |
8 |
NA |
Windham Ct |
5 |
8 |
NA |
Brookfield Ma |
NA |
7 |
NA |
Chippenham |
NA |
7 |
NA |
Dedham Ma |
5 |
7 |
NA |
Dunbar |
NA |
7 |
NA |
Fishkill Ny |
NA |
7 |
NA |
Guernesey |
NA |
7 |
NA |
Hertford |
NA |
7 |
NA |
Oswestry |
NA |
7 |
NA |
Padua |
NA |
7 |
NA |
Rochdale |
NA |
7 |
NA |
Stroud |
NA |
7 |
NA |
the Hague |
1 |
7 |
1 |
Utrecht |
1 |
7 |
NA |
Augusta Ga |
NA |
6 |
NA |
Brighton |
NA |
6 |
NA |
Caernarfon |
NA |
6 |
NA |
Catskill Ny |
1 |
6 |
NA |
Elizabeth Nj |
7 |
6 |
NA |
Fersfield |
NA |
6 |
NA |
Grantham |
1 |
6 |
NA |
Lexington Ky |
NA |
6 |
NA |
Lisbon |
NA |
6 |
NA |
Loughborough |
1 |
6 |
NA |
Montreal |
NA |
6 |
NA |
Mullingar |
1 |
6 |
1 |
Romsey |
NA |
6 |
NA |
Scarborough |
NA |
6 |
NA |
South Shields |
1 |
6 |
NA |
Suffield Ct |
NA |
6 |
1 |
Walsall |
NA |
6 |
NA |
Wexford |
6 |
6 |
NA |
Woodbridge Nj |
1 |
6 |
1 |
Abartawe |
NA |
5 |
NA |
Abingdon |
NA |
5 |
NA |
Berkhamsted |
NA |
5 |
NA |
Bocking |
NA |
5 |
1 |
Bungay |
NA |
5 |
2 |
Chatham |
1 |
5 |
NA |
Chennai |
NA |
5 |
NA |
Clipstone |
9 |
5 |
NA |
Danbury Ct |
3 |
5 |
NA |
Haarlem |
NA |
5 |
NA |
Helston |
1 |
5 |
NA |
Keene Nh |
1 |
5 |
NA |
Liege |
NA |
5 |
NA |
Lymington |
NA |
5 |
NA |
Machynlleth |
NA |
5 |
1 |
Madrid |
NA |
5 |
NA |
Medford Ma |
NA |
5 |
NA |
New Bern Nc |
6 |
5 |
NA |
Peacham Vt |
NA |
5 |
NA |
Reims |
NA |
5 |
NA |
Rome |
NA |
5 |
NA |
Saint-Omer |
NA |
5 |
2 |
Spalding |
NA |
5 |
NA |
St Omer |
NA |
5 |
NA |
Strasbourg |
2 |
5 |
NA |
Workington |
NA |
5 |
NA |
Aylesbury |
2 |
4 |
NA |
Beverley |
1 |
4 |
NA |
Bishopstone |
NA |
4 |
NA |
Bridport |
NA |
4 |
NA |
Cambridge Ma |
NA |
4 |
NA |
Cheltenham |
3 |
4 |
NA |
Cheshire Ct |
NA |
4 |
NA |
Cheshunt |
NA |
4 |
NA |
Clonmel |
NA |
4 |
NA |
Cranbrook |
NA |
4 |
NA |
Danvers Ma |
NA |
4 |
NA |
Darmstadt |
NA |
4 |
NA |
Ennis |
NA |
4 |
NA |
Galway |
NA |
4 |
NA |
Gouda |
NA |
4 |
NA |
Hawick |
NA |
4 |
NA |
Hillsborough NC |
NA |
4 |
NA |
Hudson Ny |
6 |
4 |
NA |
Llanymddyfri |
2 |
4 |
NA |
Lyons |
NA |
4 |
NA |
Newburgh Ny |
NA |
4 |
NA |
Newmarket |
NA |
4 |
NA |
Poole |
NA |
4 |
NA |
Reading Pa |
1 |
4 |
NA |
Retford |
NA |
4 |
NA |
Salem |
NA |
4 |
NA |
St Peter Port |
NA |
4 |
NA |
St Petersburg |
NA |
4 |
NA |
Uppsala |
2 |
4 |
NA |
Uttoxeter |
NA |
4 |
NA |
Warren Ri |
NA |
4 |
NA |
Washington Pa |
NA |
4 |
NA |
Windsor Ct |
1 |
4 |
NA |
Wotton-under-Edge |
1 |
4 |
NA |
Yverdon |
NA |
4 |
NA |
Alston |
1 |
3 |
NA |
Ashford |
NA |
3 |
NA |
Athlone |
NA |
3 |
NA |
Bampton |
NA |
3 |
NA |
Bern |
1 |
3 |
NA |
Blandford Va |
NA |
3 |
NA |
Bridgewater |
NA |
3 |
NA |
Bridlington |
1 |
3 |
NA |
Carlisle Pa |
4 |
3 |
NA |
Charleston SC |
1 |
3 |
NA |
Chelmsford Ma |
NA |
3 |
NA |
Chesham |
NA |
3 |
NA |
Coburg |
NA |
3 |
NA |
Dereham |
NA |
3 |
NA |
Dun Laoghaire |
NA |
3 |
NA |
Greenock |
1 |
3 |
NA |
Hambourg |
NA |
3 |
NA |
Harrisburg Pa |
NA |
3 |
NA |
Harrogate |
NA |
3 |
NA |
Hwlffordd |
NA |
3 |
NA |
Jena |
NA |
3 |
NA |
Kingston Ny |
NA |
3 |
NA |
Launceston |
NA |
3 |
NA |
Louvain |
NA |
3 |
NA |
Lucca |
NA |
3 |
NA |
Malton |
NA |
3 |
NA |
Newfield Ct |
NA |
3 |
NA |
Parma |
3 |
3 |
NA |
Peterhead |
NA |
3 |
NA |
Ramsgate |
NA |
3 |
NA |
Roseau Dominica |
NA |
3 |
NA |
Rye |
NA |
3 |
NA |
Schenectady Ny |
1 |
3 |
NA |
Stockholm |
NA |
3 |
NA |
Stratford-upon-Avon |
NA |
3 |
NA |
Tiverton |
NA |
3 |
NA |
Toulouse |
NA |
3 |
NA |
Treffynnon |
NA |
3 |
NA |
Västerås |
NA |
3 |
NA |
Adpar |
NA |
2 |
NA |
America |
NA |
2 |
NA |
Andover Ma |
NA |
2 |
NA |
Avignon |
NA |
2 |
NA |
Banff |
NA |
2 |
NA |
Barnard Castle |
NA |
2 |
NA |
Berne |
2 |
2 |
NA |
Bombay |
NA |
2 |
NA |
Bontfaen |
NA |
2 |
NA |
Boston England |
NA |
2 |
NA |
Bouillon |
NA |
2 |
NA |
Brattleboro Vt |
NA |
2 |
NA |
Bremen |
NA |
2 |
NA |
Bridgnorth |
NA |
2 |
NA |
Burton |
NA |
2 |
NA |
Cape Town |
NA |
2 |
NA |
Castine Me |
NA |
2 |
NA |
Chatham Nj |
NA |
2 |
NA |
Chepstow |
NA |
2 |
NA |
Chertsey |
NA |
2 |
NA |
Cincinnati Oh |
NA |
2 |
NA |
Concord Ma |
NA |
2 |
NA |
Cooperstown Ny |
NA |
2 |
NA |
Crewkerne |
NA |
2 |
NA |
Dover De |
NA |
2 |
NA |
Dungannon |
NA |
2 |
NA |
Dunkirk |
NA |
2 |
NA |
Edenton Nc |
NA |
2 |
NA |
Enniskillen |
NA |
2 |
NA |
Erlangen |
NA |
2 |
NA |
Flensburg |
NA |
2 |
NA |
Fredericktown Md |
NA |
2 |
NA |
Fredericton |
NA |
2 |
NA |
Frome |
NA |
2 |
NA |
Georgetown Washington DC |
NA |
2 |
NA |
Great Marlow |
NA |
2 |
NA |
Haddington |
NA |
2 |
NA |
Halifax Nc |
NA |
2 |
NA |
Hannover Nh |
NA |
2 |
NA |
Hemel Hempstead |
NA |
2 |
NA |
Honiton |
NA |
2 |
NA |
Horncastle |
NA |
2 |
NA |
Horsham |
NA |
2 |
NA |
Howden |
NA |
2 |
NA |
Inverness |
2 |
2 |
NA |
Mannheim |
NA |
2 |
NA |
Melton Mowbray |
NA |
2 |
NA |
Middlewich |
NA |
2 |
NA |
Montargis |
NA |
2 |
NA |
Münster |
NA |
2 |
NA |
Nancy |
NA |
2 |
NA |
Newbury |
2 |
2 |
1 |
Niagara |
NA |
2 |
NA |
Norfolk Va |
NA |
2 |
NA |
Northallerton |
NA |
2 |
NA |
Nürnberg |
NA |
2 |
NA |
Petersfield |
NA |
2 |
NA |
Pisa |
NA |
2 |
NA |
Potsdam |
NA |
2 |
NA |
Prescot |
NA |
2 |
NA |
Putney Vt |
NA |
2 |
NA |
Rheims |
NA |
2 |
NA |
Rome Ny |
NA |
2 |
NA |
Shepton Mallet |
NA |
2 |
NA |
South Molton |
NA |
2 |
NA |
St Albans |
NA |
2 |
NA |
St George |
NA |
2 |
NA |
St Helier |
NA |
2 |
NA |
Stonington Ct |
NA |
2 |
NA |
Stowmarket |
NA |
2 |
NA |
Szczecin |
NA |
2 |
NA |
Troy Ny |
NA |
2 |
NA |
Vergennes Vt |
NA |
2 |
NA |
Watford |
NA |
2 |
NA |
Wellingborough |
NA |
2 |
NA |
Winterthur |
NA |
2 |
NA |
York Pa |
NA |
2 |
NA |
Zurich |
NA |
2 |
NA |
Abbeville |
NA |
1 |
NA |
Abermaw |
NA |
1 |
NA |
Aberystwyth |
NA |
1 |
NA |
Alcester |
NA |
1 |
NA |
Ampthill |
NA |
1 |
NA |
Arezzo |
NA |
1 |
NA |
Ashby-de-la-Zouch |
NA |
1 |
NA |
Atherstone |
NA |
1 |
NA |
Bala |
NA |
1 |
NA |
Balfron |
NA |
1 |
NA |
Ballymena |
NA |
1 |
NA |
Barnstaple |
NA |
1 |
NA |
Barton-upon-Humber |
NA |
1 |
NA |
Basingstoke |
NA |
1 |
NA |
Bayreuth |
NA |
1 |
NA |
Bedale |
NA |
1 |
NA |
Beloeil |
NA |
1 |
NA |
Besançon |
NA |
1 |
NA |
Birr |
NA |
1 |
NA |
Birstall |
NA |
1 |
NA |
Bishop Castle |
NA |
1 |
NA |
Bodedern |
NA |
1 |
NA |
Bordeaux |
NA |
1 |
NA |
Boulogne-sur-Mer |
NA |
1 |
NA |
Brearley Hall |
NA |
1 |
1 |
Brigg |
NA |
1 |
NA |
Budapest |
NA |
1 |
NA |
Burlington NJ |
NA |
1 |
NA |
Burnley |
NA |
1 |
NA |
Caen |
NA |
1 |
NA |
Caerdydd |
NA |
1 |
NA |
Caerfyrddin |
NA |
1 |
NA |
Caergybi |
NA |
1 |
NA |
Calais |
NA |
1 |
NA |
Carrickfergus |
NA |
1 |
NA |
Castlebar |
NA |
1 |
NA |
Castleford |
NA |
1 |
NA |
Cavan |
NA |
1 |
NA |
Chambersburg Pa |
NA |
1 |
NA |
Ciutadella |
NA |
1 |
NA |
Coimbra |
NA |
1 |
NA |
Coleraine |
NA |
1 |
NA |
Coxheath |
NA |
1 |
NA |
Crieff |
NA |
1 |
NA |
Cupar |
NA |
1 |
NA |
Dampierre-sur-Boutonne |
2 |
1 |
NA |
Dartford |
NA |
1 |
NA |
Dartmouth |
NA |
1 |
NA |
Dessau |
NA |
1 |
NA |
Dordrecht |
NA |
1 |
NA |
Dover |
NA |
1 |
NA |
Dunfermline |
NA |
1 |
NA |
Dunkalk |
NA |
1 |
NA |
Dunkeld |
NA |
1 |
NA |
Duns |
NA |
1 |
NA |
Düsseldorf |
NA |
1 |
NA |
East Grinstead |
NA |
1 |
NA |
Easton Md |
NA |
1 |
NA |
Elie |
NA |
1 |
NA |
Ellesmere |
NA |
1 |
NA |
Essex |
NA |
1 |
NA |
Faringdon |
NA |
1 |
NA |
Featherstone |
NA |
1 |
NA |
Fermoy |
NA |
1 |
NA |
Fleet |
NA |
1 |
NA |
Geneva Ny |
NA |
1 |
NA |
Georgetown Washington Sc |
NA |
1 |
NA |
Ghent |
NA |
1 |
NA |
Gillingham |
NA |
1 |
NA |
Gilmanton Nh |
NA |
1 |
NA |
Goshen Ny |
NA |
1 |
NA |
Gothenburg |
NA |
1 |
NA |
Halesworth |
NA |
1 |
NA |
Hallowell Me |
NA |
1 |
NA |
Hanau |
NA |
1 |
NA |
Hannover |
NA |
1 |
NA |
Harbor Ny |
NA |
1 |
NA |
Haverhill Nh |
NA |
1 |
NA |
Hexham |
NA |
1 |
NA |
Hildburghausen |
NA |
1 |
NA |
Hinckley |
NA |
1 |
NA |
Hitchin |
NA |
1 |
NA |
Holt |
NA |
1 |
NA |
Houghton Park |
NA |
1 |
NA |
Hungerford |
NA |
1 |
NA |
Karlskrona |
NA |
1 |
NA |
Karlsruhe |
NA |
1 |
NA |
Keene |
NA |
1 |
NA |
Kenilworth |
NA |
1 |
NA |
Keswick |
NA |
1 |
NA |
Kinsale |
NA |
1 |
NA |
Kirkbride |
NA |
1 |
NA |
Knoxville Tn |
NA |
1 |
NA |
Knutsford |
NA |
1 |
NA |
Lanark |
NA |
1 |
NA |
Leek |
NA |
1 |
NA |
Lisburn |
NA |
1 |
NA |
Long Buckby |
NA |
1 |
NA |
Lugano |
NA |
1 |
NA |
Lund |
NA |
1 |
NA |
Mainz |
NA |
1 |
NA |
Malda |
NA |
1 |
NA |
Mantua |
NA |
1 |
NA |
Marseilles |
NA |
1 |
NA |
Middelburg |
NA |
1 |
NA |
Milan |
2 |
1 |
NA |
Milborne Port |
NA |
1 |
NA |
Môle-Saint-Nicolas |
NA |
1 |
NA |
Monmouth Nj |
NA |
1 |
NA |
Morristown Nj |
NA |
1 |
NA |
Moscow |
NA |
1 |
NA |
Naas |
NA |
1 |
NA |
Nantes |
NA |
1 |
NA |
Naples |
1 |
1 |
NA |
Nashville Tn |
NA |
1 |
NA |
Nassau |
NA |
1 |
NA |
Newbury Vt |
NA |
1 |
1 |
Nice |
NA |
1 |
NA |
Nordhausen |
NA |
1 |
NA |
Norfolk |
NA |
1 |
NA |
Norristown Pa |
NA |
1 |
NA |
Norrköping |
NA |
1 |
NA |
Northwich |
NA |
1 |
NA |
Nuremberg |
NA |
1 |
NA |
Ormskirk |
NA |
1 |
NA |
Osnabrück |
NA |
1 |
NA |
Pattingham |
NA |
1 |
1 |
Pembroke |
NA |
1 |
NA |
Perugia |
NA |
1 |
NA |
Plymouth Ma |
NA |
1 |
NA |
Pondicherry |
NA |
1 |
NA |
Poughkeepsie NY |
NA |
1 |
NA |
Poulton-le-Fylde |
NA |
1 |
NA |
Princeton Nj |
NA |
1 |
NA |
Providence RI |
NA |
1 |
NA |
Raleigh Nc |
NA |
1 |
NA |
Ramsey |
NA |
1 |
NA |
Regensburg |
NA |
1 |
NA |
Rhaglan |
NA |
1 |
NA |
Saffron Walden |
NA |
1 |
NA |
Saint Helier |
NA |
1 |
NA |
Saint-Germain-en-Laye |
NA |
1 |
NA |
Salisbury Nc |
NA |
1 |
NA |
Sandhurst |
NA |
1 |
NA |
Sandwich |
NA |
1 |
NA |
Sanquhar |
NA |
1 |
NA |
Schleswig |
NA |
1 |
NA |
Sedbergh |
NA |
1 |
NA |
Selby |
NA |
1 |
NA |
Shepherdstown Wv |
NA |
1 |
NA |
Siena |
NA |
1 |
NA |
Sligo |
1 |
1 |
NA |
Southampton Pa |
NA |
1 |
NA |
St Austell |
NA |
1 |
NA |
St Eustatius |
NA |
1 |
NA |
St Neots |
NA |
1 |
NA |
Stoke-on-Trent |
NA |
1 |
NA |
Stokesley |
NA |
1 |
NA |
Stuttgart |
NA |
1 |
NA |
Sulechow |
NA |
1 |
NA |
Tetbury |
NA |
1 |
NA |
Thirsk |
NA |
1 |
NA |
Torrington |
NA |
1 |
NA |
Totnes |
NA |
1 |
NA |
Trenton |
NA |
1 |
NA |
Trevoux |
6 |
1 |
NA |
Tuscany |
NA |
1 |
NA |
Ulverston |
NA |
1 |
NA |
Valencia |
NA |
1 |
NA |
Verona |
2 |
1 |
NA |
Walpole NH |
NA |
1 |
NA |
Wargrave |
NA |
1 |
NA |
Warminster |
NA |
1 |
NA |
Waterford Ny |
NA |
1 |
NA |
Wells |
NA |
1 |
NA |
Whitburn |
1 |
1 |
NA |
Whitchurch |
1 |
1 |
NA |
Wiscasset Me |
NA |
1 |
NA |
Wittenberg |
NA |
1 |
NA |
Yarm |
NA |
1 |
NA |
Yeovil |
NA |
1 |
NA |
Youghal |
NA |
1 |
NA |
NA |
328 |
2,557 |
105 |
pages |
London |
4,401,845 |
16,671,741 |
1,051,211 |
Dublin |
680,689 |
1,932,516 |
186,410 |
Edinburgh |
440,701 |
1,434,837 |
106,727 |
Boston Ma |
40,900 |
223,443 |
12,197 |
Oxford |
83,460 |
403,804 |
32,461 |
Glasgow |
172,862 |
335,340 |
28,058 |
Philadelphia Pa |
52,552 |
251,577 |
10,792 |
Paris |
67,345 |
470,499 |
9,241 |
Cambridge |
40,194 |
223,622 |
13,867 |
Newcastle |
14,381 |
93,143 |
2,588 |
Bristol |
10,748 |
97,172 |
2,968 |
York |
20,242 |
93,607 |
4,144 |
Bath |
5,953 |
113,802 |
1,114 |
New York Ny |
21,011 |
87,543 |
3,340 |
Birmingham |
19,295 |
94,109 |
1,948 |
Salisbury |
6,201 |
23,115 |
19 |
Norwich |
2,731 |
40,373 |
324 |
Manchester |
7,501 |
41,732 |
585 |
Exeter |
3,019 |
38,360 |
343 |
Cork |
8,839 |
43,061 |
1,608 |
Belfast |
12,861 |
30,352 |
1,035 |
Leeds |
4,570 |
36,159 |
2,515 |
Shrewsbury |
6,581 |
46,468 |
1,660 |
Aberdeen |
10,487 |
39,286 |
6,111 |
Amsterdam |
27,101 |
84,430 |
1,529 |
Liverpool |
4,314 |
33,569 |
896 |
New London Ct |
1,832 |
11,201 |
277 |
Northampton |
1,604 |
6,902 |
4 |
Canterbury |
4,162 |
25,371 |
NA |
Hartford Ct |
4,337 |
18,042 |
755 |
Chester |
2,853 |
18,904 |
24 |
Nottingham |
2,723 |
12,058 |
74 |
Worcester |
604 |
8,498 |
22 |
Perth |
20,406 |
57,043 |
1,413 |
Gloucester |
3,724 |
16,206 |
571 |
Ipswich |
1,168 |
9,790 |
17 |
Berwick-upon-Tweed |
12,863 |
36,292 |
2,238 |
Warrington |
5,962 |
25,387 |
340 |
New Haven Ct |
1,104 |
8,031 |
277 |
Coventry |
4,573 |
12,196 |
1,738 |
Sherborne |
1,243 |
54,914 |
1,115 |
Reading |
832 |
20,729 |
110 |
Rochester |
2,571 |
7,116 |
4 |
Providence Ri |
1,802 |
5,984 |
165 |
Eton |
4,928 |
24,089 |
72 |
The Hague |
13,049 |
39,586 |
1,196 |
Downpatrick |
18 |
197 |
8 |
Hull |
3,235 |
8,267 |
21 |
Newburyport Ma |
2,551 |
7,239 |
93 |
Worcester Ma |
1,781 |
10,134 |
60 |
Calcutta |
2,556 |
22,248 |
197 |
Sheffield |
445 |
9,044 |
138 |
Paisley |
3,980 |
18,204 |
467 |
Basel |
31,800 |
32,875 |
454 |
Newport Ri |
1,425 |
5,482 |
16 |
Falkirk |
5,957 |
11,285 |
382 |
Charleston Sc |
570 |
5,093 |
NA |
Leipzig |
12,919 |
44,339 |
NA |
Portsmouth Nh |
882 |
3,940 |
NA |
Bury |
708 |
22,733 |
NA |
Livorno |
5,973 |
29,061 |
1,455 |
Leicester |
737 |
7,471 |
NA |
Salem Ma |
3,341 |
6,027 |
1 |
Limerick |
575 |
3,781 |
65 |
Southampton |
1,741 |
6,600 |
1 |
Tewkesbury |
192 |
2,410 |
129 |
Darlington |
619 |
2,367 |
6 |
Colchester |
682 |
3,274 |
36 |
Carlisle |
1,062 |
9,878 |
NA |
Lincoln |
336 |
2,094 |
61 |
Plymouth |
592 |
3,903 |
NA |
Winchester |
1,065 |
11,798 |
42 |
Dundee |
883 |
10,705 |
NA |
Preston |
971 |
3,643 |
298 |
Hereford |
1,198 |
3,759 |
NA |
Newark |
1,135 |
8,233 |
NA |
Kings Lynn |
1,661 |
5,302 |
NA |
Baltimore Md |
679 |
6,328 |
NA |
Norwich Ct |
494 |
3,013 |
41 |
Taunton |
1,254 |
3,967 |
NA |
Wilmington De |
2,581 |
5,650 |
323 |
Stirling |
196 |
1,023 |
NA |
Aldershot |
NA |
28,656 |
NA |
Derby |
501 |
2,613 |
NA |
Durham |
519 |
2,397 |
218 |
Stamford |
294 |
2,633 |
NA |
Wolverhampton |
1,325 |
5,186 |
NA |
Chelmsford |
700 |
6,035 |
23 |
Whitehaven |
264 |
7,233 |
NA |
Exeter Nh |
184 |
1,816 |
148 |
Germantown Pa |
1,998 |
12,628 |
98 |
Hamburg |
4,752 |
13,046 |
NA |
Twickenham |
498 |
4,844 |
NA |
Halifax |
1,310 |
5,066 |
NA |
Newry |
1,136 |
2,938 |
64 |
Richmond Va |
796 |
3,844 |
16 |
Portsmouth |
698 |
2,708 |
417 |
Carmarthen |
1,258 |
3,018 |
NA |
Albany Ny |
3,559 |
4,094 |
NA |
Annapolis Md |
2,494 |
3,011 |
NA |
Kendal |
541 |
3,245 |
NA |
Waterford |
1,679 |
3,823 |
NA |
Williamsburg Va |
199 |
5,309 |
NA |
Lewes |
310 |
1,918 |
NA |
Huddersfield |
803 |
3,196 |
NA |
Lancaster Pa |
1,189 |
2,168 |
NA |
Ludlow |
792 |
2,992 |
NA |
Berlin |
3,404 |
7,536 |
162 |
Brussels |
1,240 |
5,744 |
NA |
Geneva |
10,522 |
9,399 |
NA |
Windsor |
1,592 |
5,549 |
NA |
Wrexham |
680 |
3,317 |
NA |
Dresden |
845 |
10,355 |
303 |
Vienna |
4,937 |
8,508 |
183 |
Ayr |
2,013 |
6,343 |
327 |
Brentford |
804 |
3,463 |
12 |
Bury St Edmunds |
209 |
714 |
NA |
Dumfries |
490 |
4,130 |
323 |
Trefeca |
1,876 |
3,121 |
73 |
Cirencester |
411 |
4,527 |
NA |
Kingston |
1,753 |
2,905 |
1,468 |
Alnwick |
703 |
797 |
NA |
Gainsborough |
1,821 |
3,570 |
NA |
Trefriw |
40 |
264 |
NA |
Kilmarnock |
2,110 |
4,347 |
NA |
Lustleigh |
NA |
13,776 |
NA |
Stockton |
313 |
3,251 |
NA |
Peterborough |
352 |
871 |
NA |
Stockport |
101 |
1,734 |
NA |
Maidstone |
703 |
560 |
NA |
Concord Nh |
168 |
640 |
NA |
Guildford |
363 |
871 |
NA |
Wisbech |
219 |
1,168 |
NA |
Kidderminster |
987 |
2,971 |
NA |
Richmond |
370 |
2,263 |
NA |
Sunderland |
1,411 |
2,130 |
NA |
Warwick |
806 |
1,219 |
167 |
Doncaster |
614 |
1,311 |
NA |
New York NY |
532 |
1,632 |
NA |
Penrith |
59 |
1,091 |
NA |
Aberhonddu |
666 |
1,210 |
NA |
Trenton Nj |
2,662 |
2,289 |
NA |
Watertown Ma |
80 |
92 |
NA |
Macclesfield |
2,769 |
2,277 |
NA |
Margate |
272 |
1,194 |
NA |
Newport |
932 |
2,705 |
NA |
Tunbridge Wells |
509 |
3,645 |
NA |
USA |
329 |
501 |
NA |
Windsor Vt |
576 |
773 |
NA |
Bradford |
349 |
681 |
NA |
Göttingen |
850 |
4,819 |
NA |
Portland Me |
199 |
609 |
NA |
Bedford |
214 |
1,082 |
NA |
Frankfurt |
1,126 |
8,821 |
1,183 |
Springfield Ma |
1,016 |
1,041 |
NA |
Burlington Nj |
1,176 |
1,521 |
NA |
Chichester |
627 |
1,471 |
NA |
Florence |
NA |
2,941 |
NA |
Litchfield Ct |
641 |
924 |
NA |
Rouen |
NA |
4,796 |
NA |
Lancaster |
151 |
750 |
NA |
Rotterdam |
1,931 |
3,836 |
NA |
Trowbridge |
NA |
1,299 |
NA |
Blackburn |
2,500 |
3,547 |
88 |
Knaresborough |
9 |
219 |
NA |
Northampton Ma |
1,749 |
886 |
NA |
Quebec |
1,080 |
1,917 |
NA |
Venice |
4,783 |
4,788 |
NA |
Woodbridge NJ |
549 |
236 |
NA |
Amherst Nh |
294 |
639 |
NA |
Copenhagen |
1,852 |
3,644 |
NA |
Kelso |
695 |
1,817 |
NA |
Neuchatel |
NA |
4,202 |
NA |
Stafford |
NA |
413 |
NA |
Armagh |
66 |
336 |
NA |
Bruges |
NA |
2,574 |
NA |
Devizes |
315 |
1,201 |
NA |
Dover Nh |
298 |
1,268 |
124 |
Lausanne |
150 |
3,915 |
NA |
Leominster Ma |
471 |
707 |
NA |
Marlborough |
192 |
492 |
NA |
Newark Nj |
NA |
2,203 |
NA |
Wakefield |
828 |
821 |
NA |
Altenburg |
693 |
2,823 |
797 |
Banbury |
197 |
315 |
NA |
Buckingham |
NA |
565 |
NA |
Douai |
1,662 |
3,907 |
NA |
Dudley |
NA |
1,313 |
NA |
Egham |
297 |
1,561 |
NA |
Falmouth Me |
248 |
292 |
70 |
Greenfield Ma |
334 |
1,386 |
NA |
Henley-on-Thames |
1,154 |
1,190 |
NA |
High Wycombe |
NA |
1,639 |
NA |
Huntingdon |
NA |
248 |
NA |
Leiden |
NA |
1,412 |
NA |
Londonderry |
256 |
1,526 |
NA |
Lyon |
3,646 |
3,920 |
NA |
Monaghan |
135 |
207 |
NA |
Montrose |
11,342 |
2,185 |
999 |
Pontefract |
NA |
285 |
NA |
Ripon |
1 |
36 |
NA |
Sevenoaks |
NA |
272 |
NA |
St Ives |
207 |
577 |
NA |
Sudbury |
310 |
2,557 |
NA |
Bennington Vt |
333 |
1,157 |
NA |
Boston |
271 |
205 |
NA |
Bridgetown |
NA |
478 |
NA |
Chesterfield |
92 |
628 |
NA |
Congleton |
24 |
802 |
NA |
Deptford |
49 |
857 |
NA |
Dorchester |
NA |
1,041 |
NA |
Douglas |
NA |
494 |
NA |
Evesham |
1,949 |
1,318 |
NA |
Gosport |
607 |
824 |
NA |
New Bedford Ma |
NA |
499 |
NA |
North Shields |
1,581 |
1,406 |
NA |
Savannah Ga |
NA |
242 |
NA |
Spanish Town |
917 |
1,764 |
NA |
St Andrews |
76 |
2,190 |
NA |
Stourbridge |
428 |
1,055 |
NA |
Strabane |
168 |
1,734 |
NA |
Washington DC |
160 |
227 |
NA |
Weymouth |
NA |
872 |
NA |
Whitby |
442 |
670 |
NA |
Wigan |
1,727 |
1,606 |
NA |
Alexandria Va |
NA |
452 |
NA |
Basseterre Saint Kitts |
NA |
468 |
NA |
Burslem |
245 |
258 |
NA |
Drogheda |
436 |
505 |
NA |
Gravesend |
NA |
766 |
NA |
Haverhill Ma |
NA |
302 |
NA |
Kilkenny |
393 |
549 |
NA |
Leominster NH |
NA |
722 |
NA |
Liège |
637 |
2,433 |
8 |
Madeley |
NA |
706 |
NA |
Nantwich |
96 |
761 |
NA |
New Brunswick Nj |
204 |
1,529 |
NA |
Walpole Nh |
280 |
964 |
NA |
Antwerp |
NA |
1,954 |
NA |
Bolton |
1,712 |
1,262 |
74 |
Brunswick |
NA |
3,932 |
NA |
Carlow |
NA |
142 |
NA |
Ephrata Pa |
1,707 |
1,878 |
NA |
Halle |
568 |
5,199 |
NA |
Hamilton |
122 |
254 |
NA |
Market Harborough |
338 |
1,342 |
NA |
Middletown Ct |
NA |
240 |
NA |
Monmouth |
NA |
804 |
NA |
Northumberland Pa |
NA |
894 |
NA |
Port-au-Prince |
NA |
47 |
NA |
Poughkeepsie Ny |
45 |
482 |
NA |
Strood |
NA |
68 |
NA |
Tamworth |
NA |
1,349 |
NA |
Truru |
NA |
535 |
NA |
Valletta |
NA |
2,428 |
NA |
Windham Ct |
153 |
1,131 |
NA |
Brookfield Ma |
NA |
434 |
NA |
Chippenham |
NA |
134 |
NA |
Dedham Ma |
274 |
906 |
NA |
Dunbar |
NA |
98 |
NA |
Fishkill Ny |
NA |
251 |
NA |
Guernesey |
NA |
1,234 |
NA |
Hertford |
NA |
411 |
NA |
Oswestry |
NA |
265 |
NA |
Padua |
NA |
914 |
NA |
Rochdale |
NA |
678 |
NA |
Stroud |
NA |
10 |
NA |
the Hague |
95 |
1,657 |
100 |
Utrecht |
192 |
1,237 |
NA |
Augusta Ga |
NA |
246 |
NA |
Brighton |
NA |
375 |
NA |
Caernarfon |
NA |
82 |
NA |
Catskill Ny |
76 |
404 |
NA |
Elizabeth Nj |
1,624 |
957 |
NA |
Fersfield |
NA |
4,573 |
NA |
Grantham |
41 |
263 |
NA |
Lexington Ky |
NA |
156 |
NA |
Lisbon |
NA |
1,272 |
NA |
Loughborough |
35 |
252 |
NA |
Montreal |
NA |
772 |
NA |
Mullingar |
24 |
677 |
190 |
Romsey |
NA |
766 |
NA |
Scarborough |
NA |
102 |
NA |
South Shields |
83 |
403 |
NA |
Suffield Ct |
NA |
136 |
144 |
Walsall |
NA |
435 |
NA |
Wexford |
12 |
33 |
NA |
Woodbridge Nj |
16 |
669 |
136 |
Abartawe |
NA |
65 |
NA |
Abingdon |
NA |
342 |
NA |
Berkhamsted |
NA |
766 |
NA |
Bocking |
NA |
201 |
168 |
Bungay |
NA |
563 |
666 |
Chatham |
22 |
213 |
NA |
Chennai |
NA |
387 |
NA |
Clipstone |
603 |
1,202 |
NA |
Danbury Ct |
558 |
101 |
NA |
Haarlem |
NA |
974 |
NA |
Helston |
117 |
1,089 |
NA |
Keene Nh |
11 |
142 |
NA |
Liege |
NA |
620 |
NA |
Lymington |
NA |
1,228 |
NA |
Machynlleth |
NA |
645 |
60 |
Madrid |
NA |
4,161 |
NA |
Medford Ma |
NA |
216 |
NA |
New Bern Nc |
1,104 |
1,402 |
NA |
Peacham Vt |
NA |
126 |
NA |
Reims |
NA |
1,125 |
NA |
Rome |
NA |
484 |
NA |
Saint-Omer |
NA |
1,983 |
874 |
Spalding |
NA |
159 |
NA |
St Omer |
NA |
928 |
NA |
Strasbourg |
710 |
637 |
NA |
Workington |
NA |
182 |
NA |
Aylesbury |
24 |
312 |
NA |
Beverley |
4 |
150 |
NA |
Bishopstone |
NA |
1,015 |
NA |
Bridport |
NA |
185 |
NA |
Cambridge Ma |
NA |
110 |
NA |
Cheltenham |
239 |
193 |
NA |
Cheshire Ct |
NA |
236 |
NA |
Cheshunt |
NA |
4 |
NA |
Clonmel |
NA |
111 |
NA |
Cranbrook |
NA |
296 |
NA |
Danvers Ma |
NA |
82 |
NA |
Darmstadt |
NA |
828 |
NA |
Ennis |
NA |
141 |
NA |
Galway |
NA |
312 |
NA |
Gouda |
NA |
126 |
NA |
Hawick |
NA |
758 |
NA |
Hillsborough NC |
NA |
27 |
NA |
Hudson Ny |
856 |
304 |
NA |
Llanymddyfri |
1,108 |
384 |
NA |
Lyons |
NA |
694 |
NA |
Newburgh Ny |
NA |
551 |
NA |
Newmarket |
NA |
289 |
NA |
Poole |
NA |
130 |
NA |
Reading Pa |
218 |
476 |
NA |
Retford |
NA |
312 |
NA |
Salem |
NA |
413 |
NA |
St Peter Port |
NA |
403 |
NA |
St Petersburg |
NA |
1,117 |
NA |
Uppsala |
234 |
892 |
NA |
Uttoxeter |
NA |
666 |
NA |
Warren Ri |
NA |
327 |
NA |
Washington Pa |
NA |
339 |
NA |
Windsor Ct |
177 |
235 |
NA |
Wotton-under-Edge |
24 |
96 |
NA |
Yverdon |
NA |
852 |
NA |
Alston |
44 |
95 |
NA |
Ashford |
NA |
194 |
NA |
Athlone |
NA |
4 |
NA |
Bampton |
NA |
28 |
NA |
Bern |
277 |
717 |
NA |
Blandford Va |
NA |
61 |
NA |
Bridgewater |
NA |
545 |
NA |
Bridlington |
87 |
371 |
NA |
Carlisle Pa |
791 |
393 |
NA |
Charleston SC |
28 |
181 |
NA |
Chelmsford Ma |
NA |
59 |
NA |
Chesham |
NA |
55 |
NA |
Coburg |
NA |
430 |
NA |
Dereham |
NA |
32 |
NA |
Dun Laoghaire |
NA |
17 |
NA |
Greenock |
24 |
103 |
NA |
Hambourg |
NA |
1,598 |
NA |
Harrisburg Pa |
NA |
547 |
NA |
Harrogate |
NA |
50 |
NA |
Hwlffordd |
NA |
40 |
NA |
Jena |
NA |
1,810 |
NA |
Kingston Ny |
NA |
339 |
NA |
Launceston |
NA |
33 |
NA |
Louvain |
NA |
556 |
NA |
Lucca |
NA |
629 |
NA |
Malton |
NA |
878 |
NA |
Newfield Ct |
NA |
199 |
NA |
Parma |
668 |
62 |
NA |
Peterhead |
NA |
54 |
NA |
Ramsgate |
NA |
287 |
NA |
Roseau Dominica |
NA |
31 |
NA |
Rye |
NA |
31 |
NA |
Schenectady Ny |
144 |
423 |
NA |
Stockholm |
NA |
1,252 |
NA |
Stratford-upon-Avon |
NA |
113 |
NA |
Tiverton |
NA |
211 |
NA |
Toulouse |
NA |
936 |
NA |
Treffynnon |
NA |
173 |
NA |
Västerås |
NA |
903 |
NA |
Adpar |
NA |
589 |
NA |
America |
NA |
119 |
NA |
Andover Ma |
NA |
75 |
NA |
Avignon |
NA |
1,205 |
NA |
Banff |
NA |
21 |
NA |
Barnard Castle |
NA |
13 |
NA |
Berne |
308 |
650 |
NA |
Bombay |
NA |
277 |
NA |
Bontfaen |
NA |
207 |
NA |
Boston England |
NA |
80 |
NA |
Bouillon |
NA |
528 |
NA |
Brattleboro Vt |
NA |
56 |
NA |
Bremen |
NA |
1,132 |
NA |
Bridgnorth |
NA |
8 |
NA |
Burton |
NA |
42 |
NA |
Cape Town |
NA |
2 |
NA |
Castine Me |
NA |
59 |
NA |
Chatham Nj |
NA |
103 |
NA |
Chepstow |
NA |
133 |
NA |
Chertsey |
NA |
170 |
NA |
Cincinnati Oh |
NA |
61 |
NA |
Concord Ma |
NA |
59 |
NA |
Cooperstown Ny |
NA |
154 |
NA |
Crewkerne |
NA |
209 |
NA |
Dover De |
NA |
33 |
NA |
Dungannon |
NA |
26 |
NA |
Dunkirk |
NA |
763 |
NA |
Edenton Nc |
NA |
1,021 |
NA |
Enniskillen |
NA |
2 |
NA |
Erlangen |
NA |
495 |
NA |
Flensburg |
NA |
937 |
NA |
Fredericktown Md |
NA |
173 |
NA |
Fredericton |
NA |
48 |
NA |
Frome |
NA |
105 |
NA |
Georgetown Washington DC |
NA |
75 |
NA |
Great Marlow |
NA |
18 |
NA |
Haddington |
NA |
8 |
NA |
Halifax Nc |
NA |
223 |
NA |
Hannover Nh |
NA |
307 |
NA |
Hemel Hempstead |
NA |
20 |
NA |
Honiton |
NA |
506 |
NA |
Horncastle |
NA |
59 |
NA |
Horsham |
NA |
174 |
NA |
Howden |
NA |
130 |
NA |
Inverness |
450 |
2 |
NA |
Mannheim |
NA |
100 |
NA |
Melton Mowbray |
NA |
18 |
NA |
Middlewich |
NA |
86 |
NA |
Montargis |
NA |
457 |
NA |
Münster |
NA |
394 |
NA |
Nancy |
NA |
676 |
NA |
Newbury |
48 |
88 |
22 |
Niagara |
NA |
41 |
NA |
Norfolk Va |
NA |
43 |
NA |
Northallerton |
NA |
115 |
NA |
Nürnberg |
NA |
485 |
NA |
Petersfield |
NA |
11 |
NA |
Pisa |
NA |
53 |
NA |
Potsdam |
NA |
552 |
NA |
Prescot |
NA |
49 |
NA |
Putney Vt |
NA |
85 |
NA |
Rheims |
NA |
866 |
NA |
Rome Ny |
NA |
54 |
NA |
Shepton Mallet |
NA |
11 |
NA |
South Molton |
NA |
51 |
NA |
St Albans |
NA |
41 |
NA |
St George |
NA |
73 |
NA |
St Helier |
NA |
239 |
NA |
Stonington Ct |
NA |
30 |
NA |
Stowmarket |
NA |
5 |
NA |
Szczecin |
NA |
885 |
NA |
Troy Ny |
NA |
194 |
NA |
Vergennes Vt |
NA |
56 |
NA |
Watford |
NA |
15 |
NA |
Wellingborough |
NA |
30 |
NA |
Winterthur |
NA |
408 |
NA |
York Pa |
NA |
46 |
NA |
Zurich |
NA |
964 |
NA |
Abbeville |
NA |
259 |
NA |
Abermaw |
NA |
1 |
NA |
Aberystwyth |
NA |
1 |
NA |
Alcester |
NA |
30 |
NA |
Ampthill |
NA |
1 |
NA |
Arezzo |
NA |
332 |
NA |
Ashby-de-la-Zouch |
NA |
31 |
NA |
Atherstone |
NA |
20 |
NA |
Bala |
NA |
6 |
NA |
Balfron |
NA |
15 |
NA |
Ballymena |
NA |
2 |
NA |
Barnstaple |
NA |
51 |
NA |
Barton-upon-Humber |
NA |
42 |
NA |
Basingstoke |
NA |
2 |
NA |
Bayreuth |
NA |
276 |
NA |
Bedale |
NA |
28 |
NA |
Beloeil |
NA |
137 |
NA |
Besançon |
NA |
144 |
NA |
Birr |
NA |
296 |
NA |
Birstall |
NA |
11 |
NA |
Bishop Castle |
NA |
1 |
NA |
Bodedern |
NA |
16 |
NA |
Bordeaux |
NA |
236 |
NA |
Boulogne-sur-Mer |
NA |
110 |
NA |
Brearley Hall |
NA |
100 |
265 |
Brigg |
NA |
9 |
NA |
Budapest |
NA |
240 |
NA |
Burlington NJ |
NA |
372 |
NA |
Burnley |
NA |
15 |
NA |
Caen |
NA |
26 |
NA |
Caerdydd |
NA |
25 |
NA |
Caerfyrddin |
NA |
44 |
NA |
Caergybi |
NA |
17 |
NA |
Calais |
NA |
209 |
NA |
Carrickfergus |
NA |
59 |
NA |
Castlebar |
NA |
1 |
NA |
Castleford |
NA |
68 |
NA |
Cavan |
NA |
68 |
NA |
Chambersburg Pa |
NA |
84 |
NA |
Ciutadella |
NA |
57 |
NA |
Coimbra |
NA |
415 |
NA |
Coleraine |
NA |
40 |
NA |
Coxheath |
NA |
36 |
NA |
Crieff |
NA |
271 |
NA |
Cupar |
NA |
263 |
NA |
Dampierre-sur-Boutonne |
872 |
506 |
NA |
Dartford |
NA |
60 |
NA |
Dartmouth |
NA |
1 |
NA |
Dessau |
NA |
103 |
NA |
Dordrecht |
NA |
618 |
NA |
Dover |
NA |
53 |
NA |
Dunfermline |
NA |
15 |
NA |
Dunkalk |
NA |
49 |
NA |
Dunkeld |
NA |
1 |
NA |
Duns |
NA |
22 |
NA |
Düsseldorf |
NA |
191 |
NA |
East Grinstead |
NA |
225 |
NA |
Easton Md |
NA |
19 |
NA |
Elie |
NA |
34 |
NA |
Ellesmere |
NA |
8 |
NA |
Essex |
NA |
76 |
NA |
Faringdon |
NA |
24 |
NA |
Featherstone |
NA |
72 |
NA |
Fermoy |
NA |
60 |
NA |
Fleet |
NA |
12 |
NA |
Geneva Ny |
NA |
24 |
NA |
Georgetown Washington Sc |
NA |
22 |
NA |
Ghent |
NA |
8 |
NA |
Gillingham |
NA |
27 |
NA |
Gilmanton Nh |
NA |
15 |
NA |
Goshen Ny |
NA |
136 |
NA |
Gothenburg |
NA |
391 |
NA |
Halesworth |
NA |
3 |
NA |
Hallowell Me |
NA |
21 |
NA |
Hanau |
NA |
151 |
NA |
Hannover |
NA |
210 |
NA |
Harbor Ny |
NA |
27 |
NA |
Haverhill Nh |
NA |
34 |
NA |
Hexham |
NA |
91 |
NA |
Hildburghausen |
NA |
498 |
NA |
Hinckley |
NA |
1 |
NA |
Hitchin |
NA |
1 |
NA |
Holt |
NA |
91 |
NA |
Houghton Park |
NA |
1 |
NA |
Hungerford |
NA |
12 |
NA |
Karlskrona |
NA |
32 |
NA |
Karlsruhe |
NA |
15 |
NA |
Keene |
NA |
23 |
NA |
Kenilworth |
NA |
32 |
NA |
Keswick |
NA |
1 |
NA |
Kinsale |
NA |
8 |
NA |
Kirkbride |
NA |
291 |
NA |
Knoxville Tn |
NA |
31 |
NA |
Knutsford |
NA |
2 |
NA |
Lanark |
NA |
15 |
NA |
Leek |
NA |
1 |
NA |
Lisburn |
NA |
1 |
NA |
Long Buckby |
NA |
39 |
NA |
Lugano |
NA |
93 |
NA |
Lund |
NA |
312 |
NA |
Mainz |
NA |
295 |
NA |
Malda |
NA |
182 |
NA |
Mantua |
NA |
46 |
NA |
Marseilles |
NA |
47 |
NA |
Middelburg |
NA |
95 |
NA |
Milan |
556 |
131 |
NA |
Milborne Port |
NA |
21 |
NA |
Môle-Saint-Nicolas |
NA |
34 |
NA |
Monmouth Nj |
NA |
468 |
NA |
Morristown Nj |
NA |
328 |
NA |
Moscow |
NA |
175 |
NA |
Naas |
NA |
1 |
NA |
Nantes |
NA |
383 |
NA |
Naples |
374 |
191 |
NA |
Nashville Tn |
NA |
26 |
NA |
Nassau |
NA |
110 |
NA |
Newbury Vt |
NA |
190 |
148 |
Nice |
NA |
195 |
NA |
Nordhausen |
NA |
114 |
NA |
Norfolk |
NA |
34 |
NA |
Norristown Pa |
NA |
157 |
NA |
Norrköping |
NA |
8 |
NA |
Northwich |
NA |
1 |
NA |
Nuremberg |
NA |
596 |
NA |
Ormskirk |
NA |
32 |
NA |
Osnabrück |
NA |
95 |
NA |
Pattingham |
NA |
19 |
422 |
Pembroke |
NA |
33 |
NA |
Perugia |
NA |
87 |
NA |
Plymouth Ma |
NA |
45 |
NA |
Pondicherry |
NA |
155 |
NA |
Poughkeepsie NY |
NA |
161 |
NA |
Poulton-le-Fylde |
NA |
1 |
NA |
Princeton Nj |
NA |
229 |
NA |
Providence RI |
NA |
31 |
NA |
Raleigh Nc |
NA |
16 |
NA |
Ramsey |
NA |
63 |
NA |
Regensburg |
NA |
173 |
NA |
Rhaglan |
NA |
73 |
NA |
Saffron Walden |
NA |
1 |
NA |
Saint Helier |
NA |
414 |
NA |
Saint-Germain-en-Laye |
NA |
376 |
NA |
Salisbury Nc |
NA |
40 |
NA |
Sandhurst |
NA |
10 |
NA |
Sandwich |
NA |
1 |
NA |
Sanquhar |
NA |
8 |
NA |
Schleswig |
NA |
523 |
NA |
Sedbergh |
NA |
20 |
NA |
Selby |
NA |
16 |
NA |
Shepherdstown Wv |
NA |
332 |
NA |
Siena |
NA |
186 |
NA |
Sligo |
41 |
18 |
NA |
Southampton Pa |
NA |
8 |
NA |
St Austell |
NA |
23 |
NA |
St Eustatius |
NA |
164 |
NA |
St Neots |
NA |
24 |
NA |
Stoke-on-Trent |
NA |
7 |
NA |
Stokesley |
NA |
27 |
NA |
Stuttgart |
NA |
48 |
NA |
Sulechow |
NA |
353 |
NA |
Tetbury |
NA |
10 |
NA |
Thirsk |
NA |
8 |
NA |
Torrington |
NA |
34 |
NA |
Totnes |
NA |
34 |
NA |
Trenton |
NA |
36 |
NA |
Trevoux |
3,193 |
337 |
NA |
Tuscany |
NA |
128 |
NA |
Ulverston |
NA |
640 |
NA |
Valencia |
NA |
334 |
NA |
Verona |
1,223 |
21 |
NA |
Walpole NH |
NA |
51 |
NA |
Wargrave |
NA |
15 |
NA |
Warminster |
NA |
1 |
NA |
Waterford Ny |
NA |
127 |
NA |
Wells |
NA |
51 |
NA |
Whitburn |
182 |
225 |
NA |
Whitchurch |
122 |
24 |
NA |
Wiscasset Me |
NA |
24 |
NA |
Wittenberg |
NA |
303 |
NA |
Yarm |
NA |
47 |
NA |
Yeovil |
NA |
139 |
NA |
Youghal |
NA |
146 |
NA |
NA |
74,575 |
516,172 |
28,576 |
Year of earliest publication
split %>%
count(set,earliest_publication_year_definite) %>%
ggplot(aes(x=set,y=n,fill=earliest_publication_year_definite)) +
geom_col(position='dodge') +
theme_hsci_discrete() +
coord_flip() +
ylab("ECCO documents") +
xlab("Set") +
labs(fill="Date certain") +
theme(legend.position="bottom") +
ggtitle("Uncertainty/certainty of dating the earliest year of publication")

split %>%
count(set,earliest_publication_year,earliest_publication_year_definite) %>%
ggplot(aes(x=earliest_publication_year,y=n,fill=earliest_publication_year_definite)) +
geom_col(position='stack',width=1) +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Year") +
labs(fill="Date certain") +
theme(legend.position="bottom") +
facet_wrap(~set, scales="free") +
ggtitle("Earliest year of publication")
Warning: Removed 3 rows containing missing values or values outside the scale range (`geom_col()`).

split %>%
mutate(earliest_publication_decade=floor(earliest_publication_year/10)*10) %>%
print_split(earliest_publication_decade, "earliest publication decade", order_by_frequency=FALSE)
By earliest publication decade |
(32 targets) |
|
test |
train |
val |
works |
1470 |
NA |
4 |
NA |
1480 |
3 |
2 |
NA |
1490 |
1 |
NA |
NA |
1500 |
1 |
4 |
NA |
1510 |
2 |
3 |
NA |
1520 |
NA |
5 |
NA |
1530 |
1 |
15 |
NA |
1540 |
NA |
10 |
3 |
1550 |
5 |
13 |
NA |
1560 |
8 |
16 |
2 |
1570 |
6 |
33 |
1 |
1580 |
7 |
20 |
NA |
1590 |
10 |
41 |
5 |
1600 |
10 |
40 |
2 |
1610 |
12 |
57 |
5 |
1620 |
18 |
46 |
2 |
1630 |
14 |
72 |
7 |
1640 |
36 |
113 |
20 |
1650 |
37 |
157 |
27 |
1660 |
47 |
144 |
22 |
1670 |
74 |
267 |
28 |
1680 |
80 |
387 |
34 |
1690 |
91 |
559 |
35 |
1700 |
403 |
7,322 |
195 |
1710 |
433 |
9,689 |
216 |
1720 |
368 |
7,322 |
191 |
1730 |
369 |
7,281 |
180 |
1740 |
414 |
8,361 |
194 |
1750 |
453 |
8,894 |
241 |
1760 |
504 |
10,436 |
214 |
1770 |
579 |
10,919 |
220 |
1780 |
666 |
13,164 |
270 |
1790 |
1,163 |
19,437 |
361 |
1800 |
143 |
2,732 |
51 |
1810 |
NA |
3 |
NA |
1820 |
NA |
4 |
NA |
1830 |
NA |
1 |
NA |
1840 |
NA |
3 |
NA |
1850 |
NA |
2 |
NA |
1860 |
NA |
1 |
NA |
1910 |
NA |
1 |
NA |
1970 |
NA |
1 |
NA |
NA |
12 |
159 |
4 |
documents |
1470 |
NA |
36 |
NA |
1480 |
179 |
4 |
NA |
1490 |
8 |
NA |
NA |
1500 |
18 |
24 |
NA |
1510 |
150 |
26 |
NA |
1520 |
NA |
8 |
NA |
1530 |
5 |
873 |
NA |
1540 |
NA |
34 |
53 |
1550 |
132 |
108 |
NA |
1560 |
202 |
51 |
43 |
1570 |
210 |
301 |
1 |
1580 |
282 |
97 |
NA |
1590 |
179 |
161 |
54 |
1600 |
215 |
146 |
10 |
1610 |
586 |
307 |
101 |
1620 |
220 |
127 |
2 |
1630 |
106 |
190 |
75 |
1640 |
172 |
300 |
72 |
1650 |
224 |
559 |
138 |
1660 |
466 |
482 |
89 |
1670 |
695 |
957 |
153 |
1680 |
920 |
1,168 |
151 |
1690 |
906 |
1,926 |
146 |
1700 |
2,495 |
11,847 |
542 |
1710 |
2,657 |
15,088 |
554 |
1720 |
1,880 |
11,649 |
512 |
1730 |
1,621 |
11,868 |
765 |
1740 |
1,938 |
13,519 |
465 |
1750 |
1,983 |
14,855 |
751 |
1760 |
2,421 |
17,046 |
635 |
1770 |
1,802 |
17,964 |
497 |
1780 |
1,745 |
20,663 |
564 |
1790 |
2,178 |
27,727 |
623 |
1800 |
160 |
3,246 |
63 |
1810 |
NA |
4 |
NA |
1820 |
NA |
4 |
NA |
1830 |
NA |
2 |
NA |
1840 |
NA |
3 |
NA |
1850 |
NA |
2 |
NA |
1860 |
NA |
3 |
NA |
1910 |
NA |
1 |
NA |
1970 |
NA |
1 |
NA |
NA |
53 |
362 |
7 |
pages |
1470 |
NA |
9,319 |
NA |
1480 |
49,929 |
516 |
NA |
1490 |
930 |
NA |
NA |
1500 |
7,880 |
7,062 |
NA |
1510 |
51,574 |
6,505 |
NA |
1520 |
NA |
2,069 |
NA |
1530 |
1,073 |
213,027 |
NA |
1540 |
NA |
7,579 |
13,010 |
1550 |
39,495 |
42,466 |
NA |
1560 |
53,735 |
22,764 |
17,841 |
1570 |
86,806 |
81,647 |
275 |
1580 |
101,179 |
51,640 |
NA |
1590 |
47,526 |
44,963 |
9,023 |
1600 |
68,197 |
19,923 |
1,697 |
1610 |
182,677 |
53,157 |
32,642 |
1620 |
52,997 |
34,979 |
186 |
1630 |
33,582 |
46,923 |
13,682 |
1640 |
46,536 |
64,841 |
17,869 |
1650 |
68,046 |
138,277 |
33,852 |
1660 |
148,658 |
123,139 |
29,926 |
1670 |
211,283 |
185,238 |
35,698 |
1680 |
195,203 |
218,114 |
27,574 |
1690 |
289,121 |
484,589 |
25,493 |
1700 |
647,072 |
1,440,561 |
143,111 |
1710 |
705,390 |
1,517,773 |
128,145 |
1720 |
469,041 |
1,639,046 |
93,166 |
1730 |
362,280 |
1,660,011 |
208,046 |
1740 |
431,489 |
1,764,350 |
90,533 |
1750 |
479,900 |
2,202,399 |
155,707 |
1760 |
637,262 |
2,336,543 |
142,475 |
1770 |
381,855 |
2,833,902 |
90,506 |
1780 |
345,723 |
3,216,681 |
101,333 |
1790 |
366,658 |
3,839,644 |
117,823 |
1800 |
18,832 |
384,543 |
5,689 |
1810 |
NA |
902 |
NA |
1820 |
NA |
196 |
NA |
1830 |
NA |
582 |
NA |
1840 |
NA |
399 |
NA |
1850 |
NA |
189 |
NA |
1860 |
NA |
978 |
NA |
1910 |
NA |
4 |
NA |
1970 |
NA |
16 |
NA |
NA |
5,471 |
90,817 |
2,211 |
Year of publication
split %>%
count(set,publication_year_definite) %>%
ggplot(aes(x=set,y=n,fill=publication_year_definite)) +
geom_col(position='dodge') +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Set") +
labs(fill="Date certain") +
theme(legend.position="bottom") +
coord_flip() +
ggtitle("Uncertainty/certainty of dating the year of publication")

split %>%
count(set,publication_year,publication_year_definite) %>%
ggplot(aes(x=publication_year,y=n,fill=publication_year_definite)) +
geom_col(position='stack',width=1) +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Year") +
labs(fill="Date certain") +
theme(legend.position="bottom") +
facet_wrap(~set, scales="free") +
ggtitle("Year of publication")
Warning: Removed 3 rows containing missing values or values outside the scale range (`geom_col()`).

split %>%
mutate(publication_decade=floor(publication_year/10)*10) %>%
print_split(publication_decade, "publication decade", order_by_frequency=FALSE)
By publication decade |
(12 targets) |
|
test |
train |
val |
works |
1600 |
NA |
2 |
NA |
1610 |
NA |
2 |
NA |
1620 |
NA |
1 |
NA |
1630 |
NA |
1 |
NA |
1640 |
NA |
5 |
NA |
1650 |
NA |
5 |
NA |
1660 |
NA |
4 |
NA |
1670 |
NA |
8 |
NA |
1680 |
NA |
16 |
NA |
1690 |
NA |
28 |
NA |
1700 |
606 |
7,873 |
270 |
1710 |
725 |
10,618 |
315 |
1720 |
742 |
8,466 |
291 |
1730 |
750 |
8,398 |
287 |
1740 |
766 |
9,560 |
285 |
1750 |
867 |
10,233 |
353 |
1760 |
985 |
12,126 |
376 |
1770 |
1,135 |
12,883 |
369 |
1780 |
1,205 |
15,186 |
426 |
1790 |
1,840 |
22,418 |
542 |
1800 |
358 |
3,598 |
93 |
1810 |
NA |
4 |
NA |
1820 |
NA |
4 |
NA |
1830 |
NA |
1 |
NA |
1840 |
NA |
3 |
NA |
1850 |
NA |
2 |
NA |
1860 |
NA |
1 |
NA |
1910 |
NA |
1 |
NA |
1970 |
NA |
1 |
NA |
NA |
11 |
158 |
4 |
documents |
1600 |
NA |
2 |
NA |
1610 |
NA |
3 |
NA |
1620 |
NA |
1 |
NA |
1630 |
NA |
1 |
NA |
1640 |
NA |
5 |
NA |
1650 |
NA |
5 |
NA |
1660 |
NA |
4 |
NA |
1670 |
NA |
10 |
NA |
1680 |
NA |
31 |
NA |
1690 |
NA |
31 |
NA |
1700 |
1,055 |
10,382 |
426 |
1710 |
1,565 |
14,240 |
505 |
1720 |
1,731 |
11,360 |
487 |
1730 |
2,006 |
11,528 |
537 |
1740 |
1,934 |
13,093 |
496 |
1750 |
2,438 |
14,608 |
715 |
1760 |
3,086 |
17,239 |
941 |
1770 |
3,553 |
19,420 |
841 |
1780 |
3,432 |
22,904 |
882 |
1790 |
5,426 |
34,004 |
1,094 |
1800 |
571 |
4,486 |
135 |
1810 |
NA |
5 |
NA |
1820 |
NA |
4 |
NA |
1830 |
NA |
2 |
NA |
1840 |
NA |
3 |
NA |
1850 |
NA |
2 |
NA |
1860 |
NA |
3 |
NA |
1910 |
NA |
1 |
NA |
1970 |
NA |
1 |
NA |
NA |
11 |
361 |
7 |
pages |
1600 |
NA |
116 |
NA |
1610 |
NA |
95 |
NA |
1620 |
NA |
24 |
NA |
1630 |
NA |
76 |
NA |
1640 |
NA |
138 |
NA |
1650 |
NA |
103 |
NA |
1660 |
NA |
78 |
NA |
1670 |
NA |
1,139 |
NA |
1680 |
NA |
13,698 |
NA |
1690 |
NA |
3,858 |
NA |
1700 |
246,446 |
1,142,136 |
90,012 |
1710 |
363,694 |
1,359,129 |
90,880 |
1720 |
453,674 |
1,540,902 |
100,492 |
1730 |
517,969 |
1,560,180 |
123,819 |
1740 |
478,001 |
1,716,975 |
113,898 |
1750 |
597,839 |
2,121,366 |
163,770 |
1760 |
769,405 |
2,450,668 |
220,321 |
1770 |
860,137 |
3,131,800 |
185,863 |
1780 |
834,338 |
3,708,766 |
175,588 |
1790 |
1,347,900 |
5,318,060 |
246,041 |
1800 |
116,740 |
624,915 |
24,618 |
1810 |
NA |
918 |
NA |
1820 |
NA |
196 |
NA |
1830 |
NA |
582 |
NA |
1840 |
NA |
399 |
NA |
1850 |
NA |
189 |
NA |
1860 |
NA |
978 |
NA |
1910 |
NA |
4 |
NA |
1970 |
NA |
16 |
NA |
NA |
1,257 |
90,769 |
2,211 |
Price
split %>%
mutate(has_price=!is.na(total_price)) %>%
count(set,has_price) %>%
pivot_wider(names_from=set,values_from=n) %>%
gt(rowname_col = "set") %>%
tab_header(title = "Price information availability") %>%
fmt_integer(columns=c(test,val,train))
Price information availability |
has_price |
test |
train |
val |
FALSE |
24,346 |
147,906 |
6,088 |
TRUE |
2,462 |
25,833 |
978 |
split %>%
count(set,total_price) %>%
ggplot(aes(x=total_price,y=n)) +
geom_col(width=1) +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Price") +
theme(legend.position="bottom") +
facet_wrap(~set, scales="free", ncol=1) +
ggtitle("Prices")
Warning: `position_stack()` requires non-overlapping x intervals.
Warning: `position_stack()` requires non-overlapping x intervals.
Warning: `position_stack()` requires non-overlapping x intervals.
Warning: Removed 3 rows containing missing values or values outside the scale range (`geom_col()`).

Multi-label targets
Actors
library(gghsci)
major_actor_split %>%
filter(set=="test") %>%
count(ecco_id) %>%
count(n) %>%
ggplot(aes(x=n,y=nn)) +
geom_col() +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Number of actors attached") +
ggtitle("Test set label count distribution (major only)")
Storing counts in `nn`, as `n` already present in input
ℹ Use `name = "new_name"` to pick a new name.

major_actor_split %>%
group_by(set, major_actor_id, actor_role, name_unified) %>%
summarise(pages=sum(pages),documents=n(),works=n_distinct(work_id), .groups="drop") %>%
pivot_longer(pages:works) %>%
pivot_wider(names_from=set,values_from=value) %>%
mutate(name=fct_relevel(name,"works","documents","pages")) %>%
mutate(major_actor_id=fct_reorder(major_actor_id, train, .desc=TRUE)) %>%
arrange(name,major_actor_id) %>%
select(-major_actor_id) %>%
gt(groupname_col = "name", rowname_col="name_unified") %>%
tab_header(title = "By actor", subtitle=str_c("(major only, ", major_actor_split %>% filter(set=="test") %>% distinct(major_actor_id) %>% count() %>% pull(), " targets)")) %>%
fmt_integer(columns=c(test,val,train))
By actor |
(major only, 108 targets) |
|
actor_role |
test |
train |
val |
works |
Robinson, George I |
publisher |
145 |
698 |
36 |
Cadell, Thomas |
publisher |
160 |
849 |
41 |
Strahan, William |
publisher |
153 |
493 |
38 |
Longman, Thomas |
publisher |
209 |
330 |
46 |
Baldwin, Robert I |
publisher |
192 |
527 |
37 |
Johnston, William |
publisher |
148 |
255 |
30 |
Law, Bedwell |
publisher |
167 |
299 |
33 |
Caslon, Thomas |
publisher |
162 |
167 |
31 |
Millar, Andrew |
publisher |
102 |
501 |
23 |
Cadell, Thomas Ii |
publisher |
99 |
495 |
24 |
F. and C. Rivington |
publisher |
76 |
372 |
27 |
Rivington, John |
publisher |
150 |
294 |
39 |
Hitch, Charles |
publisher |
182 |
357 |
45 |
Johnson, John |
publisher |
78 |
527 |
15 |
Roberts, James |
publisher |
57 |
1,569 |
36 |
Dodsley, James |
publisher |
57 |
451 |
22 |
J. and F. Rivington |
publisher |
112 |
203 |
23 |
Becket, Thomas |
publisher |
105 |
504 |
20 |
Crowder, Stanley |
publisher |
118 |
265 |
23 |
Smith, W. |
publisher |
69 |
179 |
16 |
Faulkner, George |
publisher |
55 |
568 |
22 |
Hawes, Lacy |
publisher |
140 |
199 |
23 |
Byrne, P. |
publisher |
79 |
512 |
27 |
J. Exshaw |
publisher |
129 |
331 |
28 |
Lowndes, Thomas |
publisher |
102 |
165 |
26 |
Bettesworth, Arthur |
publisher |
152 |
380 |
45 |
Dilly, Charles |
publisher |
110 |
555 |
33 |
Williams, J. |
publisher |
87 |
285 |
23 |
Powell, S. |
publisher |
69 |
235 |
15 |
G. G. and J. Robinson |
publisher |
75 |
402 |
27 |
Strahan, Andrew |
publisher |
62 |
264 |
11 |
Wogan, P. |
publisher |
100 |
347 |
24 |
Innys, William |
publisher |
81 |
391 |
20 |
J. and P. Knapton |
publisher |
127 |
256 |
29 |
Moore, J. |
publisher |
66 |
362 |
23 |
Risk, George |
publisher |
76 |
135 |
15 |
E. and C. Dilly |
publisher |
52 |
215 |
11 |
Bell, John |
publisher |
88 |
293 |
18 |
Cooper, Mary Mrs |
publisher |
70 |
938 |
24 |
Potts, J. |
publisher |
76 |
219 |
24 |
Hodges, James Sir |
publisher |
73 |
239 |
20 |
Tonson, Jacob I |
publisher |
121 |
419 |
16 |
Crowder, Samuel |
publisher |
95 |
103 |
17 |
Jones, W. |
publisher |
76 |
292 |
25 |
J. and R. Tonson |
publisher |
83 |
168 |
17 |
Lowndes, William |
publisher |
86 |
108 |
16 |
Wilson, P. |
publisher |
83 |
246 |
19 |
Sleater, W. |
publisher |
73 |
277 |
22 |
Davies, Thomas |
publisher |
82 |
208 |
16 |
Powell, S. |
publisher |
53 |
396 |
19 |
Bladon, Samuel |
publisher |
111 |
326 |
27 |
Nichols, John |
publisher |
58 |
424 |
18 |
Osborne, Thomas Ii |
publisher |
58 |
169 |
12 |
Donaldson, A. |
publisher |
73 |
165 |
8 |
Johnson, John |
publisher |
62 |
328 |
11 |
Richardson, Joseph |
publisher |
53 |
105 |
11 |
Birt, Samuel |
publisher |
99 |
171 |
20 |
J. F. and C. Rivington |
publisher |
95 |
215 |
17 |
Ware, Richard I |
publisher |
75 |
117 |
16 |
Walker, T. |
publisher |
61 |
211 |
14 |
Harrison and Co |
publisher |
62 |
130 |
13 |
Nicoll, William |
publisher |
84 |
200 |
16 |
Gosling, Robert |
publisher |
59 |
241 |
14 |
Chamberlaine, D. |
publisher |
59 |
177 |
10 |
Buckland, James |
publisher |
67 |
515 |
23 |
Midwinter, Daniel |
publisher |
106 |
202 |
27 |
Ware, Catherine Mrs |
publisher |
67 |
55 |
9 |
Wilson, W. |
publisher |
52 |
187 |
14 |
Longman, Thomas |
publisher |
107 |
154 |
23 |
Lintott, Barnaby Bernard |
publisher |
58 |
298 |
14 |
Davis, Lockyer John |
publisher |
61 |
249 |
14 |
Rivington, Charles |
publisher |
62 |
229 |
14 |
Mears, William |
publisher |
61 |
223 |
16 |
Vernor and Hood |
publisher |
52 |
185 |
10 |
Wilkie, John |
publisher |
50 |
343 |
12 |
Walthoe, John I |
publisher |
67 |
136 |
21 |
Richardson, William |
publisher |
58 |
207 |
9 |
G. and T. Wilkie |
publisher |
69 |
170 |
13 |
Kearsley, George |
publisher |
69 |
351 |
16 |
Keith, George |
publisher |
78 |
272 |
16 |
Walker, John |
publisher |
58 |
117 |
9 |
Saunders, H. |
publisher |
55 |
130 |
11 |
Clarke, William |
publisher |
58 |
119 |
11 |
Davies, William |
publisher |
52 |
269 |
12 |
Payne, Thomas |
publisher |
54 |
181 |
13 |
Goldsmith, William |
publisher |
60 |
84 |
9 |
Nicholson, John |
publisher |
50 |
88 |
21 |
Motte, Benjamin |
publisher |
61 |
92 |
10 |
Bew, John |
publisher |
64 |
368 |
17 |
Robinson, Ranew |
publisher |
50 |
89 |
10 |
Clarke, John |
publisher |
70 |
232 |
18 |
Bathurst, Charles |
publisher |
81 |
128 |
12 |
Ward, John |
publisher |
78 |
145 |
14 |
Browne, Daniel Ii |
publisher |
60 |
148 |
14 |
Newbery, Elizabeth Mrs |
publisher |
50 |
141 |
7 |
Grierson, George |
publisher |
53 |
188 |
14 |
Lintot, Henry |
publisher |
70 |
141 |
8 |
Hinton, John |
publisher |
52 |
82 |
10 |
Hett, Richard |
publisher |
64 |
392 |
20 |
Scatcherd, James |
publisher |
56 |
70 |
10 |
Ward, Aaron |
publisher |
96 |
206 |
26 |
Horsfield, Robert |
publisher |
57 |
80 |
9 |
Pemberton, John |
publisher |
58 |
206 |
16 |
Woodfall, Henry |
publisher |
70 |
94 |
8 |
Osborn, John Ii |
publisher |
54 |
119 |
14 |
Brindley, John |
publisher |
53 |
130 |
11 |
Clay, Francis |
publisher |
83 |
99 |
25 |
Darby, John |
publisher |
64 |
133 |
19 |
documents |
Robinson, George I |
publisher |
5,186 |
5,441 |
462 |
Cadell, Thomas |
publisher |
5,474 |
5,139 |
1,115 |
Strahan, William |
publisher |
6,605 |
4,869 |
1,098 |
Longman, Thomas |
publisher |
6,283 |
3,990 |
1,086 |
Baldwin, Robert I |
publisher |
6,193 |
3,769 |
874 |
Johnston, William |
publisher |
5,505 |
3,623 |
744 |
Law, Bedwell |
publisher |
5,365 |
3,564 |
591 |
Caslon, Thomas |
publisher |
5,676 |
3,540 |
672 |
Millar, Andrew |
publisher |
3,018 |
3,537 |
351 |
Cadell, Thomas Ii |
publisher |
4,226 |
3,492 |
309 |
F. and C. Rivington |
publisher |
3,379 |
3,454 |
294 |
Rivington, John |
publisher |
4,675 |
3,299 |
903 |
Hitch, Charles |
publisher |
4,659 |
3,162 |
967 |
Johnson, John |
publisher |
2,971 |
3,075 |
143 |
Roberts, James |
publisher |
1,297 |
3,030 |
92 |
Dodsley, James |
publisher |
1,569 |
2,785 |
560 |
J. and F. Rivington |
publisher |
5,223 |
2,775 |
685 |
Becket, Thomas |
publisher |
3,307 |
2,751 |
428 |
Crowder, Stanley |
publisher |
3,912 |
2,712 |
442 |
Smith, W. |
publisher |
2,348 |
2,708 |
253 |
Faulkner, George |
publisher |
1,798 |
2,694 |
548 |
Hawes, Lacy |
publisher |
4,370 |
2,683 |
803 |
Byrne, P. |
publisher |
1,659 |
2,680 |
164 |
J. Exshaw |
publisher |
3,704 |
2,557 |
437 |
Lowndes, Thomas |
publisher |
3,751 |
2,528 |
517 |
Bettesworth, Arthur |
publisher |
3,520 |
2,508 |
361 |
Dilly, Charles |
publisher |
3,382 |
2,483 |
310 |
Williams, J. |
publisher |
2,754 |
2,469 |
618 |
Powell, S. |
publisher |
1,951 |
2,418 |
201 |
G. G. and J. Robinson |
publisher |
3,260 |
2,417 |
395 |
Strahan, Andrew |
publisher |
2,049 |
2,401 |
217 |
Wogan, P. |
publisher |
2,794 |
2,385 |
251 |
Innys, William |
publisher |
1,737 |
2,332 |
110 |
J. and P. Knapton |
publisher |
3,254 |
2,234 |
204 |
Moore, J. |
publisher |
1,600 |
2,115 |
171 |
Risk, George |
publisher |
2,617 |
2,090 |
262 |
E. and C. Dilly |
publisher |
1,958 |
2,067 |
125 |
Bell, John |
publisher |
2,352 |
2,067 |
320 |
Cooper, Mary Mrs |
publisher |
2,232 |
2,057 |
232 |
Potts, J. |
publisher |
2,268 |
2,043 |
325 |
Hodges, James Sir |
publisher |
2,488 |
2,042 |
167 |
Tonson, Jacob I |
publisher |
4,284 |
1,987 |
172 |
Crowder, Samuel |
publisher |
4,154 |
1,982 |
439 |
Jones, W. |
publisher |
1,534 |
1,976 |
382 |
J. and R. Tonson |
publisher |
3,773 |
1,881 |
223 |
Lowndes, William |
publisher |
3,160 |
1,878 |
352 |
Wilson, P. |
publisher |
2,590 |
1,876 |
272 |
Sleater, W. |
publisher |
1,700 |
1,861 |
250 |
Davies, Thomas |
publisher |
3,571 |
1,857 |
361 |
Powell, S. |
publisher |
1,758 |
1,835 |
192 |
Bladon, Samuel |
publisher |
3,138 |
1,826 |
588 |
Nichols, John |
publisher |
2,171 |
1,810 |
610 |
Osborne, Thomas Ii |
publisher |
1,566 |
1,808 |
493 |
Donaldson, A. |
publisher |
4,550 |
1,808 |
514 |
Johnson, John |
publisher |
2,205 |
1,803 |
211 |
Richardson, Joseph |
publisher |
2,035 |
1,794 |
277 |
Birt, Samuel |
publisher |
2,769 |
1,775 |
140 |
J. F. and C. Rivington |
publisher |
3,414 |
1,749 |
480 |
Ware, Richard I |
publisher |
2,148 |
1,733 |
144 |
Walker, T. |
publisher |
1,874 |
1,733 |
281 |
Harrison and Co |
publisher |
2,263 |
1,714 |
241 |
Nicoll, William |
publisher |
2,624 |
1,707 |
323 |
Gosling, Robert |
publisher |
1,090 |
1,705 |
86 |
Chamberlaine, D. |
publisher |
1,297 |
1,685 |
158 |
Buckland, James |
publisher |
1,494 |
1,683 |
352 |
Midwinter, Daniel |
publisher |
2,146 |
1,651 |
235 |
Ware, Catherine Mrs |
publisher |
2,478 |
1,649 |
137 |
Wilson, W. |
publisher |
2,283 |
1,607 |
119 |
Longman, Thomas |
publisher |
2,707 |
1,600 |
184 |
Lintott, Barnaby Bernard |
publisher |
2,022 |
1,588 |
328 |
Davis, Lockyer John |
publisher |
1,753 |
1,570 |
365 |
Rivington, Charles |
publisher |
1,295 |
1,544 |
95 |
Mears, William |
publisher |
1,783 |
1,541 |
59 |
Vernor and Hood |
publisher |
1,709 |
1,538 |
59 |
Wilkie, John |
publisher |
1,133 |
1,533 |
73 |
Walthoe, John I |
publisher |
1,533 |
1,484 |
107 |
Richardson, William |
publisher |
2,513 |
1,466 |
170 |
G. and T. Wilkie |
publisher |
2,831 |
1,455 |
202 |
Kearsley, George |
publisher |
1,933 |
1,426 |
295 |
Keith, George |
publisher |
2,167 |
1,389 |
144 |
Walker, John |
publisher |
2,572 |
1,325 |
182 |
Saunders, H. |
publisher |
1,225 |
1,305 |
227 |
Clarke, William |
publisher |
1,934 |
1,300 |
180 |
Davies, William |
publisher |
1,516 |
1,298 |
153 |
Payne, Thomas |
publisher |
3,130 |
1,298 |
131 |
Goldsmith, William |
publisher |
2,454 |
1,274 |
254 |
Nicholson, John |
publisher |
1,080 |
1,229 |
142 |
Motte, Benjamin |
publisher |
1,754 |
1,222 |
52 |
Bew, John |
publisher |
2,464 |
1,218 |
200 |
Robinson, Ranew |
publisher |
1,083 |
1,181 |
59 |
Clarke, John |
publisher |
1,525 |
1,088 |
132 |
Bathurst, Charles |
publisher |
3,115 |
1,071 |
463 |
Ward, John |
publisher |
2,554 |
1,049 |
205 |
Browne, Daniel Ii |
publisher |
1,793 |
1,000 |
113 |
Newbery, Elizabeth Mrs |
publisher |
2,309 |
942 |
137 |
Grierson, George |
publisher |
2,664 |
936 |
73 |
Lintot, Henry |
publisher |
2,613 |
924 |
132 |
Hinton, John |
publisher |
1,326 |
924 |
365 |
Hett, Richard |
publisher |
1,032 |
907 |
145 |
Scatcherd, James |
publisher |
2,419 |
904 |
184 |
Ward, Aaron |
publisher |
1,716 |
865 |
189 |
Horsfield, Robert |
publisher |
2,275 |
839 |
204 |
Pemberton, John |
publisher |
1,496 |
802 |
109 |
Woodfall, Henry |
publisher |
2,741 |
790 |
150 |
Osborn, John Ii |
publisher |
1,724 |
785 |
87 |
Brindley, John |
publisher |
1,508 |
626 |
95 |
Clay, Francis |
publisher |
2,276 |
374 |
181 |
Darby, John |
publisher |
1,570 |
348 |
170 |
pages |
Robinson, George I |
publisher |
1,852,735 |
1,703,202 |
152,990 |
Cadell, Thomas |
publisher |
1,923,035 |
1,533,797 |
374,947 |
Strahan, William |
publisher |
2,223,762 |
1,482,405 |
366,644 |
Longman, Thomas |
publisher |
2,151,570 |
1,290,462 |
376,116 |
Baldwin, Robert I |
publisher |
2,198,299 |
1,205,681 |
295,838 |
Johnston, William |
publisher |
2,022,684 |
1,154,143 |
269,345 |
Law, Bedwell |
publisher |
1,898,245 |
1,168,379 |
202,881 |
Caslon, Thomas |
publisher |
1,746,599 |
1,019,840 |
169,876 |
Millar, Andrew |
publisher |
1,106,781 |
1,019,811 |
103,630 |
Cadell, Thomas Ii |
publisher |
1,532,521 |
1,077,625 |
102,436 |
F. and C. Rivington |
publisher |
1,200,125 |
848,237 |
62,670 |
Rivington, John |
publisher |
1,677,519 |
952,599 |
315,955 |
Hitch, Charles |
publisher |
1,679,834 |
924,538 |
356,793 |
Johnson, John |
publisher |
1,083,707 |
810,070 |
45,961 |
Roberts, James |
publisher |
330,035 |
284,872 |
14,946 |
Dodsley, James |
publisher |
475,991 |
769,746 |
155,973 |
J. and F. Rivington |
publisher |
1,958,067 |
850,270 |
244,827 |
Becket, Thomas |
publisher |
1,071,697 |
677,106 |
109,737 |
Crowder, Stanley |
publisher |
1,308,686 |
868,411 |
156,221 |
Smith, W. |
publisher |
563,190 |
607,392 |
46,378 |
Faulkner, George |
publisher |
414,395 |
468,661 |
155,032 |
Hawes, Lacy |
publisher |
1,593,319 |
797,761 |
268,217 |
Byrne, P. |
publisher |
566,915 |
695,175 |
45,822 |
J. Exshaw |
publisher |
912,365 |
634,780 |
104,280 |
Lowndes, Thomas |
publisher |
1,125,863 |
625,525 |
94,955 |
Bettesworth, Arthur |
publisher |
1,312,172 |
680,405 |
121,995 |
Dilly, Charles |
publisher |
1,193,246 |
718,456 |
97,386 |
Williams, J. |
publisher |
798,596 |
655,527 |
216,092 |
Powell, S. |
publisher |
342,657 |
427,827 |
30,268 |
G. G. and J. Robinson |
publisher |
1,262,298 |
817,240 |
145,616 |
Strahan, Andrew |
publisher |
751,719 |
783,093 |
78,600 |
Wogan, P. |
publisher |
793,709 |
628,096 |
71,225 |
Innys, William |
publisher |
706,273 |
669,912 |
50,797 |
J. and P. Knapton |
publisher |
1,257,675 |
715,857 |
88,938 |
Moore, J. |
publisher |
577,855 |
622,757 |
68,884 |
Risk, George |
publisher |
641,645 |
408,317 |
46,347 |
E. and C. Dilly |
publisher |
726,445 |
529,597 |
41,533 |
Bell, John |
publisher |
359,019 |
339,855 |
43,276 |
Cooper, Mary Mrs |
publisher |
772,444 |
375,228 |
71,223 |
Potts, J. |
publisher |
588,490 |
498,298 |
84,973 |
Hodges, James Sir |
publisher |
876,704 |
552,919 |
51,409 |
Tonson, Jacob I |
publisher |
1,289,964 |
408,729 |
25,401 |
Crowder, Samuel |
publisher |
1,511,266 |
686,205 |
152,022 |
Jones, W. |
publisher |
460,346 |
494,068 |
100,237 |
J. and R. Tonson |
publisher |
1,154,142 |
444,654 |
19,641 |
Lowndes, William |
publisher |
958,062 |
474,887 |
78,275 |
Wilson, P. |
publisher |
594,576 |
419,824 |
45,390 |
Sleater, W. |
publisher |
459,521 |
443,016 |
66,073 |
Davies, Thomas |
publisher |
1,218,264 |
500,029 |
92,530 |
Powell, S. |
publisher |
390,958 |
296,485 |
40,135 |
Bladon, Samuel |
publisher |
782,157 |
391,761 |
141,788 |
Nichols, John |
publisher |
731,427 |
501,098 |
206,078 |
Osborne, Thomas Ii |
publisher |
669,777 |
615,210 |
200,673 |
Donaldson, A. |
publisher |
1,311,705 |
554,213 |
155,068 |
Johnson, John |
publisher |
822,874 |
580,469 |
70,063 |
Richardson, Joseph |
publisher |
740,391 |
546,232 |
102,450 |
Birt, Samuel |
publisher |
1,078,551 |
519,378 |
60,110 |
J. F. and C. Rivington |
publisher |
1,150,623 |
461,222 |
158,276 |
Ware, Richard I |
publisher |
772,511 |
501,768 |
52,429 |
Walker, T. |
publisher |
546,668 |
464,911 |
98,672 |
Harrison and Co |
publisher |
514,512 |
404,144 |
48,300 |
Nicoll, William |
publisher |
670,204 |
377,237 |
49,154 |
Gosling, Robert |
publisher |
433,197 |
542,626 |
41,792 |
Chamberlaine, D. |
publisher |
301,094 |
411,884 |
23,820 |
Buckland, James |
publisher |
525,912 |
411,005 |
106,942 |
Midwinter, Daniel |
publisher |
937,940 |
484,980 |
107,569 |
Ware, Catherine Mrs |
publisher |
822,709 |
517,758 |
60,864 |
Wilson, W. |
publisher |
647,210 |
423,109 |
29,152 |
Longman, Thomas |
publisher |
1,100,557 |
476,036 |
82,036 |
Lintott, Barnaby Bernard |
publisher |
631,004 |
313,009 |
100,418 |
Davis, Lockyer John |
publisher |
653,280 |
455,108 |
132,591 |
Rivington, Charles |
publisher |
595,882 |
422,355 |
47,805 |
Mears, William |
publisher |
653,958 |
413,807 |
24,410 |
Vernor and Hood |
publisher |
612,979 |
491,474 |
22,078 |
Wilkie, John |
publisher |
395,362 |
401,079 |
15,329 |
Walthoe, John I |
publisher |
588,401 |
451,991 |
56,240 |
Richardson, William |
publisher |
945,329 |
482,125 |
62,001 |
G. and T. Wilkie |
publisher |
1,005,105 |
430,375 |
60,045 |
Kearsley, George |
publisher |
618,931 |
303,646 |
51,288 |
Keith, George |
publisher |
808,693 |
438,661 |
39,557 |
Walker, John |
publisher |
958,726 |
461,104 |
57,629 |
Saunders, H. |
publisher |
295,874 |
312,485 |
64,222 |
Clarke, William |
publisher |
680,662 |
350,073 |
63,118 |
Davies, William |
publisher |
557,528 |
452,652 |
61,664 |
Payne, Thomas |
publisher |
1,205,284 |
450,713 |
36,690 |
Goldsmith, William |
publisher |
881,412 |
465,133 |
80,952 |
Nicholson, John |
publisher |
415,342 |
373,346 |
64,306 |
Motte, Benjamin |
publisher |
658,914 |
312,949 |
24,067 |
Bew, John |
publisher |
813,582 |
288,182 |
52,396 |
Robinson, Ranew |
publisher |
444,847 |
317,830 |
26,649 |
Clarke, John |
publisher |
550,145 |
325,767 |
46,256 |
Bathurst, Charles |
publisher |
1,113,717 |
316,166 |
188,003 |
Ward, John |
publisher |
936,219 |
362,393 |
68,545 |
Browne, Daniel Ii |
publisher |
681,391 |
353,489 |
53,637 |
Newbery, Elizabeth Mrs |
publisher |
783,393 |
295,656 |
39,809 |
Grierson, George |
publisher |
723,733 |
164,831 |
8,649 |
Lintot, Henry |
publisher |
890,530 |
323,730 |
43,163 |
Hinton, John |
publisher |
609,489 |
316,167 |
139,366 |
Hett, Richard |
publisher |
407,236 |
207,572 |
56,082 |
Scatcherd, James |
publisher |
807,026 |
284,784 |
59,147 |
Ward, Aaron |
publisher |
759,068 |
275,274 |
73,603 |
Horsfield, Robert |
publisher |
868,257 |
263,991 |
60,757 |
Pemberton, John |
publisher |
714,359 |
230,766 |
53,810 |
Woodfall, Henry |
publisher |
934,687 |
325,876 |
51,640 |
Osborn, John Ii |
publisher |
585,892 |
266,273 |
37,537 |
Brindley, John |
publisher |
495,443 |
166,988 |
14,033 |
Clay, Francis |
publisher |
875,395 |
128,369 |
58,600 |
Darby, John |
publisher |
585,774 |
88,820 |
55,938 |
In total, 19 roles, 10698 actors.
library(gghsci)
actor_split %>%
filter(set=="test") %>%
count(actor_role, ecco_id) %>%
count(actor_role, n) %>%
ggplot(aes(x=n,y=nn)) +
geom_col() +
theme_hsci_discrete() +
ylab("ECCO documents") +
xlab("Number of actors attached") +
ggtitle("Test set label count distribution by actor role") +
facet_wrap(~actor_role, scales="free")
Storing counts in `nn`, as `n` already present in input
ℹ Use `name = "new_name"` to pick a new name.

LS0tCnRpdGxlOiAiRUNDTyBtdWx0aS10YXJnZXQgc3BsaXQgY3JlYXRpb24iCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgY29kZV9mb2xkaW5nOiBoaWRlCiAgICB0b2M6IHllcyAgCiAgd29yZF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICBrZWVwX21kOiB5ZXMgIAotLS0KCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoZWNjb3IpCmxpYnJhcnkoZXN0Y3IpCmVjY29fY29yZSA8LSBsb2FkX2VjY29fY29yZSgpCmVzdGNfY29yZSA8LSBsb2FkX2VzdGNfY29yZSgpCmVzdGNfYWN0b3JfbGlua3MgPC0gbG9hZF9lc3RjX2FjdG9yX2xpbmtzKCkKZXN0Y19hY3RvcnMgPC0gbG9hZF9lc3RjX2FjdG9ycygpCndvcmtzIDwtIGVjY29fY29yZSAlPiUgCiAgbGVmdF9qb2luKGVzdGNfY29yZSwgam9pbl9ieShlc3RjX2lkKSkgJT4lCiAgcmVwbGFjZV9uYShsaXN0KHdvcmtfaWQ9InVua25vd24gd29yayIsIHB1YmxpY2F0aW9uX3BsYWNlPSJ1bmtub3duIHBsYWNlIG9mIHB1YmxpY2F0aW9uIikpICU+JQogIGdyb3VwX2J5KHdvcmtfaWQpICU+JQogIHN1bW1hcmlzZSgKICAgIGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXI9bWluKHB1YmxpY2F0aW9uX3llYXIpLAogICAgZWNjb19wYXJ0cz1zdHJfZmxhdHRlbihzb3J0KHVuaXF1ZShlY2NvX3BhcnQpKSwgY29sbGFwc2UgPSAifCIpLAogICAgZWNjb19sYW5ndWFnZXM9c3RyX2ZsYXR0ZW4oc29ydCh1bmlxdWUoZWNjb19sYW5ndWFnZSkpLCBjb2xsYXBzZSA9ICJ8IiksCiAgICBoYXNfcHJpY2VzPWFsbCghaXMubmEodG90YWxfcHJpY2UpKSwKICAgIHBsYWNlc19vZl9wdWJsaWNhdGlvbj1zdHJfZmxhdHRlbihzb3J0KHVuaXF1ZShwdWJsaWNhdGlvbl9wbGFjZSkpLCBjb2xsYXBzZSA9ICJ8IiksCiAgICBlY2NvX21vZHVsZXM9c3RyX2ZsYXR0ZW4oc29ydCh1bmlxdWUoZWNjb19tb2R1bGUpKSwgY29sbGFwc2UgPSAifCIpLCAuZ3JvdXBzPSJkcm9wIikgJT4lIAogIG11dGF0ZShlYXJsaWVzdF9wdWJsaWNhdGlvbl9kZWNhZGU9Zmxvb3IoZWFybGllc3RfcHVibGljYXRpb25feWVhci8xMCkqMTApICU+JQogIHNlbGVjdCh3b3JrX2lkLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl9kZWNhZGUsIGVjY29fcGFydHMsIGVjY29fbW9kdWxlcywgZWNjb19sYW5ndWFnZXMsIHBsYWNlc19vZl9wdWJsaWNhdGlvbiwgaGFzX3ByaWNlcykKCmVjY29faWRzX3RvX3dvcmtzIDwtIGVjY29fY29yZSAlPiUgCiAgbGVmdF9qb2luKGVzdGNfY29yZSwgam9pbl9ieShlc3RjX2lkKSkgJT4lCiAgcmVwbGFjZV9uYShsaXN0KHdvcmtfaWQ9InVua25vd24gd29yayIpKSAlPiUKICBzZWxlY3QoZWNjb19pZCwgd29ya19pZCkKYGBgCgpgYGB7cn0KZWNjb190ZXN0IDwtIHdvcmtzICU+JQogIGdyb3VwX2J5KGVjY29fcGFydHMsIGVjY29fbW9kdWxlcywgZWFybGllc3RfcHVibGljYXRpb25fZGVjYWRlLCBlY2NvX2xhbmd1YWdlcywgcGxhY2VzX29mX3B1YmxpY2F0aW9uLCBoYXNfcHJpY2VzKSAlPiUKICBzbGljZV9zYW1wbGUocHJvcD0wLjEpICU+JSAjIHNlbGVjdCBhdCBtb3N0IDEwJSBvZiB0aGUgd29ya3MKICBzbGljZV9zYW1wbGUobj01KSAlPiUgIyBmaWx0ZXIgZG93biB0byBtYXggNSBwZXIgZ3JvdXAKICBncm91cF9ieShlY2NvX21vZHVsZXMsIGVjY29fbGFuZ3VhZ2VzKSAlPiUKICBzbGljZV9zYW1wbGUobj0xMDAwKSAlPiUKICBncm91cF9ieShwbGFjZXNfb2ZfcHVibGljYXRpb24sIGVjY29fbGFuZ3VhZ2VzKSAlPiUKICBzbGljZV9zYW1wbGUobj0xMDAwKSAlPiUKICBncm91cF9ieShoYXNfcHJpY2VzLCBlY2NvX2xhbmd1YWdlcykgJT4lCiAgc2xpY2Vfc2FtcGxlKG49MTAwMCkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNsaWNlX3NhbXBsZShuPTEwMDApICU+JSAjIGl0ZXJhdGl2ZWx5IHBhcmUgZG93biBmdXJ0aGVyCiAgaW5uZXJfam9pbihlY2NvX2lkc190b193b3JrcykgJT4lCiAgc2VsZWN0KGVjY29faWQsIHdvcmtfaWQpCgplY2NvX3ZhbCA8LSB3b3JrcyAlPiUKICBhbnRpX2pvaW4oZWNjb190ZXN0KSAlPiUKICBncm91cF9ieShlY2NvX3BhcnRzLCBlY2NvX21vZHVsZXMsIGVhcmxpZXN0X3B1YmxpY2F0aW9uX2RlY2FkZSwgZWNjb19sYW5ndWFnZXMsIHBsYWNlc19vZl9wdWJsaWNhdGlvbiwgaGFzX3ByaWNlcykgJT4lCiAgc2xpY2Vfc2FtcGxlKHByb3A9MC4xKSAlPiUgIyBzZWxlY3QgYXQgbW9zdCAxMCUgb2YgdGhlIHdvcmtzCiAgc2xpY2Vfc2FtcGxlKG49NSkgJT4lICMgZmlsdGVyIGRvd24gdG8gbWF4IDUgcGVyIGdyb3VwCiAgZ3JvdXBfYnkoZWNjb19tb2R1bGVzLCBlY2NvX2xhbmd1YWdlcykgJT4lCiAgc2xpY2Vfc2FtcGxlKG49MTAwMCkgJT4lCiAgZ3JvdXBfYnkocGxhY2VzX29mX3B1YmxpY2F0aW9uLCBlY2NvX2xhbmd1YWdlcykgJT4lCiAgc2xpY2Vfc2FtcGxlKG49MTAwMCkgJT4lCiAgZ3JvdXBfYnkoaGFzX3ByaWNlcywgZWNjb19sYW5ndWFnZXMpICU+JQogIHNsaWNlX3NhbXBsZShuPTEwMDApICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzbGljZV9zYW1wbGUobj0xMDAwKSAlPiUgIyBpdGVyYXRpdmVseSBwYXJlIGRvd24gZnVydGhlcgogIGlubmVyX2pvaW4oZWNjb19pZHNfdG9fd29ya3MpICU+JQogIHNlbGVjdChlY2NvX2lkLCB3b3JrX2lkKQoKZWNjb190cmFpbiA8LSB3b3JrcyAlPiUKICBhbnRpX2pvaW4oZWNjb190ZXN0KSAlPiUKICBhbnRpX2pvaW4oZWNjb192YWwpICU+JQogIGlubmVyX2pvaW4oZWNjb19pZHNfdG9fd29ya3MpICU+JQogIHNlbGVjdChlY2NvX2lkLCB3b3JrX2lkKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KGhlcmUpCmVjY29fdGVzdCA8LSByZWFkX3RzdihoZXJlKCJkYXRhL291dHB1dC9lY2NvX3Rlc3Rfc3BsaXRfYnlfcGFydF9tb2R1bGVfbGFuZ3VhZ2VfcHJpY2VfcHVibGljYXRpb25fcGxhY2VfYW5kX2RlY2FkZS50c3YiKSkKZWNjb192YWwgPC0gcmVhZF90c3YoaGVyZSgiZGF0YS9vdXRwdXQvZWNjb192YWxfc3BsaXRfYnlfcGFydF9tb2R1bGVfbGFuZ3VhZ2VfcHJpY2VfcHVibGljYXRpb25fcGxhY2VfYW5kX2RlY2FkZS50c3YiKSkKZWNjb190cmFpbiA8LSByZWFkX3RzdihoZXJlKCJkYXRhL291dHB1dC9lY2NvX3RyYWluX3NwbGl0X2J5X3BhcnRfbW9kdWxlX2xhbmd1YWdlX3ByaWNlX3B1YmxpY2F0aW9uX3BsYWNlX2FuZF9kZWNhZGUudHN2IikpCmBgYAoKYGBge3J9CnRhcmdldHMgPC0gZWNjb19jb3JlICU+JQogIGxlZnRfam9pbihlc3RjX2NvcmUsIGpvaW5fYnkoZXN0Y19pZCkpICU+JQogIGxlZnRfam9pbihlc3RjX2NvcmUgJT4lIAogICAgICAgICAgICAgIGdyb3VwX2J5KHdvcmtfaWQpICU+JSAKICAgICAgICAgICAgICBmaWx0ZXIocHVibGljYXRpb25feWVhcj09bWluKHB1YmxpY2F0aW9uX3llYXIpKSAlPiUKICAgICAgICAgICAgICBzdW1tYXJpc2UoZWFybGllc3RfcHVibGljYXRpb25feWVhcj1taW4ocHVibGljYXRpb25feWVhciksIGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUgPSAhYW55KHVuY2VydGFpbiB8IGNpcmNhIHwgcmFuZ2UpKQogICAgICAgICAgICAgICwgam9pbl9ieSh3b3JrX2lkKQogICAgICAgICAgICApICU+JQogIHRyYW5zbXV0ZShlY2NvX2lkLCBlY2NvX3BhcnQsIGVjY29fbW9kdWxlLCBwdWJsaWNhdGlvbl95ZWFyLCBwdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlID0gIShpcy5uYShwdWJsaWNhdGlvbl95ZWFyKSB8IHVuY2VydGFpbiB8IGNpcmNhIHwgcmFuZ2UpLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBwcmltYXJ5X2xhbmd1YWdlLCB0b3RhbF9wcmljZSwgcHVibGljYXRpb25fcGxhY2UsIHB1YmxpY2F0aW9uX2NvdW50cnksIHB1YmxpY2F0aW9uX3BsYWNlX2RlZHVjZWQ9b3JnXzI2MF9hX3NxdWFyZV9icmFja2V0cywgcGFnZXM9ZWNjb19wYWdlcywgZXN0Y19pZCkKCmVjY29fdGVzdCA8LSBlY2NvX3Rlc3QgJT4lIGxlZnRfam9pbih0YXJnZXRzLCBqb2luX2J5KGVjY29faWQpKQplY2NvX3ZhbCA8LSBlY2NvX3ZhbCAlPiUgbGVmdF9qb2luKHRhcmdldHMsIGpvaW5fYnkoZWNjb19pZCkpCmVjY29fdHJhaW4gPC0gZWNjb190cmFpbiAlPiUgbGVmdF9qb2luKHRhcmdldHMsIGpvaW5fYnkoZWNjb19pZCkpCnNwbGl0IDwtIGVjY29fdGVzdCAlPiUgCiAgbXV0YXRlKHNldD0idGVzdCIpICU+JQogIHVuaW9uX2FsbCgKICAgIGVjY29fdmFsICU+JSAKICAgICAgbXV0YXRlKHNldD0idmFsIikKICApICU+JQogIHVuaW9uX2FsbCgKICAgIGVjY29fdHJhaW4gJT4lIAogICAgICBtdXRhdGUoc2V0PSJ0cmFpbiIpCiAgKQpgYGAKCmBgYHtyfQp0b19tb3ZlX3B1YmxpY2F0aW9uX3llYXIgPC0gc3BsaXQgJT4lIAogIGZpbHRlcihzZXQ9PSJ0cmFpbiIpICU+JSAKICBncm91cF9ieShwdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBwdWJsaWNhdGlvbl95ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICBhbnRpX2pvaW4oc3BsaXQgJT4lIAogICAgICAgICAgICAgIGZpbHRlcihzZXQhPSJ0cmFpbiIpICU+JSAKICAgICAgICAgICAgICBncm91cF9ieShwdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBwdWJsaWNhdGlvbl95ZWFyKSAlPiUgCiAgICAgICAgICAgICAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICAgICAgICAgICAgICBmaWx0ZXIod29ya3M+PTUpLCBqb2luX2J5KHB1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUsIHB1YmxpY2F0aW9uX3llYXIpKSAlPiUKICBmaWx0ZXIod29ya3M+PTEwKSAlPiUKICBpbm5lcl9qb2luKHNwbGl0ICU+JSAKICAgIGZpbHRlcihzZXQ9PSJ0cmFpbiIpKSAlPiUKICBkaXN0aW5jdChwdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBwdWJsaWNhdGlvbl95ZWFyLCB3b3JrX2lkKSAlPiUgCiAgZ3JvdXBfYnkocHVibGljYXRpb25feWVhcl9kZWZpbml0ZSwgcHVibGljYXRpb25feWVhcikgJT4lCiAgc2xpY2Vfc2FtcGxlKG49NSkKCnRvX21vdmVfcHVibGljYXRpb25feWVhcl92YWwgPC0gdG9fbW92ZV9wdWJsaWNhdGlvbl95ZWFyICU+JQogIHNsaWNlX3NhbXBsZShuPTIpICU+JQogIG11dGF0ZShuZXdfc2V0PSJ2YWwiKQoKdG9fbW92ZV9wdWJsaWNhdGlvbl95ZWFyIDwtIHRvX21vdmVfcHVibGljYXRpb25feWVhciAlPiUKICBhbnRpX2pvaW4odG9fbW92ZV9wdWJsaWNhdGlvbl95ZWFyX3ZhbCkgJT4lCiAgbXV0YXRlKG5ld19zZXQ9InRlc3QiKSAlPiUKICB1bmlvbl9hbGwodG9fbW92ZV9wdWJsaWNhdGlvbl95ZWFyX3ZhbCkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNlbGVjdCh3b3JrX2lkLCBuZXdfc2V0KQogIAp0b19tb3ZlX2VhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXIgPC0gc3BsaXQgJT4lIAogIGZpbHRlcihzZXQ9PSJ0cmFpbiIpICU+JSAKICBncm91cF9ieShlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICBhbnRpX2pvaW4oc3BsaXQgJT4lIAogICAgICAgICAgICAgIGZpbHRlcihzZXQhPSJ0cmFpbiIpICU+JSAKICAgICAgICAgICAgICBncm91cF9ieShlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyKSAlPiUgCiAgICAgICAgICAgICAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICAgICAgICAgICAgICBmaWx0ZXIod29ya3M+PTUpLCBqb2luX2J5KGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUsIGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXIpKSAlPiUKICBmaWx0ZXIod29ya3M+PTEwKSAlPiUKICBpbm5lcl9qb2luKHNwbGl0ICU+JSAKICAgIGZpbHRlcihzZXQ9PSJ0cmFpbiIpKSAlPiUKICBkaXN0aW5jdChlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlLCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyLCB3b3JrX2lkKSAlPiUgCiAgZ3JvdXBfYnkoZWFybGllc3RfcHVibGljYXRpb25feWVhcl9kZWZpbml0ZSwgZWFybGllc3RfcHVibGljYXRpb25feWVhcikgJT4lCiAgc2xpY2Vfc2FtcGxlKG49NSkKCnRvX21vdmVfZWFybGllc3RfcHVibGljYXRpb25feWVhcl92YWwgPC0gdG9fbW92ZV9lYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyICU+JQogIHNsaWNlX3NhbXBsZShuPTIpICU+JQogIG11dGF0ZShuZXdfc2V0PSJ2YWwiKQoKdG9fbW92ZV9lYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyIDwtIHRvX21vdmVfZWFybGllc3RfcHVibGljYXRpb25feWVhciAlPiUKICBhbnRpX2pvaW4odG9fbW92ZV9lYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX3ZhbCkgJT4lCiAgbXV0YXRlKG5ld19zZXQ9InRlc3QiKSAlPiUKICB1bmlvbl9hbGwodG9fbW92ZV9lYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyX3ZhbCkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNlbGVjdCh3b3JrX2lkLCBuZXdfc2V0KQoKdG9fbW92ZV9wcmltYXJ5X2xhbmd1YWdlIDwtIHNwbGl0ICU+JSAKICBmaWx0ZXIoc2V0PT0idHJhaW4iKSAlPiUgCiAgZ3JvdXBfYnkocHJpbWFyeV9sYW5ndWFnZSkgJT4lIAogIHN1bW1hcmlzZSh3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgYW50aV9qb2luKHNwbGl0ICU+JSAKICAgICAgICAgICAgICBmaWx0ZXIoc2V0IT0idHJhaW4iKSAlPiUgCiAgICAgICAgICAgICAgZ3JvdXBfYnkocHJpbWFyeV9sYW5ndWFnZSkgJT4lIAogICAgICAgICAgICAgIHN1bW1hcmlzZSh3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgICAgICAgICAgICAgZmlsdGVyKHdvcmtzPj01KSwgam9pbl9ieShwcmltYXJ5X2xhbmd1YWdlKSkgJT4lCiAgZmlsdGVyKHdvcmtzPj0xMCkgJT4lCiAgaW5uZXJfam9pbihzcGxpdCAlPiUgCiAgICBmaWx0ZXIoc2V0PT0idHJhaW4iKSkgJT4lCiAgZGlzdGluY3QocHJpbWFyeV9sYW5ndWFnZSwgd29ya19pZCkgJT4lIAogIGdyb3VwX2J5KHByaW1hcnlfbGFuZ3VhZ2UpICU+JQogIHNsaWNlX3NhbXBsZShuPTUpCgp0b19tb3ZlX3ByaW1hcnlfbGFuZ3VhZ2VfdmFsIDwtIHRvX21vdmVfcHJpbWFyeV9sYW5ndWFnZSAlPiUKICBzbGljZV9zYW1wbGUobj0yKSAlPiUKICBtdXRhdGUobmV3X3NldD0idmFsIikKCnRvX21vdmVfcHJpbWFyeV9sYW5ndWFnZSA8LSB0b19tb3ZlX3ByaW1hcnlfbGFuZ3VhZ2UgJT4lCiAgYW50aV9qb2luKHRvX21vdmVfcHJpbWFyeV9sYW5ndWFnZV92YWwpICU+JQogIG11dGF0ZShuZXdfc2V0PSJ0ZXN0IikgJT4lCiAgdW5pb25fYWxsKHRvX21vdmVfcHJpbWFyeV9sYW5ndWFnZV92YWwpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzZWxlY3Qod29ya19pZCwgbmV3X3NldCkKCnRvX21vdmVfcHVibGljYXRpb25fcGxhY2UgPC0gc3BsaXQgJT4lIAogIGZpbHRlcihzZXQ9PSJ0cmFpbiIpICU+JSAKICBncm91cF9ieShwdWJsaWNhdGlvbl9wbGFjZV9kZWR1Y2VkLCAgcHVibGljYXRpb25fcGxhY2UpICU+JSAKICBzdW1tYXJpc2Uod29ya3M9bl9kaXN0aW5jdCh3b3JrX2lkKSwgLmdyb3Vwcz0iZHJvcCIpICU+JQogIGFudGlfam9pbihzcGxpdCAlPiUgCiAgICAgICAgICAgICAgZmlsdGVyKHNldCE9InRyYWluIikgJT4lIAogICAgICAgICAgICAgIGdyb3VwX2J5KHB1YmxpY2F0aW9uX3BsYWNlX2RlZHVjZWQsICBwdWJsaWNhdGlvbl9wbGFjZSkgJT4lIAogICAgICAgICAgICAgIHN1bW1hcmlzZSh3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgICAgICAgICAgICAgZmlsdGVyKHdvcmtzPj01KSwgam9pbl9ieShwdWJsaWNhdGlvbl9wbGFjZV9kZWR1Y2VkLCAgcHVibGljYXRpb25fcGxhY2UpKSAlPiUKICBmaWx0ZXIod29ya3M+PTEwKSAlPiUKICBpbm5lcl9qb2luKHNwbGl0ICU+JSAKICAgIGZpbHRlcihzZXQ9PSJ0cmFpbiIpKSAlPiUKICBkaXN0aW5jdChwdWJsaWNhdGlvbl9wbGFjZV9kZWR1Y2VkLCAgcHVibGljYXRpb25fcGxhY2UsIHdvcmtfaWQpICU+JSAKICBncm91cF9ieShwdWJsaWNhdGlvbl9wbGFjZV9kZWR1Y2VkLCAgcHVibGljYXRpb25fcGxhY2UpICU+JQogIHNsaWNlX3NhbXBsZShuPTUpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzZWxlY3Qod29ya19pZCkKCnRvX21vdmVfcHVibGljYXRpb25fcGxhY2VfdmFsIDwtIHRvX21vdmVfcHVibGljYXRpb25fcGxhY2UgJT4lCiAgc2xpY2Vfc2FtcGxlKG49MikgJT4lCiAgbXV0YXRlKG5ld19zZXQ9InZhbCIpCgp0b19tb3ZlX3B1YmxpY2F0aW9uX3BsYWNlIDwtIHRvX21vdmVfcHVibGljYXRpb25fcGxhY2UgJT4lCiAgYW50aV9qb2luKHRvX21vdmVfcHVibGljYXRpb25fcGxhY2VfdmFsKSAlPiUKICBtdXRhdGUobmV3X3NldD0idGVzdCIpICU+JQogIHVuaW9uX2FsbCh0b19tb3ZlX3B1YmxpY2F0aW9uX3BsYWNlX3ZhbCkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNlbGVjdCh3b3JrX2lkLCBuZXdfc2V0KQoKZCA8LSBzcGxpdCAlPiUgCiAgbGVmdF9qb2luKGVzdGNfYWN0b3JfbGlua3MpICU+JSAKICBzZWxlY3Qoc2V0LCB3b3JrX2lkLCBhY3Rvcl9pZCwgYWN0b3Jfcm9sZXNfYWxsKSAlPiUgCiAgc2VwYXJhdGVfcm93cyhhY3Rvcl9yb2xlc19hbGwsIHNlcD0iOyAiKSAlPiUKICBkaXN0aW5jdCgpCgp0b19tb3ZlX2FjdG9yIDwtIGQgJT4lCiAgZmlsdGVyKHNldD09InRyYWluIikgJT4lIAogIGdyb3VwX2J5KGFjdG9yX2lkLGFjdG9yX3JvbGVzX2FsbCkgJT4lIAogIHN1bW1hcmlzZSh3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgYW50aV9qb2luKGQgJT4lIAogICAgICAgICAgICAgIGZpbHRlcihzZXQhPSJ0cmFpbiIpICU+JSAKICAgICAgICAgICAgICBncm91cF9ieShhY3Rvcl9yb2xlc19hbGwsIGFjdG9yX2lkKSAlPiUgCiAgICAgICAgICAgICAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICAgICAgICAgICAgICBmaWx0ZXIod29ya3M+PTUpLCBqb2luX2J5KGFjdG9yX2lkKSkgJT4lCiAgZmlsdGVyKHdvcmtzPj01MCkgJT4lCiAgaW5uZXJfam9pbihkICU+JSAKICAgIGZpbHRlcihzZXQ9PSJ0cmFpbiIpKSAlPiUKICBkaXN0aW5jdChhY3Rvcl9pZCwgd29ya19pZCkgJT4lIAogIGdyb3VwX2J5KGFjdG9yX2lkKSAlPiUKICBzbGljZV9zYW1wbGUobj03KQoKdG9fbW92ZV9hY3Rvcl92YWwgPC0gdG9fbW92ZV9hY3RvciAlPiUKICBzbGljZV9zYW1wbGUobj0yKSAlPiUKICBtdXRhdGUobmV3X3NldD0idmFsIikKCnRvX21vdmVfYWN0b3IgPC0gdG9fbW92ZV9hY3RvciAlPiUKICBhbnRpX2pvaW4odG9fbW92ZV9hY3Rvcl92YWwpICU+JQogIG11dGF0ZShuZXdfc2V0PSJ0ZXN0IikgJT4lCiAgdW5pb25fYWxsKHRvX21vdmVfYWN0b3JfdmFsKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgc2VsZWN0KHdvcmtfaWQsIG5ld19zZXQpCgp0b19tb3ZlIDwtIHRvX21vdmVfZWFybGllc3RfcHVibGljYXRpb25feWVhciAlPiUgCiAgdW5pb24odG9fbW92ZV9wdWJsaWNhdGlvbl95ZWFyKSAlPiUKICB1bmlvbih0b19tb3ZlX3ByaW1hcnlfbGFuZ3VhZ2UpICU+JQogIHVuaW9uKHRvX21vdmVfcHVibGljYXRpb25fcGxhY2UpICU+JQogIHVuaW9uKHRvX21vdmVfYWN0b3IpICU+JQogIGdyb3VwX2J5KHdvcmtfaWQpICU+JQogIHN1bW1hcmlzZShuZXdfc2V0PWlmX2Vsc2UoYW55KG5ld19zZXQ9PSJ0ZXN0IiksInRlc3QiLCAidmFsIikpCgpzcGxpdCA8LSBzcGxpdCAlPiUKICBsZWZ0X2pvaW4odG9fbW92ZSwgam9pbl9ieSh3b3JrX2lkKSkgJT4lCiAgbXV0YXRlKHNldD1jb2FsZXNjZShuZXdfc2V0LHNldCkpICU+JQogIHNlbGVjdCgtbmV3X3NldCkKYGBgCgpgYGB7cn0Kc3NwbGl0IDwtIHNwbGl0CndoaWxlIChUUlVFKSB7CiAgYmFkX3Rlc3QgPC0gc3BsaXQgJT4lCiAgICBmaWx0ZXIoc2V0IT0idHJhaW4iLCBwdWJsaWNhdGlvbl95ZWFyPDE3MDAgfCBwdWJsaWNhdGlvbl95ZWFyPjE4MDAgfCBlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyPjE4MDApICU+JQogICAgdW5pb24oc3BsaXQgJT4lCiAgICAgIGZpbHRlcihzZXQhPSJ0cmFpbiIpICU+JSAKICAgICAgYW50aV9qb2luKHNwbGl0ICU+JSBmaWx0ZXIoc2V0PT0idHJhaW4iKSwgam9pbl9ieShwdWJsaWNhdGlvbl9wbGFjZSkpCiAgICApICU+JQogICAgdW5pb24oc3BsaXQgJT4lCiAgICAgIGZpbHRlcihzZXQhPSJ0cmFpbiIpICU+JSAKICAgICAgYW50aV9qb2luKHNwbGl0ICU+JSBmaWx0ZXIoc2V0PT0idHJhaW4iKSwgam9pbl9ieShwdWJsaWNhdGlvbl9jb3VudHJ5KSkKICAgICkgJT4lCiAgICB1bmlvbihzcGxpdCAlPiUKICAgICAgZmlsdGVyKHNldCE9InRyYWluIikgJT4lIAogICAgICBhbnRpX2pvaW4oc3BsaXQgJT4lIGZpbHRlcihzZXQ9PSJ0cmFpbiIpLCBqb2luX2J5KHByaW1hcnlfbGFuZ3VhZ2UpKQogICAgKSAlPiUKICAgIHVuaW9uKHNwbGl0ICU+JQogICAgICBmaWx0ZXIoc2V0IT0idHJhaW4iKSAlPiUgCiAgICAgIGFudGlfam9pbihzcGxpdCAlPiUgZmlsdGVyKHNldD09InRyYWluIiksIGpvaW5fYnkocHVibGljYXRpb25fY291bnRyeSkpCiAgICApICU+JQogICAgZGlzdGluY3Qod29ya19pZCkgJT4lCiAgICBtdXRhdGUobmV3X3NldD0idHJhaW4iKQogIG9sZF9zcGxpdCA8LSBzcGxpdAogIHNwbGl0IDwtIHNwbGl0ICU+JQogICAgbGVmdF9qb2luKGJhZF90ZXN0LCBqb2luX2J5KHdvcmtfaWQpKSAlPiUKICAgIG11dGF0ZShzZXQ9Y29hbGVzY2UobmV3X3NldCxzZXQpKSAlPiUKICAgIHNlbGVjdCgtbmV3X3NldCkKICBpZiAoYWxsKG9sZF9zcGxpdCRzZXQ9PXNwbGl0JHNldCkpIGJyZWFrCn0KYGBgCgoKYGBge3J9Cm1ham9yX3ByaW1hcnlfbGFuZ3VhZ2UgPC0gc3BsaXQgJT4lIAogIGZpbHRlcihzZXQ9PSJ0ZXN0IikgJT4lIAogIGdyb3VwX2J5KHByaW1hcnlfbGFuZ3VhZ2UpICU+JSAKICBzdW1tYXJpc2Uod29ya3M9bl9kaXN0aW5jdCh3b3JrX2lkKSwgZG9jdW1lbnRzPW4oKSwgcGFnZXM9c3VtKHBhZ2VzKSkgJT4lCiAgdHJhbnNtdXRlKHByaW1hcnlfbGFuZ3VhZ2UsbWFqb3JfcHJpbWFyeV9sYW5ndWFnZT1pZl9lbHNlKGlzLm5hKHByaW1hcnlfbGFuZ3VhZ2UpIHwgd29ya3M+PTEwLHByaW1hcnlfbGFuZ3VhZ2UsICJPdGhlciIpKQoKc3BsaXQgPC0gc3BsaXQgJT4lCiAgbGVmdF9qb2luKG1ham9yX3ByaW1hcnlfbGFuZ3VhZ2UpCgptYWpvcl9wdWJsaWNhdGlvbl9wbGFjZSA8LSBzcGxpdCAlPiUKICBmaWx0ZXIoc2V0PT0idGVzdCIpICU+JSAKICBncm91cF9ieShwdWJsaWNhdGlvbl9wbGFjZSkgJT4lIAogIHN1bW1hcmlzZSh3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCBkb2N1bWVudHM9bigpLCBwYWdlcz1zdW0ocGFnZXMpKSAlPiUKICB0cmFuc211dGUocHVibGljYXRpb25fcGxhY2UsbWFqb3JfcHVibGljYXRpb25fcGxhY2U9aWZfZWxzZShpcy5uYShwdWJsaWNhdGlvbl9wbGFjZSkgfCB3b3Jrcz49MjAscHVibGljYXRpb25fcGxhY2UsICJPdGhlciIpKQoKc3BsaXQgPC0gc3BsaXQgJT4lCiAgbGVmdF9qb2luKG1ham9yX3B1YmxpY2F0aW9uX3BsYWNlKQoKbWFqb3JfcHVibGljYXRpb25fY291bnRyeSA8LSBzcGxpdCAlPiUKICBmaWx0ZXIoc2V0PT0idGVzdCIpICU+JSAKICBncm91cF9ieShwdWJsaWNhdGlvbl9jb3VudHJ5KSAlPiUgCiAgc3VtbWFyaXNlKHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIGRvY3VtZW50cz1uKCksIHBhZ2VzPXN1bShwYWdlcykpICU+JQogIHRyYW5zbXV0ZShwdWJsaWNhdGlvbl9jb3VudHJ5LG1ham9yX3B1YmxpY2F0aW9uX2NvdW50cnk9aWZfZWxzZShpcy5uYShwdWJsaWNhdGlvbl9jb3VudHJ5KSB8IHdvcmtzPj0xMCxwdWJsaWNhdGlvbl9jb3VudHJ5LCAiT3RoZXIiKSkKCnNwbGl0IDwtIHNwbGl0ICU+JQogIGxlZnRfam9pbihtYWpvcl9wdWJsaWNhdGlvbl9jb3VudHJ5KQpgYGAKCmBgYHtyfQphY3Rvcl9zcGxpdCA8LSBzcGxpdCAlPiUgCiAgaW5uZXJfam9pbihlc3RjX2FjdG9yX2xpbmtzKSAlPiUgCiAgc2VsZWN0KHNldCwgd29ya19pZCwgYWN0b3JfaWQsIGFjdG9yX3JvbGVzX2FsbCkgJT4lIAogIHNlcGFyYXRlX3Jvd3MoYWN0b3Jfcm9sZXNfYWxsLCBzZXA9IjsgIikgJT4lCiAgbXV0YXRlKGFjdG9yX3JvbGVzX2FsbD1pZl9lbHNlKGFjdG9yX3JvbGVzX2FsbD09InByaW50ZXIiLCJwdWJsaXNoZXIiLGFjdG9yX3JvbGVzX2FsbCkpICU+JQogIGRpc3RpbmN0KCkKCmJhZF90ZXN0X2FjdG9ycyA8LSBhY3Rvcl9zcGxpdCAlPiUKICBmaWx0ZXIoc2V0IT0idHJhaW4iKSAlPiUKICBhbnRpX2pvaW4oZCAlPiUgZmlsdGVyKHNldD09InRyYWluIiksIGpvaW5fYnkoYWN0b3JfaWQsIGFjdG9yX3JvbGVzX2FsbCkpICU+JQogIGRpc3RpbmN0KGFjdG9yX3JvbGVzX2FsbCwgYWN0b3JfaWQpCgphY3Rvcl9zcGxpdCA8LSBhY3Rvcl9zcGxpdCAlPiUgCiAgYW50aV9qb2luKGJhZF90ZXN0X2FjdG9ycykKCm1ham9yX2FjdG9yIDwtIGFjdG9yX3NwbGl0ICU+JQogIGZpbHRlcihzZXQ9PSJ0ZXN0IikgJT4lIAogIGdyb3VwX2J5KGFjdG9yX2lkLCBhY3Rvcl9yb2xlc19hbGwpICU+JSAKICBzdW1tYXJpc2Uod29ya3M9bigpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgdHJhbnNtdXRlKGFjdG9yX2lkLCBhY3Rvcl9yb2xlc19hbGwsIG1ham9yX2FjdG9yX2lkPWlmX2Vsc2UoaXMubmEoYWN0b3JfaWQpIHwgd29ya3M+PTUwLGFjdG9yX2lkLCAiT3RoZXIiKSkKCm1ham9yX2FjdG9yX3NwbGl0IDwtIGFjdG9yX3NwbGl0ICU+JQogIGlubmVyX2pvaW4obWFqb3JfYWN0b3IgJT4lIGZpbHRlcihtYWpvcl9hY3Rvcl9pZCE9Ik90aGVyIikpICU+JQogIHNlbGVjdCgtYWN0b3JfaWQpCgphY3Rvcl9zcGxpdCA8LSBhY3Rvcl9zcGxpdCAlPiUgCiAgaW5uZXJfam9pbihzcGxpdCAlPiUgCiAgICAgICAgICAgICAgIHNlbGVjdChlY2NvX2lkLCB3b3JrX2lkLCBwYWdlcykpICU+JSAKICBpbm5lcl9qb2luKGVzdGNfYWN0b3JzICU+JSAKICAgICAgICAgICAgICAgc2VsZWN0KGFjdG9yX2lkLCBuYW1lX3VuaWZpZWQpKSAlPiUgCiAgcmVuYW1lKGFjdG9yX3JvbGU9YWN0b3Jfcm9sZXNfYWxsKQoKbWFqb3JfYWN0b3Jfc3BsaXQgPC0gbWFqb3JfYWN0b3Jfc3BsaXQgJT4lIAogIGlubmVyX2pvaW4oc3BsaXQgJT4lIAogICAgICAgICAgICAgICBzZWxlY3QoZWNjb19pZCwgd29ya19pZCwgcGFnZXMpKSAlPiUgCiAgaW5uZXJfam9pbihlc3RjX2FjdG9ycyAlPiUgCiAgICAgICAgICAgICAgIHNlbGVjdChtYWpvcl9hY3Rvcl9pZD1hY3Rvcl9pZCwgbmFtZV91bmlmaWVkKSkgJT4lIAogIHJlbmFtZShhY3Rvcl9yb2xlPWFjdG9yX3JvbGVzX2FsbCkKYGBgCgpgYGB7cn0Kc3BsaXQgJT4lIAogIHdyaXRlX3RzdihoZXJlKCJkYXRhL291dHB1dC9lY2NvLW11bHRpLXRhcmdldC1zcGxpdC50c3YiKSxxdW90ZT0ibmVlZGVkIixuYT0iIikKYGBgCgpgYGB7cn0KYWN0b3Jfc3BsaXQgJT4lCiAgd3JpdGVfdHN2KGhlcmUoImRhdGEvb3V0cHV0L2VjY28tbXVsdGktdGFyZ2V0LWFjdG9yLXNwbGl0LnRzdiIpLHF1b3RlPSJuZWVkZWQiLG5hPSIiKQptYWpvcl9hY3Rvcl9zcGxpdCAlPiUKICB3cml0ZV90c3YoaGVyZSgiZGF0YS9vdXRwdXQvZWNjby1tdWx0aS10YXJnZXQtbWFqb3ItYWN0b3Itc3BsaXQudHN2IikscXVvdGU9Im5lZWRlZCIsbmE9IiIpCmBgYAoKCiMgT3ZlcmFsbAoKYGBge3J9CmxpYnJhcnkoZ3QpCgpzcGxpdCAlPiUKICAgIGdyb3VwX2J5KHNldCkgJT4lCiAgICBzdW1tYXJpc2UocGFnZXM9c3VtKHBhZ2VzKSxkb2N1bWVudHM9bigpLHdvcmtzPW5fZGlzdGluY3Qod29ya19pZCksIC5ncm91cHM9ImRyb3AiKSAlPiUKICAgIHBpdm90X2xvbmdlcihwYWdlczp3b3JrcykgJT4lIAogICAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbT1zZXQsdmFsdWVzX2Zyb209dmFsdWUpICU+JQogICAgbXV0YXRlKG5hbWU9ZmN0X3JlbGV2ZWwobmFtZSwid29ya3MiLCJkb2N1bWVudHMiLCJwYWdlcyIpKSAlPiUKICAgIGFycmFuZ2UobmFtZSkgJT4lCiAgICBndChyb3duYW1lX2NvbCA9ICJuYW1lIikgJT4lCiAgICB0YWJfaGVhZGVyKHRpdGxlID0gIk92ZXJhbGwiKSAlPiUKICAgIGZtdF9pbnRlZ2VyKGNvbHVtbnM9Yyh0ZXN0LHZhbCx0cmFpbikpCmBgYAoKYGBge3J9CnNwbGl0ICU+JSAKICBwaXZvdF9sb25nZXIoYyhlY2NvX3BhcnQsZWNjb19tb2R1bGUscHJpbWFyeV9sYW5ndWFnZSxtYWpvcl9wcmltYXJ5X2xhbmd1YWdlLHB1YmxpY2F0aW9uX2NvdW50cnksbWFqb3JfcHVibGljYXRpb25fY291bnRyeSxwdWJsaWNhdGlvbl9wbGFjZSxtYWpvcl9wdWJsaWNhdGlvbl9wbGFjZSkpICU+JQogIHNlbGVjdChuYW1lLHNldCx2YWx1ZSkgJT4lCiAgdW5pb25fYWxsKAogICAgbWFqb3JfYWN0b3Jfc3BsaXQgJT4lCiAgICAgIHRyYW5zbXV0ZShuYW1lPSJtYWpvcl9hY3Rvcl9pZCIsc2V0LHZhbHVlPW1ham9yX2FjdG9yX2lkKQogICkgJT4lCiAgdW5pb25fYWxsKAogICAgYWN0b3Jfc3BsaXQgJT4lCiAgICAgIHRyYW5zbXV0ZShuYW1lPSJhY3Rvcl9pZCIsc2V0LHZhbHVlPWFjdG9yX2lkKQogICkgJT4lCiAgZGlzdGluY3QobmFtZSxzZXQsdmFsdWUpICU+JQogIGNvdW50KHNldCxuYW1lKSAlPiUKICBwaXZvdF93aWRlcihuYW1lc19mcm9tPXNldCx2YWx1ZXNfZnJvbT1uKSAlPiUKICBndChyb3duYW1lX2NvbCA9ICJuYW1lIikgJT4lCiAgdGFiX2hlYWRlcih0aXRsZSA9ICJOdW1iZXIgb2YgdGFyZ2V0cyBieSB0YXNrIikgJT4lCiAgZm10X2ludGVnZXIoY29sdW1ucz1jKHRlc3QsdmFsLHRyYWluKSkKCmBgYAoKKyByZWdyZXNzaW9uIHRhc2tzOiBgZWFybGllc3RfcHVibGljYXRpb25feWVhcmAsIGBwdWJsaWNhdGlvbl95ZWFyYCwgYHRvdGFsX3ByaWNlYAoKIyBTaW5nbGUgbGFiZWwgdGFyZ2V0cwoKYGBge3J9CnByaW50X3NwbGl0IDwtIGZ1bmN0aW9uKHNwbGl0LCBncm91cF92YXIsIGdyb3VwX3Zhcl9uYW1lLCBtYWpvcj1GQUxTRSwgb3JkZXJfYnlfZnJlcXVlbmN5PVRSVUUpIHsKICBncm91cF92YXIgPSBlbnF1byhncm91cF92YXIpCiAgZCA8LSBzcGxpdCAlPiUKICAgIGdyb3VwX2J5KHNldCwgISFncm91cF92YXIpICU+JQogICAgc3VtbWFyaXNlKHBhZ2VzPXN1bShwYWdlcyksZG9jdW1lbnRzPW4oKSx3b3Jrcz1uX2Rpc3RpbmN0KHdvcmtfaWQpLCAuZ3JvdXBzPSJkcm9wIikgJT4lCiAgICBwaXZvdF9sb25nZXIocGFnZXM6d29ya3MpICU+JSAKICAgIHBpdm90X3dpZGVyKG5hbWVzX2Zyb209c2V0LHZhbHVlc19mcm9tPXZhbHVlKSAlPiUKICAgIG11dGF0ZShuYW1lPWZjdF9yZWxldmVsKG5hbWUsIndvcmtzIiwiZG9jdW1lbnRzIiwicGFnZXMiKSkKICBkIDwtIGlmIChvcmRlcl9ieV9mcmVxdWVuY3kpIGQgJT4lIG11dGF0ZShncm91cF92YXI9ZmN0X3Jlb3JkZXIoISFncm91cF92YXIsIHRyYWluLCAuZGVzYz1UUlVFKSkgZWxzZSBkICU+JSBtdXRhdGUoZ3JvdXBfdmFyPSEhZ3JvdXBfdmFyKQogIGQgJT4lCiAgICBzZWxlY3QoLSEhZ3JvdXBfdmFyKSAlPiUKICAgIGFycmFuZ2UobmFtZSxncm91cF92YXIpICU+JQogICAgZ3QoZ3JvdXBuYW1lX2NvbCA9ICJuYW1lIiwgcm93bmFtZV9jb2w9Imdyb3VwX3ZhciIpICU+JQogICAgdGFiX2hlYWRlcih0aXRsZSA9IHN0cl9jKCJCeSAiLGdyb3VwX3Zhcl9uYW1lKSwgc3VidGl0bGU9c3RyX2MoIigiLCBpZiAobWFqb3IpICJtYWpvciBvbmx5LCAiIGVsc2UgIiIsIHNwbGl0ICU+JSBmaWx0ZXIoc2V0PT0idGVzdCIpICU+JSBkaXN0aW5jdCghIWdyb3VwX3ZhcikgJT4lIGNvdW50KCkgJT4lIHB1bGwoKSwgIiB0YXJnZXRzKSIpKSAlPiUKICAgIGZtdF9pbnRlZ2VyKGNvbHVtbnM9Yyh0ZXN0LHZhbCx0cmFpbikpCn0KYGBgCgojIyBFQ0NPIHBhcnQKCmBgYHtyfQpzcGxpdCAlPiUgCiAgcHJpbnRfc3BsaXQoZWNjb19wYXJ0LCAiRUNDTyBwYXJ0IikKYGBgCgojIyBFQ0NPIG1vZHVsZQoKYGBge3J9CnNwbGl0ICU+JSAKICBwcmludF9zcGxpdChlY2NvX21vZHVsZSwgIkVDQ08gbW9kdWxlIikKYGBgCgojIyBQcmltYXJ5IGxhbmd1YWdlCgpgYGB7cn0Kc3BsaXQgJT4lIAogIHByaW50X3NwbGl0KG1ham9yX3ByaW1hcnlfbGFuZ3VhZ2UsICJwcmltYXJ5IGxhbmd1YWdlIiwgVFJVRSkKc3BsaXQgJT4lIAogIHByaW50X3NwbGl0KHByaW1hcnlfbGFuZ3VhZ2UsICJwcmltYXJ5IGxhbmd1YWdlIikKYGBgCgojIyBQdWJsaWNhdGlvbiBjb3VudHJ5CgpgYGB7cn0Kc3BsaXQgJT4lIAogIHByaW50X3NwbGl0KG1ham9yX3B1YmxpY2F0aW9uX2NvdW50cnksICJwdWJsaWNhdGlvbiBjb3VudHJ5IiwgVFJVRSkKc3BsaXQgJT4lIAogIHByaW50X3NwbGl0KHB1YmxpY2F0aW9uX2NvdW50cnksICJwdWJsaWNhdGlvbiBjb3VudHJ5IikKYGBgCgojIyBQdWJsaWNhdGlvbiBwbGFjZQoKYGBge3J9CnNwbGl0ICU+JSAKICBwcmludF9zcGxpdChtYWpvcl9wdWJsaWNhdGlvbl9wbGFjZSwgInB1YmxpY2F0aW9uIHBsYWNlIiwgVFJVRSkKc3BsaXQgJT4lIAogIHByaW50X3NwbGl0KHB1YmxpY2F0aW9uX3BsYWNlLCAicHVibGljYXRpb24gcGxhY2UiKQpgYGAKCiMjIFllYXIgb2YgZWFybGllc3QgcHVibGljYXRpb24gCgpgYGB7cn0Kc3BsaXQgJT4lCiAgY291bnQoc2V0LGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUpICU+JQogIGdncGxvdChhZXMoeD1zZXQseT1uLGZpbGw9ZWFybGllc3RfcHVibGljYXRpb25feWVhcl9kZWZpbml0ZSkpICsKICBnZW9tX2NvbChwb3NpdGlvbj0nZG9kZ2UnKSArCiAgdGhlbWVfaHNjaV9kaXNjcmV0ZSgpICsKICBjb29yZF9mbGlwKCkgKwogIHlsYWIoIkVDQ08gZG9jdW1lbnRzIikgKwogIHhsYWIoIlNldCIpICsKICBsYWJzKGZpbGw9IkRhdGUgY2VydGFpbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb249ImJvdHRvbSIpICsgCiAgZ2d0aXRsZSgiVW5jZXJ0YWludHkvY2VydGFpbnR5IG9mIGRhdGluZyB0aGUgZWFybGllc3QgeWVhciBvZiBwdWJsaWNhdGlvbiIpCmBgYAoKYGBge3J9CnNwbGl0ICU+JQogIGNvdW50KHNldCxlYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyLGVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUpICU+JQogIGdncGxvdChhZXMoeD1lYXJsaWVzdF9wdWJsaWNhdGlvbl95ZWFyLHk9bixmaWxsPWVhcmxpZXN0X3B1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUpKSArCiAgZ2VvbV9jb2wocG9zaXRpb249J3N0YWNrJyx3aWR0aD0xKSArCiAgdGhlbWVfaHNjaV9kaXNjcmV0ZSgpICsKICB5bGFiKCJFQ0NPIGRvY3VtZW50cyIpICsKICB4bGFiKCJZZWFyIikgKwogIGxhYnMoZmlsbD0iRGF0ZSBjZXJ0YWluIikgKyAgICAKICB0aGVtZShsZWdlbmQucG9zaXRpb249ImJvdHRvbSIpICsgCiAgZmFjZXRfd3JhcCh+c2V0LCBzY2FsZXM9ImZyZWUiKSArCiAgZ2d0aXRsZSgiRWFybGllc3QgeWVhciBvZiBwdWJsaWNhdGlvbiIpCgpgYGAKCgpgYGB7cn0Kc3BsaXQgJT4lIAogIG11dGF0ZShlYXJsaWVzdF9wdWJsaWNhdGlvbl9kZWNhZGU9Zmxvb3IoZWFybGllc3RfcHVibGljYXRpb25feWVhci8xMCkqMTApICU+JQogIHByaW50X3NwbGl0KGVhcmxpZXN0X3B1YmxpY2F0aW9uX2RlY2FkZSwgImVhcmxpZXN0IHB1YmxpY2F0aW9uIGRlY2FkZSIsIG9yZGVyX2J5X2ZyZXF1ZW5jeT1GQUxTRSkKYGBgCgojIyBZZWFyIG9mIHB1YmxpY2F0aW9uIAoKYGBge3J9CnNwbGl0ICU+JQogIGNvdW50KHNldCxwdWJsaWNhdGlvbl95ZWFyX2RlZmluaXRlKSAlPiUKICBnZ3Bsb3QoYWVzKHg9c2V0LHk9bixmaWxsPXB1YmxpY2F0aW9uX3llYXJfZGVmaW5pdGUpKSArCiAgZ2VvbV9jb2wocG9zaXRpb249J2RvZGdlJykgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeWxhYigiRUNDTyBkb2N1bWVudHMiKSArCiAgeGxhYigiU2V0IikgKwogIGxhYnMoZmlsbD0iRGF0ZSBjZXJ0YWluIikgKyAgICAKICB0aGVtZShsZWdlbmQucG9zaXRpb249ImJvdHRvbSIpICsgCiAgY29vcmRfZmxpcCgpICsKICBnZ3RpdGxlKCJVbmNlcnRhaW50eS9jZXJ0YWludHkgb2YgZGF0aW5nIHRoZSB5ZWFyIG9mIHB1YmxpY2F0aW9uIikKYGBgCgpgYGB7cn0Kc3BsaXQgJT4lCiAgY291bnQoc2V0LHB1YmxpY2F0aW9uX3llYXIscHVibGljYXRpb25feWVhcl9kZWZpbml0ZSkgJT4lCiAgZ2dwbG90KGFlcyh4PXB1YmxpY2F0aW9uX3llYXIseT1uLGZpbGw9cHVibGljYXRpb25feWVhcl9kZWZpbml0ZSkpICsKICBnZW9tX2NvbChwb3NpdGlvbj0nc3RhY2snLHdpZHRoPTEpICsKICB0aGVtZV9oc2NpX2Rpc2NyZXRlKCkgKwogIHlsYWIoIkVDQ08gZG9jdW1lbnRzIikgKwogIHhsYWIoIlllYXIiKSArCiAgbGFicyhmaWxsPSJEYXRlIGNlcnRhaW4iKSArICAgIAogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0iYm90dG9tIikgKyAKICBmYWNldF93cmFwKH5zZXQsIHNjYWxlcz0iZnJlZSIpICsKICBnZ3RpdGxlKCJZZWFyIG9mIHB1YmxpY2F0aW9uIikKYGBgCgpgYGB7cn0Kc3BsaXQgJT4lIAogIG11dGF0ZShwdWJsaWNhdGlvbl9kZWNhZGU9Zmxvb3IocHVibGljYXRpb25feWVhci8xMCkqMTApICU+JQogIHByaW50X3NwbGl0KHB1YmxpY2F0aW9uX2RlY2FkZSwgInB1YmxpY2F0aW9uIGRlY2FkZSIsIG9yZGVyX2J5X2ZyZXF1ZW5jeT1GQUxTRSkKYGBgCgojIyBQcmljZQoKYGBge3J9CnNwbGl0ICU+JSAKICBtdXRhdGUoaGFzX3ByaWNlPSFpcy5uYSh0b3RhbF9wcmljZSkpICU+JQogIGNvdW50KHNldCxoYXNfcHJpY2UpICU+JQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb209c2V0LHZhbHVlc19mcm9tPW4pICU+JQogIGd0KHJvd25hbWVfY29sID0gInNldCIpICU+JQogICAgdGFiX2hlYWRlcih0aXRsZSA9ICJQcmljZSBpbmZvcm1hdGlvbiBhdmFpbGFiaWxpdHkiKSAlPiUKICAgIGZtdF9pbnRlZ2VyKGNvbHVtbnM9Yyh0ZXN0LHZhbCx0cmFpbikpCmBgYAoKCmBgYHtyfQpzcGxpdCAlPiUKICBjb3VudChzZXQsdG90YWxfcHJpY2UpICU+JQogIGdncGxvdChhZXMoeD10b3RhbF9wcmljZSx5PW4pKSArCiAgZ2VvbV9jb2wod2lkdGg9MSkgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeWxhYigiRUNDTyBkb2N1bWVudHMiKSArCiAgeGxhYigiUHJpY2UiKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJib3R0b20iKSArIAogIGZhY2V0X3dyYXAofnNldCwgc2NhbGVzPSJmcmVlIiwgbmNvbD0xKSArCiAgZ2d0aXRsZSgiUHJpY2VzIikKYGBgCgoKIyBNdWx0aS1sYWJlbCB0YXJnZXRzCgojIyBBY3RvcnMKCmBgYHtyfQpsaWJyYXJ5KGdnaHNjaSkKbWFqb3JfYWN0b3Jfc3BsaXQgJT4lCiAgZmlsdGVyKHNldD09InRlc3QiKSAlPiUKICBjb3VudChlY2NvX2lkKSAlPiUKICBjb3VudChuKSAlPiUKICBnZ3Bsb3QoYWVzKHg9bix5PW5uKSkgKwogIGdlb21fY29sKCkgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeWxhYigiRUNDTyBkb2N1bWVudHMiKSArCiAgeGxhYigiTnVtYmVyIG9mIGFjdG9ycyBhdHRhY2hlZCIpICsKICBnZ3RpdGxlKCJUZXN0IHNldCBsYWJlbCBjb3VudCBkaXN0cmlidXRpb24gKG1ham9yIG9ubHkpIikKYGBgCgoKYGBge3J9Cm1ham9yX2FjdG9yX3NwbGl0ICU+JSAKICBncm91cF9ieShzZXQsIG1ham9yX2FjdG9yX2lkLCBhY3Rvcl9yb2xlLCBuYW1lX3VuaWZpZWQpICU+JQogIHN1bW1hcmlzZShwYWdlcz1zdW0ocGFnZXMpLGRvY3VtZW50cz1uKCksd29ya3M9bl9kaXN0aW5jdCh3b3JrX2lkKSwgLmdyb3Vwcz0iZHJvcCIpICU+JQogIHBpdm90X2xvbmdlcihwYWdlczp3b3JrcykgJT4lIAogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb209c2V0LHZhbHVlc19mcm9tPXZhbHVlKSAlPiUKICBtdXRhdGUobmFtZT1mY3RfcmVsZXZlbChuYW1lLCJ3b3JrcyIsImRvY3VtZW50cyIsInBhZ2VzIikpICU+JQogIG11dGF0ZShtYWpvcl9hY3Rvcl9pZD1mY3RfcmVvcmRlcihtYWpvcl9hY3Rvcl9pZCwgdHJhaW4sIC5kZXNjPVRSVUUpKSAlPiUKICBhcnJhbmdlKG5hbWUsbWFqb3JfYWN0b3JfaWQpICU+JQogIHNlbGVjdCgtbWFqb3JfYWN0b3JfaWQpICU+JQogIGd0KGdyb3VwbmFtZV9jb2wgPSAibmFtZSIsIHJvd25hbWVfY29sPSJuYW1lX3VuaWZpZWQiKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIkJ5IGFjdG9yIiwgc3VidGl0bGU9c3RyX2MoIihtYWpvciBvbmx5LCAiLCBtYWpvcl9hY3Rvcl9zcGxpdCAlPiUgZmlsdGVyKHNldD09InRlc3QiKSAlPiUgZGlzdGluY3QobWFqb3JfYWN0b3JfaWQpICU+JSBjb3VudCgpICU+JSBwdWxsKCksICIgdGFyZ2V0cykiKSkgJT4lCiAgZm10X2ludGVnZXIoY29sdW1ucz1jKHRlc3QsdmFsLHRyYWluKSkKYGBgCgpJbiB0b3RhbCwgYHIgYWN0b3Jfc3BsaXQgJT4lIGZpbHRlcihzZXQ9PSJ0ZXN0IikgJT4lIGRpc3RpbmN0KGFjdG9yX3JvbGUpICU+JSBjb3VudCgpICU+JSBwdWxsKClgIHJvbGVzLCBgciBhY3Rvcl9zcGxpdCAlPiUgZmlsdGVyKHNldD09InRlc3QiKSAlPiUgZGlzdGluY3QoYWN0b3JfaWQpICU+JSBjb3VudCgpICU+JSBwdWxsKClgIGFjdG9ycy4KCmBgYHtyfQpsaWJyYXJ5KGdnaHNjaSkKYWN0b3Jfc3BsaXQgJT4lCiAgZmlsdGVyKHNldD09InRlc3QiKSAlPiUKICBjb3VudChhY3Rvcl9yb2xlLCBlY2NvX2lkKSAlPiUKICBjb3VudChhY3Rvcl9yb2xlLCBuKSAlPiUKICBnZ3Bsb3QoYWVzKHg9bix5PW5uKSkgKwogIGdlb21fY29sKCkgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeWxhYigiRUNDTyBkb2N1bWVudHMiKSArCiAgeGxhYigiTnVtYmVyIG9mIGFjdG9ycyBhdHRhY2hlZCIpICsKICBnZ3RpdGxlKCJUZXN0IHNldCBsYWJlbCBjb3VudCBkaXN0cmlidXRpb24gYnkgYWN0b3Igcm9sZSIpICsKICBmYWNldF93cmFwKH5hY3Rvcl9yb2xlLCBzY2FsZXM9ImZyZWUiKQpgYGAKCg==