code: def _GetScanner(self, specification_store, signature_identifiers):
      
      if not specification_store:
        return None
  
      scanner_object = pysigscan.scanner()
  
      for format_specification in specification_store.specifications:
        if format_specification.identifier not in signature_identifiers:
          continue
  
        for signature in format_specification.signatures:
          pattern_offset = signature.offset
          if pattern_offset is None:
            signature_flags = pysigscan.signature_flags.NO_OFFSET
          elif pattern_offset < 0:
            pattern_offset *= -1
            signature_flags = pysigscan.signature_flags.RELATIVE_FROM_END
          else:
            signature_flags = pysigscan.signature_flags.RELATIVE_FROM_START
  
          scanner_object.add_signature(
              signature.identifier, pattern_offset, signature.pattern,
              signature_flags)
  
        self._signature_identifiers.append(format_specification.identifier)
  
      return scanner_object
docs: Initializes the scanner form the specification store.
  
      Args:
        specification_store (FormatSpecificationStore): a specification store.
        signature_identifiers (list[str]): signature identifiers.
  
      Returns:
        pysigscan.scanner: signature scanner or None.