xiandong
e575bf8317
add jaeger.WithAgentEndpoint
2 years ago
cong
64ab00e8e3
refactor: simplify sqlx fail fast ping and simplify miniredis setup in test ( #2897 )
...
* chore(redistest): simplify miniredis setup in test
* refactor(sqlx): simplify sqlx fail fast ping
* chore: close connection if not available
2 years ago
Kevin Wan
cddf3875cf
refactor: simplify stringx.Replacer, and avoid potential infinite loops ( #2877 )
...
* simplify replace
* backup
* refactor: simplify stringx.Replacer
* chore: add comments and const
* chore: add more tests
* chore: rename variable
2 years ago
Kevin Wan
072db116c3
chore: refactor ( #2875 )
2 years ago
dahaihu
cacd5dc91a
fix Replacer suffix match, and add test case ( #2867 )
...
* fix: replace shoud replace the longest match
* feat: revert bytes.Buffer to strings.Builder
* fix: loop reset nextStart
* feat: add node longest match test
* feat: add replacer suffix match test case
* feat: multiple match
* fix: partial match ends
* fix: replace look back upon error
* feat: rm unnecessary branch
---------
Co-authored-by: hudahai <hscxrzs@gmail.com>
Co-authored-by: hushichang <hushichang@sensetime.com>
2 years ago
Kevin Wan
3736dacf1e
chore: add more tests ( #2873 )
2 years ago
Kevin Wan
434973c206
fix: test failure ( #2874 )
2 years ago
Mikael
84f9863b63
only unmashal public variables ( #2872 )
...
* only unmashal public variables
* only unmashal public variables
* only unmashal public variables
* only unmashal public variables
2 years ago
Kevin Wan
99a7e6600d
feat: use dependabot for goctl ( #2869 )
...
* feat: use dependabot for goctl
* chore: add more tests
* chore: remove temp file
2 years ago
chen quan
ea7dab3d26
feat(sqlx): error log print traceId and spanId ( #2845 )
2 years ago
Kevin Wan
d7d6eccce6
chore: remove clickhouse, added to zero-contrib ( #2848 )
2 years ago
Kevin Wan
0a5a26385d
chore: add more tests ( #2866 )
...
* chore: add more tests
* chore: add more tests
* chore: fix test failure
2 years ago
hudahai
62e59837c6
fix: loop reset nextStart
2 years ago
hudahai
981d7dab13
feat: revert bytes.Buffer to strings.Builder
2 years ago
hudahai
d9a732a273
fix: replace shoud replace the longest match
2 years ago
Kevin Wan
a019a1f59f
fix: conf anonymous overlay problem ( #2847 )
2 years ago
Kevin Wan
3c0dc8435e
chore: improve codecov ( #2828 )
2 years ago
MarkJoyMa
fde05ccb28
feat: add MustNewRedis ( #2824 )
...
* feat: add MustNewRedis
* feat: add MustNewRedis
* feat: add MustNewRedis
* x
* x
* fix ut
* x
* x
* x
* x
* x
2 years ago
Kevin Wan
464ed51728
feat: mapreduce generic version ( #2827 )
...
* feat: mapreduce generic version
* fix: gateway mr type issue
---------
Co-authored-by: kevin.wan <kevin.wan@yijinin.com>
2 years ago
Kevin Wan
35b9568657
chore: fix missing funcs on windows ( #2825 )
2 years ago
Kevin Wan
ab9eeff500
fix: problem on name overlaping in config ( #2820 )
2 years ago
Kevin Wan
ae87114282
chore: change interface{} to any ( #2818 )
...
* chore: change interface{} to any
* chore: update goctl version to 1.5.0
* chore: update goctl deps
2 years ago
Kevin Wan
7e0ac77139
feat: upgrade go to v1.18 ( #2817 )
...
* feat: upgrade go to v1.18
* feat: upgrade go to v1.18
2 years ago
Kevin Wan
696da4efee
chore: add more tests ( #2815 )
...
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
2 years ago
Kevin Wan
c9b05ae07e
fix: mapping optional dep not canonicaled ( #2807 )
2 years ago
Kevin Wan
32a59dbc27
chore: refactor func name ( #2804 )
...
* chore: refactor func name
* chore: make plain log clearer
2 years ago
Kevin Wan
ba0dff2d61
chore: add more tests ( #2803 )
...
* chore: add more tests
* chore: add more tests
2 years ago
Kevin Wan
10da5e0424
chore: add more tests ( #2801 )
2 years ago
Kevin Wan
2bfecf9354
chore: remove mgo related packages ( #2799 )
2 years ago
Kevin Wan
6d129e0264
chore: add more tests ( #2797 )
...
* chore: add more tests
* chore: add more tests
* chore: add more tests
2 years ago
Kevin Wan
5f02e623f5
chore: add more tests ( #2795 )
...
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
2 years ago
Kevin Wan
963b52fb1b
chore: add more tests ( #2794 )
2 years ago
Kevin Wan
02265d0bfe
chore: add more tests ( #2792 )
...
* chore: add more tests
* chore: add more tests
* chore: add more tests
* chore: add more tests
2 years ago
Ofey Chan
82c642d3f4
feat: expose NewTimingWheelWithClock ( #2787 )
2 years ago
Kevin Wan
b2571883ca
chore: refactor ( #2785 )
...
* chore: refactor
* chore: refactor
2 years ago
Alonexy
00ff50c2cc
add zset withsocre float ( #2689 )
...
* add zset withsocre float
* update
* add IncrbyFloat,HincrbyFloat
Co-authored-by: Kevin Wan <wanjunfeng@gmail.com>
2 years ago
Kevin Wan
4d7fa08b0b
feat: support **struct in mapping ( #2784 )
...
* feat: support **struct in mapping
* chore: fix test failure
2 years ago
Kevin Wan
367afb544c
feat: support ptr of ptr of ... in mapping ( #2779 )
...
* feat: support ptr of ptr of ... in mapping
* feat: support ptr of ptr of time.Duration in mapping
* feat: support ptr of ptr of json.Number in mapping
* chore: improve setting in mapping
* feat: support ptr of ptr encoding.TextUnmarshaler in mapping
* chore: add more tests
* fix: string ptr
* chore: update tests
2 years ago
Kevin Wan
bae061a67e
chore: add tests ( #2778 )
2 years ago
Kevin Wan
0b176e17ac
fix : #2576 ( #2776 )
2 years ago
Kevin Wan
74e0676617
feat: add config to truncate long log content ( #2767 )
2 years ago
MarkJoyMa
0defb7522f
feat: replace NewBetchInserter function name ( #2769 )
2 years ago
Kevin Wan
e52dace416
chore: refactor ( #2764 )
2 years ago
chen quan
dc260f196a
refactor: simplify the code ( #2763 )
...
* refactor: simplify the code
* fix: fix data race
* refactor: simplify the code
* refactor: simplify the code
2 years ago
MarkJoyMa
a5fcf24c04
feat: add batch inserter ( #2755 )
2 years ago
MarkJoyMa
e71c505e94
feat: add mongo options ( #2753 )
...
* feat: add mongo options
* feat: add mongo options
* feat: add mongo options
* feat: add mongo options
* feat: add mongo options
* feat: add mongo options
2 years ago
#Suyghur
69d355eb4b
feat(redis): add zscan command implementation ( #2729 ) ( #2751 )
2 years ago
cong
42413dc294
feat(trace): support otlp http exporter ( #2746 )
...
* feat(trace): support otlp http exporter
* chore: use otlptracehttp v1.10.0 not upgrade grpc version prevent other modules break
* refactor(trace): rename exporter kind grpc to otlpgrpc.
BREAKING CHANGE: trace Config.Batcher should use otlpgrpc instead of grpc now.
2 years ago
Kevin Wan
ec7ac43948
chore: reorg imports ( #2745 )
...
* chore: reorg imports
* chore: format code
2 years ago
cong
deefc1a8eb
fix(trace): grpc exporter should use nonblock option ( #2744 )
...
* fix(trace): grpc exporter should use nonblock option
* chore: sort imports
2 years ago
Kevin Wan
036328f1ea
chore: update tests ( #2741 )
...
* chore: update tests
* chore: codecov on comments
* chore: codecov on comments
2 years ago
wojiukankan
85057a623d
🐛 debug grpc export ( #2379 ) ( #2719 )
...
* 🐛 debug grpc export (#2379 )
#2379 Fixed the issue that the GRPC exporter did not establish an RPC link
原文使用的 otlptracegrpc.NewUnstarted创建的是一个未建立rpc连接的导出器,无法正常使用;改为otlptracegrpc.New才妥
* Update agent_test.go
修复单元测试失败
2 years ago
Xargin
1c544a26be
use stat instead of disableStat ( #2740 )
2 years ago
chainlife
20a61ce43e
logx conf add DisableStat ( #2434 )
...
Co-authored-by: sunsoft <sunsoft@qq.com>
2 years ago
Kevin Wan
cf6c349118
fix : #2735 ( #2736 )
...
* fix : #2735
* chore: make error consistent
2 years ago
Kevin Wan
c7a0ec428c
fix: key like TLSConfig not working ( #2730 )
...
* fix: key like TLSConfig not working
* fix: remove unnecessary code
* chore: rename variable
2 years ago
Kevin Wan
c3756a8f1c
fix: etcd publisher reconnecting problem ( #2710 )
...
* fix: etcd publisher reconnecting problem
* chore: fix wrong call
2 years ago
Archer
f4fd735aee
Use read-write lock instead of mutex ( #2727 )
2 years ago
Archer
683d793719
RawFieldNames should ignore the field whose name is start with a dash ( #2725 )
2 years ago
Kevin Wan
affbcb5698
fix: camel cased key of map item in config ( #2715 )
...
* fix: camel cased key of map item in config
* fix: mapping anonymous problem
* fix: mapping anonymous problem
* chore: refactor
* chore: add more tests
* chore: refactor
2 years ago
Kevin Wan
f76b976262
fix : #2684 ( #2693 )
2 years ago
Kevin Wan
fdc57d07d7
fix : #2672 ( #2681 )
...
* fix : #2672
* chore: fix more cases
* chore: update deps
* chore: update deps
* chore: refactor
* chore: refactor
* chore: refactor
2 years ago
re-dylan
ef22042f4d
feat: add dev server and health ( #2665 )
...
* feat: add dev server and health
* fix: fix ci
* fix: fix comment.
* feat: add enabled
* remove no need test
* feat: mv devServer to internal
* feat: default enable pprof
Co-authored-by: dylan.wang <dylan.wang@yijinin.com>
2 years ago
Tim Xiao
944193ce25
fix:Remove duplicate code ( #2686 )
2 years ago
Kevin Wan
dcfc9b79f1
feat: accept camelcase for config keys ( #2651 )
...
* feat: accept camelcase for config keys
* chore: refactor
* chore: refactor
* chore: add more tests
* chore: refactor
* fix: map elements of array
2 years ago
Kevin Wan
9941055eaa
feat: add trace.SpanIDFromContext and trace.TraceIDFromContext ( #2654 )
2 years ago
edieruby
b1c3c21c81
fix: log currentSize should not be 0 when file exists and size is not 0 ( #2639 )
2 years ago
Kevin Wan
95a5f64493
feat: add stringx.ToCamelCase ( #2622 )
2 years ago
Kevin Wan
06fafd2153
feat: validate value in options for mapping ( #2616 )
2 years ago
Kevin Wan
b562e940e7
feat: support bool for env tag ( #2593 )
2 years ago
Kevin Wan
69068cdaf0
feat: support env tag in config ( #2577 )
...
* feat: support env tag in config
* chore: add more tests
* chore: add more tests, add stringx.Join
* fix: test fail
* chore: remove print code
* chore: rename variable
2 years ago
Kevin Wan
e3e08a7396
fix: inherit issue when parent after inherits ( #2586 )
...
* fix: inherit issue when parent after inherits
* chore: add more tests
2 years ago
Kevin Wan
1677a4dceb
feat: conf inherit ( #2568 )
...
* feat: add ValuerWithParent
* feat: make etcd config inherit from parents
* chore: add more tests
* chore: add more tests
* chore: add more comments
* chore: refactor
* chore: add more comments
* fix: fix duplicated code and refactor
* fix: remove unnecessary code
* fix: fix test case for removing print
* feat: support partial inherit
2 years ago
王哈哈
dac3600b53
Modify comment syntax error ( #2572 )
2 years ago
Kevin Wan
7eb6aae949
fix: potential slice append issue ( #2560 )
2 years ago
re-dylan
4d2a146733
typo(mapping): fix typo for key ( #2548 )
2 years ago
Kevin Wan
46e236fef7
chore: add more tests ( #2547 )
2 years ago
Kevin Wan
06e4914e41
feat: add logger.WithFields ( #2546 )
2 years ago
Kevin Wan
9cadab2684
chore: refactor ( #2545 )
...
* chore: refactor
* chore: refactor
2 years ago
swliao425
b21162d638
fix: redis's pipeline logs are not printed completely ( #2538 )
...
* fix: redis's pipeline logs are not printed completely
* add unit test
Signed-off-by: liaoshiwei <liaoshiwei@uniontech.com>
Signed-off-by: liaoshiwei <liaoshiwei@uniontech.com>
2 years ago
Kevin Wan
f9beab1095
feat: support uuid.UUID in mapping ( #2537 )
2 years ago
Kevin Wan
d4c9fd2aff
chore: add golangci-lint config file ( #2519 )
...
* chore: add golangci-lint config file
* chore: member alignment
2 years ago
foliet
f7a4e3a19e
chore: fix naming problem ( #2500 )
...
When I was looking for how to mock mongo client, I found some naming problems and wanted to fix them.
2 years ago
swliao425
a515a3c735
chore: sqlx's metric name is different from redis ( #2505 )
2 years ago
Kevin Wan
10f94ffcc2
chore: remove unnecessary code ( #2499 )
2 years ago
sado
f068062b13
token limit support context ( #2335 )
...
* token limit support context
* add token limit with ctx
add token limit with ctx
Co-authored-by: sado <liaoyonglin@bilibili.com>
2 years ago
cui fliter
fc59aec2e7
fix a few function names on comments ( #2496 )
...
Signed-off-by: cui fliter <imcusg@gmail.com>
Signed-off-by: cui fliter <imcusg@gmail.com>
2 years ago
Kevin Wan
773b59106b
chore: remove init if possible ( #2485 )
2 years ago
Kevin Wan
38a73d7fbe
fix: etcd reconnecting problem ( #2478 )
2 years ago
Kevin Wan
1bc138bd34
chore: refactor to reduce duplicated code ( #2477 )
2 years ago
Kevin Wan
4b9066eda6
chore: better shedding algorithm, make sure recover from shedding ( #2476 )
...
* backup
* chore: better shedding algorithm, make sure recover from shedding
2 years ago
#Suyghur
0c66e041b5
feat(redis):add timeout method to extend blpop ( #2472 )
2 years ago
Halo
aa2be0163a
fix: add more tests ( #2473 )
...
* chore: add string to map in httpx parse method
* feat: add httpx parse stringToMap method test
* fix: add more test
2 years ago
Kevin Wan
ada2941e87
chore: sort methods ( #2470 )
2 years ago
Kevin Wan
59c0013cd1
feat: add logc package, support AddGlobalFields for both logc and logx. ( #2463 )
...
* feat: add logc package
* feat: add logc, add AddGlobalFields for both logc and logx
* chore: add benchmarks
* chore: add more tests
* chore: simplify globalFields in logx
* chore: remove outdated comments
2 years ago
Halo
05737f6519
feat: add string to map in httpx parse method ( #2459 )
...
* chore: add string to map in httpx parse method
* feat: add httpx parse stringToMap method test
2 years ago
Kevin Wan
1a6d7b3ef6
chore: gofumpt ( #2439 )
2 years ago
chen quan
2e1e4f3574
feat: add color to debug ( #2433 )
2 years ago
Kevin Wan
22d0a2120a
chore: replace fmt.Fprint ( #2425 )
2 years ago
chen quan
68e15360c2
fix: fix log output ( #2424 )
2 years ago
dawn_zhou
d640544a40
refactor: redis error for prometheus metric label ( #2412 )
...
Co-authored-by: dawn.zhou <dawn.zhou@yijinin.com>
2 years ago
MarkJoyMa
e6aa6fc361
feat: add log debug level ( #2411 )
2 years ago
Kevin Wan
0b1884b6bd
feat: support caller skip in logx ( #2401 )
...
* feat: support caller skip in logx
* chore: remove debug prints
* chore: remove debug prints
* chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (#2402 )
Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go ) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.9.0...v1.10.0 )
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: simplify test code
* chore: remove new WithFields in logx, and deprecated old WithFields
* chore: simplify WithDuration
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Kevin Wan
1f6688e5c1
chore: refactor the imports ( #2406 )
2 years ago
dawn_zhou
ae7f1aabdd
feat: mysql and redis metric support ( #2355 )
...
* feat: mysql and redis metric support
* feat: mysql and redis metric support
* feat: mysql and redis metric support
Co-authored-by: dawn.zhou <dawn.zhou@yijinin.com>
2 years ago
Kevin Wan
e9650d547b
chore: refactor ( #2388 )
2 years ago
genewoo
05c2f313c7
feat: add grpc export ( #2379 )
...
Co-authored-by: Gene Wu <gene.wu@cabital.com>
2 years ago
Kevin Wan
66c2a28e66
fix #2364 ( #2377 )
2 years ago
Kevin Wan
d935c83a54
feat: support baggage propagation in httpc ( #2375 )
...
* feat: support baggage propagation in httpc
* chore: use go 1.16
* chore: use go 1.16
* chore: use go ^1.16
* chore: remove deprecated
2 years ago
Kevin Wan
da80662b0f
chore: refactor ( #2365 )
2 years ago
maizige
cfda972d50
fix:trace graceful stop,pre loss trace ( #2358 )
2 years ago
maizige
422f401153
fix:etcd get&watch not atomic ( #2321 )
2 years ago
Kevin Wan
dfeef5e497
fix: thread-safe in getWriter of logx ( #2319 )
2 years ago
Archer
8c72136631
make logx#getWriter concurrency-safe ( #2233 )
...
* make logx#getWriter concurrency-safe
* make logx#getWriter concurrency-safe
2 years ago
Kevin Wan
a1466e1707
fix: range validation on mapping ( #2317 )
2 years ago
lowang-bh
1b477bbef9
improve: number range compare left and righ value ( #2315 )
...
Co-authored-by: wanglonghui7 <wanglonghui7@jd.com>
2 years ago
Kevin Wan
813625d995
refactor: sequential range over safemap ( #2316 )
2 years ago
李平平
15a2802f12
safemap add Range method ( #2314 )
2 years ago
Kevin Wan
d978563523
fix: more accurate panic message on mapreduce ( #2311 )
2 years ago
Kevin Wan
2d60f0c65a
fix: logx disable not working in some cases ( #2306 )
...
* fix: logx disable not working in some cases
* fix: test fail
2 years ago
maizige
5d4ae201d0
Fix/del server interceptor duplicate copy md 20220827 ( #2309 )
...
* fix:grpc server interceptor duplicate copy MD
* modify wrong comments
2 years ago
sado
bebf6322ff
fix resource manager dead lock ( #2302 )
...
Co-authored-by: sado <liaoyonglin@bilibili.com>
2 years ago
Kevin Wan
36678f9023
chore: refactor stat ( #2299 )
2 years ago
Josh Quintana
90cdd61efc
Initialize CPU stat code only if used ( #2020 )
...
Co-authored-by: Josh Quintana <josh@highwaybenefits.com>
2 years ago
chen quan
0316b6e10e
feat(redis): add ZaddFloat & ZaddFloatCtx ( #2291 )
2 years ago
chen quan
847a396f1c
fix(logx): display garbled characters in windows(DOS, Powershell) ( #2232 )
...
* fix(logx): display garbled characters in windows(DOS, Powershell)
* Update writer.go
2 years ago
Kevin Wan
8ed22eafdd
fix #2240 ( #2263 )
2 years ago
Kevin Wan
05dd6bd743
chore: refactor logx ( #2262 )
2 years ago
Kevin Wan
1568c3be0e
fix: time repr wrapper ( #2255 )
2 years ago
chen quan
4fad067a0e
fix(logx): need to wait for the first caller to complete the execution. ( #2213 )
2 years ago
safeoy
3f3c811e08
fix: fix comment typo ( #2220 )
...
Use an instead of 'a' if the following word starts with a vowel sound, e.g. 'an in-memory cache'.
2 years ago
Kevin Wan
91b8effb24
chore: refactor redislock ( #2210 )
...
* chore: refactor redislock
* chore: add more tests
2 years ago
cong
4879d4dfcd
feat(redislock): support set context ( #2208 )
...
* feat(redislock): support set context
* chore: fix test
2 years ago
Kevin Wan
5cd9229986
fix: only setup logx once ( #2188 )
...
* fix: only setup logx once
* fix: test failure
* chore: not reset logging level in reset
* chore: refactoring
2 years ago
施国鹏
3d38d36605
fix: logx test foo ( #2144 )
...
constant testlog "Stay hungry, stay foolish." contains foo(foolish), changed to foo1
2 years ago
Kevin Wan
9b334b5428
chore: let logx.SetWriter can be called anytime ( #2186 )
2 years ago
Kevin Wan
92145b56dc
chore: refactoring ( #2182 )
2 years ago
Kevin Wan
34eb3fc12e
chore: refactoring logx ( #2181 )
2 years ago
SgtDaJim
101304be53
feat: logx support logs rotation based on size limitation. ( #1652 ) ( #2167 )
...
* feat: logx support logs rotation based on size limitation. (#1652 )
implementation of #1652
Totally compatible with the old logx.LogConf. No effect if users do not change their options.
* feat: logx support logs rotation based on size limitation. (#1652 )
implementation of #1652
Totally compatible with the old logx.LogConf. No effect if users do not change their options.
* feat: logx support logs rotation based on size limitation. (#1652 )
implementation of #1652
Totally compatible with the old logx.LogConf. No effect if users do not change their options.
* feat: logx support logs rotation based on size limitation. (#1652 )
implementation of #1652
Totally compatible with the old logx.LogConf. No effect if users do not change their options.
2 years ago
Kevin Wan
23f34234d0
chore: add more tests ( #2129 )
2 years ago
Kevin Wan
24787a946b
feat: support logx.WithFields ( #2128 )
2 years ago
Kevin Wan
e672b3f8e1
feat: add Wrap and Wrapf in errorx ( #2126 )
2 years ago
Kevin Wan
97a171441d
chore: remove blank lines ( #2117 )
...
* chore: remove blank lines
* chore: refactor
2 years ago
Kevin Wan
1410f7dc20
fix #2109 ( #2116 )
2 years ago
warrior
8afe68f3f1
refactor:remove duplicate codes ( #2101 )
...
Co-authored-by: 沈四胜 <sisheng.shen@71360.com>
2 years ago
Minghong Fang
48f7e01158
feat: add method to jsonx ( #2049 )
2 years ago
Kevin Wan
18035bd4d4
chore: refactor ( #2085 )
2 years ago
家福
f3b8fef34f
fix: type matching supports string to int ( #2038 )
...
* fix: type matching supports string to int
* feat: type matching supports string to int
Co-authored-by: 程家福 <chengjiafu@uniontech.com>
2 years ago
givemeafish
6a4885ba64
fix concurrent map writes ( #2079 )
...
Co-authored-by: wero <wero@werodeMacBook-Pro.local>
2 years ago
wxc
d200ba4a7b
feat: CompareAndSwapInt32 may be better than AddInt32 ( #2077 )
2 years ago