-
Notifications
You must be signed in to change notification settings - Fork 620
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1550 from masatake/output-option-in-json-output-mode
Output option in json output mode
- Loading branch information
Showing
36 changed files
with
358 additions
and
107 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,55 @@ | ||
# resetting | ||
- subword no NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE Include tags of file scope | ||
f inputFile no NONE Include an entry for the base file name of every input file | ||
g guest no NONE Include tags generated by guest parsers | ||
p pseudo no NONE Include pseudo tags | ||
q qualified no NONE Include an extra class-qualified tag entry for each tag | ||
r reference no NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- subword no NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE no Include tags of file scope | ||
f inputFile no NONE no Include an entry for the base file name of every input file | ||
g guest no NONE no Include tags generated by guest parsers | ||
p pseudo no NONE no Include pseudo tags | ||
q qualified no NONE no Include an extra class-qualified tag entry for each tag | ||
r reference no NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
# enabling 1 | ||
- subword no NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE Include tags of file scope | ||
f inputFile no NONE Include an entry for the base file name of every input file | ||
g guest no NONE Include tags generated by guest parsers | ||
p pseudo yes NONE Include pseudo tags | ||
q qualified no NONE Include an extra class-qualified tag entry for each tag | ||
r reference no NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- subword no NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE no Include tags of file scope | ||
f inputFile no NONE no Include an entry for the base file name of every input file | ||
g guest no NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified no NONE no Include an extra class-qualified tag entry for each tag | ||
r reference no NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
# disabling 1 | ||
- subword no NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE Include tags of file scope | ||
f inputFile no NONE Include an entry for the base file name of every input file | ||
g guest no NONE Include tags generated by guest parsers | ||
p pseudo no NONE Include pseudo tags | ||
q qualified no NONE Include an extra class-qualified tag entry for each tag | ||
r reference no NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- subword no NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE no Include tags of file scope | ||
f inputFile no NONE no Include an entry for the base file name of every input file | ||
g guest no NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified no NONE no Include an extra class-qualified tag entry for each tag | ||
r reference no NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
# combination | ||
- subword no NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE Include tags of file scope | ||
f inputFile yes NONE Include an entry for the base file name of every input file | ||
g guest no NONE Include tags generated by guest parsers | ||
p pseudo no NONE Include pseudo tags | ||
q qualified no NONE Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- subword no NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE no Include tags of file scope | ||
f inputFile yes NONE no Include an entry for the base file name of every input file | ||
g guest no NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified no NONE no Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
# combination with letters | ||
- subword no NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE Include tags of file scope | ||
f inputFile no NONE Include an entry for the base file name of every input file | ||
g guest no NONE Include tags generated by guest parsers | ||
p pseudo yes NONE Include pseudo tags | ||
q qualified yes NONE Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- subword no NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope no NONE no Include tags of file scope | ||
f inputFile no NONE no Include an entry for the base file name of every input file | ||
g guest no NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified yes NONE no Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
int main(void) { return 0; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#!/bin/sh | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
O=/tmp/ctags-tmain-$$.txt | ||
|
||
echo ./input.c | $CTAGS --filter -o $O | ||
|
||
rm -f ${O} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ctags: Warning: filter mode ignores output tag file name |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
main ./input.c /^int main(void) { return 0; }$/;" f typeref:typename:int |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
int main(void) { return 0; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/sh | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
|
||
echo ./input.c | $CTAGS --filter | ||
echo ./input.c | $CTAGS --filter --output-format=xref |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
main ./input.c /^int main(void) { return 0; }$/;" f typeref:typename:int | ||
main function 1 ./input.c int main(void) { return 0; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/bin/sh | ||
# Copyright: 2017 Masatake YAMATO | ||
# Copyright: 2016 Aman Gupta | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
. ../utils.sh | ||
|
||
is_feature_available ${CTAGS} interactive | ||
|
||
# It seems that the output format is slightly different between libjansson versions | ||
s() | ||
{ | ||
sed -e s/':"'/': "'/g | ||
} | ||
|
||
O=/tmp/ctags-tmain-$$.txt | ||
|
||
echo '{"command":"generate-tags", "filename":"test.rb"}' | ${CTAGS} --_interactive -o ${O} |s | ||
|
||
rm -f ${O} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{"_type": "program", "name": "Universal Ctags", "version": "0.0.0"} | ||
{"_type": "tag", "name": "Test", "path": "test.rb", "pattern": "/^class Test$/", "kind": "class"} | ||
{"_type": "tag", "name": "foobar", "path": "test.rb", "pattern": "/^ def foobar$/", "kind": "method", "scope": "Test", "scopeKind": "class"} | ||
{"_type": "tag", "name": "baz", "path": "test.rb", "pattern": "/^ def baz(a=1)$/", "kind": "method", "scope": "Test", "scopeKind": "class"} | ||
{"_type": "completed", "command": "generate-tags"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
class Test | ||
def foobar | ||
end | ||
|
||
def baz(a=1) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#include <stdio.h> | ||
|
||
static int foo (void) | ||
{ | ||
return 1; | ||
} | ||
|
||
int | ||
main(void) | ||
{ | ||
return foo(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
|
||
. ../utils.sh | ||
|
||
O=/tmp/ctags-tmain-$$.json | ||
|
||
is_feature_available "${CTAGS}" json | ||
|
||
$CTAGS --extras=-p --output-format=json -f ${O} input.c > /dev/null && cat ${O} | ||
s=$? | ||
|
||
rm -f ${O} | ||
|
||
exit $s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
{"_type": "tag", "name": "foo", "path": "input.c", "pattern": "/^static int foo (void)$/", "file": true, "typeref": "int", "kind": "function"} | ||
{"_type": "tag", "name": "main", "path": "input.c", "pattern": "/^main(void)$/", "typeref": "int", "kind": "function"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
|
||
|
||
. ../utils.sh | ||
|
||
is_feature_available ${CTAGS} json | ||
|
||
O=/tmp/ctags-tmain-$$ | ||
|
||
echo '#' json regular file | ||
"${CTAGS}" --quiet --options=NONE --output-format=json -o $O --list-extras | grep pseudo | ||
|
||
echo '#' json - | ||
"${CTAGS}" --quiet --options=NONE --output-format=json -o - --list-extras | grep pseudo | ||
|
||
echo '#' json NOTHING | ||
"${CTAGS}" --quiet --options=NONE --output-format=json --list-extras | grep pseudo | ||
|
||
rm -f $O |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# json regular file | ||
p pseudo yes NONE no Include pseudo tags | ||
# json - | ||
p pseudo no NONE no Include pseudo tags | ||
# json NOTHING | ||
p pseudo no NONE no Include pseudo tags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
#LETTER NAME ENABLED LANGUAGE DESCRIPTION | ||
- subword yes NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE Include tags of file scope | ||
f inputFile yes NONE Include an entry for the base file name of every input file | ||
g guest yes NONE Include tags generated by guest parsers | ||
p pseudo yes NONE Include pseudo tags | ||
q qualified yes NONE Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
#LETTER NAME ENABLED LANGUAGE DESCRIPTION | ||
- subword yes NONE Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE Include tags of file scope | ||
f inputFile yes NONE Include an entry for the base file name of every input file | ||
g guest yes NONE Include tags generated by guest parsers | ||
p pseudo yes NONE Include pseudo tags | ||
q qualified yes NONE Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE Include reference tags | ||
s subparser yes NONE Include tags generated by subparsers | ||
- funcmap yes QemuHX Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
#LETTER NAME ENABLED LANGUAGE FIXED DESCRIPTION | ||
- subword yes NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE no Include tags of file scope | ||
f inputFile yes NONE no Include an entry for the base file name of every input file | ||
g guest yes NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified yes NONE no Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
#LETTER NAME ENABLED LANGUAGE FIXED DESCRIPTION | ||
- subword yes NONE no Include tags for subwords generated by splitting the original tag (only for ctags development) | ||
F fileScope yes NONE no Include tags of file scope | ||
f inputFile yes NONE no Include an entry for the base file name of every input file | ||
g guest yes NONE no Include tags generated by guest parsers | ||
p pseudo yes NONE no Include pseudo tags | ||
q qualified yes NONE no Include an extra class-qualified tag entry for each tag | ||
r reference yes NONE no Include reference tags | ||
s subparser yes NONE no Include tags generated by subparsers | ||
- funcmap yes QemuHX no Include mapping SQMP to C function name | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
#LETTER NAME ENABLED LANGUAGE DESCRIPTION | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped no Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped no Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot Include tags swapping whitespace and underscore chars | ||
#LETTER NAME ENABLED LANGUAGE FIXED DESCRIPTION | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped no Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped no Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars | ||
- whitespaceSwapped yes Robot no Include tags swapping whitespace and underscore chars |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#include <stdio.h> | ||
|
||
static int foo (void) | ||
{ | ||
return 1; | ||
} | ||
|
||
int | ||
main(void) | ||
{ | ||
return foo(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
|
||
. ../utils.sh | ||
|
||
O=/tmp/ctags-tmain-$$.xref | ||
$CTAGS --output-format=xref -f ${O} input.c > /dev/null && cat ${O} | ||
s=$? | ||
|
||
rm -f ${O} | ||
|
||
exit $s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
foo function 3 input.c static int foo (void) | ||
main function 9 input.c main(void) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Copyright: 2017 Masatake YAMATO | ||
# License: GPL-2 | ||
|
||
CTAGS=$1 | ||
|
||
O=/tmp/ctags-tmain-$$ | ||
|
||
echo '#' tags regular file | ||
"${CTAGS}" --options=NONE --output-format=u-ctags -o $O --list-extras | grep pseudo | ||
|
||
echo '#' tags - | ||
"${CTAGS}" --options=NONE --output-format=u-ctags -o - --list-extras | grep pseudo | ||
|
||
echo '#' tags NOTHING | ||
"${CTAGS}" --options=NONE --output-format=u-ctags --list-extras | grep pseudo | ||
|
||
echo '#' xref regular file | ||
"${CTAGS}" --options=NONE --output-format=xref -o $O --list-extras | grep pseudo | ||
|
||
echo '#' xref - | ||
"${CTAGS}" --options=NONE --output-format=xref -o - --list-extras | grep pseudo | ||
|
||
echo '#' xref NOTHING | ||
"${CTAGS}" --options=NONE --output-format=xref --list-extras | grep pseudo | ||
|
||
rm -f $O |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# tags regular file | ||
p pseudo yes NONE no Include pseudo tags | ||
# tags - | ||
p pseudo no NONE no Include pseudo tags | ||
# tags NOTHING | ||
p pseudo yes NONE no Include pseudo tags | ||
# xref regular file | ||
p pseudo no NONE yes Include pseudo tags | ||
# xref - | ||
p pseudo no NONE yes Include pseudo tags | ||
# xref NOTHING | ||
p pseudo no NONE yes Include pseudo tags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.