| 
						
						
						
					 | 
					@ -1,25 +1,28 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					let p = console.log | 
					 | 
					 | 
					let p = console.log | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					import sw from './sw.imba?serviceworker' | 
					 | 
					 | 
					# import sw from './sw.imba?serviceworker' | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					navigator..serviceWorker..register(sw).then! do |reg| reg.update! | 
					 | 
					 | 
					# navigator..serviceWorker..register(sw).then! do |reg| reg.update! | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { orderBy, omit } from 'lodash' | 
					 | 
					 | 
					import { orderBy, omit } from 'lodash' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import pkg from '../package.json' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					let version = pkg.version | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import db from './db' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import fzi from 'fzi' | 
					 | 
					 | 
					import fzi from 'fzi' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import download from 'downloadjs' | 
					 | 
					 | 
					import download from 'downloadjs' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { nanoid } from 'nanoid' | 
					 | 
					 | 
					import { nanoid } from 'nanoid' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { parse_url } from './utils' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import initial_config from './config' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { evaluate as eval_math } from 'mathjs' | 
					 | 
					 | 
					import { evaluate as eval_math } from 'mathjs' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import community_links from './community_links' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					let state = { | 
					 | 
					 | 
					import pkg from '../package.json' | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						query: '' | 
					 | 
					 | 
					let version = pkg.version | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						links: [] | 
					 | 
					 | 
					import { parse_url } from './utils' | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						sorted_links: [] | 
					 | 
					 | 
					import db from './db' | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					} | 
					 | 
					 | 
					import state from './state' | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import default_config from './config' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import app-community-links from './components/app-community-links' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import app-settings from './components/app-settings' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import app-prompt from './components/app-prompt' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import app-edit from './components/app-edit' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import './styles' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					p "fuzzyhome version {version}" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					global._fuzzyhome_delete_everything = do |prompt=yes| | 
					 | 
					 | 
					global._fuzzyhome_delete_everything = do |prompt=yes| | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						return if prompt and window.confirm "This will delete everything. Are you sure?" | 
					 | 
					 | 
						return if prompt and window.confirm "This will delete everything. Are you sure?" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -28,19 +31,18 @@ global._fuzzyhome_delete_everything = do |prompt=yes| | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						delete localStorage.fuzzyhome_visited | 
					 | 
					 | 
						delete localStorage.fuzzyhome_visited | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						location.reload! | 
					 | 
					 | 
						location.reload! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					p "fuzzyhome version {version}" | 
					 | 
					 | 
					extend tag element | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						get state | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							state | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					tag app | 
					 | 
					 | 
					tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						selection_index = 0 | 
					 | 
					 | 
						selection_index = 0 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						loading = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						fatal_error = no | 
					 | 
					 | 
						fatal_error = no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						bang = no | 
					 | 
					 | 
						bang = no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						holding_shift = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						editing_link = no | 
					 | 
					 | 
						editing_link = no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						prior_query = '' | 
					 | 
					 | 
						prior_query = '' | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						viewing_community_links = no | 
					 | 
					 | 
						viewing_community_links = yes | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						get render? do mounted? | 
					 | 
					 | 
						get render? do mounted? | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -52,7 +54,7 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								await reload_db! | 
					 | 
					 | 
								await reload_db! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								p "links:", state.links | 
					 | 
					 | 
								p "links:", state.links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							catch e | 
					 | 
					 | 
							catch e | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								err "loading database", e | 
					 | 
					 | 
								err "state.loading database", e | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								fatal_error = yes | 
					 | 
					 | 
								fatal_error = yes | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								return | 
					 | 
					 | 
								return | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							await load_config! | 
					 | 
					 | 
							await load_config! | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -92,7 +94,7 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def reset_config | 
					 | 
					 | 
						def reset_config | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							p "resetting config" | 
					 | 
					 | 
							p "resetting config" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							config = initial_config | 
					 | 
					 | 
							config = default_config | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
							save_config! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def save_config | 
					 | 
					 | 
						def save_config | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -130,16 +132,7 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							name | 
					 | 
					 | 
							name | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def sort_links | 
					 | 
					 | 
						def sort_links | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							let links | 
					 | 
					 | 
							let links = state.links | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
							if viewing_community_links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								p community_links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								links = community_links.filter do |link| | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									not state.links.some do |my_link| | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										link.id is my_link.id | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								p links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							else | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								links = state.links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							if state.query.trim!.length > 0 | 
					 | 
					 | 
							if state.query.trim!.length > 0 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								if config.enable_effective_names | 
					 | 
					 | 
								if config.enable_effective_names | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									state.sorted_links = fzi links, state.query | 
					 | 
					 | 
									state.sorted_links = fzi links, state.query | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -190,7 +183,7 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								reader.readAsDataURL(blob) | 
					 | 
					 | 
								reader.readAsDataURL(blob) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						get can_add | 
					 | 
					 | 
						get can_add | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							return no if loading | 
					 | 
					 | 
							return no if state.loading | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							return no if settings_active | 
					 | 
					 | 
							return no if settings_active | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let query = state.query.trim! | 
					 | 
					 | 
							let query = state.query.trim! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							return no if query is '' | 
					 | 
					 | 
							return no if query is '' | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -220,14 +213,14 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							{ name, display_name, is_bang, is_pinned, url, frequency:0, icon } | 
					 | 
					 | 
							{ name, display_name, is_bang, is_pinned, url, frequency:0, icon } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_add | 
					 | 
					 | 
						def handle_add | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
							state.loading = yes | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							try | 
					 | 
					 | 
							try | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								await add_link state.query | 
					 | 
					 | 
								await add_link state.query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								state.query = '' | 
					 | 
					 | 
								state.query = '' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								sort_links! | 
					 | 
					 | 
								sort_links! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							catch e | 
					 | 
					 | 
							catch e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								err "adding link", e | 
					 | 
					 | 
								err "adding link", e | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = no | 
					 | 
					 | 
							state.loading = no | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def add_link text | 
					 | 
					 | 
						def add_link text | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let link = await create_link_from_text text | 
					 | 
					 | 
							let link = await create_link_from_text text | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -257,9 +250,9 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									await update_link link, new_link_text | 
					 | 
					 | 
									await update_link link, new_link_text | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								catch e | 
					 | 
					 | 
								catch e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									return err "editing link", e | 
					 | 
					 | 
									return err "editing link", e | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
							state.loading = yes | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							await edit_link! | 
					 | 
					 | 
							await edit_link! | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = no | 
					 | 
					 | 
							state.loading = no | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def update_link old_link, new_link_text | 
					 | 
					 | 
						def update_link old_link, new_link_text | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let new_link = await create_link_from_text new_link_text | 
					 | 
					 | 
							let new_link = await create_link_from_text new_link_text | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -324,14 +317,14 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								catch e | 
					 | 
					 | 
								catch e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									err "reloading db after successful delete", e | 
					 | 
					 | 
									err "reloading db after successful delete", e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
							state.loading = yes | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							await delete_link! | 
					 | 
					 | 
							await delete_link! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.query = prior_query | 
					 | 
					 | 
							state.query = prior_query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							prior_query = '' | 
					 | 
					 | 
							prior_query = '' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							editing_link = no | 
					 | 
					 | 
							editing_link = no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							sort_links! | 
					 | 
					 | 
							sort_links! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							selection_index = Math.min selection_index, state.sorted_links.length - 1 | 
					 | 
					 | 
							selection_index = Math.min selection_index, state.sorted_links.length - 1 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = no | 
					 | 
					 | 
							state.loading = no | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_edit link | 
					 | 
					 | 
						def handle_click_edit link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							handle_edit link | 
					 | 
					 | 
							handle_edit link | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -346,16 +339,6 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							await reload_db! | 
					 | 
					 | 
							await reload_db! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							imba.commit! | 
					 | 
					 | 
							imba.commit! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_set_default_bang | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if editing_link.is_bang isnt true | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								return err "setting default bang", "Link is not a bang." | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.default_bang = editing_link | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							editing_link = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.query = prior_query | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							prior_query = '' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							sort_links! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_shift_backspace | 
					 | 
					 | 
						def handle_shift_backspace | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if editing_link | 
					 | 
					 | 
							if editing_link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								await handle_delete editing_link | 
					 | 
					 | 
								await handle_delete editing_link | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -382,12 +365,12 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										err "updating link", e | 
					 | 
					 | 
										err "updating link", e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								else | 
					 | 
					 | 
								else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									handle_add! | 
					 | 
					 | 
									handle_add! | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
							state.loading = yes | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							await go! | 
					 | 
					 | 
							await go! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							editing_link = no | 
					 | 
					 | 
							editing_link = no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.query = '' | 
					 | 
					 | 
							state.query = '' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							sort_links! | 
					 | 
					 | 
							sort_links! | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							loading = no | 
					 | 
					 | 
							state.loading = no | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_esc | 
					 | 
					 | 
						def handle_esc | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if editing_link | 
					 | 
					 | 
							if editing_link | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -408,42 +391,6 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def name_exists new_name | 
					 | 
					 | 
						def name_exists new_name | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.links.some! do |{name}| new_name is name | 
					 | 
					 | 
							state.links.some! do |{name}| new_name is name | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_import e | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							def handle_import | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								let errors = [] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								try | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									let text = await e.target.files[0].text! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									var links = text.split "\n" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								catch e | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									return err "importing db", e | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								for link_text in links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									try | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										let link = await create_link_from_text link_text | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										if name_exists link.name | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											throw "Name already exists, add manually if you don't mind duplicates." | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										add_link link_text | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									catch e | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										errors.push "{link_text}\n{e}" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								if errors.length > 0 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									err "importing some links", errors.join("\n\n") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							await handle_import! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							loading = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_export | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							loading = yes | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							await reload_db! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let links = state.links.map do |link| | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								construct_link_text link | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let datetime = new Date!.toString!.split(" ") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let date = datetime.slice(1, 4).join("-").toLowerCase! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let time = datetime[4].split(":").join("-") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							let filename = "fuzzyhome_v{version}_{date}_{time}.txt" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							download(links.join("\n"), filename, "text/plain") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							loading = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						get math_result | 
					 | 
					 | 
						get math_result | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							try | 
					 | 
					 | 
							try | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								let result = Number(eval_math state.query) | 
					 | 
					 | 
								let result = Number(eval_math state.query) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -452,9 +399,6 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							catch | 
					 | 
					 | 
							catch | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								no | 
					 | 
					 | 
								no | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_github | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							global.location.href = "https://github.com/familyfriendlymikey/fuzzyhome" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_paste e | 
					 | 
					 | 
						def handle_paste e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							return unless config.enable_search_on_paste | 
					 | 
					 | 
							return unless config.enable_search_on_paste | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							return if state.query.length > 0 | 
					 | 
					 | 
							return if state.query.length > 0 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -463,38 +407,10 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								bang ||= config.default_bang | 
					 | 
					 | 
								bang ||= config.default_bang | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								handle_bang! | 
					 | 
					 | 
								handle_bang! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_toggle_tips | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_tips = not config.enable_tips | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_toggle_buttons | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_buttons = not config.enable_buttons | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_toggle_search_on_paste | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_search_on_paste = not config.enable_search_on_paste | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_toggle_light_theme | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_dark_theme = not config.enable_dark_theme | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_toggle_effective_names | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_effective_names = not config.enable_effective_names | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							settings_active = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_toggle_simplify_ui | 
					 | 
					 | 
						def handle_click_toggle_simplify_ui | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							config.enable_simplify_ui = not config.enable_simplify_ui | 
					 | 
					 | 
							config.enable_simplify_ui = not config.enable_simplify_ui | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							save_config! | 
					 | 
					 | 
							save_config! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						get pretty_date | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							Date!.toString!.split(" ").slice(0, 4).join(" ") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_copy s | 
					 | 
					 | 
						def handle_click_copy s | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							try | 
					 | 
					 | 
							try | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								await window.navigator.clipboard.writeText(s) | 
					 | 
					 | 
								await window.navigator.clipboard.writeText(s) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -516,19 +432,7 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def render | 
					 | 
					 | 
						def render | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							css .disabled * | 
					 | 
					 | 
							<self .disabled=state.loading> | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
								@important c:gray4 cursor:default user-select:none pointer-events:none | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							css .disabled $main-input | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								@important bg:gray4/10 bc:gray4 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							<self .disabled=loading> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css body | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:column jc:flex-start ai:center | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									m:0 w:100% h:100% bg:#20222f | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									ff:sans-serif fw:1 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									user-select:none | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css self | 
					 | 
					 | 
								css self | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:column jc:flex-start ai:center | 
					 | 
					 | 
									d:flex fld:column jc:flex-start ai:center | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -539,46 +443,11 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .fatal | 
					 | 
					 | 
								css .fatal | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									c:blue2 | 
					 | 
					 | 
									c:blue2 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css $main-input | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									w:100% h:50px px:20px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									fs:20px ta:center | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bd:1px solid purple4 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bg:purple4/10 c:blue3 caret-color:blue3 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									outline:none rd:5px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									@placeholder fs:10px c:blue3 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .loading-container | 
					 | 
					 | 
								css .loading-container | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:row jc:space-around ai:center | 
					 | 
					 | 
									d:flex fld:row jc:space-around ai:center | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									w:100% h:50px | 
					 | 
					 | 
									w:100% h:50px | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bg:purple4/10 rd:5px c:gray4 | 
					 | 
					 | 
									bg:purple4/10 rd:5px c:gray4 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .settings-container | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:row jc:space-around ai:center | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									w:100% h:50px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									mt:10px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									gap:10px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .settings-button, .settings-container button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:column jc:center ai:center fl:1 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bg:none c:purple4 bd:none cursor:pointer fs:14px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bg:purple4/10 rd:5px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									h:100% | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .middle-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:row w:100% | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									c:purple4 fs:20px cursor:pointer | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									fs:14px pt:15px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .tip | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:column bdr:1px solid blue3/10 min-width:0 fl:1 p:5px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									@last bd:none | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .tip-hotkey | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									fs:12px c:purple3/50 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .tip-content | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									pt:2px fs:14px c:purple3 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .links | 
					 | 
					 | 
								css .links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fld:column jc:flex-start fl:1 | 
					 | 
					 | 
									d:flex fld:column jc:flex-start fl:1 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									w:100% ofy:auto pt:15px | 
					 | 
					 | 
									w:100% ofy:auto pt:15px | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -590,12 +459,6 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .link-left | 
					 | 
					 | 
								css .link-left | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									d:flex fl:1 | 
					 | 
					 | 
									d:flex fl:1 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .selected | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									bg:blue3/5 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css a | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									td:none | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								css .link-icon | 
					 | 
					 | 
								css .link-icon | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									w:20px h:20px mr:10px rd:3px | 
					 | 
					 | 
									w:20px h:20px mr:10px rd:3px | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -639,74 +502,28 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								if fatal_error | 
					 | 
					 | 
								if fatal_error | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.fatal> | 
					 | 
					 | 
									<.fatal> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										""" | 
					 | 
					 | 
										""" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											There was an error loading the database. | 
					 | 
					 | 
											There was an error state.loading the database. | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
											This could be due to a user setting | 
					 | 
					 | 
											This could be due to a user setting | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											disallowing local storage, or a random error. | 
					 | 
					 | 
											disallowing local storage, or a random error. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											Consider refreshing. | 
					 | 
					 | 
											Consider refreshing. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											Check developer console for more information. | 
					 | 
					 | 
											Check developer console for more information. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										""" | 
					 | 
					 | 
										""" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								if settings_active | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click=(settings_active = no) | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> "BACK" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click.if(!loading)=handle_click_view_community_links | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											"VIEW COMMUNITY LINKS" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<label.settings-button> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											"IMPORT" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											<input[d:none] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												disabled=loading | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												@change=handle_click_import | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												@click=(this.value = '') | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												type="file" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click.if(!loading)=handle_click_export | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> "EXPORT" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click.if(!loading)=handle_click_github | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> "TUTORIAL" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click.if(!loading)=handle_click_github | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> "GITHUB" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click=handle_click_toggle_tips | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											config.enable_tips ? "DISABLE TIPS" : "ENABLE TIPS" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click=handle_click_toggle_buttons | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											config.enable_buttons ? "DISABLE BUTTONS" : "ENABLE BUTTONS" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click=handle_click_toggle_search_on_paste | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											config.enable_search_on_paste ? "DISABLE SEARCH ON PASTE" : "ENABLE SEARCH ON PASTE" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click=handle_click_toggle_effective_names | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											config.enable_effective_names ? "DISABLE EFFECTIVE NAMES" : "ENABLE EFFECTIVE NAMES" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.settings-container> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<.settings-button | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@click.if(!loading)=handle_toggle_light_theme | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											config.enable_dark_theme ? "DISABLE DARK THEME" : "ENABLE DARK THEME" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								else | 
					 | 
					 | 
								if viewing_community_links | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
									<app-community-links> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								elif settings_active | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
									<app-settings> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								elif editing_link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
									<app-edit> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
									<links> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.header> | 
					 | 
					 | 
									<.header> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										css | 
					 | 
					 | 
										css | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											d:flex fld:row w:100% | 
					 | 
					 | 
											d:flex fld:row w:100% | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										css $main-input | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											fl:1 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										css .side | 
					 | 
					 | 
										css .side | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											c:purple3/90 fs:15px | 
					 | 
					 | 
											c:purple3/90 fs:15px | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											d:flex ja:center w:30px | 
					 | 
					 | 
											d:flex ja:center w:30px | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -732,18 +549,18 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<input$main-input | 
					 | 
					 | 
										<input$main-input | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											bind=state.query | 
					 | 
					 | 
											bind=state.query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											# placeholder=pretty_date | 
					 | 
					 | 
											# placeholder=pretty_date | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('return').capture.if(!loading)=handle_return | 
					 | 
					 | 
											@hotkey('return').capture.if(!state.loading)=handle_return | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('shift+return').capture.if(!loading)=handle_shift_return | 
					 | 
					 | 
											@hotkey('shift+return').capture.if(!state.loading)=handle_shift_return | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('esc').capture.if(!loading)=handle_esc | 
					 | 
					 | 
											@hotkey('esc').capture.if(!state.loading)=handle_esc | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('shift+backspace').capture.if(!loading)=handle_shift_backspace | 
					 | 
					 | 
											@hotkey('shift+backspace').capture.if(!state.loading)=handle_shift_backspace | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('down').capture.if(!loading)=increment_selection_index | 
					 | 
					 | 
											@hotkey('down').capture.if(!state.loading)=increment_selection_index | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@hotkey('up').capture.if(!loading)=decrement_selection_index | 
					 | 
					 | 
											@hotkey('up').capture.if(!state.loading)=decrement_selection_index | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@keydown.del.if(!loading)=handle_del | 
					 | 
					 | 
											@keydown.del.if(!state.loading)=handle_del | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@input.if(!loading)=handle_input | 
					 | 
					 | 
											@input.if(!state.loading)=handle_input | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											@paste.if(!loading)=handle_paste | 
					 | 
					 | 
											@paste.if(!state.loading)=handle_paste | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
											@blur=this.focus | 
					 | 
					 | 
											@blur=this.focus | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@cut=handle_cut | 
					 | 
					 | 
											@cut=handle_cut | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											disabled=loading | 
					 | 
					 | 
											disabled=state.loading | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
										> | 
					 | 
					 | 
										> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										let m = math_result | 
					 | 
					 | 
										let m = math_result | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -752,55 +569,10 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												@click=handle_click_copy(m) | 
					 | 
					 | 
												@click=handle_click_copy(m) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											> "= {Math.round(m * 100)/100}" | 
					 | 
					 | 
											> "= {Math.round(m * 100)/100}" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										else | 
					 | 
					 | 
										else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											<.side.right @click.if(!loading)=toggle_settings> | 
					 | 
					 | 
											<.side.right @click.if(!state.loading)=toggle_settings> | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
												<svg src="./assets/settings.svg"> | 
					 | 
					 | 
												<svg src="./assets/settings.svg"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
									if viewing_community_links | 
					 | 
					 | 
									if config.enable_tips and not config.enable_simplify_ui | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
											<.middle-button> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip[jc:start ta:center fl:1] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=handle_esc | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-hotkey> "Esc" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-content> "Exit Community Links" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip[jc:end ta:center fl:1] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=handle_shift_return | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-hotkey> "Shift + Return" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-content> "Add To Your Links" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									elif config.enable_tips and not config.enable_simplify_ui | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										if editing_link | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											<.middle-button> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip[jc:start ta:left fl:1] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=handle_esc | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-hotkey> "Esc" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-content> "Cancel Edits" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												if editing_link.is_bang | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip[jc:end ta:center fl:1] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
														@click=handle_click_set_default_bang | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
														<.tip-hotkey> "Click" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
														<.tip-content> "Set Default Bang" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip[jc:center ta:center fl:1 px:15px] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=handle_shift_return | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-hotkey> "Shift + Return" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-content[of:hidden text-overflow:ellipsis white-space:nowrap]> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
														"Update Link" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip[jc:end ta:right fl:1] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=handle_shift_backspace | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												> | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-hotkey> "Shift + Backspace" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													<.tip-content> "Delete Link" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										else | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
										<.middle-button> | 
					 | 
					 | 
										<.middle-button> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											<.tip[jc:start ta:left fl:1] @click=handle_return> | 
					 | 
					 | 
											<.tip[jc:start ta:left fl:1] @click=handle_return> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip-hotkey> "Return" | 
					 | 
					 | 
												<.tip-hotkey> "Return" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -830,7 +602,6 @@ tag app | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip-hotkey> "Shift + Backspace" | 
					 | 
					 | 
												<.tip-hotkey> "Shift + Backspace" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip-content> "Edit Link" | 
					 | 
					 | 
												<.tip-content> "Edit Link" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									unless editing_link | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									<.links> | 
					 | 
					 | 
									<.links> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										if not viewing_community_links and (bang or state.sorted_links.length < 1) | 
					 | 
					 | 
										if not viewing_community_links and (bang or state.sorted_links.length < 1) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											<a.link.selected | 
					 | 
					 | 
											<a.link.selected | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |