Compare commits
52 Commits
6b14a44cc7
...
444648619c
@ -1,45 +0,0 @@
|
||||
// Helpers
|
||||
ss(arr) = SampleSet.fromList(arr)
|
||||
|
||||
// Nuclear ukraine
|
||||
rusiaUsesNuclearWeaponsInUkraine = ss([0.27, 0.04, 0.02, 0.001, 0.09, 0.08, 0.07])// <- fill-in
|
||||
// Note that the period of time is left unspecified
|
||||
|
||||
// Nuclear NATO
|
||||
escalationOutsideUkraineGivenUkraineWasNuked = ss([0.15, 0.09, 0.0013, 10^(-5), 0.01, 0.3, 0.05])// <- fill-in
|
||||
escalationToNATOUnconditional = rusiaUsesNuclearWeaponsInUkraine *
|
||||
escalationOutsideUkraineGivenUkraineWasNuked
|
||||
|
||||
// Nuclear NATO to nuclear London/Washington
|
||||
bigUKUSCityNukedGivenEscalationOutsideUkraine = ss([0.4, 0.15, 0.9985, 0.05, 0.02, 0.002, 0.5])// <- fill-in
|
||||
bigUKUSCityUnconditional = escalationToNATOUnconditional *
|
||||
bigUKUSCityNukedGivenEscalationOutsideUkraine
|
||||
|
||||
// Impact in lost hours
|
||||
remainlingLifeExpectancyInYears = 40 to 60 // <- change
|
||||
daysInYear= 365
|
||||
productiveHoursInDay = 6 to 18 // <- change
|
||||
ableToEscapeBefore = 0.5// <- fill-in
|
||||
proportionOfPeopleInLondonWhoDie = 0.7
|
||||
expectedLostHours = bigUKUSCityUnconditional *
|
||||
(1 - ableToEscapeBefore) *
|
||||
proportionOfPeopleInLondonWhoDie *
|
||||
remainlingLifeExpectancyInYears *
|
||||
daysInYear *
|
||||
productiveHoursInDay
|
||||
|
||||
// Probably good to also estimate idiosyncratic factors such as
|
||||
// - Increased or decreased productivity in a city
|
||||
// - Increased or decreased impact in a city
|
||||
// - Value assigned to surviving in a world after a nuclear winter
|
||||
// - ...
|
||||
|
||||
|
||||
// Display
|
||||
{
|
||||
rusiaUsesNuclearWeaponsInUkraine: rusiaUsesNuclearWeaponsInUkraine,
|
||||
escalationToNATOUnconditional: escalationToNATOUnconditional,
|
||||
bigUKUSCityUnconditional: bigUKUSCityUnconditional,
|
||||
expectedLostHours: expectedLostHours
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
// Fish (salmon)
|
||||
value_happy_salmon_year_in_human_qalys = 0.001 to 0.01
|
||||
value_tortured_salmon_year_in_human_qalys = -(0.002 to 0.02)
|
||||
value_farmed_salmon_year_in_human_qalys = -0.02 to 0.01
|
||||
// ^ purely subjective estimates
|
||||
lifetime_salmon = 2 to 3
|
||||
// https://thehumaneleague.org.uk/article/how-long-do-salmon-live
|
||||
weight_salmon = 3.5 to 5 // kilograms
|
||||
// ^ https://www.wildcoastsalmon.com/salmonlifecycle
|
||||
calories_per_kilogram_of_salmon_meat = 1700 to 2100
|
||||
calories_salmon = weight_salmon * calories_per_kilogram_of_salmon_meat
|
||||
// ^ see <https://www.quora.com/How-many-calories-are-in-1kg-of-salmon>
|
||||
|
||||
salmon_estimates = {
|
||||
name: "salmon",
|
||||
value_year_in_human_qalys: value_farmed_salmon_year_in_human_qalys,
|
||||
weight: weight_salmon,
|
||||
calories: calories_salmon,
|
||||
lifetime: lifetime_salmon
|
||||
}
|
||||
|
||||
/* Fish Welfare Initiative
|
||||
|
||||
Sources:
|
||||
- https://www.fishwelfareinitiative.org/
|
||||
- https://forum.effectivealtruism.org/posts/T5fSphiK6sQ6hyptX/opinion-estimating-invertebrate-sentience#Peter_Hurford
|
||||
- https://forum.effectivealtruism.org/posts/Qk3hd6PrFManj8K6o/rethink-priorities-welfare-range-estimates
|
||||
- https://nunosempere.com/blog/2023/02/19/bayesian-adjustment-to-rethink-priorities-welfare-range-estimates/
|
||||
|
||||
Key simplification: assume that all fish are salmon. This is inaccurate, because salmon is a very particular & expensive species of fish. But I think it's ok to start with. Later I could easily add different species.
|
||||
|
||||
*/
|
||||
|
||||
fish_potentially_helped = 1M to 2M
|
||||
shrimp_potentially_helped = 1M to 2M
|
||||
improvement_as_proportion_of_lifetime = 0.05 to 0.5
|
||||
|
||||
value_fwi_fish =
|
||||
fish_potentially_helped *
|
||||
improvement_as_proportion_of_lifetime *
|
||||
(value_happy_salmon_year_in_human_qalys / salmon_estimates.lifetime)
|
||||
|
||||
value_of_shrimp_in_fish = (0.3 to 1)
|
||||
// ^ very uncertain, subjective
|
||||
|
||||
value_fwi_shrimp =
|
||||
shrimp_potentially_helped *
|
||||
improvement_as_proportion_of_lifetime *
|
||||
(value_happy_salmon_year_in_human_qalys / salmon_estimates.lifetime) *
|
||||
value_of_shrimp_in_fish
|
||||
|
||||
value_fwi_so_far = value_fwi_fish + value_fwi_shrimp
|
||||
|
@ -0,0 +1,140 @@
|
||||
# interpreter for shell commands
|
||||
set shell sh
|
||||
|
||||
# set '-eu' options for shell commands
|
||||
# These options are used to have safer shell commands. Option '-e' is used to
|
||||
# exit on error and option '-u' is used to give error for unset variables.
|
||||
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
|
||||
# $fx variables contain names with '*' or '?' characters. However, this option
|
||||
# is used selectively within individual commands as it can be limiting at
|
||||
# times.
|
||||
set shellopts '-eu'
|
||||
|
||||
# set internal field separator (IFS) to "\n" for shell commands
|
||||
# This is useful to automatically split file names in $fs and $fx properly
|
||||
# since default file separator used in these variables (i.e. 'filesep' option)
|
||||
# is newline. You need to consider the values of these options and create your
|
||||
# commands accordingly.
|
||||
set ifs "\n"
|
||||
|
||||
# leave some space at the top and the bottom of the screen
|
||||
set scrolloff 10
|
||||
|
||||
# use enter for shell commands
|
||||
map <enter> shell
|
||||
|
||||
# execute current file (must be executable)
|
||||
map x $$f
|
||||
map X !$f
|
||||
|
||||
# dedicated keys for file opener actions
|
||||
## map o &mimeopen $f
|
||||
## map O $mimeopen --ask $f
|
||||
map o open $f
|
||||
|
||||
## toggle hidden files
|
||||
map . set hidden!
|
||||
|
||||
# define a custom 'open' command
|
||||
# This command is called when current file is not a directory. You may want to
|
||||
# use either file extensions and/or mime types here. Below uses an editor for
|
||||
# text files and a file opener for the rest.
|
||||
cmd open ${{
|
||||
## test -L $f && f=$(readlink -f $f)
|
||||
## case $(file --mime-type $f -b) in
|
||||
## text/*) $EDITOR $fx;;
|
||||
## *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
|
||||
## esac
|
||||
test -L $f && f=$(readlink -f $f)
|
||||
case $f in
|
||||
# *.css) vim $fx;;
|
||||
# *.hs) vim $fx;;
|
||||
# *.js) vim $fx;;
|
||||
# *.json) vim $fx;;
|
||||
# *.md) vim $fx;;
|
||||
*.pdf) zathura --mode fullscreen $fx & > /dev/null 2>&1 ;;
|
||||
# *.sh) vim $fx;;
|
||||
# *.ts) vim $fx;;
|
||||
# *.txt) vim $fx;; ## Open directly in the same terminal; no & at the end.
|
||||
# *.yml) vim $fx;;
|
||||
# *rc) vim $fx;;
|
||||
*.R) rstudio $fx & > /dev/null 2>&1 ;;
|
||||
*.png) DISPLAY=:0 feh --borderless --hide-pointer $fx & > /dev/null 2>&1 ;;
|
||||
*.jpg) DISPLAY=:0 feh --borderless --hide-pointer $fx & > /dev/null 2>&1 ;;
|
||||
*.html) rose "file://$fx" > /dev/null 2>&1 &;;
|
||||
# *) xdg-open $fx > /dev/null 2>&1 &;;
|
||||
*) nvim $fx;;
|
||||
# *) vim -X $fx;;
|
||||
# ^ temporary solution for Xmonad
|
||||
#*) case $(file --mime-type $f -b) in
|
||||
# text/*) vim $fx ;;
|
||||
# *) xdg-open $fx;;
|
||||
## *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
|
||||
## esac;;
|
||||
esac
|
||||
## /usr/bin/xdg-open $f
|
||||
}}
|
||||
|
||||
# define a custom 'rename' command without prompt for overwrite
|
||||
cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
|
||||
map r push :rename<space>
|
||||
|
||||
# make sure trash folder exists
|
||||
%mkdir -p ~/.trash
|
||||
|
||||
# move current file or selected files to trash folder
|
||||
# (also see 'man mv' for backup/overwrite options)
|
||||
cmd trash %set -f; mv $fx ~/.trash
|
||||
# cmd trash echo "too easy to press accidentally"
|
||||
# define a custom 'delete' command
|
||||
# cmd delete ${{
|
||||
# set -f
|
||||
# printf "$fx\n"
|
||||
# printf "delete?[y/n]"
|
||||
# read ans
|
||||
# [ $ans = "y" ] && rm -rf $fx
|
||||
# }}
|
||||
|
||||
# use '<delete>' key for either 'trash' or 'delete' command
|
||||
map <delete> trash
|
||||
# map <delete> delete
|
||||
|
||||
# Map numpad to arrows
|
||||
# map i up
|
||||
# map , down
|
||||
# map j updir
|
||||
# map l open
|
||||
# map k down
|
||||
|
||||
# extract the current file with the right command
|
||||
# (xkcd link: https://xkcd.com/1168/)
|
||||
cmd extract ${{
|
||||
set -f
|
||||
case $f in
|
||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||
*.tar.gz|*.tgz) tar xzvf $f;;
|
||||
*.tar.xz|*.txz) tar xJvf $f;;
|
||||
*.zip) unzip $f;;
|
||||
*.rar) unrar x $f;;
|
||||
*.7z) 7z x $f;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# compress current file or selected files with tar and gunzip
|
||||
cmd tar ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
tar -czf $1.tar.gz $1
|
||||
rm -rf $1
|
||||
}}
|
||||
|
||||
# compress current file or selected files with zip
|
||||
cmd zip ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
zip -r $1.zip $1
|
||||
rm -rf $1
|
||||
}}
|
||||
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 238 KiB |
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 278 KiB |
Before Width: | Height: | Size: 435 KiB After Width: | Height: | Size: 435 KiB |
Before Width: | Height: | Size: 414 KiB After Width: | Height: | Size: 414 KiB |
Before Width: | Height: | Size: 322 KiB After Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 425 KiB After Width: | Height: | Size: 425 KiB |
Before Width: | Height: | Size: 366 KiB After Width: | Height: | Size: 366 KiB |
Before Width: | Height: | Size: 934 KiB After Width: | Height: | Size: 934 KiB |
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 359 KiB |
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 379 KiB |
Before Width: | Height: | Size: 348 KiB After Width: | Height: | Size: 348 KiB |
Before Width: | Height: | Size: 358 KiB After Width: | Height: | Size: 358 KiB |
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 293 KiB |
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 231 KiB After Width: | Height: | Size: 231 KiB |
Before Width: | Height: | Size: 373 KiB After Width: | Height: | Size: 373 KiB |
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 406 KiB |
Before Width: | Height: | Size: 410 KiB After Width: | Height: | Size: 410 KiB |
Before Width: | Height: | Size: 492 KiB After Width: | Height: | Size: 492 KiB |
Before Width: | Height: | Size: 322 KiB After Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 299 KiB After Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 311 KiB After Width: | Height: | Size: 311 KiB |
Before Width: | Height: | Size: 377 KiB After Width: | Height: | Size: 377 KiB |
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 281 KiB |
Before Width: | Height: | Size: 491 KiB After Width: | Height: | Size: 491 KiB |
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
Before Width: | Height: | Size: 325 KiB After Width: | Height: | Size: 325 KiB |
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 335 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 379 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 361 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 701 KiB After Width: | Height: | Size: 701 KiB |
Before Width: | Height: | Size: 294 KiB After Width: | Height: | Size: 294 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 242 KiB |
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 247 KiB After Width: | Height: | Size: 247 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
@ -0,0 +1,20 @@
|
||||
## In 2020...
|
||||
|
||||
- [A review of two free online MIT Global Poverty courses](https://nunosempere.com/2020/01/15/mit-edx-review)
|
||||
- [A review of two books on survey-making](https://nunosempere.com/2020/03/01/survey-making)
|
||||
- [Shapley Values II: Philantropic Coordination Theory & other miscellanea.](https://nunosempere.com/2020/03/10/shapley-values-ii)
|
||||
- [New Cause Proposal: International Supply Chain Accountability](https://nunosempere.com/2020/04/01/international-supply-chain-accountability)
|
||||
- [Forecasting Newsletter: April 2020](https://nunosempere.com/2020/04/30/forecasting-newsletter-2020-04)
|
||||
- [Forecasting Newsletter: May 2020.](https://nunosempere.com/2020/05/31/forecasting-newsletter-2020-05)
|
||||
- [Forecasting Newsletter: June 2020.](https://nunosempere.com/2020/07/01/forecasting-newsletter-2020-06)
|
||||
- [Forecasting Newsletter: July 2020.](https://nunosempere.com/2020/08/01/forecasting-newsletter-2020-07)
|
||||
- [Forecasting Newsletter: August 2020. ](https://nunosempere.com/2020/09/01/forecasting-newsletter-august-2020)
|
||||
- [Forecasting Newsletter: September 2020. ](https://nunosempere.com/2020/10/01/forecasting-newsletter-september-2020)
|
||||
- [Forecasting Newsletter: October 2020.](https://nunosempere.com/2020/11/01/forecasting-newsletter-october-2020)
|
||||
- [Incentive Problems With Current Forecasting Competitions.](https://nunosempere.com/2020/11/10/incentive-problems-with-current-forecasting-competitions)
|
||||
- [Announcing the Forecasting Innovation Prize](https://nunosempere.com/2020/11/15/announcing-the-forecasting-innovation-prize)
|
||||
- [Predicting the Value of Small Altruistic Projects: A Proof of Concept Experiment.](https://nunosempere.com/2020/11/22/predicting-the-value-of-small-altruistic-projects-a-proof-of)
|
||||
- [An experiment to evaluate the value of one researcher's work](https://nunosempere.com/2020/12/01/an-experiment-to-evaluate-the-value-of-one-researcher-s-work)
|
||||
- [Forecasting Newsletter: November 2020.](https://nunosempere.com/2020/12/01/forecasting-newsletter-november-2020)
|
||||
- [What are good rubrics or rubric elements to evaluate and predict impact?](https://nunosempere.com/2020/12/03/what-are-good-rubrics-or-rubric-elements-to-evaluate-and)
|
||||
- [Big List of Cause Candidates](https://nunosempere.com/2020/12/25/big-list-of-cause-candidates)
|
@ -0,0 +1,30 @@
|
||||
## In 2021...
|
||||
|
||||
- [Forecasting Newsletter: December 2020](https://nunosempere.com/2021/01/01/forecasting-newsletter-december-2020)
|
||||
- [2020: Forecasting in Review](https://nunosempere.com/2021/01/10/2020-forecasting-in-review)
|
||||
- [A Funnel for Cause Candidates](https://nunosempere.com/2021/01/13/a-funnel-for-cause-candidates)
|
||||
- [Forecasting Newsletter: January 2021](https://nunosempere.com/2021/02/01/forecasting-newsletter-january-2021)
|
||||
- [Forecasting Prize Results](https://nunosempere.com/2021/02/19/forecasting-prize-results)
|
||||
- [Forecasting Newsletter: February 2021](https://nunosempere.com/2021/03/01/forecasting-newsletter-february-2021)
|
||||
- [Introducing Metaforecast: A Forecast Aggregator and Search Tool](https://nunosempere.com/2021/03/07/introducing-metaforecast-a-forecast-aggregator-and-search)
|
||||
- [Relative Impact of the First 10 EA Forum Prize Winners](https://nunosempere.com/2021/03/16/relative-impact-of-the-first-10-ea-forum-prize-winners)
|
||||
- [Forecasting Newsletter: March 2021](https://nunosempere.com/2021/04/01/forecasting-newsletter-march-2021)
|
||||
- [Forecasting Newsletter: April 2021](https://nunosempere.com/2021/05/01/forecasting-newsletter-april-2021)
|
||||
- [Forecasting Newsletter: May 2021](https://nunosempere.com/2021/06/01/forecasting-newsletter-may-2021)
|
||||
- [2018-2019 Long-Term Future Fund Grantees: How did they do?](https://nunosempere.com/2021/06/16/2018-2019-long-term-future-fund-grantees-how-did-they-do)
|
||||
- [What should the norms around privacy and evaluation in the EA community be?](https://nunosempere.com/2021/06/16/what-should-the-norms-around-privacy-and-evaluation-in-the)
|
||||
- [Shallow evaluations of longtermist organizations](https://nunosempere.com/2021/06/24/shallow-evaluations-of-longtermist-organizations)
|
||||
- [Forecasting Newsletter: June 2021](https://nunosempere.com/2021/07/01/forecasting-newsletter-june-2021)
|
||||
- [Forecasting Newsletter: July 2021](https://nunosempere.com/2021/08/01/forecasting-newsletter-july-2021)
|
||||
- [Forecasting Newsletter: August 2021](https://nunosempere.com/2021/09/01/forecasting-newsletter-august-2021)
|
||||
- [Frank Feedback Given To Very Junior Researchers](https://nunosempere.com/2021/09/01/frank-feedback-given-to-very-junior-researchers)
|
||||
- [Building Blocks of Utility Maximization](https://nunosempere.com/2021/09/20/building-blocks-of-utility-maximization)
|
||||
- [Forecasting Newsletter: September 2021.](https://nunosempere.com/2021/10/01/forecasting-newsletter-september-2021)
|
||||
- [An estimate of the value of Metaculus questions](https://nunosempere.com/2021/10/22/an-estimate-of-the-value-of-metaculus-questions)
|
||||
- [Forecasting Newsletter: October 2021.](https://nunosempere.com/2021/11/02/forecasting-newsletter-october-2021)
|
||||
- [A Model of Patient Spending and Movement Building](https://nunosempere.com/2021/11/08/a-model-of-patient-spending-and-movement-building)
|
||||
- [Simple comparison polling to create utility functions](https://nunosempere.com/2021/11/15/simple-comparison-polling-to-create-utility-functions)
|
||||
- [Pathways to impact for forecasting and evaluation](https://nunosempere.com/2021/11/25/pathways-to-impact-for-forecasting-and-evaluation)
|
||||
- [Forecasting Newsletter: November 2021](https://nunosempere.com/2021/12/02/forecasting-newsletter-november-2021)
|
||||
- [External Evaluation of the EA Wiki](https://nunosempere.com/2021/12/13/external-evaluation-of-the-ea-wiki)
|
||||
- [Prediction Markets in The Corporate Setting](https://nunosempere.com/2021/12/31/prediction-markets-in-the-corporate-setting)
|