parseAndVerify(candidate, offset, text) {
    if (!isValidCandidate(candidate, offset, text, this.options.leniency)) {
      return
  	}

    const phoneNumber = parsePhoneNumber(
      candidate,
      {
        extended: true,
        defaultCountry: this.options.defaultCountry,
        defaultCallingCode: this.options.defaultCallingCode
      },
      this.metadata
    )

    if (!phoneNumber) {
      return
    }

    if (!phoneNumber.isPossible()) {
      return
    }

    if (this.leniency(phoneNumber, {
      candidate,
      defaultCountry: this.options.defaultCountry,
      metadata: this.metadata,
      regExpCache: this.regExpCache
    })) {
      return {
        startsAt: offset,
        endsAt: offset + candidate.length,
        phoneNumber
      }
    }
  }
Parses a phone number from the `candidate` using `parse` and
verifies it matches the requested `leniency`. If parsing and verification succeed,
a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.

@param candidate  the candidate match
@param offset  the offset of {@code candidate} within {@link #text}
@return  the parsed and validated phone number match, or null