diff --git a/vendor/go.uber.org/atomic/int64.go b/vendor/go.uber.org/atomic/int64.go
index 9ab66b9..2bcbbfa 100644
--- a/vendor/go.uber.org/atomic/int64.go
+++ b/vendor/go.uber.org/atomic/int64.go
@@ -1,6 +1,6 @@
 // @generated Code generated by gen-atomicint.
 
-// Copyright (c) 2020-2021 Uber Technologies, Inc.
+// Copyright (c) 2020 Uber Technologies, Inc.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal
@@ -36,8 +36,8 @@
 }
 
 // NewInt64 creates a new Int64.
-func NewInt64(val int64) *Int64 {
-	return &Int64{v: val}
+func NewInt64(i int64) *Int64 {
+	return &Int64{v: i}
 }
 
 // Load atomically loads the wrapped value.
@@ -46,13 +46,13 @@
 }
 
 // Add atomically adds to the wrapped int64 and returns the new value.
-func (i *Int64) Add(delta int64) int64 {
-	return atomic.AddInt64(&i.v, delta)
+func (i *Int64) Add(n int64) int64 {
+	return atomic.AddInt64(&i.v, n)
 }
 
 // Sub atomically subtracts from the wrapped int64 and returns the new value.
-func (i *Int64) Sub(delta int64) int64 {
-	return atomic.AddInt64(&i.v, -delta)
+func (i *Int64) Sub(n int64) int64 {
+	return atomic.AddInt64(&i.v, -n)
 }
 
 // Inc atomically increments the wrapped int64 and returns the new value.
@@ -66,18 +66,18 @@
 }
 
 // CAS is an atomic compare-and-swap.
-func (i *Int64) CAS(old, new int64) (swapped bool) {
+func (i *Int64) CAS(old, new int64) bool {
 	return atomic.CompareAndSwapInt64(&i.v, old, new)
 }
 
 // Store atomically stores the passed value.
-func (i *Int64) Store(val int64) {
-	atomic.StoreInt64(&i.v, val)
+func (i *Int64) Store(n int64) {
+	atomic.StoreInt64(&i.v, n)
 }
 
 // Swap atomically swaps the wrapped int64 and returns the old value.
-func (i *Int64) Swap(val int64) (old int64) {
-	return atomic.SwapInt64(&i.v, val)
+func (i *Int64) Swap(n int64) int64 {
+	return atomic.SwapInt64(&i.v, n)
 }
 
 // MarshalJSON encodes the wrapped int64 into JSON.
