Skip to content

Instantly share code, notes, and snippets.

@mlitwin
Last active October 20, 2022 07:40
Show Gist options
  • Save mlitwin/1a5471ae2897c360914247bc8db6b57a to your computer and use it in GitHub Desktop.
Save mlitwin/1a5471ae2897c360914247bc8db6b57a to your computer and use it in GitHub Desktop.
Sort CFIs Coding Problem

CFI Sorting Coding Problem

https://tinyurl.com/yyjoo77j

Introduction

McGraw Hill Education does a lot of work with eBooks, including creating software that allows authors to annotate eBook content with various bits of metadata. We use EPub CFIs to locate areas of content in an epub. To present them to the user, we need to sort them in linear eBook order.

Please implement a sort of CFIs into linear order for the data set below. Php or node implementations are preferred, since php and JavaScript are the most common languages in the team's codebase.

Problem Statement

The implementation should:

  • Take as input a list of CFIs in the cfis.txt file. It's fine to hard code this.
  • Produce as output a sorted list of these CFIs, with a sort order as defined below.

Please include:

The output should be a sorted list of the CFIs in the cfi.txt file.

CFI Structure

Here's a sample CFI of the kind we use:

epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/116[data-uuid-d514513169234d1dbcefa30a0148a693]/1:0,/120[data-uuid-7c6df9bf05ab40a0b1cf484433a28493]/1:553)

Here is a psuedo-code description of how to break down a CFI into a form which is usable for sorting.

1) Start with the CFI as a string.

epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/116[data-uuid-d514513169234d1dbcefa30a0148a693]/1:0,/120[data-uuid-7c6df9bf05ab40a0b1cf484433a28493]/1:553)

2) Get rid of the epubcfi() wrapper.

/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/116[data-uuid-d514513169234d1dbcefa30a0148a693]/1:0,/120[data-uuid-7c6df9bf05ab40a0b1cf484433a28493]/1:553

3) Find the part of it that represents the start of the range. A CFI will have the form of P,S,E, where P is a common parent, S is the start subpath, and E is the end subpath. So the start is then PS.

/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/116[data-uuid-d514513169234d1dbcefa30a0148a693]/1:0

4) Get rid of irrelevant markup - we are just looking for the nice integers.

/6/392/4/116/1:0

5) Extract the integers from the string, into an array. The string is "basically" / separated, but has a : used as well.

[6, 392, 4, 116, 1, 0]

And the array of integers implies a lexicographical sort order for CFIs, where we compare arrays based on the first element which is different (and then breaking any ties by taking shorter arrays to be smaller than larger ones). For example, [6, 392, 4, 0] < [6, 392, 4, 116, 1, 0] .

See http://www.idpf.org/epub/linking/cfi/epub-cfi.html and especially http://www.idpf.org/epub/linking/cfi/epub-cfi.html#sec-sorting for a more general definition.

epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/116[data-uuid-d514513169234d1dbcefa30a0148a693]/1:0,/120[data-uuid-7c6df9bf05ab40a0b1cf484433a28493]/1:553)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/16[data-uuid-59056f0b33a144929eb7810513ae7131],/1:0,/1:292)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/4[data-uuid-0b74781f8f0249a7b61e634b3b384603],/1:0,/2[data-uuid-00188e7d90954da7a232cbafff5004ee])
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/4[data-uuid-faeea46a183749d882f57cb4944230e4]/2[data-uuid-6c3caf66cd4249799949c9fda206c3c0]/1,:0,:10)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/52[data-uuid-f1e997e7a74b4e30846f6dd3374aa8d8],/1:0,/1:392)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/6[data-uuid-d94404f2de1048bf9e82e7222bbdcbd3],/1:0,/2[data-uuid-fbb35aefc1f54f3d98027e68e4e9384d])
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/4[data-uuid-faeea46a183749d882f57cb4944230e4]/2[data-uuid-6c3caf66cd4249799949c9fda206c3c0]/1,:39,:47)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/94[data-uuid-8d9d4c98195344dbbd38aee568a89971]/2/1:0,/96[data-uuid-f2acb6ac1f0c47649d454fdb7e90a6e2]/8/13:126)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/2[data-uuid-9c09bd19fb8340879c8866b7c04b87fc]/6[data-uuid-de756dd4d9754793be0a4534e0870e14]/2[data-uuid-f62a95164d1e4e84b40fd94cad2080e6]/4[data-uuid-40b9274a91f74ed380934e5b63b5a016]/2[data-uuid-86eb4222998b4611bc6630599279884d]/2/1,:15,:22)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/138[data-uuid-97d10ad9ebfa4563ba1f3d2b58bf4d99],/1:0,/5:136)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/22[data-uuid-e1be5ab394ed4349923853ac04559005],/6/2/1:0,/7:350)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/2[data-uuid-9c09bd19fb8340879c8866b7c04b87fc]/6[data-uuid-de756dd4d9754793be0a4534e0870e14]/2[data-uuid-f62a95164d1e4e84b40fd94cad2080e6]/4[data-uuid-40b9274a91f74ed380934e5b63b5a016]/2[data-uuid-86eb4222998b4611bc6630599279884d]/2/1,:11,:17)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/2[data-uuid-9c09bd19fb8340879c8866b7c04b87fc]/6[data-uuid-de756dd4d9754793be0a4534e0870e14]/2[data-uuid-f62a95164d1e4e84b40fd94cad2080e6]/4[data-uuid-40b9274a91f74ed380934e5b63b5a016]/2[data-uuid-86eb4222998b4611bc6630599279884d]/2/1,:24,:29)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/12[data-uuid-0d4eb826e69d4886a9311e2a9af053eb]/4,/4/1:0,/7:117)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/36[data-uuid-782cd055f1534ae29b1eba12820f81f1]/6[data-uuid-8fa50946e87c4be88f7ccc55bc46b4cb]/2[data-uuid-ea9c7dfc2cbf4a5099e795282e53cd3e]/2[data-uuid-f42697f46eb844c991973c2a4dad96c4]/3,:17,:29)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/2[data-uuid-b9c27d2f9899457fbca105b5b7388aa5]/2[data-uuid-58af2fff3da7474a806220d8238341be],/1:0,/2[data-uuid-7c1c46f29e5b4f0096d7d0661a34c2ba])
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/10[data-uuid-9e7a328b025046e0a664787183e01194],/4/2/1:0,/5:311)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/168[data-uuid-815f8a2d2f014ae18f69e557e20574ca]/1:0,/172[data-uuid-ebba014a2039443aad0f78360f42d9c1]/3:2)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/204[data-uuid-beb976c72231438a96e8c135c01eabab],/1:0,/3:2)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/122[data-uuid-36f508dfb614430bb3a3d98f0b3069f0],/1:0,/5:103)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/22[data-uuid-9689c7706d9c42659839b9eb0130a0a7],/1:0,/3:908)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/196[data-uuid-234194daa34a4abfbbc81d6cb54f2e71],/1:0,/9:167)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/6[data-uuid-8342654690f64a4389e73e0d0f97bf15],/11:39,/11:270)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4,/36[data-uuid-ed4dd97515f54c88892562bbe1c7f945]/1:0,/38[data-uuid-e7ac002e94ba4a4caff52bd219d36c39]/5:307)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/36[data-uuid-782cd055f1534ae29b1eba12820f81f1]/6[data-uuid-8fa50946e87c4be88f7ccc55bc46b4cb]/2[data-uuid-ea9c7dfc2cbf4a5099e795282e53cd3e]/2[data-uuid-f42697f46eb844c991973c2a4dad96c4]/3,:10,:16)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/114[data-uuid-0ede39fda8ea4cf596cdcd9ed6aba069],/1:0,/1:531)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4,/28[data-uuid-842e44a601ee418cbe80d1178e40e209]/1:0,/30[data-uuid-55acc927c95f4654bd4422d947003ffd]/1:558)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/12[data-uuid-0d4eb826e69d4886a9311e2a9af053eb],/1:0,/2[data-uuid-726beaa8529e4828b61fcbaff9a168aa])
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/34[data-uuid-7ff4cabc49fc4b679142d6fa3877e35a],/1:0,/1:672)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/26[data-uuid-389c52dc7a1c4a02afb7f28784de8167]/1,:0,:35)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/22[data-uuid-e1be5ab394ed4349923853ac04559005],/2/2/1:0,/5:230)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4,/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279]/7:300,/8[data-uuid-ec5b801e13d6446680314c36aa2c2125]/2[data-uuid-1039f9972bff48d98d7a7a66cf356131]/2[data-uuid-4a071c4162a74e5da135c43e4a5db173]/4/4/1:6)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/134[data-uuid-809378fac9cb4f48bb19cf5b221b41af],/2/2/1:0,/3:124)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/2[data-uuid-c3f62a24abd141e59eb99450f1d3fb34]/2[data-uuid-d55e3dd4612742f397ff61141d2615b7]/1,:20,:37)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/198[data-uuid-47ddec72632048da9699ad8decde6be1],/1:0,/9:2)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279],/1:0,/7:198)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/140[data-uuid-a9d5b58ac2fb44548a6b56e7753a26dd]/1:0,/142[data-uuid-3010d2ec390d4bab879219c6db433014]/1:594)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279],/7:2,/7:300)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/2[data-uuid-9c09bd19fb8340879c8866b7c04b87fc]/6[data-uuid-de756dd4d9754793be0a4534e0870e14]/2[data-uuid-f62a95164d1e4e84b40fd94cad2080e6]/4[data-uuid-40b9274a91f74ed380934e5b63b5a016]/2[data-uuid-86eb4222998b4611bc6630599279884d]/2/1,:1,:7)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/92[data-uuid-b396b93c68a743938d5324ae620fa7c9]/4[data-uuid-4e71e89bc5eb455c8f29cf253541c3de]/2[data-uuid-d88a6565f428416184ead19d2597bb21],/2/1:0,/5:44)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/132[data-uuid-7e6ca2d624df458883a7e8c09df01917],/1:0,/1:687)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/128[data-uuid-c5379304ca22491b9814673d77febf07]/1:0,/134[data-uuid-809378fac9cb4f48bb19cf5b221b41af]/3:124)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4,/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/6[data-uuid-37c200e18cbf4aba9f320c072f33dec7]/2[data-uuid-71a6f50b1bda437997b27638c0083524]/1:0,/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279]/5:56)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/22[data-uuid-9689c7706d9c42659839b9eb0130a0a7]/1,:3,:4)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/2[data-uuid-b9c27d2f9899457fbca105b5b7388aa5]/2[data-uuid-58af2fff3da7474a806220d8238341be],/1:0,/2[data-uuid-7c1c46f29e5b4f0096d7d0661a34c2ba])
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/46[data-uuid-5202c8392b7f4f17a5402dfa19aded47],/5:28,/9:607)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/12[data-uuid-0d4eb826e69d4886a9311e2a9af053eb]/4,/4/1:0,/7:117)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/134[data-uuid-809378fac9cb4f48bb19cf5b221b41af],/3:125,/3:607)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279],/7:200,/7:300)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/8[data-uuid-169e32bc083a4816b0ff6a0927afe648]/2[data-uuid-86c60580c2b542e5be1959ba7e0e7e97],/2/2[data-uuid-a8d3a1b89f1c4aff877597248f81e32c]/1:0,/4/14/10[data-uuid-c6ddce19f6de4ca98f626df3beddf22a]/1:3)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279]/1,:0,:10)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/174[data-uuid-96f840e7ed27469a937fc6ffbdc17715],/1:0,/3:147)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/22[data-uuid-d3ac5b92cf26416a993c06649ee2e76d],/3:59,/3:366)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/4[data-uuid-faeea46a183749d882f57cb4944230e4]/2[data-uuid-6c3caf66cd4249799949c9fda206c3c0]/1,:15,:32)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/2[data-uuid-c3f62a24abd141e59eb99450f1d3fb34]/2[data-uuid-d55e3dd4612742f397ff61141d2615b7]/1,:44,:52)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/184[data-uuid-677c1f0a40204defbaac9fc190ae4d8f],/2/2/1:0,/3:279)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/2[data-uuid-c3f62a24abd141e59eb99450f1d3fb34]/2[data-uuid-d55e3dd4612742f397ff61141d2615b7]/1,:61,:76)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/4[data-uuid-faeea46a183749d882f57cb4944230e4]/2[data-uuid-6c3caf66cd4249799949c9fda206c3c0]/1,:21,:33)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/2[data-uuid-b9c27d2f9899457fbca105b5b7388aa5]/2[data-uuid-58af2fff3da7474a806220d8238341be],/1:0,/2[data-uuid-7c1c46f29e5b4f0096d7d0661a34c2ba])
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/82[data-uuid-0cf71fd526734b028c03cf49d70dddb1],/1:0,/5:373)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/12[data-uuid-fe094c3324f247b893843146ae733f9b],/11:157,/13:64)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/38[data-uuid-82927c695cee4a268badd17e888ff89e],/2/2/1:0,/7:2)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/6[data-uuid-e6b7f57d196d4a848695980b1db82fd6],/3:3,/3:331)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/26[data-uuid-c125792d35de4ac1a8f458f0a10862b1]/2[data-uuid-eac86e274ca548548b61c91193c83185]/6,/4/1:0,/11:85)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/138[data-uuid-97d10ad9ebfa4563ba1f3d2b58bf4d99],/1:0,/5:136)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/30[data-uuid-afe49c9d2b7c492187d362c36e14e924],/1:0,/5:61)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/162[data-uuid-07610d0f209d47fe9974e1366982503a],/1:0,/3:1)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/56[data-uuid-fa559f990a8e42929540b3d0966145dc]/1:0,/58[data-uuid-966b6941c3cb4682993e4770151318b6]/1:487)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/146[data-uuid-7cf94091571244d18a40e7a1ada47ec4],/1:0,/1:74)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/4[data-uuid-786b7750bf7c4ebeaf6f6b232eddefab]/1,:16,:18)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/178[data-uuid-05d7be3d83f342768500dad474ed98a9],/1:0,/1:403)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/62[data-uuid-1f5c45d55dc44878b6ec852f5f7e4ef2],/1:0,/5:269)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/34[data-uuid-16c031f943bb450d847bf75ae5041c64]/4[data-uuid-fd8da34eb5454e3cab83687ab9fec4d6]/6[data-uuid-44bfd577040942e390b9ad09bfa82908]/1,:52,:59)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/100[data-uuid-88b6be83f340426f904e7508d9a64157]/1:0,/102[data-uuid-5052ecd1846a4fccb255cb752ce90377]/3:188)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/12[data-uuid-0d4eb826e69d4886a9311e2a9af053eb]/4,/4/1:0,/7:117)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/6[data-uuid-00a0d32747514c5c8b0404f9deaa4c24]/2[data-uuid-c3f62a24abd141e59eb99450f1d3fb34]/2[data-uuid-d55e3dd4612742f397ff61141d2615b7]/1,:0,:8)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/106[data-uuid-66442f454dc34bccb957911dad111523],/1:0,/1:613)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/158[data-uuid-f398387a649e4d7a8a4a97821d077135],/1:0,/3:82)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/24[data-uuid-0be9abe53cff4f038a6365b7210a74af],/2/2/1:0,/3:304)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/6[data-uuid-e6b7f57d196d4a848695980b1db82fd6],/1:0,/3:2)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/186[data-uuid-b886bdf4439f47199181473af84d2f7f],/1:0,/1:342)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/90[data-uuid-3d286c2b9a06425d8a2eb207fffb0b09]/1:355,/92[data-uuid-b396b93c68a743938d5324ae620fa7c9]/8[data-uuid-fc7b96b2b2c74ee69a1571cca6add7bf]/2[data-uuid-c6a0e02e6e704234b0c6b0fe7a14d72a]/3:247)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/6[data-uuid-8342654690f64a4389e73e0d0f97bf15],/1:0,/5:210)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/12[data-uuid-3edb690e82104a129c8a1bf81c93737f],/1:0,/3:555)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/8[data-uuid-ec5b801e13d6446680314c36aa2c2125]/2[data-uuid-1039f9972bff48d98d7a7a66cf356131]/2[data-uuid-4a071c4162a74e5da135c43e4a5db173]/4/7,:78,:86)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/10[data-uuid-9e7a328b025046e0a664787183e01194],/2/2/1:0,/3:235)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/2[data-uuid-b9c27d2f9899457fbca105b5b7388aa5]/2[data-uuid-58af2fff3da7474a806220d8238341be],/1:0,/2[data-uuid-7c1c46f29e5b4f0096d7d0661a34c2ba])
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/132[data-uuid-7e6ca2d624df458883a7e8c09df01917],/1:0,/1:158)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/110[data-uuid-d69dc3db92c54c3b9a9a67a4b6912852],/1:0,/3:630)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/40[data-uuid-16eb5e9a12f9476ab8c8d15ea346a9f9]/2[data-uuid-13c22b0acf5549a19b45fd71644dbfb1]/6,/4/1:0,/11:68)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/12[data-uuid-fe094c3324f247b893843146ae733f9b],/1:0,/5:79)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/194[data-uuid-f8122efbcb474f8fad2b0cc33c900b5a],/1:0,/1:726)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/70[data-uuid-e71df185f2a4403fa8074c9465d6a884],/2/2/1:0,/3:316)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/38[data-uuid-82927c695cee4a268badd17e888ff89e],/2/2/1:0,/7:321)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/92[data-uuid-b396b93c68a743938d5324ae620fa7c9]/2[data-uuid-5178e015627f4a998041381b61b2f7d2]/2[data-uuid-2e31cd48f5fc47488ef9e97d0c7bbe30],/3:1,/5:54)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/90[data-uuid-3d286c2b9a06425d8a2eb207fffb0b09],/1:0,/1:516)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/6[data-uuid-8342654690f64a4389e73e0d0f97bf15],/10/2/1:0,/11:38)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4,/26[data-uuid-9d78e2fc81df426ca97c2702eae357f8]/2/2/1:0,/28[data-uuid-f6845439147a449d98bad52438dd32fa]/1:406)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/6[data-uuid-8342654690f64a4389e73e0d0f97bf15],/6/2/1:0,/9:2)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/198[data-uuid-47ddec72632048da9699ad8decde6be1],/9:3,/13:337)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/10[data-uuid-722997e3a41c4e68b9d8e69920184c1a],/1:0,/3:324)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4,/66[data-uuid-bcb8e8936fef4986894dc13cef54f6c4]/1:0,/70[data-uuid-e71df185f2a4403fa8074c9465d6a884]/3:316)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/30[data-uuid-365d62154766460d835b4a791652f8b3],/2/2/1:0,/5:2)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/12[data-uuid-0d4eb826e69d4886a9311e2a9af053eb]/4,/4/1:0,/7:117)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/150[data-uuid-47df5d0d55bb4366a169afd6d567987d],/1:0,/3:292)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/8[data-uuid-ec5b801e13d6446680314c36aa2c2125]/2[data-uuid-1039f9972bff48d98d7a7a66cf356131]/2[data-uuid-4a071c4162a74e5da135c43e4a5db173],/1:0,/2[data-uuid-4bda95126ac44f34917588d2318d0597])
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/4[data-uuid-3188e54591d143a682d0b5d0d3e95dbe]/4[data-uuid-786b7750bf7c4ebeaf6f6b232eddefab]/1,:28,:54)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/6[data-uuid-c595f76b9e3f48d98ee425a712bf6279]/7,:49,:163)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/46[data-uuid-5202c8392b7f4f17a5402dfa19aded47],/1:0,/5:27)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/22[data-uuid-d3ac5b92cf26416a993c06649ee2e76d],/1:0,/3:704)
epubcfi(/6/392[data-uuid-ab5d6b4843734695a537d2a014450217]!/4/188[data-uuid-35b5e66b2bfa4f07a4ef2fbfdf90b5f6],/1:0,/1:403)
epubcfi(/6/248[data-uuid-d55a93f4ef42493fac56f28282cf34e2]!/4/44[data-uuid-c5c6d219a60e4b57b738394830f5bdf2],/1:0,/1:519)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/12[data-uuid-fe094c3324f247b893843146ae733f9b],/5:80,/11:156)
epubcfi(/6/34[data-uuid-42e193cde5544ad5ac31696d78c19bf9]!/4/14[data-uuid-655d309c3325447eb3fbf5aa25857ec1]/2[data-uuid-11d2e5d5854f4e97830a7a74ee0029fb]/8[data-uuid-add584cd6fe44b6aa6bba9d17200c556],/1:0,/2[data-uuid-865a43b00a3c4b569a7c135b213e7214])
@raydot
Copy link

raydot commented Sep 10, 2019

Should step #3 read: "Find the part of it that represents the parent and the start of the range."?

@mlitwin
Copy link
Author

mlitwin commented Sep 10, 2019

Yes in essence. I've updated the wording of step #3 to be (I hope!) clearer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment